mt7610linuxusb无线网卡卡linux源码

修改trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/mt7620/rt2880/os/linux/rt_linux.c :1201行
  将:  
    pOSFSInfo-&fsuid = current_fsuid();
    pOSFSInfo-&fsgid = current_fsgid();
  修改为:
    pOSFSInfo-&fsuid = *(int *)&current_fsuid();
    pOSFSInfo-&fsgid = *(int *)&current_fsgid();
7610E驱动要修改的地方有2处
1.修改trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/mt7610e..../os/linux/rt_linux.c :899行
  将:  
pOSFSInfo-&fsuid = current_fsuid();
pOSFSInfo-&fsgid = current_fsgid();
  修改为:
pOSFSInfo-&fsuid = *(int *)&current_fsuid();
pOSFSInfo-&fsgid = *(int *)&current_fsgid();
2.&修改trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/mt7610e....../os/linux/pci_main_dev.c
  在#include区域后面增加如下代码:
#if LINUX_VERSION_CODE &= KERNEL_VERSION(3,8,0)
#define __devexit
#define __devinit
#define __devinitdata
& & 修改如下代码:
#if LINUX_VERSION_CODE &= 0x20412
__devexit_p(rt2860_remove_one),
__devexit(rt2860_remove_one),
&  修改为:
#if LINUX_VERSION_CODE &= KERNEL_VERSION(3,8,0)
rt2860_remove_one,
#if LINUX_VERSION_CODE &= 0x20412
__devexit_p(rt2860_remove_one),
__devexit(rt2860_remove_one),
重新编译make V=99
整个世界都清净了。。。
阅读(...) 评论()博客访问: 355505
博文数量: 190
博客积分: 2433
博客等级: 大尉
技术积分: 2035
注册时间:
分类: LINUX 21:48:08
linksys AE6000是使用Media Tek MT7610U的芯片,先去Media Tek下载驱动:
http://www.mediatek.com/_en/07_downloads/01_windows.php?sn=501
得到文件:
mt7610u_wifi_sta_v3002_dpo_.tar.bz2
使用lsusb查看AE600的ID:
ID 13b1:003e Linksys
解压驱动在common/rtusb_dev_id.c MT7610U下面添加:
{USB_DEVICE(0x13b1,0x003e)}, /* AE6000 */
回到驱动文件执行make install
最后重启,使用ifconfig应该可以看见多了一个网卡ra0,这样驱动就装好了,AE6000网卡的灯也亮了!
========================
ra0: flags=4163 &mtu 1500
& & & & inet6 fe80::4af8:b3ff:fe7b:de9e &prefixlen 64 &scopeid 0x20
& & & & ether 48:f8:b3:7b:de:9e &txqueuelen 1000 &(Ethernet)
& & & & RX packets 8519 &bytes .9 MiB)
& & & & RX errors 0 &dropped 0 &overruns 0 &frame 0
& & & & TX packets 3835 &bytes 4.4 KiB)
& & & & TX errors 0 &dropped 0 overruns 0 &carrier 0 &collisions 0
=========================
安装官网的驱动,重启会出现,kernel panic,网上有patch:
从下面链接下载for 64bit的驱动:
git clone https://sanrath@bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit.git
cd mediatek_mt7610u_sta_driver_linux-64bit
make clean
sudo make instal
插入ae6000,链接测试,成功!
阅读(5971) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
请登录后评论。移植MT7620A+MT7610E驱动到Openwrt trunk(Linux Kernel 3.14.18)
时间: 13:36:15
&&&& 阅读:1306
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&MT7620
修改trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/mt7620/rt2880/os/linux/rt_linux.c :1201行
  将:  
    pOSFSInfo-&fsuid = current_fsuid();
    pOSFSInfo-&fsgid = current_fsgid();
  修改为:
    pOSFSInfo-&fsuid = *(int *)&current_fsuid();
    pOSFSInfo-&fsgid = *(int *)&current_fsgid();
7610E驱动要修改的地方有2处
1.修改trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/mt7610e..../os/linux/rt_linux.c :899行
  将:  
    pOSFSInfo-&fsuid = current_fsuid();    pOSFSInfo-&fsgid = current_fsgid();
  修改为:
    pOSFSInfo-&fsuid = *(int *)&current_fsuid();
    pOSFSInfo-&fsgid = *(int *)&current_fsgid();
