课程4-内核驱动进阶班.doc

课程4-内核驱动进阶班

嵌入式实验1.1:x86平台内核配置、编译和安装 6 实验1.2:内核模块 15 实验1.3:内核模块参数 22 实验1.4:内核符号导出 27 实验2.1:交叉工具链的安装与使用 38 实验2.2:smdk2410-uboot编译 45 实验2.3:mini2440开发板内核下载 50 实验2.4:mini2440开发板u-boot移植 65 实验2.5:u-boot-网卡驱动移植 97 实验2.6:uboot-nor flash驱动移植 106 实验3.1:mini2440开发板内核制作 128 实验3.3:nfs起根文件系统 149 实验3.4:ramdisk起根文件系统 160 实验3.5:initramfs起根文件系统 171 实验3.6:自启动linux内核 180 实验4.1:内存的分配与使用 205 实验4.2:内核链表 213 实验4.3:内核定时器 218 实验5.1:系统调用 224 实验5.2:proc文件系统 232 实验5.3:oops异常分析 240 实验6.1:简单字符设备驱动程序设计 246 实验6.2:并发控制 254 实验7.1:ioctl设备方法 261 实验7.2:阻塞型字符设备驱动 268 实验7.3:poll设备方法 276 实验7.4:自动创建设备文件 284 实验1.1:x86平台内核配置、编译和安装 实验目的: 掌握X86平台下,内核的配置、编译与安装。 实验要求: 1.配置、编译Linux2.6.内核 2.在vmware安装编译好的内核 实验器材: 软件: 1.安装了RHEL5的vmware虚拟机 2.Linux 2.6.内核(见实验代码光盘41)硬件:PC机一台 实验步骤: 创建实验目录#mkdir /home/guoqian/4-1-1 #cd /home/guoqian/ 通过SMB服务将提供的Linux 2.6.29内核拷贝到目录下 解压内核到当前目录 #cd /home/guoqian/4-1-1 #tar jxvf linux.2.6.29.tar.bz2 解压完毕后,Linux内核源代码结构如图所示: 清理内核中间文件,配置文件 #cd linux-2.6.29 #make distclean使用正在运行的RHEL5的内核配置作为参考 #cp /boot/config-2.6.18-53.el5 .config配置内核 #make menuconfig 注:这里使用默认的配置即可保存,退出 编译内核 #make bzImage 注:内核编译需要几分钟时间,完成后,生成的内核bzImage位于arch/x86/boot/目录下 编译内核模块 #make modules安装内核模块 #make modules_install 注:完成安装后,编译好的内核模块会从内核源代码目录至/lib/modules下,本实验会拷贝到/lib/modules/2.6.29目录下。制作init ramdisk initramdik的作用: 提供一种让可以简单使用ramdisk的能力这些能力包括:格式化一个 ramdisk加载文件系统内容到ramdisk将ramdisk作为根文件系统# cd /home/guoqian/4-1-1 #mkinitrd initrd-2.6.29 2.6.29 注:完成操作后,在当前目录下会生成initrd-2.6.29安装内核由于Linux系统启动时,会从/boot目录下来寻找内核文件与init ramdisk,所以需将内核和init ramdisk 拷贝至/boot目录#cp /home/guoqian/4-1-1/ linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29 注: vmlinu-2.6.29可以任意取名 #cp /home/guoqian/4-1-1/initrd-2.6.29 /boot/vmlinuz-2.6.29为内核,initrd-2.6.29为init ramdisk。 11.2 为了让grub在启动时能提供一项我们自己制作的linux内核的选择项,需修改grub的配置文件 在原有内容的基础上,添加/***************************************************************/ title my linux(2.6.29) /*选择项名字*/ root (hd0,0) kernel /vmlinuz-2.6.29 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.29 /**********************************************

文档评论(0)

1亿VIP精品文档

相关文档