经过百度“360wifi linux“ 已经有不少解决方案。主要过程是从网上下载mt7601驱动包,编译出一个内核模块后,再经过modprobe 添加模块。下面描述的是基于我本机的特色所作的额外工做。个人ubuntu是比较老的10.04,32位,运行vmware虚拟机上, 用 uname -r 获得的结果是 2.6.32-21-generic。
1. make 失败linux
错误是找不到目录 /lib/modules/2.6.32-21-generic/build. 进入到 /lib/modules/2.6.32-21-generic 下检查,的确没有 build 子目录。但上一级的 /lib/modules 下除了 2.6.32-21-generic 外,还有 2.6.32-23-generic 目录,它下面有build子目录(其实是一个软连接)。心想版本号也没有差多少,用它也许能行,因而修改驱程程序源码的makefile, 将
LINUX_SRC = /lib/modules/$(shell uname -r)/build
修改为
LINUX_SRC = /lib/modules/2.6.32-23-generic/buildshell
下面还有一处也作一样的修改。ubuntu
再编译,成功。且运行 make install 也成功,但接下来添加模块 modprobe mt7601Usta 时出现了错误:“找不到模块 mt7601Usta"。发现模块被安装到了2.6.32-23-generic下面。因为此目录与uname -r获得的结果不同,可能不会被识别 。再一次尝试手动将模块拷贝到2.6.32-21-generic下相应的目录,再运行modprobe,又报了另外一个错误:无效的模块格式。这是由内核和模块的版本不同致使的。
无奈之际,甚至想到了从新编译安装一个内核。后来想到,从网上下载安装一份 linux-headers-2.6.32-21 和 linux-headers-2.6.32-21-generic,如何呢?幸运的是apt-get install 还能用,直接安装这两个模块:ui
sudo apt-get install linux-headers-2.6.32-21get
sudo apt-get install linux-headers-2.6.32-21-generic源码
完成后再编译驱动源码,提示成功。接下来make install 也成功。再次调用modprobe ,此次终于成功了。虚拟机
回过来细想,为何个人 ubuntu 没有 linux-headers-2.6.32-21-generic 而 uname -r 获得的又是 linux-headers-2.6.32-21 呢?可能在其中某个时间经过更新,将包更新到了 2.6.32-23,旧的版本被删除了。编译
2. vmware 没法识别360wifi硬件
立刻又发现,wmware根本没法识别任何usb设备。因为电脑被强制安装了一些没法卸载的软件,一些执行程序被阻止运行了。这个现象就是由于vmware的一个服务没法启动:VMUSBArbService,提示访问被拒绝。module
解决办法就是更名后从新注册服务,此处再也不细说。百度