我安装了 wifi dkms 模块,删除了软件包,然后重新安装它,因为我不能 modprobe -r 它,重新安装它之后,我仍然不能,一直 wifi 工作。需要明确的是,我已经卸载了 wifi 驱动程序,但 wifi 仍然可以使用。
运行lspci -k | grep Adapter
没有显示任何内容,也没有显示无线而不是适配器。
我安装了 wifi dkms 模块,删除了软件包,然后重新安装它,因为我不能 modprobe -r 它,重新安装它之后,我仍然不能,一直 wifi 工作。需要明确的是,我已经卸载了 wifi 驱动程序,但 wifi 仍然可以使用。
运行lspci -k | grep Adapter
没有显示任何内容,也没有显示无线而不是适配器。
这实际上与不同的文件删除语义有关。
例如,在 Windows 系统上,您通常不能删除正在使用的文件。但在类 Unix 系统上,文件系统通常遵循 POSIX 标准文件系统语义。这意味着当您删除正在使用的文件时:
对于习惯于类似 Windows 的文件删除语义的人来说,这可能会令人震惊。它实际上使诸如更新当时可能正在使用或可能未使用的软件之类的事情变得更加容易,但如果您不知道它也会引起一些意外。
例如,如果由于某个程序正在将越来越多的数据写入一个大文件而导致磁盘空间不足,那么在该程序实际关闭文件(或停止)之前,删除该文件不会给您任何磁盘空间。相反,在这种情况下尽快释放磁盘空间而不杀死程序的正确方法是将文件截断为零长度而不删除它。
背景:在 POSIX 风格的文件系统上,特定文件的主要保证唯一标识符不是文件名,而是文件的inode 编号。您可以将其视为文件的一种社会安全 ID 号。目录可以被认为是一种特殊类型的文件,它将文件名与 inode 编号相关联,以方便那些无法像计算机那样处理数字的人。
从计算机的角度来看,任何硬链接只是一个普通的旧目录条目:每个文件通常至少有一个硬链接。
从人的角度来看:
另一方面,Linux 内核模块的加载和卸载遵循更熟悉的语义“您不能卸载当前正在使用的模块”。
与 POSIX 标准文件系统语义一起,这意味着您无法在不先关闭 WiFi 适配器的情况下卸载当前版本的模块。但是您可以将磁盘上的模块文件替换为新版本就可以了,并且在下次重新启动时,将自动使用新版本。(确保在重新启动之前重新生成您的 initramfs 将确保模块的旧版本不会保留在 initramfs 文件中。)