我怎样才能知道设备何时连接到我的 FreeBSD 机器?假设我插入了 USB 设备、HDMI 设备、蓝牙或类似设备。
我可以有一个控制台输出来显示 [device] 并提供有关该设备的一些输出吗?
答案1
如果您只想检查设备是否已连接(使用 检查内核消息dmesg
、签入/var/log
文件并使用一些工具(如usbconfig
、pciconf
或camcontrol
)),那么所有其他答案都很好。
但是,如果您想要更多(在插入设备时处理消息并执行程序或类似的操作),您可以使用开发者。
当您连接设备时,FreeBSD 内核将生成消息:
- 当您插入设备时,
attach
会生成一条消息 - 当您拔下设备时,
detach
会生成一条消息 - 等等(
devd.conf
如果您需要更多信息,请参阅手册页)。
FreeBSDdevd
默认使用,其配置存储在/etc/devd/
和中/etc/devd.conf
。如果您使用 Linux,则devfs
和 也具有相同的功能udev
。
您可以在 中找到一些示例/usr/share/examples/etc/devd.conf
。
答案2
该lshal
命令将为您提供 DMI/SMBIOS 硬件信息(dmidecode
在 Linux 下)
您可以通过以下方式列出已连接的 USB 设备:
camcontrol devlist
或者 :
usbconfig
列出pci
设备:
pciconf -l
安装完软件包后,您也可以lsusb
在 FreeBSD 下使用命令usbutils
:
pkg install usbutils
答案3
dmesg | grep -i USB
将为您提供已连接的列表
获取有关 USB 设备的信息。usbconfig
可以帮忙尝试一下。
或者
pciconf -lv
PCI 总线的 pciconf 诊断实用程序
答案4
您始终可以在 dmesg 和 /var/log/messages 中找到有关新连接设备的信息。
对于蓝牙,您可以检查:hcitool dev
对于 USB 设备,请尝试 lsusb (-v)。
其他有用的命令:lshw (-short)、hwinfo (--short)(如果已安装)、lspci (-v)、lsblk、df -h、fdisk -l、multipath -ll、mount、dmidecode、cat /proc/scsi /scsi,hdparm -i /dev/sda。根据您的需要,这些命令有多种变体。