Chinaunix首页 | 论坛 | 博客
  • 博客访问: 62454
  • 博文数量: 19
  • 博客积分: 195
  • 博客等级: 入伍新兵
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-15 23:19
文章分类
文章存档

2012年(19)

分类: 嵌入式

2012-09-16 19:07:41

  今天完成了嵌入式linux内核配置与编译的学习,现做一番总结
1.从 ftp.kernel.org下载内核;
2.解压 tar jxf linux.2.6.29.tar.bz2 -C /hoem/mylinux;
3.对于刚从网站上下载的内核包来说 不必进行清理内核配置文件以及中间文件(make mrproper 、make     clean。make distclean)
4.配置内核 make menucofig,这是需要注意当前终端窗口大小 至少为80*90,在配置时,*表示yes,【】表示no,m表示 只编译不连接,这是为内核模块做准备的。

5.编译 make bzImage,编译好的映像位于arch/x86/boot下
6.编译内核模块 make modules (所编译的内核模块位之前配置内核过程中选择为m的项)
7.安装内核模块 make modules_install 安装后,编译好的内核模块会从内核源代码目录cp至/lib/modules/2.6.29
8.制作初始化RAM磁盘initrd 跳转到内核所在目录的上层目录,mkinitrd initrd-2.6.29 2.6.29,将在上一部中产生的模块目录/lin/modules/2.6.29制作成initrd-2.6.29(ubuntu使用 mkinitramfs)
initrd是在实际根文件系统可用之前挂在到系统中的一个初始化文件系统,在桌面linux中 它是一个临时的文件系统,生存周期很短,只会作到真实文件系统的桥梁,但是在没有存储设备的嵌入式系统中,initrd可以使永久性的文件系统,
9.安装内核,由于linux系统启动时,会从/boot下寻找内核文件与init ramdisk,所以要将内核文件和initrd拷贝至/boot下
       cp initrd-2.6.29 /boot
       cp linux-2.6.29/arch/x86/boot/bzImage
10.修改grub配置文件/etc/grub.conf(这实际上是/boot/grub/grub.conf的一个链接,真正的配置文件                                      在/boot/grub/目录下)
      加入如下代码:title mylinux(2.6.29)
                    root(hd0.0)
                    kernel /boot/vmlinuz-2.6.29 ro root=LABEL=/ quiet
                    initrd  /boot/initrd-2.6.29
     添加这些代码时一定要仔细,否则无法启动





阅读(795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~