再来编写rcS脚本:
xuxian@omap1:~/fsys/ramdisk/etc/$mkdir init.d
xuxian@omap1:~/fsys/ramdisk/etc/$cd init.d
xuxian@omap1:~/fsys/ramdisk/etc/init.d$vi rcS
脚本如下:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOSTNAME=OMAP5912OSK
hostname $HOSTNAME
echo ""
echo "******************************************"
echo "Starting System Init for $HOSTNAME"
echo "******************************************"
# goto the init.d directory
cd /etc/init.d
# Mount the default file systems
mount -a # Mount the default file systems
# Configure network
#/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255
#/sbin/ifconfig eth0 128.247.75.151 netmask 255.255.254.0 broadcast
128.247.75.255
#/sbin/route add default gw 128.247.74.1 eth0
然后时rcS2脚本:
xuxian@omap1:~/fsys/ramdisk/etc/init.d$vi rcS2
#!/bin/sh
/bin/mount -n -o remount,rw /
/bin/mount -a
echo Starting Network
#modprobe i2c-core
#modprobe i2c-algo-bit
#modprobe i2c-omap1510
#modprobe soundcore
#modprobe omap-audio
#modprobe omap1510-aic23
/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
/sbin/ifconfig eth0 10.1.3.3 netmask 255.255.0.0 broadcast 10.1.255.255
/sbin/route add default gw 10.1.0.100 eth0
~
~
最后时编写fstab脚本,我的很简单:
xuxian@omap1:~/fsys/ramdisk/etc$vi fstab
proc /proc proc defaults 0 0
8、用nfs检查根文件系统:
做完以上这些就可以用nfs来启动目标系统了。编辑/etc/exports加入/home/xuxian/fsy
s/ramdisk 192.168.4.190(rw,sync,no_root_squash,no_all_squash)其中192.168.4.19
0是目标板的ip。
连接目标板用tftp或者串口线下载u-boot和kernel,在u-boot的环境变量中加入:seten
v bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs
nfsroot=192.168.0.11:/home/xuxian/fsys/ramdisk,nolock mem=30M其中192.168.0.11
是主机ip,/home/xuxian/fsys/ramdisk为ramdisk目录。
9、通过烧写flash检查文件系统
最后如果想生成image文件烧到flash中可以执行如下命令:
xuxian@omap1:~/fsys$umount ramdisk
xuxian@omap1:~/fsys$gzip -v9 rootfs
这样就生成了rootfs.gz文件,可以连同u-boot,kernel一起烧到flash中了。
儒雅说:
# vi mkinitrd.sh -- 脚本好
----------------------------------------
#!/bin/bash
#------------- make file system
cd /tftpboot
rm -fr ramdisk &> /dev/null
umount /mnt &> /dev/null
dd if=/dev/zero of=ramdisk bs=1k count=8192 &>/dev/null
mkfs.ext2 -F ramdisk &> /dev/null
mount -o loop ramdisk /mnt &> /dev/null
#------------- make directory
cd /mnt
rm -r *
mkdir lib dev proc etc mnt usr bin sbin tmp sys
#------------- cp lib
cd /usr/local/arm/3.4.1/arm-linux/lib
for file in libc libcrypt libdl libm libpthread libresolv libutil
do
cp $file-*.so /mnt/lib
cp -d $file.so.[*0-9] /mnt/lib
done
cp -d ld*.so* /mnt/lib
#------------- cp busybox
cd /home/zxl/s3c2410/source/busybox/busybox-1.7.0
cp -rf _install/* /mnt/
cp -r examples/bootfloppy/etc/init.d/ /mnt/etc/
#------------- edit /etc/init.d/rcS (0)
echo "echo /sbin/mdev > /proc/sys/kernel/hotplug" >>/mnt/etc/init.d/rcS
echo "/sbin/mdev -s" >>/mnt/etc/init.d/rcS
#------------- make device file (1)
cd /mnt/dev
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3
#------------- make etc file
cat > /mnt/etc/inittab << EOF
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/msh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
EOF
cat > /mnt/etc/fstab << EOF
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
EOF
#------------- make zip file
cd /
umount /mnt
cd /tftpboot
rm -fr ramdisk.gz &>/dev/null
gzip -9 ramdisk
(0) 配置mdev
(1) 由于2.6.19中已经不包含devfs,所以还需要在root filesystem中配置console和null设备,否则将不能进入交互界面(不会出现提示符#)
# vi mkinitrd.sh -- 脚本好
----------------------------------------
#!/bin/bash
#------------- make file system
cd /tftpboot
rm -fr ramdisk &> /dev/null
umount /mnt &> /dev/null
dd if=/dev/zero of=ramdisk bs=1k count=8192 &>/dev/null
mkfs.ext2 -F ramdisk &> /dev/null
mount -o loop ramdisk /mnt &> /dev/null
#------------- make directory
cd /mnt
rm -r *
mkdir lib dev proc etc mnt usr bin sbin tmp sys
#------------- cp lib
cd /usr/local/arm/3.4.1/arm-linux/lib
for file in libc libcrypt libdl libm libpthread libresolv libutil
do
cp $file-*.so /mnt/lib
cp -d $file.so.[*0-9] /mnt/lib
done
cp -d ld*.so* /mnt/lib
#------------- cp busybox
cd /home/zxl/s3c2410/source/busybox/busybox-1.7.0
cp -rf _install/* /mnt/
cp -r examples/bootfloppy/etc/init.d/ /mnt/etc/
#------------- edit /etc/init.d/rcS (0)
echo "echo /sbin/mdev > /proc/sys/kernel/hotplug" >>/mnt/etc/init.d/rcS
echo "/sbin/mdev -s" >>/mnt/etc/init.d/rcS
#------------- make device file (1)
cd /mnt/dev
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3
#------------- make etc file
cat > /mnt/etc/inittab << EOF
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/msh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
EOF
cat > /mnt/etc/fstab << EOF
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
EOF
#------------- make zip file
cd /
umount /mnt
cd /tftpboot
rm -fr ramdisk.gz &>/dev/null
gzip -9 ramdisk
(0) 配置mdev
(1) 由于2.6.19中已经不包含devfs,所以还需要在root filesystem中配置console和null设备,否则将不能进入交互界面(不会出现提示符#)
