ARM+LINUX移植攻略(二十一)Linux驱动移植之USB

努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处

http://blog.csdn.net/woshixingaaa/archive/2011/06/24/6566328.aspx

1.Linux内核已经对USB有了很完善的支持,这里只要将选项配置上就好。

SCSI device support ---> < > RAID Transport Class <*> SCSI device support < > SCSI target support [*] legacy /proc/scsi/ support *** SCSI support type (disk, tape, CD-ROM) *** <*> SCSI disk support < > SCSI tape support < > SCSI OnStream SC-x0 tape support < > SCSI CDROM support <*> SCSI generic support < > SCSI media changer support [*] HID Devices ---> --- HID Devices -*- Generic HID support [ ] HID debugging support [ ] /dev/hidraw raw HID device support *** USB Input Devices *** <*> USB Human Interface Device (full HID) support [ ] PID device support [*] /dev/hiddev raw HID device support [*] USB support ---> {*} Support for Host-side USB [ ] USB verbose debug messages [ ] USB announce new devices *** Miscellaneous USB options *** [*] USB device filesystem [*] USB device class-devices (DEPRECATED) <*> OHCI HCD support <*> USB Mass Storage support

2.我的设备文件系统是由mdev管理的,所以不需要自己动手创建设备节点,如果你的设备文件系统还是devfs,那就请自己创建设备节点吧。使用命令

cat proc/partions

如下图:

比如这个里,然后:

mknod /dev/sda4 b 8 4

3.由于之前裁剪内核的时候把对文件系统的支持都关闭了,只剩下对yaffs2的支持。所以这里的U盘我挂载不上了。出现如下信息:

[[email protected] /]# mount /dev/sda4 /mnt yaffs: dev is 8388612 name is "sda4" yaffs: passed flags "" yaffs: Attempting MTD mount on 8.4, "sda4" yaffs: dev is 8388612 name is "sda4" yaffs: passed flags "" yaffs: Attempting MTD mount on 8.4, "sda4" mount: mounting /dev/sda4 on /mnt failed: Invalid argument

此时我要添加了对fat的支持:

File systems ---> DOS/FAT/NT Filesystems ---> <*>VFAT(Windows-95) fs support

4.但是挂载的时候还是有问题:

FAT: codepage cp437 not found

解决办法:

File systems ---> Native language support ---> <*> Codepage 437 (United States, Canada)

又一个问题:

FAT: IO charset iso8859-1 not found

解决办法:

File systems ---> Native language support ---> <*>NLS ISO 8859-1 (Latin 1; Western European Languages)

如果你没有裁剪文件系统的话,就不会出现3和4的情况。直接:

mount /dev/sda4 /mnt

就可以了。