Linux3.4内核USB驱动的移植
时间:2016-12-13作者:华清远见
【实验目的】 USB接口是现在计算机系统中通用的一种接口,通过移植USB驱动,了解Linux3.4内核与Linux2.6内核的不同,并且掌握USB驱动的实现原理。 说明:在本系统移植课程实验中命令行提示符"$"表示是在主机上执行,"#"表示在目标板执行。 【实验环境】 ● 主机:Ubuntu 10.10 (64bit); 【实验步骤】 1. 添加USB驱动 添加针对我们板子的USB驱动及相关头文件 ● 拷贝ohci-s3c2410.c 到drivers/usb/host/下 $ cp ohci-s3c2410.c drivers/usb/host/ ● 拷贝regs-clock.h到 arch/arm/mach-s5pc100/include/mach/下 $ cpregs-clock.h arch/arm/mach-s5pc100/include/mach/ 2. 平台代码修改 ● 修改drivers/usb/Kconfig 在(11行) default y if ARCH_S3C2410 下面添加: default y if ARCH_S5PC100 ● 修改drivers/usb/host/ohci-hcd.c 在(1002行) #if defined(CONFIG_ARCH_S3C2410) || defined(CONFIG_ARCH_S3C64XX) 修改为: #if defined(CONFIG_ARCH_S3C2410) || defined(CONFIG_ARCH_S3C64XX) || defined(CONFIG_ARCH_S5PC100) ● 修改arch/arm/mach-s5pc100/include/mach/map.h 在map.h文件中添加如下内容: #define S3C_PA_USBHOST (0xED400000) ● 修改arch/arm/plat-samsung/devs.c 把(1360行) #ifdef CONFIG_S3C_DEV_USB_HOST 改为: #ifdef CONFIG_S3C_DEV_USB_HOST ● 修改arch/arm/mach-s5pc100/Kconfig 在(14行) Config CPU_S5PC100 下面添加: select S3C_DEV_USB_HOST ● 修改arch/arm/mach-s5pc100/mach-smdkc100.c 添加头文件: 1 #if defined (CONFIG_USB_SUPPORT) 添加平台设备: 01 #if defined(CONFIG_USB_SUPPORT) ● 添加平台设备列表 在smdkc100_device[]结构体数组中添加如下内容: 1 #if defined(CONFIG_USB_SUPPORT) 配置内核 $ make menuconfig ● 添加USB控制器支持: Device Drivers ---> ● 添加U盘支持: Device Drivers ---> Device Drivers ---> 添加文件系统及语言配置: File systems ---> 编译内核 编译内核并拷贝到tftpboot下。 $ make zImage 测试 启动目标板并在目标板上完成如下操作: # mount -t vfat /dev/block/sda1 /mnt/sdcard 可以查看到U盘内容,即完成实验。 相关资讯
发表评论
|