[daily][archlinux][pacman] local database 损坏

下午,开心的看着dpdk的文档,做做各种小实验。

后台正常yaourt -Syu,三个多G的下载,我总是过很久才update一次。

然后KDE窗口各种异常,我知道又在开始更x相关的东西了。可是因为X异常所以看见konsole。于是脑残的我就reboot了。。。

是reboot,不是systemctl reboot。(不明白我为什么这么脑残,既然出现了异常,说明已经download完成,开始install了,等一下就好了嘛,重启没有任何帮助。)

重启之后,果然出了问题,无线网卡驱动不起来了。幸好还有有线接口,不然连网都上不去。

然后,我是如以下步骤解决这个问题的

1. 用ip查看设备不在(wlan0),说明没有驱动起来。

[tong@T7 ~]$ ip link
1: 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:00
2: 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:ff
3: 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 Wire
03: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 driver driver_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 firmware
linux-firmware 20160915.c4c07a8-1
[root@T7 pkg]# 

5. 回退 / 卸载 / 或者重装。于是问题来了,它被玩坏了。

[root@T7 pkg]# pacman -Run linux-firmware
error: could not open file /var/lib/pacman/local/linux-firmware-20160915.c4c07a8-1/desc: No such file or directory
warning: could not fully load metadata for package linux-firmware-20160915.c4c07a8-1
checking 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. 重新,看看是不是真的好了。

 

posted on 2016-09-29 17:56  toong  阅读(472)  评论(0编辑  收藏  举报