开发板作为USB设备模拟网卡(linux usb 网卡)--gadget&&rndis|cdc
来源:互联网 发布:传奇世界双开辅助软件 编辑:程序博客网 时间:2024/05/01 19:58
首先配置内核 , 进入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--设备枚举
- 中转站
- How to Determine the Blocking Session for Event: 'cursor: pin S wait on X' (文档 ID 786507.1)
- vim编辑
- 【索引】Chapter 1. Algorithm Design_General Problem Solving Techniques_Exercises: Beginner
- PyCharm3.0 中文乱码的解决办法
- 开发板作为USB设备模拟网卡(linux usb 网卡)--gadget&&rndis|cdc
- tab切换页面备份
- 前端技术-参考
- win7 64位 安装ulipad编辑器
- [LeetCode] Pascal's Triangle
- linux gadget 驱动应用
- 源码阅读-AsyncTask-任务调度
- linux等待队列wait_queue_head_t和wait_queue_t
- 流程管理(BPM)协同化分析