raspberry Pi verson:2B,jessie
kernel verson
网卡是iptime A1000u
1.开始前先update一下.
sudo apt-get update
sudo apt-get upgrade
顺便安利个kernel更新工具 rpi-update
sudo apt-get install rpi-update
sudo rpi-update #就能更新到最新的kernel
#sudo rpi -update (git hash) #找到每个版本的hash值,就能直接升级或降级到对应的版本
https://github.com/Hexxeh/rpi-firmware/commit/6ade0bac40feeaaaf8ef20eb6b90843e99fbf9a7网址中commit后对应的就为hash值。每个版本的内核都会有不同的hash,找到对应的hash更新就行。
sudo rpi -update 6ade0bac40feeaaaf8ef20eb6b90843e99fbf9a7
2.要编译驱动的话,得有kernel source,接下来下载source
cd /usr/src
sudo wget https://github.com/raspberrypi/linux/archive/rpi-3.10.y.tar.gz #选择对应版本
sudo tar xvfz rpi-3.10.y.tar.gz #选择对应版本
sudo mv linux-rpi-3.10.y linux #选择对应版本
sudo ln -s /usr/src/linux/linux-rpi-3.10.y /lib/modules/`uname -r`/build #在现在所用的内核文件夹中建立和source的链接
cd /lib/modules/`uname -r`/build
sudo su #接下来无视 sudo
sudo make mrproper
sudo gzip -dc /proc/config.gz > .config #出错的话先执行sudo modprobe configs
sudo make modules_prepare #出错的话先执行sudo apt-get install bc
sudo wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
#这有个疑点,看其他人的git issue得知raspberryPi B 对应Module.symvers,2B 对应Module7.symvers(下载后再改名,去掉7)。
#我的2B,在最后编译驱动时会出错。
3.下载驱动前,在确认一下是不是mt7610
lsusb #可以查看 uid 应该要看到7610 mediatek。。。
接下来下载驱动,link
确认下载的源码中是否已添加uid,没有的话就添加
sudo nano common/rtusb_dev_id.c
USB_DEVICE_ID rtusb_dev_id[] = {
#ifdef MT76x0
{USB_DEVICE(0x148F,0x7610)}, /* MT7610U */
{USB_DEVICE(0x13B1,0x003E)}, /* MT7610U Cisco Linksys AE6000 AC580 */
{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7630, 0xff, 0x2, 0xff)}, /* MT7630U */
{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7650, 0xff, 0x2, 0xff)}, /* MT7650U */
#endif
4.正式开始编译
sudo git clone https://sanrath@bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit.git
sudo cd mediatek_mt7610u_sta_driver_linux-64bit
sudo git pull #确认是否最新
#开始build
cd mediatek_mt7610u_sta_driver_linux-64bit
make clean
make #开始用的Module.symvers没有出错,后来试的Module7.symvers最后出错
sudo make install
到此没有出错的话就意味着编译已经ok了。
接下来照理来说重启,ifconfig就能看到ra0。
但是,我就试编译成功,mod加不进去。具体如下:
估计是kernel的问题,但是经过我尝试其他版本的kernel,还是同一个error。
这个没还解决好。
~$ uname -r #查看当前版本
~$ modinfo mt7610u_sta #详情信息里会有一个内核版本。
但是,把当前内核切换到 modinfo中显示的版本,再编译,还是不行。
这个暂时到这,等以后空了继续。。。