博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  通过百度“360wifi linux“ 已经有很多解决方案。主要过程是从网上下载mt7601驱动包,编译出一个内核模块后,再通过modprobe 添加模块。下面描述的是基于我本机的特点所做的额外工作。我的ubuntu是比较老的10.04,32位,运行vmware虚拟机上, 用 uname -r 得到的结果是 2.6.32-21-generic。

1. make 失败

错误是找不到目录 /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/build

下面还有一处也做同样的修改。

 

再编译,成功。且运行 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 还能用,直接安装这两个模块:

sudo apt-get install linux-headers-2.6.32-21

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,提示访问被拒绝。

解决办法就是改名后重新注册服务,此处不再细说。

posted on 2014-08-21 00:03  黑米  阅读(2246)  评论(0编辑  收藏  举报