小编uml*_*ute的帖子

我怎样才能看到 dmesg 输出的变化?

我正在编写一个将错误消息打印到环形缓冲区dmesg 输出的设备驱动程序。我想看到dmesg它改变时的输出。

我怎样才能做到这一点?

linux command-line logs dmesg

188
推荐指数
6
解决办法
21万
查看次数

如何限制 ssh *远程* 端口转发?

我需要限制用户可以远程“ ssh -R”转发哪些端口。

我知道permitopenauthorized_keys上的选项,但正如手册页上所说,它只限制本地“ ssh -L”端口转发

正如这里所讨论的,用户将获得相同netcat或相似的结果,但在这种情况下,用户没有外壳访问权限

我还发现这个线程谈论使用 selinux 或LD_PRELOAD,但我以前从未配置过 selinux,也找不到有关如何使用LD_PRELOAD.

也许有人已经为 openssh 制作了一个补丁来实现它?

编辑:我发现了这个错误报告,所以我想它还没有实现

security ssh port-forwarding

23
推荐指数
1
解决办法
8099
查看次数

如何仅显示*不*匹配过滤器的进程?

我正在使用htop交互式监控我的进程。

但是,有时会有一些进程“妨碍”,我想将它们过滤掉。

不幸的是,htop 的内置过滤器(例如F4)似乎只允许我定义一个过滤器(只显示匹配项),而不是过滤器(显示匹配项除外)。

最后,我还没有找到任何关于搜索字符串实际语法的文档(正则表达式似乎不起作用)。

filter htop

16
推荐指数
2
解决办法
7879
查看次数

为什么 [az] 星号匹配数字?

我在当前路径有 3 个目录。

$ls
a_0db_data  a_clean_0db_data  a_clean_data
$ls a_*_data
a_0db_data:

a_clean_0db_data:

a_clean_data:

$ls a_[a-z]*_data
a_clean_0db_data:

a_clean_data:
Run Code Online (Sandbox Code Playgroud)

我希望最后一个 ls 命令只匹配a_clean_data. 为什么它也匹配包含0?

bash --version
GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)
Run Code Online (Sandbox Code Playgroud)

bash regular-expression wildcards

13
推荐指数
3
解决办法
4772
查看次数

为什么多个消费者可以从网络摄像头访问 *单个 * v4l2-loopback 流

我最近需要一个网络摄像头同时由 3 个应用程序共享(一个网络浏览器、一个视频会议应用程序和 ffmpeg 来保存流)。

不可能简单地共享 /dev/video* 流,因为一旦一个应用程序正在使用它,其他应用程序就不能使用它,并且其他任何东西都会导致“设备或资源繁忙”或等效。

所以我转向 v4l2-loopback,目的是将网络摄像头镜像到 3 个环回。

使用 3 个环回确实按预期工作,但真正让我惊讶的是,我实际上不需要3 个环回,而只需要 1 个。

如果我创建一个环回并使用 ffmpeg 提供它,那么所有 3 个应用程序可以同时使用单个镜像环回,而不会出现“设备或资源繁忙”问题。

所以这比我计划的要好,而且没有我需要帮助的实际问题。

但我的问题是,环回怎么可能呢?为什么不直接使用原始来源?

创建单环回的示例命令:

sudo modprobe v4l2loopback video_nr=30 exclusive_caps=1 card_label="loopback cam"

使用 ffmpeg 将 /dev/video5 镜像到环回 (/dev/video30) 的示例命令。这将默认为原始,但最近构建的 ffmpeg 可以使用像 MJPEG 这样的替代流,不管怎样,行为都是相同的:

ffmpeg -f v4l2 -i /dev/video5 -codec copy -f v4l2 /dev/video30

这样做后,尝试使用多个应用程序访问 /dev/video30,以下是一些示例:

ffmpeg -f v4l2 -i /dev/video30 -codec libx264 recordstream.mp4
ffplay -f video4linux2 -i /dev/video30
Run Code Online (Sandbox Code Playgroud)

相关的系统信息:

  • Ubuntu 20.04
  • 内核:5.4.0-31-通用
  • 包:v4l2loopback-dkms …

ffmpeg video v4l camera v4l2loopback

