Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425822
  • 博文数量: 131
  • 博客积分: 1990
  • 博客等级: 上尉
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-24 12:15
文章分类
文章存档

2011年(4)

2010年(19)

2009年(108)

我的朋友

分类:

2009-10-16 16:00:27

-----------------创建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
tree
到系统/dev把所有的device打一个包,拷贝到dev下面(最省事的做法);或者使用mknod来自己建所需要的device, 举例:
# mknod -m 600 dev/console c 5 1
# mknod -m 666 dev/null c 1 3
# mknod dev/ttySAC0 c 204 64
# mknod dev/tty0 c 4 0

BusyBox-1.9.2版本
---------------------修改Makefile--------------------
ARCH  ?= arm
CROSS_COMPILE ?= arm-linux-
------------------修改编译配置选项--------------------
#make defconfig
#make menuconfig
BusyBox Settings --->
    Build Options ---> (采用静态编译)
[*] Build BusyBox as a static binary (no shared libs)
Install optin-->
[*] Don't use /usr  //可以不选,选了则没有/usr文件夹
Busybox Library Tuning --->
(2) MD5: Trade Bytes for Speed
[*] Faster /proc scanning code (+100 bytes)
[*] Support for /etc/networks                                   │ │
[*] Command line editing  
[*] Additional editing keys
[*] vi-style line editing commands
[*] History saving
[*] Tab completion
[*] Username completion
[*] Fancy shell prompts
Linux Module Utilities --->
[ ] Support version 2.2.x to 2.4.x Linux kernels  //不能选
[*] Support version 2.6.x Linux kernels
Linux System Utilities --->
    [*] Support for the old /etc/mtab file   //不确定
Miscellaneous Utilities --->
    [*] devfs(obsolete) //不确定
    [*] Use devfs names for all device(obsolete) //不确定
Shell ---> 
Choose your default shell(ash)-->
---ash   //下面的选项全部选择

-----------------------编译busybox-----------------------
make install
在busybox/_install 目录下会生成我们需要的文件。
修改_install/bin/busybox 的属性。为4755
chmod 4755 ./_install/bin/busybox
必须要修改属性,否则在busybox 中很多命令会受限
将编译好的busybox拷贝到/bin下面。拷贝时带上参数-arf或者-dpR。
除了busybox外,所有其他的命令都是他的link
/sbin下面也是busybox的link,
/usr/bin下面也是busybox的link,
/usr/sbin下面放着所有编译完的可执行文件,具体就不多说了
 非常重要之/lib,务必重视
-----------------------/lib文件--------------------------------
/lib的库其实就是进行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  rootfs/lib (复制到你做的文件系统的/lib目录下)
> cp -d $file.so.[*0-9]  rootfs/lib
> done
# cp -d ld*.so*  rootfs/lib
-----------------系统配置文件的建立---------------------
--========/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)创建/etc/init.d文件夹和rcS,在rcS中添加
#! /bin/sh
#! /bin/sh
echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

echo "^     Welcome to YAFFS root filesystem!   ^"

echo "^                    Qiu                  ^"

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)host文件
QIU

(6)创建mdev.conf文件 (空文件)

(7)复制主机/etc/下面的文件passwd, group, shadow 文件到/etc
# cp /etc/group .
# cp /etc/passwd .
# cp /etc/shadow .

修改passwd中用户使用的shell名称。FC6上默认的为bash,而vivi只支持ash。
root:x:0:0:root:/root:/bin/bash -->root:x:0:0:root:/root:/bin/ash

(8)修改各文件和文件夹的权限
# chmod 755 /rootfs/etc/init.d/rcS
# chmod 755 /rootfs/etc/host

-------------yaffs文件系统映像的制作---------
使用mkyaffsimg程序可以把一个目录做成一个yaffs映像文件,然后使用usb下载到板子上。进入文件系统目录层,使用以下命令。
#mkyaffsimg rootfs rootfs.img
这样就会在该目录下生成rootfs.img映像文件,下载到开发板运行即可。

--------------cramfs文件系统映像的制作(cramfs压缩率比较高)------------
在FTP中下载cramfs-1.1.tar.gz,解压到自己设定的目录下,如:
tar xzvf cramfs-1.1.tar.gz –C /home/
进入生成有mkcramfs文件的目录下(一定要进入此目录,否则会提示找不到该命令)
输入命令:#./mkcramfs / rootfs rootfs.cramfs
在当前目录下即生成rootfs.cramfs映像文件。到此Linux操作系统移植完毕。

阅读(758) | 评论(0) | 转发(0) |
0

上一篇:程序员教程---一些书

下一篇:CRAMFS 与 YAFFS

给主人留下些什么吧!~~