linux-2.6.22下USB驱动移植
时间:2009-03-24 来源:For Free
一、代码修改
修改在arch/arm/mach-s3c2410目录下的mach-smdk2410.c,添加如下内容
/**********************add by nick****************************** |
下面这个连接有大虾们对USB驱动移植的讨论 http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=556915&page=0&view=collapsed&sb=5&o=0&fpart= 要修改的代码已经修改完了,感觉和LCD驱动程序的移植差不多。
二、配置内核
1、让内核支持热插拔
General setup --->
[*] Support for hot-pluggable devices
2、USB驱动设置,可能有些不选也行,不过没时间去试,至于为什么要选这些选项的话可以看一下这个贴(Linux下的硬件驱动——USB设备):
http://www-128.ibm.com/developerworks/cn/linux/l-usb/index1.html
Device Drivers --->
Generic Driver Options --->
<*> Hotplug firmware loading support
Block devices --->
<*> Low Performance USB Block driver
SCSI device support --->
<*> SCSI generic support
[*] Probe all LUNs on each SCSI device
USB support --->
<*> Support for Host-side USB
[*] USB device filesystem
<*> OHCI HCD support
<*> USB Mass Storage support
[*] USB Monitor
3、加入了MSDOS fs和VFAT fs的支持。
File systems --->
DOS/FAT/NT Filesystems --->
<*> VFAT (Windows-95) fs support
(936) Default codepage for FAT
(cp936) Default iocharset for FAT
< > NTFS file system support
4. 加入对中文的支持,就可以显示出中文了
Native Language Support --->
<*> Simplified Chinese charset (CP936, GB2312)
<*> NLS UTF8
配置完成后开始编译内核,下载最新的内核到开发板,启动开发板,
插入u盘后,内核可以识别到u盘,以下是我的内核插入u盘后的提示信息:
[root@ /]#usb 1-1: USB disconnect, address 2
usb 1-1: new full speed USB device using s3c2410-ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice
uba: uba1 表示usb设备已经挂载到/dev/uba1目录下
在开发板上执行挂载命令
[root@ /]mount -t vfat -o iocharset=cp936 /dev/uba1 /mnt/usb
[root@ /mnt/nfs]#ls -l
drwxr-xr-x 3 root root 4096 Jan 10 2009 1.files
-rwxr-xr-x 1 root root 38762 Jan 10 2009 1.html
drwxr-xr-x 2 root root 4096 Jan 9 2009 NiosII范例
-rwxr-xr-x 1 root root 657408 Mar 11 2009 Screen.ddb
-rwxr-xr-x 1 root root 200136 May 21 2008 Timer.pdf
-rwxr-xr-x 1 root root 4629 Jan 10 2009 Timer.txt
-rwxr-xr-x 1 root root 24946 Jan 9 2009 bootex.log
drwxr-xr-x 9 root root 4096 Jan 10 2003 clock
drwxr-xr-x 2 root root 8192 Jan 9 2009 found.000
drwxr-xr-x 9 root root 4096 Dec 29 2002 quartus60
-rwxr-xr-x 1 root root 3675011 Apr 3 2008 按键中断.rar
drwxr-xr-x 3 root root 4096 Dec 29 2008 电子时钟
drwxr-xr-x 2 root root 4096 Dec 29 2008 王力宏.-.[心·跳].专辑
drwxr-xr-x 4 root root 4096 Jan 10 2003 新建文件夹 现在可以在/mnt/usb目录下看到U盘里面的文件了,哈哈~~~~
本次移植同样能驱动USB鼠标,插入USB鼠标后显示如下:
[root@ /]#usb 1-1: new low speed USB device using s3c2410-ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice
input: A4Tech USB Optical Mouse as /class/input/input1
input: USB HID v1.10 Mouse [A4Tech USB Optical Mouse] on usb-s3c24xx-1
执行[root@ /]#cat /dev/mouse0
移动鼠标会出现乱码,证明USB鼠标成功驱动。在移植了MiniGUI后,可以控制鼠标的移动。
忙活了几个小时,总算有收获,我对usb设备并不很了解,主要还是参考网上的帖子http://www.cnitblog.com/luofuchong/archive/2007/01/24/22265.html
整个移植的过程出现过很多问题,在网络的帮助下都得到解决,为了总结,现在把整个过程记录下来··