移植Linux内核2.6.28到s3c2410开发板
需要vivi(bootloader)zImage(bzImage)和根文件系统rootfs.cramfs
.把并口线插到pc机的并口,并把并口与JTAG相连,JTAG与开发板的JTAT口相连;
编译Linux内核
然后生成vmlinux和zImage;
vmlinux是内核文件,
zImage是一般情况下默认的压缩内核映像文件,压缩vmlinux,加上一段解压启动代码得到,只能从0X0地址运行
根文件系统。
一个基本的文件系统应该包括: busybox (提供 shell 命令集)、配置文件(用来初始化和布局你的文件系统)、设备文件(如果是用 devfs 的话这个就免了)、必要的库文件系统(如果 busybox 是静态编译的话,那根本不用为 busybox 用到的库文件而烦)。
我采用的是busybox-1.1.3,生成结束后,执行make install,生成一个_install文件夹,内有一个linuxrc文件和bin、sbin、usr三个文件夹,删除linuxrc,将三个文件夹打包。在此_install目录下创建其它几个需要的目录,mkdir etc dev proc tmp lib var sys;
转到dev目录下创建设备节点
mknod ram0 b 1 0;
mknod -m 660 console c 5 1;
mknod -m 660 null c 1 3;
mknod -m 660 zero c 1 3 ;
mknod -m 666 ttySAC0 c 204 64。
编写脚本,转到etc目录,编写inittab脚本,vi inittab,内容如下:
# Startup the system
null::sysinit: /bin/mount –o remount,rw/
null::sysinit: /bin/mount –t proc proc /proc
null::sysinit: /bin/mount –a
console::sysinit: /etc/init.d/rcS
ttySAC0::respawn: /bin/sh
然后编写挂载表fstab,vifstab
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
none /dev/pts devpts mod=0622 0 0
tmpfs /dev/shm tmpfs defaults 0 0
在etc下创建目录init.d,cd init.d,创建脚本rcS,vi rcS,内容如下:
#! /bin/sh
保存,并修改rcS的权限,否则会出现Cannot run ‘/etc/init.d/rcS’:Permission denied的错误:
chmod 775 rcS
最后生成文件系统映像。
mkcramfs _install rootfs.cramfs生成根文件系统(格式是cramfs)