Linux USB gadget 网络体验
平台:Mini2440
系统:linux-2.6.32.2
主机:Windows
配置USB gadget功能中的usbnet时,主要工作是加载g_ether.ko模块,但是试了好几次插到电脑上,都是没反应,windows识别不到设备,查 阅资料后才知道是USB接口的上拉问题,mini2440通过GPC5来上拉USB接口,只有这样主机才能识别到设备并提示安装设备。整合了资料后解决了 问题,步骤:
打开mach-mini2440.c添加代码:
- static void s3c2410_udc_pullup(enum s3c2410_udc_cmd_e cmd)
- {
- switch (cmd) {
- case S3C2410_UDC_P_ENABLE :
- s3c2410_gpio_cfgpin(S3C2410_GPC(5), S3C2410_GPIO_OUTPUT);
- s3c2410_gpio_setpin(S3C2410_GPC(5), 1);
- break;
- case S3C2410_UDC_P_DISABLE :
- s3c2410_gpio_setpin(S3C2410_GPC(5), 0);
- break;
- case S3C2410_UDC_P_RESET :
- break;
- default:
- break;
- }
- }
- static struct s3c2410_udc_mach_info s3c2410_udc_cfg __initdata = {
- .udc_command = s3c2410_udc_pullup,
- };
在mini2440_machine_init函数中添加一句:
- static void __init mini2440_machine_init(void)
- {
- #if defined (LCD_WIDTH)
- s3c24xx_fb_set_platdata(&mini2440_fb_info);
- #endif
- s3c_i2c0_set_platdata(NULL);
- s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND);
- s3c_device_nand.dev.platform_data = &friendly_arm_nand_info;
- s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg;
- s3c24xx_udc_set_platdata(&s3c2410_udc_cfg); //添加
- platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
- s3c_pm_init();
在程序开头添加#include <plat/udc.h>头文件后保存关闭。
make menuconfig配置内核:Device drivers-usb support-usb gadget support
配置如图:
注意光标处配置,容易被忽略,选择S3C2410 USB Device Controller
配置完成保存退出,make zImage,用新内核启动linux。
配置命令:ifconfig usb0 172.20.21.88 up
用USB连接D型接口和Windows主机,提示安装设备:
驱动下载地址:http://download.csdn.net/detail/wu20093346/7914915
从列表或指定位置安装
安装完成后出现一个新的本地连接,修改IP,此时应该可以和mini2440板ping通:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。