动态加载驱动和Linux内核移植.pdf
《动态加载驱动和Linux内核移植.pdf》由会员分享,可在线阅读,更多相关《动态加载驱动和Linux内核移植.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目三:项目三:LinuxLinux 内核移植内核移植1. 1. 能力培养目标能力培养目标了解嵌入式 Linux 内核的构成掌握内核裁减定制的方法掌握内核编译的方法掌握内核烧写的方法2. 2. 项目任务要求项目任务要求(1 1)项目任务)项目任务Linux 内核的裁剪、编译和烧写。(2 2)项目来源及应用)项目来源及应用对于较复杂的嵌入式系统项目,当硬件平台制作好之后,就需要向其移植操作系统,如果移植的是嵌入式 Linux 且为 GUI 应用,那么移植过程一般包含:第一步,移植引导程序(Vivi、BLOB、uBoot 等);第二步,移植内核 kernel;(本次实验内容)第三步,移植根文件系统
2、;第四步,移植库文件,如 QT 库;第五步,运行项目程序。(3 3)功能需求)功能需求裁减一个可用的 Linux 内核选择正确的处理器类型使其支持网卡、小键盘、USB 鼠标、声卡等设备成功编译后烧写到目标机上内核能正确加载运行键盘驱动可用(4 4)项目开发环境需求)项目开发环境需求硬件软件宿主机目标机宿主机PC 机、USB 转串口线、网线ARM 目标机windows 系统:WinXPXin7其他:Linux系统:RedHat 9RHEL4其他:VMWare 虚拟机:VMWare Workstation9其他:串口调试工具:WinXP 自带的超级终端Linux 自带的 minicom第三方串口工
3、具:嵌入式 Linux目标机3. 3. 项目预习项目预习(1)了解项目目标、项目任务要求、项目设计和项目实施步骤。(2)下载本次实验所需要的软件和代码。将3_kbd_test 目录放到 linux 虚拟机的 up-techpxa270cl 目录下。(3)完成内核裁剪及编译好内核映像,即完成第5 大项中的步骤(4)-(5)。(4)回答以下问题如何能够在目标机上访问宿主机上的文件?说明使用 mount 命令进行文件挂载的方法。说明 mount 命令执行不成功可能的原因和解决方法。说明本实验所使用的 Linux 内核版本。说明 Linux 内核裁减定制的方法。4. 4. 项目设计项目设计4.1 选择
4、 Linux 内核裁减方法Linux 内核的裁减配置的三种命令:1、make config:命令行模式,一行一行的配置,不推荐使用。2、make menuconfig:大多人熟悉的 menuconfig 菜单。3、make xconfig:基于 QT 图形化配置,菜单结构清晰。所有内核裁减配置过程,都是通过 Config.in(2.4 内核)或 Kconfig(2.6 内核)经由不同脚本解释器产生.config 配置文件。make menuconfig 配置菜单make xconfig 配置菜单在配置时,通常有三种选择方式:Y:将该功能编译进内核;N:不将该功能编译进内核;M:以模块方式编译,
5、需要时可以动态插入到内核中。在 make menuconfig 界面中,用空格键来切换各种选择状态;在 make xconfig 界面中,可以用空格键,也可以使用鼠标来选择。注意:对于陌生选项,请不要修改,保留默认即可。5. 5. 项目实施项目实施实验室实验部分(1 1)将 3_kbd_test 目录放到 linux 虚拟机的 up-techpxa270cl 目录下。3_kbd_test 目录中的内容如下:其中:getkey 为交叉编译生成的可执行程序,用于测试键盘设备;mega8.ko 为键盘等控制芯片的驱动程序,i2c-pxa.ko 为 i2c 接口驱动;install_driver.sh
6、为动态加载 mega.ko 和 i2c-pxa.ko 的脚本;zImage 为裁剪、编译后的内核。(2 2)查看)查看 ARMARM 目标机自带内核对键盘的支持情况(通过超级终端)目标机自带内核对键盘的支持情况(通过超级终端)查看键盘设备节点/dev/Mega8Kbd是否已经存在?No such file or directory 表示不存在。rootIntel /#ls/dev/Mega8Kbdls: /dev/Mega8Kbd: No such file or directory查看键盘驱动是否以模块形式动态加载?以下结果表示没有动态加载。rootIntel /#lsmodModuleSi
7、zeUsed byNot taintedrootIntel /#查看当前系统设备中是否有 Mega8Kbd 设备?rootIntel /#cat/proc/devicesCharacter devices:1 mem2 pty3 ttyp4 /dev/vc/04 tty4 ttyS5 /dev/tty5 /dev/console5 /dev/ptmx7 vcs10 misc13 input14 sound21 sg29 fb81 video4linux89 i2c90 mtd108 ppp128 ptm136 pts161 ircomm180 usb254 pcmcia使用 mount 命令挂
8、载,运行键盘测试程序 getkey。查看 getkey 是否可以运行?Cant open keyboard!表 示 不 能 打 开 键 盘 设 备 。 为 防 止 大 文 件 传 输 失 败 , 在mount中 加 入 参 数 ointr,nolock,rsize=4096,wsize=4096rootIntel /#ifconfig eth0 192.168.0.10(些处为了后面烧写内核方便,虚拟机为服务器)rootIntel /#service nfs restartrootIntel /# mountt nfs o intr,nolock,rsize=4096,wsize=4096 1
9、92.168.0.10:/up-techpxa270cl /mnt/nfsrootIntel /#cd /mnt/nfs/3_kbd_testrootIntel 3_kbd_test#./getkeyKBD_Open - Cant open keyboard!Cant open keyboard!KBD KEY: Bad file descriptor(3 3)在自带内核的基础上,动态加载键盘驱动,并测试)在自带内核的基础上,动态加载键盘驱动,并测试使用install_driver.sh 脚本加载驱动程序:rootIntel 3_kbd_test#./install_driver.shi2c_
10、pxa: module license unspecified taints kernel.I2C: Slave address 1I2C: Enabling slave modeI2C: i2c-0: PXA I2C adapterI2C: Slave address 1I2C: Enabling slave modeno PS/2 device found on PS/2 Port 0!no PS/2 device found on PS/2 Port 1!rootIntel 3_kbd_test#注:如果install_driver.sh不能运行,分析原因,若是权限问题可执行命令chmo
11、d 777 将该目录下的文件执行权限放开,并再次执行 install 命令。也可以不执行 install 命令而是直接输入以下两条命令(install_driver.sh文件中的内容) 。insmodi2c-pxa.koinsmodmega8.ko如果提示已经存在,可以使用rmmod i2c-pxa.ko和rmmod mega8.ko卸载,然后重新加载。再次查看键盘设备节点是否已经存在?看到/dev/Mega8Kbd 表明已经存在。rootIntel 3_kbd_test#ls/dev/Mega8Kbd/dev/Mega8Kbd如果看不到设备结点,创建设备结点的命令是mkmod设备名 设备类型
12、 主设备号 从设备号如:mkmod /dev/Mega8kbd c 253 0mkmod /dev/Mega8kbd c 253 0再次查看键盘驱动是否以模块形式动态加载?结果表明动态加载了驱动。rootIntel 3_kbd_test#lsmodModuleSizeUsed byTainted: Pmega8172440i2c_pxa67241 mega8rootIntel kbd_test#再次查看当前系统设备情况,结果表明有 Mega8Kbd 键盘设备。rootIntel 3_ kbd_test#cat /proc/devicesCharacter devices:1 mem2 pty3
13、 ttyp4 /dev/vc/04 tty4 ttyS5 /dev/tty5 /dev/console5 /dev/ptmx7 vcs10 misc13 input14 sound21 sg29 fb81 video4linux89 i2c90 mtd108 ppp128 ptm136 pts161 ircomm180 usb252 Mega8ICcard253 Mega8Kbd254 pcmcia再次运行键盘测试程序:按 ARM 目标机上的小键盘,可以正确读取到按键值。rootIntel 3_kbd_test#./getkeywhich key you press is1which key
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 加载 驱动 Linux 内核 移植
限制150内