标签: udev

在备用内核中使用可预测的网络接口名称

我几乎经常使用来自Ubuntu 内核 PPA内核,或者我自己编译的内核,使用 Ubuntu 内核配置。

问题是当我使用股票内核时,它似乎默认使用可预测的网络接口名称(即“p4p1”),但当我使用任何备用内核时,它似乎默认使用旧方法(即“eth0”)。

虽然与这个问题并不真正相关,但我的测试计算机出现硬盘故障,并且正在重新安装 Ubuntu Server 14.04.2。

我一直无法确定内核之间有什么区别。我怀疑是内核配置参数,但一直无法确定是哪个。

我的问题:如何使可预测的网络接口名称在所有内核中一致地工作?

附加说明:我在某处看到禁用可预测的网络接口名称以将其添加到 grub:

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
Run Code Online (Sandbox Code Playgroud)

所以,我认为相反的可能会有所帮助:

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
Run Code Online (Sandbox Code Playgroud)

但它没有任何区别。实际上,无论设置如何,我都无法让非库存内核使用 biosdevname。而且我永远无法让库存内核生成/etc/udev/rules.d/70-persistent-net.rules文件(即使这不是我想要的),无论net.ifnames. 如果我有net.ifnames=1,那么至少非库存内核不会生成不正确的/etc/udev/rules.d/70-persistent-net.rules文件。

摘自/var/log/udev
股票内核:

KERNEL[9.216730] add      /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
IFINDEX=2
INTERFACE=p4p1
SEQNUM=1945
SUBSYSTEM=net
...
UDEV  [9.241073] add      /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
ID_BUS=pci
ID_MODEL_FROM_DATABASE=P8P67 and other motherboards
ID_MODEL_ID=0x8168
ID_NET_NAME_MAC=enxf46d04652d8e
ID_NET_NAME_PATH=enp3s0
ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
ID_PCI_CLASS_FROM_DATABASE=Network controller
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
ID_VENDOR_ID=0x10ec
IFINDEX=2
INTERFACE=p4p1
Run Code Online (Sandbox Code Playgroud)

从 Ubuntu …

kernel networking udev 14.04

14
推荐指数
2
解决办法
6万
查看次数

使用 Yubikey Neo 登录 2FA 和锁屏

我想使用我的 Yubikey Neo 登录 Ubuntu 14.04。此外,如果每次拔下 Yubikey 时都自动锁定屏幕,那将很方便。

lock-screen udev lightdm 14.04

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

当 HDMI 监视器/接收器插入笔记本电脑时自动将音频切换到 HDMI

我有一台带 HDMI 端口的笔记本电脑。当我们无家可归并与朋友住在一起时,我一直在用 HDMI 电缆将其插入他们的环绕声接收器。为了让声音正常工作,我必须打开声音设置作业并将硬件配置文件从“模拟立体声输出”切换到“数字立体声(HDMI)输出”,以使声音来自环绕声而不是笔记本电脑的扬声器。

当我拔下插头时,我必须反过来做才能让声音从扬声器中传出。

我对这样做有点厌烦了。我想编写这个脚本。我已经看过这个问题及其答案,但是pacmd list-sinks当声音配置文件下拉列表显示多个选项时,只显示一个接收器。

是否有一个 udev 事件我可以将其挂钩,以便它可以在 HDMI 状态发生变化时运行脚本?

sound pulseaudio hdmi udev

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

插入 USB 驱动器后,引擎盖下会发生什么?

一些系统使用 udev / pmount 来自动挂载拇指驱动器。这是如何在 Ubuntu(特别是 Ubuntu 12.04)中解决的?显然,pmount 包和相应的 udev 规则都不存在,但 Ubuntu 会自动挂载插入的 USB 驱动器。怎么会这样?

automount udev 12.04

13
推荐指数
1
解决办法
2107
查看次数

USB 记忆棒无法访问且系统在关机时挂起:与旧硬件有关?

请注意帖子末尾的三个更新

原问题

我使用该forcepae选项在较旧的 Acer Travelmate 4500 上安装了 Lubuntu 14.04.1,并根据https://askubuntu.com/a/515909/288322调整 upowerd.py 。运行更新管理器直到系统被称为是最新的,我有两个问题:我无法访问 USB 记忆棒和笔记本电脑在关机期间挂起。

