编译ralink的MT7601U驱动模块
这个折腾了好久,尽管网上有许多帖子博客讲的这个东西,但都不太详细,结果不是编译报错(File name too long),就是升级模块的时候报错(Exec format error),终于找到一个介绍如何编译的,照着做,编译成功了,起码Pi能识别小度Wifi了。
不废话了:
1、创建工作目录
mkdir rpi_src
2、下载rpi-linux头文件:
cd rpi_src
git clone --depth 1 git://github.com/raspberrypi/linux.git rpi-linux
3、下载firmware
git clone --depth 1 git://github.com/raspberrypi/firmware.git rpi-firmware
4、下载芯片的驱动程序
小度,360二代,小米都是MT7601U的芯片,下载地址:
http://www.mediatek.com/en/downloads/mt7610u-usb/
随便输入name和email提交就可以了。
我在Windows下载后通过U盘拷给Pi,一般插上U盘后Pi不会自动识别,需要手动挂载。
#ls /dev/sda* 显示U盘设备名,我的是sda4
#mkdir /mnt/usbdisk/ 创建挂载路径
#mount /dev/sda4 /mnt/usbdisk 挂载设备
然后可以在/mnt/usbdisk/看到文件了。
5、拷贝驱动文件到工作目录
#cp /mnt/usbdisk/DPO* /home/pi/rpi-src
a解压驱动
#tar jxvf DPO*
b 进入驱动目录
#cd DPO*
c修改common/rtusb_dev_id.c文件
在{USB_DEVICE(0x148f,0×7601)}, /* MT 6370 */下面加上
{USB_DEVICE(0×2955,0×0001)}, /* XiaoDu Wifi */
{USB_DEVICE(0×2955,0×1001)}, /* XiaoDu Wifi */
{USB_DEVICE(0x148f,0x760b)}, /* 360 Wifi */
设备号可以通过命令$lsusb获得
d修改Makefile
找到ifeq ($(PLATFORM),PC)处的 “LINUX_SRC”,把它改成指向 "rpi-linux" 的目录,这个很关键。
5、编译、安装
#cd ../rpi-linux
#make mrproper
#zcat /proc/config.gz > .config
#make modules_prepare
#cp ../rpi-firmware/extra/Module.symvers .
#cd ../DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
#make
#make install
#modprobe mt7601Usta
如果到这里还没有报错,那么congratulations。
TIPs
1、我在/usr/src/目录下建工程目录,并git clone git://github.com/raspberry---,结果下载的内容太多,把空间占满了。只好删掉,目录建在/home/pi/,添加参数--depth 1下载。
2、偷懒,在github上下载了zip文件,拷到Pi解压,加压中出现了一堆文件中的文本内容,再编译的时候报错"File name too long",可能下载的zip文件出错了。
3、下载固件后拷贝了Module.symvers文件到rpi-linux文件中,前几次没有做这一步骤,好像在modprobe 的时候报错找不到mt7601Usta,到os/linux/下modprobe报错"Exec format error",dmesg查看,好像是符号表或者符号什么的错误,应该是与这个symvers文件有关。
这次是重装Pi系统,并升级最新固件(命令:#rpi-update)后编译的,前几次失败的编译折腾的系统挺乱的。
参考资料:http://hi.baidu.com/mideali/item/f33dff4c2d1b9df3dc0f6c93