我问这个问题,但我越来越确定我的问题是由错误的iwlwifi
固件版本引起的。我不想再把事情搞得一团糟,我想问一下是否可以将我的 islwifi 固件降级到以前的版本。
如果可以的话,你能具体告诉我怎么做吗?我不太擅长通用说明。或者我错过了什么网站?
答案1
Linux 固件源正在 Git 存储库中开发,因此可以轻松回顾固件的所有旧版本。
- 安装git
克隆存储库(cgit 网页):
git clone http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cd
进入存储库:cd linux-firmware
根据以下信息找到您设备的固件无线上网开发页面或遗产(向下滚动),例如
iwlwifi-3945-2.ucode
。find . -name "iwlwifi*"
请注意,对于某些设备,多个版本被保存为单独的文件,以兼容旧的内核版本。
查看该文件的历史记录:
git log iwlwifi-3945-2.ucode
显示(删除了一些不相关的行):
commit d90a18c9e7eef19ab978c4c0bb2d2d4b8fa49dce Date: Thu May 14 18:15:50 2009 +0100 linux-firmware: Update Intel Wireless Wifi 3945 firmware Version is now 15.32.2.9 commit caef650a8c909f557ed7f6b23c413401d6994fdb Date: Tue Jan 20 21:37:48 2009 +0000 linux-firmware: Add Intel Wireless Wifi firmware
顶部的修订版本是您工作目录中的版本。要检索同一文件的旧版本,请执行以下操作:
git show caef650a8c909f557ed7f6b23c413401d6994fdb iwlwifi-3945-2.ucode > ~/some/destination/iwlwifi-3945-2.ucode
也可以看看:如何从 Git 中的特定修订版本中检索单个文件?
但是,大多数固件文件在存储库中只有一个修订版,并且仅通过多个文件名进行版本控制。
通过将文件复制到那里来安装固件
/usr/local/lib/firmware
(手动安装的固件文件的位置):sudo cp /path/to/iwlwifi-3945-2.ucode /usr/local/lib/firmware/
删除并重新插入内核模块:
rmmod iwldvm && rmmod iwlwifi modprobe iwlwifi && modprobe iwldvm
并查看
dmesg
固件是否已加载。
如果您想知道是否有任何文件已从存储库中删除,请尝试以下操作:
git log --diff-filter=D --summary | grep delete
在撰写本文时,还没有删除过任何英特尔固件。