2.&修改trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/mt7610e....../os/linux/pci_main_dev.c
  将文件中所有__dev去掉即可
重新编译make V=99
整个世界都清净了。。。标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/jzyuchen/p/4064759.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!移植MT7620A+MT7610E驱动到Openwrt trunk(Linux Kernel 3.14.18)(续:MT7620A)
时间: 14:34:46
&&&& 阅读:3839
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&按照上一篇的内容修改文件重新编译后不会报错,但是烧到flash里后运行的时候有问题,如下:
16.840000] mt7620: module license ‘unspecified‘ taints kernel.
16.840000] Disabling lock debugging due to kernel taint
16.870000] mt7620: Unknown symbol ra_mtd_write_nm (err 0)
16.880000] mt7620: Unknown symbol ra_mtd_read_nm (err 0)
16.880000] mt7620: Unknown symbol procRegDir (err 0)
17.290000] mt7610: Unknown symbol ra_mtd_write_nm (err 0)
17.290000] mt7610: Unknown symbol ra_mtd_read_nm (err 0)
17.290000] mt7610: Unknown symbol procRegDir (err 0)
17.290000] mt7620: Unknown symbol ra_mtd_write_nm (err 0)
17.290000] mt7620: Unknown symbol ra_mtd_read_nm (err 0)
17.290000] mt7620: Unknown symbol procRegDir (err 0)
17.290000] ip_tables: (C) 2000-2006 Netfilter Core Team
17.290000] mt7610: Unknown symbol ra_mtd_write_nm (err 0)
17.620000] mt7610: Unknown symbol ra_mtd_read_nm (err 0)
17.620000] mt7610: Unknown symbol procRegDir (err 0)
17.670000] mt7620: Unknown symbol ra_mtd_write_nm (err 0)
17.690000] mt7620: Unknown symbol ra_mtd_read_nm (err 0)
17.690000] mt7620: Unknown symbol procRegDir (err 0)
17.700000] nf_conntrack version 0.5.0 (1979 buckets, 7916 max)
17.740000] xt_time: kernel timezone is -0000
17.780000] mt7610: Unknown symbol ra_mtd_write_nm (err 0)
17.800000] mt7610: Unknown symbol ra_mtd_read_nm (err 0)
17.800000] mt7610: Unknown symbol procRegDir (err 0)
17.860000] mt7620: Unknown symbol ra_mtd_write_nm (err 0)
17.880000] mt7620: Unknown symbol ra_mtd_read_nm (err 0)
17.880000] mt7620: Unknown symbol procRegDir (err 0)
17.900000] PPP generic driver version 2.4.2
17.900000] NET: Registered protocol family 24
17.940000] mt7610: Unknown symbol ra_mtd_write_nm (err 0)
17.960000] mt7610: Unknown symbol ra_mtd_read_nm (err 0)
17.960000] mt7610: Unknown symbol procRegDir (err 0)
18.020000] mt7620: Unknown symbol ra_mtd_write_nm (err 0)
18.020000] mt7620: Unknown symbol ra_mtd_read_nm (err 0)
18.040000] mt7620: Unknown symbol procRegDir (err 0)
18.080000] mt7610: Unknown symbol ra_mtd_write_nm (err 0)
18.090000] mt7610: Unknown symbol ra_mtd_read_nm (err 0)
18.100000] mt7610: Unknown symbol procRegDir (err 0)
18.160000] mt7620: Unknown symbol ra_mtd_write_nm (err 0)
18.160000] mt7620: Unknown symbol ra_mtd_read_nm (err 0)
18.180000] mt7620: Unknown symbol procRegDir (err 0)
28.440000] device eth0.1 entered promiscuous mode
解决方法:
1. 添加os/linux/rt_flash.c 内容为:
#include &linux/module.h&
#include &linux/types.h&
#include &linux/init.h&
#include &linux/kernel.h&
#include &linux/version.h&
#include &linux/err.h&
#include &linux/slab.h&
#include &linux/delay.h&
#include &linux/sched.h&
#include &linux/backing-dev.h&
#include &linux/compat.h&
#include &linux/mount.h&
#include &linux/mtd/mtd.h&
#include &linux/mtd/map.h&
#include &linux/mtd/concat.h&
#include &linux/mtd/partitions.h&
struct proc_dir_entry *procRegD
* Flash API: ra_mtd_read, ra_mtd_write
* Arguments:
- num: specific the mtd number
- to/from: the offset to read from or written to
- len: length
- buf: data to be read/written
* Returns:
- return -errno if failed
- return the number of bytes read/written if successed
int ra_mtd_write_nm(char *name, loff_t to, size_t len, const u_char *buf)
int ret = -1;
size_t rdlen,
struct mtd_info *
struct erase_
u_char *bak = NULL;
mtd = get_mtd_device_nm(name);
if (IS_ERR(mtd)) {
ret = (int)
if (len & mtd-&erasesize) {
put_mtd_device(mtd);
ret = -E2BIG;
bak = kzalloc(mtd-&erasesize, GFP_KERNEL);
if (bak == NULL) {
put_mtd_device(mtd);
ret = -ENOMEM;
#if LINUX_VERSION_CODE &= KERNEL_VERSION(3,3,0)
ret = mtd_read(mtd, 0, mtd-&erasesize, &rdlen, bak);
ret = mtd-&read(mtd, 0, mtd-&erasesize, &rdlen, bak);
if (ret) {
goto free_
if (rdlen != mtd-&erasesize)
printk("warning: ra_mtd_write_nm: rdlen is not equal to erasesize\n");
memcpy(bak + to, buf, len);
ei.callback = NULL;
ei.addr = 0;
ei.len = mtd-&
ei.priv = 0;
#if LINUX_VERSION_CODE &= KERNEL_VERSION(3,3,0)
ret = mtd_erase(mtd, &ei);
ret = mtd-&erase(mtd, &ei);
if (ret != 0)
goto free_
#if LINUX_VERSION_CODE &= KERNEL_VERSION(3,3,0)
ret = mtd_write(mtd, 0, mtd-&erasesize, &wrlen, bak);
ret = mtd-&write(mtd, 0, mtd-&erasesize, &wrlen, bak);
udelay(10); /* add delay after write */
put_mtd_device(mtd);
kfree(bak);
int ra_mtd_read_nm(char *name, loff_t from, size_t len, u_char *buf)
size_t rdlen = 0;
struct mtd_info *
mtd = get_mtd_device_nm(name);
if (IS_ERR(mtd))
return (int)
#if LINUX_VERSION_CODE &= KERNEL_VERSION(3,3,0)
ret = mtd_read(mtd, from, len, &rdlen, buf);
ret = mtd-&read(mtd, from, len, &rdlen, buf);
if (rdlen != len)
printk("warning: ra_mtd_read_nm: rdlen is not equal to len\n");
put_mtd_device(mtd);
EXPORT_SYMBOL(ra_mtd_write_nm);
EXPORT_SYMBOL(ra_mtd_read_nm);
EXPORT_SYMBOL(procRegDir);
MODULE_AUTHOR("Steven Liu &steven_.tw&");
MODULE_DESCRIPTION("Ralink APSoC Flash Map");
MODULE_LICENSE("GPL");
2. 修改os/linux/rt_proc.c
struct proc_dir_entry *procRegDir
struct proc_dir_entry *procRegDir2860v2
并将该文件中所有调用procRegDir 的地方改为: procRegDir2860v2
3. 在Makefile中添加
rt2860v2_ap-objs += ../rt2860v2/os/linux/rt_flash.o
4. 修改 include/chip/rt2880.h将:
#include &asm/rt2880/rt_mmap.h&
#include "rt_mmap.h" //fix
5. 修改 include/iface/rtmp_rbs.h
#define RTMP_MAC_IRQ_NUM
#define RTMP_MAC_IRQ_NUM
6. 修改 include/video.h
VOID VideoTurbineDynamicTune(IN PRTMP_ADAPTER pAd);
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/jzyuchen/p/4094752.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!Cisco Linksys AE6000 / AC580 (Mediatek mt7610u, mt7630u, mt7650u) – Linux x64 Driver patch – HPRath
Innovations in High Performance Computing
Hey! Just had to leave a message to let you know that this worked WONDERFULLY! Thank you so much for creating this driver, man!
sudo apt-get install build-essential
in the extracted driver sources, run the following
sudo make clean
make | tee compile.log
there should be no errors, check errors by the following command
grep -li “error” compile.log | wc -l
it should return 0 After that run the comamnd below
sudo make install
Please remember to run all the steps above for each linux kernel version upgrade. Ubuntu periodically upgrades kernel by installing new versions of kernel
news/blogs
Proudly powered by
| Theme: Yoko by

我要回帖

更多关于 linuxusb无线网卡 的文章

 

随机推荐