-----------------創(chuàng)建rootfs文件夾-------------------
mkdir my_rootfs
cd my_rootfs
mkdir bin dev etc home lib mnt proc sbin sys tmp root usr var mnt/etc usr/bin usr/lib usr/sbin
touch linuxrc
使用mknod來自己建所需要的device, 舉例:
# mknod -m 600 dev/console c 5 1
# mknod -m 666 dev/null c 1 3
BusyBox-1.9.2版本
------------------修改編譯配置選項(xiàng)--------------------
開始移植
1. 下載busybox1.9.2,并解壓縮。
下載busybox源代碼:http://busybox.net/downloads/busybox-1.9.2.tar.bz2
交叉編譯工具:arm-linux-gcc-3.4.1
解壓源碼:tar -jxvf busybox-1.9.2.tar.bz2
2. 修改Makefile中的174行的 arch和編譯工具鏈頭。
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
3. make menuconfig. 修改編譯配置選項(xiàng)。
Busybox Setting----->
build option-->
[ ] Build BusyBox as a static binary (no shared libs)
[*] Build shared libbusybox
[*] Produce a binary for each applet, linked against libbusybox
[*] Produce additional busybox binary linked against libbusybox
[ ] Build with Large File Support (for accessing files > 2 GB)
installation option-->
[*] Don't use /usr
Applets links (as soft-links) --->
(./_install) BusyBox installation prefix
Busybox Library Tuning --->
MD5: Trade Bytes for Speed
[*] Faster /proc scanning code (+100 bytes)
[*] Support for /etc/networks
[*] Support for /etc/networks
[*] Additional editing keys
[*] vi-style line editing commands
[*] History saving
[*] Tab completion
[*] Username completion
[*] Fancy shell prompts
Linux Module Utilities --->
[*] Support version 2.6.x Linux kernels
[*] insmod
[*] Enable load map (-m) option
[*] Symbols in load map
[*] rmmod
[*] lsmod
[*] lsmod pretty output for 2.6.x Linux kernels
[*] modprobe
[ ] Multiple options parsing
[ ] Fancy alias parsing
--- Options common to multiple modutils
[ ] Support tainted module checking with new kernels
[ ] Support version 2.2.x to 2.4.x Linux kernels
[*] Support version 2.6.x Linux kernels
shell -à
[*] alias support
其他的用默認(rèn)值
-----------------------編譯busybox-----------------------
make
make install
在busybox/_install 目錄下會(huì)生成我們需要的文件。
修改_install/bin/busybox 的屬性。為4755
chmod 4755 ./_install/bin/busybox
必須要修改屬性,否則在busybox 中很多命令會(huì)受限
將編譯好的busybox拷貝到my_roofs下面。
【 _install】 cp -Rfv * /my_roofs
-----------------------/lib文件--------------------------------
/lib的庫其實(shí)就是進(jìn)行busybox編譯的庫,即交叉編譯器的庫,我們這里使用的是3.4.1(位置/usr/local/arm/3.4.1)。
# cd /usr/local/arm/3.4.1/arm-linux/lib
# for file in libc libcrypt libdl libm libpthread libresolv libutil
> do
> cp $file-*.so /my_rootfs/lib (復(fù)制到你做的文件系統(tǒng)的/lib目錄下)
> cp -d $file.so.[*0-9] /my_rootfs/lib (同上)
> done
# cp -d ld*.so* /my_rootfs/lib (同上)
-----------------系統(tǒng)配置文件的建立---------------------
--========/etc目錄============
(1)profile文件
#Set search library path
export LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
#Set user path
PATH="/bin:/sbin:/usr/bin:/usr/sbin:"$PATH
alias ll='ls -l'
#Set PS1
USER="`id -un`"
LOGNAME=$USER
PS1='[/u@/h /W]/$ '
PATH=$PATH
export USER LOGNAME PS1 PATH
(2)fstab文件
proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
(3)inittab文件
::sysinit:-/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
(4)創(chuàng)建/etc/init.d文件夾和rcS,在rcS中添加
#! /bin/sh
echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
echo "^ Welcome to YAFFS root filesystem! ^"
echo "^ soso ^"
echo "^^^^^^^^^^^^^^^^09-3-18^^^^^^^^^^^^^^^^^^^^"
/bin/hostname -F /etc/host
# mount all filesystem defined in "fstab"
ln -s /dev/vc/0 /dev/tty1
echo "# mount all..........."
/bin/mount -a
echo "# Starting mdev........."
#/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 192.168.0.55
/sbin/route add default gw 192.168.0.1
(5)創(chuàng)建host文件
soso
(6)創(chuàng)建mdev.conf文件 (空文件)
(7)復(fù)制主機(jī)/etc/下面的文件passwd, group, shadow 文件到/etc
# cp /etc/group .
# cp /etc/passwd .
# cp /etc/shadow .
修改passwd中用戶使用的shell名稱。FC6上默認(rèn)的為bash,而vivi只支持ash。
root:x:0:0:root:/root:/bin/bash ----> root:x:0:0:root:/root:/bin/ash
(8)修改各文件和文件夾的權(quán)限
# chmod 755 /my_roofs/etc/init.d/rcS
# chmod 755 /my_roofs/etc/host
-------------yaffs文件系統(tǒng)映像的制作---------
使用mkyaffsimg程序可以把一個(gè)目錄做成一個(gè)yaffs映像文件,然后使用usb下載到板子上。進(jìn)入文件系統(tǒng)目錄層,使用以下命令。
#./mkyaffsimg my_roofs rootfs.img (改名filesystem.yaffs)
這樣就會(huì)在該目錄下生成roofs.img映像文件,下載到開發(fā)板運(yùn)行即可。
--------------cramfs文件系統(tǒng)映像的制作(cramfs壓縮率比較高)------------
在FTP中下載cramfs-1.1.tar.gz,解壓到自己設(shè)定的目錄下,如:
tar xzvf cramfs-1.1.tar.gz –C /home/
進(jìn)入生成有mkcramfs文件的目錄下(一定要進(jìn)入此目錄,否則會(huì)提示找不到該命令)
輸入命令:#./mkcramfs / rootfs rootfs.cramfs
在當(dāng)前目錄下即生成rootfs.cramfs映像文件。到此Linux操作系統(tǒng)移植完畢。
下載源碼
移植新下載的linux源碼中是沒有超級(jí)終端的命令的,需要自己添加。添加完了,就開發(fā)板就可以PC通過串口傳輸文件了。
步驟:
1、 下載軟件 rzsz-3.48.tar.gz。 http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz下載。
聯(lián)系客服