linux systemd
Linux可以自动识别,加载和公开来自无数供应商的附加硬件设备,从而发挥了出色的作用。 实际上,很多年前,正是这一功能使我坚信我的雇主将其整个基础架构都转换为Linux。 痛点是Redmond的某个公司无法在Linux上轻松地为Compaq台式机上的集成网卡加载驱动程序的方式。
从那以后的几年中,随着过程的复杂化,Linux的公认设备库已得到极大发展。 那个节目的明星是udev 。 Udev的工作是侦听Linux内核中涉及设备状态更改的事件。 它可能是插入或拔出的新USB设备,也可能是无线鼠标脱机,因为它淹没在溅出的咖啡中。
Udev的工作是处理所有状态更改,例如,通过分配访问设备的名称或权限。 可以通过dmesg访问这些更改的记录。 由于dmesg通常会吐出数千个条目,因此过滤结果很聪明。 下面的示例显示Linux如何识别我的WiFi接口。 它显示了我的无线设备使用的芯片组( ath9k ),在此过程早期分配的原始名称( wlan0 )以及当前正在使用的大而丑陋的永久名称( wlxec086b1ef0b3 ):
$ dmesg | grep wlan
[ 5.396874] ath9k_htc 1-3:1.0 wlxec086b1ef0b3: renamed from wlan0
在本文中,我将讨论为什么任何人都想使用这样的名称。 在此过程中,我将探索udev配置文件的结构,然后展示如何对udev设置进行更改,包括如何编辑系统命名设备的方式。 本文基于我的新课程Linux System Optimization中的一个模块。
了解udev配置系统
在systemd机器上,udev操作由systemd-udevd守护程序管理。 您可以使用systemctl status systemd-udevd以常规systemd方式检查 udev守护程序的状态 。
/lib/udev/rules.d/或 /etc/udev/rules.d/目录。 规则文件包括匹配键和分配键。 可用的匹配键集包括