开发板作为USB设备模拟网卡(linux usb 网卡)--gadget&&rndis|cdc
来源:互联网 发布:qq语音输入软件 编辑:程序博客网 时间:2024/05/16 04:11
转载:http://blog.csdn.net/sjmw888/article/details/5332310
首先配置内核 , 进入LINUX内核文件夹,输入命令
make menuconfig
对内核做如下配置
选择 Device Drivers -->
[*]USB support -->
<*>USB Gadget Support -->
<M>USB Gadget Drivers
....................................
<M>Ethernet Gadget (with CDC Ethernet support)
[*] RNDIS support
...................................
<M>CDC Composite Device (Ethernet and ACM)
编译内核
make zImage
此时带有gadget 以及RNDIS | CDC 的内核就生成了
虽然内核是生成了,但是居然WINDOWS检测不到设备,查阅开发板的手册之后才知道,USB 从设备还有一个USB_EN信号,高电平的时候USB SLAVE才会使用,所以下一步就得修改BOOTLOADER了
根据我的情况,控制USB_EN的IO口是GPC5
找到初始化IO口的函数.根据S3C2440芯片手册做如下修改(兰色为修改或添加的代码)
void Port_Init(void)
{
GPACON = 0x7fffff;
GPBCON = 0x044555;
GPBUP = 0x7ff; // The pull up function is disabled GPB[10:0]
GPCCON = 0xaaaaa6aa;
GPCDAT = 0x0020;
GPCUP = 0xff7f; // The pull up function is disabled GPC[15:0] ,enable gpc5 for usb_device
GPDCON = 0x00151544;
GPDDAT = 0x0430;
GPDUP = 0x877A;
GPECON = 0xaa2aaaaa;
GPEUP = 0xf7ff; // GPE11 is NC
GPFCON = 0x55aa;
GPFUP = 0xff; // The pull up function is disabled GPF[7:0]
GPGCON = 1<<8;
GPGDAT = 0;
GPHCON = 0x16faaa;
GPHUP = 0x7ff; // The pull up function is disabled GPH[10:0]
EXTINT0 = 0x22222222; // EINT[7:0]
EXTINT1 = 0x22222222; // EINT[15:8]
EXTINT2 = 0x22222222; // EINT[23:16]
}
说明:
GPCCON = 0xaaaaa6aa; //根据S3C2440的芯片手册gpc5[11:10]为控制该IO口的寄存器,所以第11,10位为分别为1,0
GPCDAT = 0x0020; // 数据寄存器,1为高电平,所以第5位为1
GPCUP = 0xff7f; //上拉电阻寄存器 第5位设为0
再次编译bootloader,这次WINDOWS终于识别出设备了,至于驱动自己去网上找吧~我用的是CSDN上的驱动.
最后还有一个问题,就是开发板有网卡,还模拟USB为网卡的情况,一定要保证usb虚拟的网卡和WINDOWS上USB网卡在同一个IP段,并且不能和开发板原先的网卡的IP段一样,要不累死你都PING不到~
着是我网卡设置的情况
windows
usb网卡
IP:192.168.2.50 掩码:255.255.255.0 网关:(这个随意,看个人喜好,如果设置网关最好开发板也设置)192.168.2.1
正常网卡
IP:192.168.1.235 掩码:255.255.255.0 网关:192.168.1.1
开发板
usb网卡
IP:192.168.2.70 掩码:255.255.255.0 网关:192.168.2.1
正常网卡
IP:192.168.1.70 掩码:255.255.255.0 网关:192.168.1.1
查看开发板网关
route -n
设置开发板网关
route add default gw 192.168.2.1
这样之后应该就能和WINDOWS PING通了~
- 开发板作为USB设备模拟网卡(linux usb 网卡)--gadget&&rndis|cdc
- 开发板作为USB设备模拟网卡(linux usb 网卡)--gadget&&rndis|cdc
- 无线USB网卡Rndis设备
- 把arm开发板做成USB网卡(RNDIS /Ethernet Gadget)
- 把arm开发板做成USB网卡(RNDIS /Ethernet Gadget)
- AM335X的USB otg网卡(RNDIS /Ethernet Gadget)调试
- 开发板模拟U盘-USB Gadget设备驱动移植
- RNDIS的usb网卡功能调试
- RNDIS的usb网卡功能调试
- linux 开发板(Linux USB Gadget) 模拟u盘
- linux 开发板(Linux USB Gadget) 模拟u盘
- Linux设备驱动之USB网卡驱动程序
- usb gadget 网卡和u盘安装
- USB RNDIS/CDC White Paper
- Linux USB Gadget--设备枚举
- Linux USB Gadget--设备枚举
- Linux USB Gadget--设备枚举
- Linux USB Gadget--设备枚举
- 绝妙的 channel
- core power limit normal问题解决方法
- html5 进度条显示实例
- 跳转 App Store 评分 适配IOS7
- vc++中_RecordsetPtr使用
- 开发板作为USB设备模拟网卡(linux usb 网卡)--gadget&&rndis|cdc
- Java用SAX解析XML文件示例
- Spinner适配器为ArrayAdapter或者SimpleAdapter
- sql字符串已逗号分隔
- Postfix+SSL配置
- CRF 简介入门
- 设计模式之命令模式
- JNI 制作头文件时使用javah命令出错
- 建造者 -- 复杂对象的组装与创建