首页 > 代码库 > [archlinux][daily][pacman] local database 损坏
[archlinux][daily][pacman] local database 损坏
下午,开心的看着dpdk的文档,做做各种小实验。
后台正常yaourt -Syu,三个多G的下载,我总是过很久才update一次。
然后KDE窗口各种异常,我知道又在开始更x相关的东西了。可是因为X异常所以看见konsole。于是脑残的我就reboot了。。。
是reboot,不是systemctl reboot。(不明白我为什么这么脑残,既然出现了异常,说明已经download完成,开始install了,等一下就好了嘛,重启没有任何帮助。)
重启之后,果然出了问题,无线网卡驱动不起来了。幸好还有有线接口,不然连网都上不去。
然后,我是如以下步骤解决这个问题的
1. 用ip查看设备不在(wlan0),说明没有驱动起来。
[tong@T7 ~]$ ip link1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: lan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 50:7b:9d:5c:1e:9b brd ff:ff:ff:ff:ff:ff3: internal-br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/ether d2:fd:23:44:9f:6a brd ff:ff:ff:ff:ff:ff[tong@T7 ~]$
2. lspci说明硬件识别正常,查看sysfs,确认确实是驱动没有驱起来。
[tong@T7 ~]$ lspci -nn |grep Wire03:00.0 Network controller [0280]: Intel Corporation Wireless 7265 [8086:095b] (rev 61)
xxxxx[tong@T7 ~]$ ls /sys/bus/pci/devices/0000\:03\:00.0/ |grep driverdriver_override[tong@T7 ~]$
xxxx
基于以上,已经证实了驱动iwlwifi出了问题,现在就要看一下出了什么问题。
3. 通过dmesg查看,系统启动阶段一定会试图去加载网卡,出了错。
[root@T7 pkg]# dmesg |grep iw[ 3.096783] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-21.ucode failed with error -2[ 3.096800] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-20.ucode failed with error -2[ 3.096810] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-19.ucode failed with error -2[ 3.096820] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-18.ucode failed with error -2[ 3.096830] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-17.ucode failed with error -2[ 3.096840] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-16.ucode failed with error -2[ 3.096843] iwlwifi 0000:03:00.0: no suitable firmware found![root@T7 pkg]#
可以看出来,是firmware出了问题,已经基本能够断定是更新了新的firmware有问题,后者更新时候被我重启搞坏了。
4. 我并不知道firmware是神马鬼,所以必须找到是哪一个包
[root@T7 pkg]# pacman -Q|grep firmwarelinux-firmware 20160915.c4c07a8-1[root@T7 pkg]#
5. 回退 / 卸载 / 或者重装。于是问题来了,它被玩坏了。
[root@T7 pkg]# pacman -Run linux-firmwareerror: could not open file /var/lib/pacman/local/linux-firmware-20160915.c4c07a8-1/desc: No such file or directorywarning: could not fully load metadata for package linux-firmware-20160915.c4c07a8-1checking dependencies...warning: removing linux-firmware from target list there is nothing to do[root@T7 pkg]#
怎样也不行,因为它坏了,最后我是这么搞的。
(1)touch空文件desc。(2)--force重装了这个包。
这并不是个好主意,因为--force代表着暴力,破坏。我们应该选择官方方法解决这个问题。IRC请教了某大哥,给出建议如下连接。我并没有看,也没用试。但我想应该是好使的。
https://wiki.archlinux.org/index.php/Pacman/Restore_local_database
6. 重新,看看是不是真的好了。
[archlinux][daily][pacman] local database 损坏