Chinaunix首页 | 论坛 | 博客
  • 博客访问: 233471
  • 博文数量: 60
  • 博客积分: 2466
  • 博客等级: 大尉
  • 技术积分: 662
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-16 13:25
文章分类

全部博文(60)

文章存档

2014年(1)

2012年(15)

2011年(24)

2010年(17)

2009年(3)

我的朋友

分类: LINUX

2009-12-16 18:15:10

      根据网上结合自己的改了一下。

------------------修改编译配置选项--------------------
开始移植

 

1.       下载busybox1.9.2,并解压缩。

下载busybox源代码:

交叉编译工具: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. 修改编译配置选项。

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

其他的用默认值

-----------------------编译busybox-----------------------

make
make install
busybox/_install 目录下会生成我们需要的文件。
修改_install/bin/busybox 的属性。为4755
chmod 4755 ./_install/bin/busybox
必须要修改属性,否则在busybox 中很多命令会受限
将编译好的busybox拷贝到/bin下面。





----------------------------------制作根文件系统-----------------------------------------

busybox下建新文件系统根目录root

拷贝_install下文件至新root

在root先新建etc目录(主要就是系统的启动设置,都在这里)

在root新建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
  

(说明:sh 的配置脚本:profile


(
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

(说明:挂载文件系统的配置文件 :fstab

:挂装的设备

 :挂装点

 :文件系统类型

 : 挂装选项

 

ro 以只读模式加载该文件系统



user 允许普通用户加载该文件系统



quota 强制在该文件系统上进行磁盘定额限制



noauto 不再使用 mount -a 命令(例如系统启动时)加载该文件系统



3 :使用 dump 命令备份文件系统的频率

 若不需要转储就设置该字段为 0



:规定检查文件系统的顺序



根文件系统“/”对应该字段的值应该为 1 , 其他文件系统应该为 2。 若该文件系统无需在

启动时扫描则设置该字段为 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

(说明:init 进程执行需读取的配置文件:inittab 3 KERNEL 起来之后,将运行第一个进程--init,实际上执行的为 Busybox /sbin/init

(这里直接就是linuxrc) init 的工作是根据/etc/inittab 脚本来进行系统的初始化



2:格式:::runlevels:action:process



sysinit --指定运行的第一个程序/脚本



respawn -- 若该进程结束,init 会再起 一个进程执行同样的命令



ctrlaltdel —— 指定在用户按下 Ctrl-Alt-Del 时执行的命令



3 init 进程运行脚本: /etc/init.d/rcS,



(在 rcS 中挂载文件系统,并且执行脚本/usr/etc/rc.local--看具体配置如何)

3 rc.local 中继续设置,最后运行用户的启动运行脚本 init.sh

(4)创建/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)
创建host文件
soso

(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

(说明:



格式:account:password:UID:GID:GECOS:directory:shell



account 用户段

 password 密码段

 UID user id

 GID group id



GECOS: 信息段(可选)

 directory 用户登陆目录

 shell login 时运行的 shell

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

-------------yaffs文件系统映像的制作---------
使用mkyaffsimg程序可以把一个目录做成一个yaffs映像文件,然后使用usb下载到板子上。进入文件系统目录层,使用以下命令。
#mkyaffsimage rootfs filesystem.yaffs
这样就会在该目录下生成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操作系统移植完毕。




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

上一篇:巨蟹座

下一篇:开机挂载win分区

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