fl2440——移植USB驱动、内核添加USB支持、U盘挂载

关于USB的基础知识可以参考这篇博文:http://blog.csdn.net/u012507643/article/details/52932578
USB的协议还是比较复杂的,有空希望能了解一下,在这仅记录学习移植过程。

一、修改代码

vim arch/arm/mach-s3c2440/mach-smdk2440.c
添加头文件:
这里写图片描述
添加USB init函数:
这里写图片描述
smdk2440_map_io 中添加:
这里写图片描述

二、内核添加支持

make menuconfig 选择如下选项:

Device Drivers  ---> 
   [*] USB support  --->
       {*}   Support for Host-side USB 
       [*]     USB device filesystem (DEPRECATED) 
       [*]     USB device class-devices (DEPRECATED)
       <*>     OHCI HCD support 
       <*>   USB Mass Storage support
    [*] HID Devices  ---> 
        -*-  Generic HID support
        <*>  USB Human Interface Device (full HID) support
    SCSI device support  --->
         <*> SCSI device support
         [*] legacy /proc/scsi/ support
         <*> SCSI disk support 
    usb storage驱动利用scsi中间层将usb storage设备虚拟成scsi逻辑设备。这样可以方便的使用scsi驱动的设备IO接口,以及plugin/plugout等机制
    File systems  --->
       DOS/FAT/NT Filesystems  --->
        <*> MSDOS fs support
        <*> VFAT (Windows-95) fs support
        (437) Default codepage for FAT
        (iso8859-1) Default iocharset for FAT
        <*> NTFS file system support
        [*]   NTFS write support
Partition Types  --->
      [*]   PC BIOS (MSDOS partition tables) support
      [*]   Windows Logical Disk Manager (Dynamic Disk) support
    -*- Native language support  --->
    <*>   Codepage 437 (United States, Canada)
    <*>   Simplified Chinese charset (CP936, GB2312)
    <*>   ASCII (United States)
    <*>   NLS ISO 8859-1 (Latin 1; Western European Languages)
    <*>   NLS UTF-8

三、U盘使用mdev自动挂载

mdev是busybox自带的一个简化版的udev.
作用是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的。mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为”dev”的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点。

1.在busybox目录下:
[tangbin@localhost busybox-1.20.2]$ make menuconfig

 Linux System Utilities  --->   
    [*] mdev      
    [*] Support /etc/mdev.conf
    [*] Support command execution at device addition/removal

2.在busybox目录下:
vim .config

CONFIG_HOTPLUG=y
CONFIG_NET=y

[tangbin@localhost linux-3.0]$ ls /proc/sys/kernel/hotplug
/proc/sys/kernel/hotplug

3.在开发板上修改inittable
vi /etc/inittable
这里写图片描述
4.在开发板上修改mdev.conf
vi /etc/mdev.conf
它是有命令的格式的:
<device regex> <uid>:<gid> <octal permissions> [<@$*><cmd>]
@ 创建节点后执行的
$ 删除节点前执行的
* 创建后和删除前都运行的
这里写图片描述
如果你的根文件系统是ubifs的那么你最好改成ub[a-h],就是不能有i在里面,因为ubifs的根文件系统,已经挂了根分区,你如果用ub[a-z]它就会把ubifs的根文件系统挂载mnt/usb里面,会出现无法预知的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值