9
推荐指数
1
解决办法
1054
查看次数

如何创建虚拟网络摄像头?

我想参加一些视频会议,但我没有网络摄像头,会议软件需要一个。

所以我的问题是,我可以创建一个虚拟的吗?我不在乎凸轮会投射什么,我只需要看起来有一个。

chrome v4l camera v4l2loopback

8
推荐指数
1
解决办法
9633
查看次数

rsync --delete-excluded 和 --prune-empty-dirs,但只修剪排除的目录

我每晚都在使用 rsync 将我的 Windows 用户配置文件克隆到远程服务器。我正在使用--filter='merge <file>'arg 加载一个包含/排除规则的文件,我用它来避免传输浏览器缓存和其他我知道没用的东西。我还使用--prune-empty-dirs避免创建一堆不必要的空目录。

我的脚本也使用了--delete-excluded开关,因为这样如果我确定了更多要排除的内容,我只需将其添加到过滤器文件中,它就会在下次作业运行时自动取消。

但是,这具有删除所有空目录的副作用。我担心这会在编写糟糕的应用程序的情况下破坏某些内容,该应用程序在写入数据之前不检查目录是否存在。

有没有办法只“修剪”那些因排除而为空的目录,而不是在源端实际上为空的目录? (我想用一个简单的规则来做到这一点,而不是必须按名称明确给出任何目录,因为涉及的目录数量。)

立即想到的唯一解决方法是:

  1. 停止使用--prune-empty-dirs,并使用额外的目录。
  2. 停止--delete-excluded在夜间工作中使用,并在我更改过滤器文件时手动运行--delete-excluded(没有--prune),这将消除新的排除并重新创建“真正的”空目录。两者都不是理想的。

rsync

6
推荐指数
1
解决办法
8336
查看次数

设置最大音量

我通常在WM(即i3wm)中工作并用于alsamixer调节音量。

最近在 Dell t5500 机器上安装的 Linux 在将最大音量设置为 时发出非常响亮的声音alsamixer。由于我平时使用入耳式耳机,如果错误地将音量设置为最大,可能会损坏我的耳膜。有没有办法设置峰值音量?

alsa audio

5
推荐指数
1
解决办法
3431
查看次数

如何创建一个 v4l2 设备,它是网络摄像头的裁剪版本?

我有一个罗技网络摄像头 C930e /dev/video0。我可以用它来进行视频会议(例如 jitsi)。然而,这个网络摄像头的视频太高太宽了。我想要一个“裁剪”的版本/dev/video0,不显示墙上的海边图片。

首先,我尝试设置v4l2选项来实现这一点,但没有成功:

$ v4l2-ctl -d /dev/video0 --get-cropcap
Crop Capability Video Capture:
    Bounds      : Left 0, Top 0, Width 640, Height 360
    Default     : Left 0, Top 0, Width 640, Height 360
    Pixel Aspect: 1/1

$ v4l2-ctl -d /dev/video0 --get-selection target=crop_bounds
Selection: crop_bounds, Left 0, Top 0, Width 640, Height 360, Flags:

$ v4l2-ctl -d /dev/video0 --set-selection target=crop_bounds,flags=crop,top=10,left=10,width=100,height=100
VIDIOC_S_SELECTION: failed: Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)

之后,我遵循了另一个想法:我尝试使用v4l2loopback创建另一个设备/dev/video2。之后我会尝试使用ffmpeg连接/dev/video0到 …

v4l camera v4l2loopback

5
推荐指数
1
解决办法
4096
查看次数

添加和删​​除 v4l2-loopback 设备?

我的机器上运行着不同的 lxc 容器,并且还连接了一个网络摄像头。我希望所有 lxc 容器都可以访问此相机。我遇到了“v4l2-loopback”设备,并找到了一种添加设备的方法;

modprobe v4l2loopback devices=3
Run Code Online (Sandbox Code Playgroud)

我将来自 /dev/video0 的流定向到所需的虚拟视频设备。我的问题是如何在运行时添加和删除这些 v4l2loopback 设备?每当启动/删除任何 lxc 容器时,我都想添加/删除设备。有任何想法吗?

谢谢!

lxc v4l v4l2loopback

4
推荐指数
1
解决办法
1万
查看次数