嵌入式linux文件系统格式,嵌入式Linux文件系统生成脚本

7。同样/usr/bin下面也是busybox的link

basename dirname env free id logger reset tail tr tty uptime which xargs

awk cut du expr head killall mkfifo sort test traceroute uniq wc whoami yes

上面几乎是最全的link,各个看官可以酌情删减,不过link也不占什么空间!

8。同样/usr/sbin下面放着所有编译完的可执行文件,具体就不多说了

9。非常重要之/lib,务必重视

找到你编译环境的target目录,把需要的lib文件先用strip压縮(非target目录下的,而已编译环境提供的strip),先把最基本的libc, ld等等,必须同样做跟target/lib里面一样的link。

然后根据特定的应用加相应的lib,不要把不用的加进去,lib比较占空间。

10。在/etc下面加上需要的配置文件,最最重要的是rcS

#!/bin/sh

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/sbin/scripts

UTC=yes

mount -n -t proc proc /proc

mount -n -t ramfs ramfs /tmp

mount -n -t devpts devpts /dev/pts

# build var directories

/bin/mkdir -m 0777 /tmp/var

/bin/mkdir -m 0777 /var/lock

/bin/mkdir -m 0777 /var/log

/bin/mkdir -m 0777 /var/run

/bin/mkdir -m 0777 /var/tmp

#/bin/mkdir -m 0777 /tmp/etc

#/bin/cp -a /usr/etc//etc

#/bin/cp -a /usr/dev//dev/

# loads the NPE ethernet modules into the kernel.

insmod /lib/modules/2.6.13.2/intel/ixp400.ko

# Firmware code for NPE Engine.

cat /etc/IxNpeMicrocode.dat > /dev/ixNpe

insmod /lib/modules/2.6.13.2/intel/ixp400_eth.ko netdev_max_backlog=500

insmod /lib/modules/led.ko

insmod /lib/modules/push_button.ko

下面的具体应用没有再举例加上了,这个是系统init必须的。

其他的情况类似如此了,下面里面给了一个lunksys的GPL项目的target。

四、生成一个ramdisk

#!/bin/sh

MODULE_NAME=ramdisk

RAMPATH=`pwd`

TMPPATH=${RAMPATH}/tmp

SOURCE=${RAMPATH}/../target

if [ ! -d ${TMPPATH} ]

then

mkdir ${TMPPATH}

fi

if [ `whoami` != 'root' ]

then {

echo "You should run the shell as root, Please rerun as a root."

echo "Aborting."

exit 1

}

fi

# Clear in tmp path

rm -rf ${TMPPATH}/tmpmnt

rm -rf ${TMPPATH}/ramrootfs

mkdir ${TMPPATH}/tmpmnt

# Clear the old ramdisk

rm -f ${RAMPATH}/$MODULE_NAME

# Make a temp file which size is suitable

dd if=/dev/zero of=${TMPPATH}/ramrootfs bs=1k count=6144

# Create a ext2 filesystem

mke2fs -F -m 0 -i 2000 ${TMPPATH}/ramrootfs

# Mount it to tmpmnt/

mount -o loop -t ext2 ${TMPPATH}/ramrootfs ${TMPPATH}/tmpmnt

# Copy everything from kernel to this.

cd ${TMPPATH}/tmpmnt

echo ${SOURCE}

cp -av ${SOURCE}/.

cd ${TMPPATH}

# Unmount it the ext2 filesystem

umount ${TMPPATH}/tmpmnt

cat ${TMPPATH}/ramrootfs | gzip -9 > /${RAMPATH}/ramdisk

echo Copying ramdisk image to ${RAMPATH}

sync

这里给出一个自动生成脚本!

五、生成一个cramfs

找到cramfs的toolchain。/mkcramfs -r $(FS1_DIR) $(FS_NAME).1

六、生成一个mksquashfs

找到squashfs的toolchain。/mksquashfs $(FS_DIR) $(FS_NAME) -noappend -be -lzma -no-fragments -noI

做文件系统最困难和最可能出问题的地方是在/lib库和/dev方面,请大家多注意这两方面。0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值