编译第一个文件系统镜像(for 2440)

mkdir /opt/studyarm
cd /opt/studyarm

新建建立根文件系统目录的脚本文件 create_rootfs_bash,使
用命令 chmod +x create_rootfs_bash 改变文件的可执行权限,./create_rootfs_bash 运行脚本,就
完成了根文件系统目录的创建。

vim create_rootfs_bash

#!/bin/sh 
echo "------Create rootfs directons start...--------" 
mkdir rootfs 
cd rootfs 
echo "--------Create root,dev....----------" 
mkdir root dev etc boot tmp var sys proc lib mnt home usr
mkdir etc/init.d etc/rc.d etc/sysconfig 
mkdir usr/sbin usr/bin usr/lib usr/modules 
echo "make node in dev/console dev/null" 
mknod -m 600 dev/console c 5 1 
mknod -m 600 dev/null c 1 3 
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp 
mkdir var/lib var/lock var/run var/tmp 
chmod 1777 tmp 
chmod 1777 var/tmp 
echo "-------make direction done---------"

建立动态链接库
cd /mnt/hgfs/share
tar –zxvf root_qtopia.tgz –C /opt/studyarm
cp –rfd /opt/studyarm/root_qtopia/lib/* /opt/studyarm/rootfs/lib/*

交叉编译 Bosybox
1、解压 busybox
cd /mnt/hgfs/share
tar –zxvf busybox-1.13.3.tar.tgz –C /opt/studyarm
2、进入源码,修改 Makefile 文件:
cd /opt/studyarm/busybox-1.13.3
修改:
CROSS_COMPILE ?=arm-linux- //第 164 行
ARCH ?=arm //第 189 行

配置 busybox
输入 make menuconfig 进行配置
编译 busybox
编译 busybox 到指定目录:
cd /opt/studyarm/busybox-1.13.3
make CONFIG_PREFIX=/opt/studyarm/rootfs install
在 rootfs 目录下会生成目录 bin、sbin、usr 和文件 linuxrc 的内容。
编译busybox-1.13.3出现如下错误:
busybox-1.13.3$make menuconfig
Makefile:421:*** mixed implicit and normal rules: deprecated syntax
Makefile:1269:*** mixed implicit and normal rules: deprecated syntax
make:*** No rule to make target ‘menuconfig’. Stop.

分析原因:
新版Makefile不支持这样的组合目标:config %config(一个有通配符,另一个没有通配符)

解决方法:
要么把config %config拆成2个规则,要么把其中一个目标去掉。

所以,
a.修改busybox-1.13.3 顶层Makefile 421行:
config%config: scripts_basic outputmakefile FORCE
改为:
%config:scripts_basic outputmakefile FORCE

b.修改busybox-1.13.3 顶层Makefile 1269行:
/%/: prepare scripts FORCE
改为:
%/:prepare scripts FORCE

建立 etc 目录下的配置文件
1、etc/mdev.conf 文件,内容为空。
2、拷贝主机 etc 目录下的 passwd、group、shadow 文件到 rootfs/etc 目录下。
3、etc/sysconfig 目录下新建文件 HOSTNAME,内容为”H3-Studio”。 4、etc/inittab 文件:
#etc/inittab
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r
5、etc/init.d/rcS 文件:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
echo “----------munt all----------------”
mount -a
echo /sbin/mdev>/proc/sys/kernel/hotplug
mdev -s
echo “"
echo "Studying ARM
"
echo “Kernel version:linux-2.6.29.1”
echo “Student:Huang huahai”
echo “Date:2009.10.1”
echo "
*****”
/bin/hostname -F /etc/sysconfig/HOSTNAME
(或者直接 /bin/hostname H3-Studio )
使用以下命令改变 rcS 的执行权限:
Chmod +x rcS
6、etc/fstab 文件:
#device mount-point type option dump fsck order
proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
mdev /dev ramfs defaults 0 0
7、 etc/profile 文件:
#Ash profile
#vim:syntax=sh
#No core file by defaults
#ulimit -S -c 0>/dev/null 2>&1
USER=“id -un”
LOGNAME=KaTeX parse error: Undefined control sequence: \u@ at position 13: USER PS1='[\̲u̲@̲\h=W]#' PATH=PATH
HOSTNAME=’/bin/hostname’
export USER LOGNAME PS1 PATH
制作根文件系统映像文件
使用以下命令安装好 yaffs 文件系统制作工具:
cd /mnt/hgfs/share
tar –zxvf mkyaffs2image.tgz –C /
在/opt/studyarm 目录下,使用命令 mkyaffs2image-128M rootfs rootfs.img 生成根文件系统映像
文件。

下载运行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yfw&武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值