我想知道 Linux 中是否有与 Windows 设备管理器或 WindowsDevCon
实用程序(具有硬件管理功能的命令行实用程序)等效的东西。
驱动程序在 Linux 中也以相同的方式工作吗?
答案1
devcon
Linux 中的各种设施和命令涵盖了Windows 提供的功能。
Linux 的“即插即用”管理器通常是udev
。 udev
负责识别硬件更改、(可能)自动加载模块以及在/dev
需要时创建节点。如果您希望在 Linux 下执行某些操作(例如模拟 USB 设备移除)(devcon
可以执行的操作),我认为应该使用与正在运行的命令交互的命令udevd
。我还没有在 Linux 下执行过此操作,但您可以先了解有关 的更多信息udev
。
lsmod
将显示所有当前加载的内核模块。设备驱动程序是内核模块的一项功能。 insmod
如果可能,将加载并启动模块,并且大多数情况下会导致设备出现在中/dev
。 rmmod
相反。如果您执行,lsmod
您会注意到某些模块依赖于其他模块,rmmod
如果某些模块依赖于它,则不会让您删除它。 modprobe
其选项处理依赖关系。
在 Linux 下,模块也可以“内置”到内核中,并且不会出现在任何模块列表中。在引导加载程序加载内核时,它们立即可用。另一种选择是将模块放在“初始 ramdisk”( initrd
) 中的目录中,该目录也由引导加载程序加载,并且在启动时内核可以立即访问。“安装”或“更新”设备驱动程序可能涉及创建带有内置模块的新内核或更新内核,或者在 initrd 中添加/更新它(如果不存在)。大多数发行版都提供了执行此操作的工具和实用程序。
通常,您不必担心安装或获取第三方驱动程序,除非它未包含在 kernel.org 的“官方”内核中 - 因为内核模块(包括驱动程序)是内核的一部分,每个受支持设备的驱动程序也包含在内,并且通常随您的发行版提供。因此,在 Linux 下需要安装“制造商提供的驱动程序”的情况并不常见,除非视频驱动程序和某些无线芯片组在驱动程序开发人员所需的技术信息方面仍存在许多法律障碍。
lshw
可以以树状格式为您提供大部分信息。 lspci
、lsusb
、lsscsi
和lscpu
也非常有用。大多数总线(如 PCI、SCSI、USB)在大多数 Linux 发行版中都有很多用户空间实用程序,您可以使用它们来配置和获取特定类别设备的信息(例如: )。本段中提到的几乎所有内容以及更多内容都只是和hdparm
中各种文件和目录的前端;不过在大多数情况下,您会希望使用这些实用程序。/proc
/sys
答案2
在 Linux 上尝试以下命令:gtk 教程,它是瘦身。
答案3
Windows 和 Linux 的驱动程序并不相同。不过,在某些情况下,您可以将 Windows 设备驱动程序加载到 Linux 内核中。
关于Linux设备驱动程序:
驱动程序可以编译到 Linux 内核或作为模块。如果它们是模块,则可以根据需要加载或卸载它们。
您可以使用以下命令查找有关机器设备的信息:
lspci
lsusb
我最喜欢的是
lspci -nn
用于姓名和号码。
查看以下命令的手册页:
modprobe
rmmod
lsmod
modinfo
简而言之:
modprobe
加载内核模块。
rmmod
删除内核模块。
lsmod
列出当前加载的模块。
modinfo
显示有关特定模块的信息。
还有 GUI 应用程序。我认为 KDE 的控制中心里有一个名为 kinfocenter 的应用程序。
希望有所帮助。
答案4
您可以查看/sys
lsusb/lspci 仅仅显示的简要小报视图的真实设备树。