问题可能以某种方式与更新包“common library libudev”“/dev/ and hotplug background process”有关:我一次选择一个更新;when selecting "common library libudev" as the second last (I wanted to select "/dev/ and hotplug background process" as the last one), the update hung at that moment the status bar showed Setting up udev (204-5ubuntu20.5). 在此之前的一些行中,它说Adding diversion of /bin/udevadm to /bin/udevadm.upgrade by fake-udev';这可能也很有趣。除此之外就是通常的准备解包、解包、处理和设置“libudev1:i386 (204-5ubuntu20.5)”。我不得不杀死更新管理器并重新启动笔记本电脑。

现在,即重新开机后,我可以访问USB记忆棒和系统关机工作优秀(显示All processes …

usb lubuntu kernel udev 14.04

13
推荐指数
1
解决办法
1889
查看次数

连接监视器时运行脚本

usr/local/bin/当我将外部显示器连接到我的笔记本电脑时,我正在尝试运行位于 中的脚本。我试图添加一条新udev规则,但没有奏效。我在/etc/udev/rules.d名为vga-monitor-connect.rules. 该文件的内容是

SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/panel-fix"
Run Code Online (Sandbox Code Playgroud)

我从这个答案中得到了这条线

在网上搜索后,我也尝试了以下规则

KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/rumesh/.Xauthority", RUN+="/usr/local/bin/panel-fix"
Run Code Online (Sandbox Code Playgroud)

然而这也不起作用。

我已经手动运行了脚本,我可以确认它可以工作,所以我的脚本没有问题。

我也想说清楚,我知道的不多,udev所以我使用的规则可能是错误的。如果有人知道我的问题的正确规则,请留下答案。

我的显卡是Intel GM965集成芯片组

xrandr scripts multiple-monitors events udev

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

当用户不安全地拔下 USB 拇指驱动器时提醒用户

用户在未卸载的情况下拔下 U 盘后,反复抱怨 U 盘上的数据丢失。我们在我们的机器上运行 Ubuntu 14.04 LTS。已启用自动安装。

因为我厌倦了在拔出之前记住它们要安全移除,所以我想让 Ubuntu 在拔出安装的 USB 驱动器时显示警报。

我想添加一个udev规则,该规则notify-send在驱动器仍然安装的情况下在移除时运行。如何确定 USB 驱动器在移除时是否已安装?

usb unmount udev notify-send

13
推荐指数
2
解决办法
1476
查看次数

对于pulseaudio tsched 做什么(以及默认值是什么)?

如果我修改/etc/pulse/default.pa并更改此行:

load-module module-udev-detect
Run Code Online (Sandbox Code Playgroud)

到:

load-module module-udev-detect tsched=0
Run Code Online (Sandbox Code Playgroud)

我显然禁用了 tsched。同样,如果我将行更改为,

load-module module-udev-detect tsched=yes
Run Code Online (Sandbox Code Playgroud)

我正在启用 tsched。这两个都可以通过运行来验证,

pactl list | grep tsched
Run Code Online (Sandbox Code Playgroud)

并查看文档

tsched从 0.9.11 开始。使用基于系统定时器的模型(又名无故障)。默认为 1(启用)。如果您的硬件没有返回准确的计时信息(例如 Creative 声卡),您可以尝试设置 tsched=0 以启用在 0.9.10 及之前使用的基于中断的计时。

但是我有两台机器(不同的硬件),一台返回tsched=yes,一台不返回。

默认值真的是 1(启用/是)吗?如果它没有出现在 pactl 中,有没有办法验证它是否真的被启用?什么(在硬件中)决定它是否真的启用?

pulseaudio udev

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

如何禁用 udev 网络规则生成?

在我们的云中,我们生成带有2c:c2:60实例前缀的 MAC 。当我们重用或复制一个实例时,新副本会获得另一个 MAC 地址。当新副本启动时,由于新的 MAC,NIC 获得名称 eth1。

我看到在 中/lib/udev/rules.d/75-persistent-net-generator.rules,有一些已知前缀的规则,例如52:54:00 (KVM)and VMWare (00:0c:29)。但是这个文件应该没有在第一行规定进行编辑。我们想使用我们自己注册的 MAC 前缀,而不是其他人的。

如何完全禁用网络规则生成?

10.04 udev 12.04

11
推荐指数
3
解决办法
3万
查看次数

将网络摄像头分配给特定的 /dev/video#

我的 Ubuntu 服务器 14.04 上有三个网络摄像头。lsusb 的输出:

Bus 006 Device 002: ID 0bda:8153 Realtek Semiconductor Corp.
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 2537:1066
Bus 004 Device 002: ID 05e3:0616 Genesys Logic, Inc.
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 1871:0101 Aveo Technology Corp. UVC camera (Bresser microscope)
Bus 003 Device 004: …
Run Code Online (Sandbox Code Playgroud)

webcam udev

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