linux内核的系统上运行usb-skeleton.c模块。
手上有一个ch341芯片的usb转串口板,可以试着用它了解一下usb设备是咋跑的。
1.先将手上的tiny210上的android4.0.3上的linux内核中的usb转串口的驱动去掉
具体在linux-3.0.8目录下:
mv mini210-tvp5150_android_defconfig .config
make menuconfig-> Device Drivers ->USB support->USB Serial Converter support不要选中。退出,保存。
2.编译内核代码得到zImage文件,并烧录到tiny210开发板内
3.修改文件并编译生成usb-skeleton.ko模块。
将
usb-skeleton.c文件中的两个宏定义修改成ch341对应的值
#define USB_SKEL_VENDOR_ID 0x1A86
#define USB_SKEL_PRODUCT_ID 0x7523
4.插入usb-skeleton.ko模块
insmod usb-skeleton.ko
命令执行后发现,在/sys/class/usb/目录下有skel0文件生成,但/dev/目录下无skel0文件。
5.网络搜索查找原因。初步认为:android系统上没有mdev,不能自动生设备文件,ps命令也找不到mdev进程。对android文件系统不了解,暂不考虑用mknod解决。
6.将tiny210的android4.0.3系统换成friendlyARM提供的普通的linux系统,同样的去掉linux内核中的usb转串口的驱动,烧录运行,装入usb-skeleton.ko模块……/dev/目录下有skel0文件生成。
ls -l /dev/skel0
crw-rw---- 1 root root 180, 192 Mar 11 12:43 /dev/skel0
usb-skeleton.c在机器上产生设备节点了。
阅读(2500) | 评论(0) | 转发(1) |