1、背景:今天上午连接Android调试之后,突然又出现了无法识别usb的问题。具体表现为:除usb无线网卡有效外,其他usb设备包括usb鼠标、u盘、android手机插上后都没反应。dmesg一直报:hub 5-0:1.0: unable to enumerate USB device on port 1。各种折腾未果,看到有个帖子提到升级内核能够解决,引出了这篇帖子的主题。
2、步骤:升级的过程主要是参照这篇《ubuntu 12.04内核编译步骤》,写的详细而且清晰,照着做就行了。这里我再把自己做的过程列一遍:
1 cd ~/Downloads 2 su // 改变当前用户,以root执行后续命令 3 wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.1.tar.xz // 下载最新的稳定版 4 tar xvf linux-3.13.1.tar.xz -C /usr/src/ // 我理解可以随便放 5 6 // 安装ncurses,不然make menuconfig时会报说找不到这个 7 wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz 8 tar xvf ncurses-5.9.tar.gz 9 cd ncurses-5.9 10 ./configuration 11 make 12 make install 13 14 // OK,下面正式开始编译! 15 cd /usr/src/linux-3.13.1 16 make menuconfig // 会出现一个配置界面,全用默认的就好,make dep/clean都不用执行 17 make bzImage // 这一步我用了半小时 18 make modules // 这一步我用了2.5小时,相信你的机器肯定比我的破本本跑的快!接下去的命令就快了 19 make modules_install // mkinitramfs -o /boot/initrd.img-3.13.1这一步可以不做,下面会自动做的 20 make install 21 cat /boot/grub/grub.cfg // grub.cfg也不用手工改了,可以看到都自动做好了
3、清理:执行完上面的过程,重启,uname -r看到3.13.1,呵呵,说明升级成功了。然后就可以把以前的内核版本都清理掉了。
1 sudo apt-get remove linux-image-3.2.* 2 sudo apt-get remove linux-headers-3.2.* 3 sudo apt-get autoremove
清理前,我的系统里有 378492 个文件和目录,清理后只剩下110928,世界顿时清爽了!
4、题外话:最后不得不悲摧的提一下,升级之后,usb无效的问题仍然没有解决。如果搞定了,会再小结另外一个帖子。