前期工作:a.配置好tftp服务器:在嵌入式的童年中有介绍
b.开发板可以pc,linux 三者可以互相ping通
c.配置好nfs服务器:同样在嵌入式的童年中有介绍
一.嵌入式linux内核的制作(这里使用的国嵌提供的linux-ok6410内核,附带内核配置文件config-file)
a.进入内核目录清除原有配置和中间文件:
make clean
b.配置内核:
arm平台:make menuconfig ARCH=arm
将内核配置文件拷贝到内核目录中config-file
查看cpu是否对应:system type->arm system type(samsung s3c64xx):对的,保存,退出
c.编译内核:make uImage ARCH=arm CROSS_COMPILE=arm-linux-(这里需要mkimage工具,将该工具(mkimage在uboot的tools目录中,将它放到交叉编译工具链中/bin 中)) cp uImage ./tftpboot
tftp uImage 0xc0008000 (将uImage下载到开发板)
bootm 0xc0008000(启动内核)这里启动会失败,因为还没有挂载根文件系统。
二.根文件系统制作
1. mkdir rootfs (创建根文件系统主目录)
cd rootfs
2.创建常见子目录
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
3.向目录中添加一些必备的设备文件
cd rootfs/dev
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
4.加入配置文件
tar zxvf etc.gar.gz
cp etc/* rootfs/etc/ -rf
三.编译安装内核模块并添加到rootfs中
make modules ARCH=arm CROSS_COMPILE=arm-linux-
make modules_install ARCH=arm INSTALL_MOD_PATH=/XXX/rootfs
cd rootfs/lib/modules/2.6.35-embedsky/kelnel/drivers/scsi 我们能看到一些.ko文件.
四.配置busybox(精通嵌入式中有提供可以使用的,一些常用的shell指令)
1. tar zxvf busybox....tar.gz
cd busybox ...
2. make menuconfig ARCHarm CROSS_COMPILE=arm-linux-
Busybox setting--->
build Options--->
选中“build busybox as a static binary”,静态链接。
3. 在同一页面--->Cross compiler prefix(arm-linux-).
4. installation Options-->
选中“Don not use/usr”,选中该项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统。......
Busybox Installation Prefix(/xxx/rootfs)
该选项表明编译后的busybox的安装位置。
路径要指对,否则会安装失败(在Don not use/usr同一页面)。
安装busybox :make install
cd rootfs/bin
发现有很多的命令
根文件系统的制作完成