久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

移植Busybox與構(gòu)建根文件系統(tǒng)

 adkada 2011-11-16
http://www./Linux/2011-10/44886.htm
0.簡(jiǎn)介
本文旨在為以LOONGSON-1B開發(fā)板為平臺(tái),,為移植busybox、構(gòu)建根文件系統(tǒng)提供技術(shù)文檔,。


相關(guān)閱讀:Linux文件系統(tǒng)使用udhcpc動(dòng)態(tài)獲取ip配置 http://www./Linux/2011-10/44885.htm

開發(fā)環(huán)境:

    系統(tǒng)環(huán)境:龍芯1B開發(fā)板(mips32指令集),、Linux3.0.0內(nèi)核、Busybox1.19.2

    編譯環(huán)境:Ubuntu10.04 ,gcc-3.4.6-2f

1. Busybox下載和配置:
1.1 下載Busybox
BusyBox各版本下載見 http://www./Linux/2011-08/40704.htm,下載Busybox-1.19.2.tar.bz2工具包,。

1.2配置,、編譯Busybox
busybox是一個(gè)集成了一百多個(gè)最常用linux命令和工具的軟件,它甚至還集成了一個(gè)http服務(wù)器和一個(gè)telnet服務(wù)器,而所有這一切功能卻只有區(qū)區(qū)1M左右的大小。Busybox的完全可定制性,,提供了非常靈活,,宜于擴(kuò)展的結(jié)構(gòu)。

Busybox的配置方法類似于linux內(nèi)核的配置,。下載解壓Busybox-1.19.2.tar.gz工具包后,,進(jìn)入busybox-1.19.2目錄,,運(yùn)行“make menuconfig”,,根據(jù)需要選擇需使用的模塊,保存退出后會(huì)在本地生成一個(gè).config文件,,它指定busybox在編譯的過程中需要包含哪些功能,。

執(zhí)行make menuconfig,彈出配置窗口如下: 
 
 

進(jìn)入Busybox Setings--->選項(xiàng),General Configuration --->選項(xiàng)按默認(rèn)配置即可,。

進(jìn)入Build Options--->選項(xiàng):

這里可選擇靜態(tài)編譯或動(dòng)態(tài)編譯busybox,,可根據(jù)需要任選一種編譯方式進(jìn)行編譯。

(說明:動(dòng)態(tài)編譯的busybox在構(gòu)建文件系統(tǒng)時(shí)需要加入一些必須的動(dòng)態(tài)庫(kù),,而靜態(tài)編譯的busybox不依賴動(dòng)態(tài)庫(kù)便可執(zhí)行,,構(gòu)建文件系統(tǒng)時(shí)可省略拷貝動(dòng)態(tài)庫(kù)的步驟。)

(1)靜態(tài)編譯:

    選擇[*]Build Busybox as a static binary (no shared libs)

    進(jìn)入()Cross Compiler prefix選項(xiàng),,修改本地交叉工具鏈的路徑,。
 
 

(2)動(dòng)態(tài)編譯:

    選空[]Build Busybox as a static binary (no shared libs)

    選擇[*]Build shared libbusybox

    進(jìn)入()Cross Compiler prefix選項(xiàng),修改本地交叉工具鏈的路徑,。
 
 

返回上一層進(jìn)入Installation Options(“make install”behavior)--->選項(xiàng),,配置鏈接類型與安裝路徑,這里使用默認(rèn)配置: 

 

返回上一層進(jìn)入Busybox Library Turing--->選項(xiàng)

    選擇[*]vi-style line editing commands(NEW)

            [*]Fancy shell prompts(NEW) 

 返回最頂層進(jìn)入Init Utilities--->選項(xiàng)(這里使用默認(rèn)配置,,如圖)

    選擇[*]init

           [*]Suport reading an inittab file

           [*]Run commands with leading dash with controlling tty

       該項(xiàng)表示在真實(shí)的串口設(shè)備中運(yùn)行命令行,,不選該項(xiàng)啟動(dòng)時(shí)會(huì)出現(xiàn)“-sh:can’t access tty;job control turned off”的錯(cuò)誤

           [*]Support running init from within an initrd (not initramfs)

        不選此選項(xiàng)將不會(huì)生成linuxrc文件
 
 
下面是需要編譯進(jìn)busybox的功能選項(xiàng),它們都是一些linux基本命令選項(xiàng),需要哪些命令就編譯進(jìn)去,一般用默認(rèn)配置,。
 
 
配置完成后,,執(zhí)行make&&make install進(jìn)行編譯與安裝。安裝完成后,,在Busybox1.19.2目錄下生成子目錄_inistall,,里面的內(nèi)容:
 
 
 
其中可執(zhí)行文件busybox在bin目錄下,其他的都是指向它的符號(hào)鏈接。
3 使用busybox建立文件系統(tǒng)
3.1建立系統(tǒng)根目錄
#mkdir /root/rootfs
#cd /root/rootfs
#mkdir dev home proc tmp var etc lib mnt sys usr etc/rc.d
3.2建立系統(tǒng)配置文件
3.2.1.etc/inittab文件
說明:inittab 文件是init進(jìn)程的配置文件,,系統(tǒng)啟動(dòng)后所訪問的第一個(gè)腳本文件,后續(xù)啟動(dòng)的文件都由它指定,。
#cd /root/ rootfs
#vi etc/inittab
添加如下內(nèi)容
::sysinit:/etc/rc.d/rc.sysinit    //指定系統(tǒng)啟動(dòng)后首先執(zhí)行的文件
#Example of how to put a getty on a serial line (for a terminal)
ttyS0::respawn:-/bin/sh    //啟動(dòng)后進(jìn)入shell環(huán)境
tty1::respawn:-/bin/sh
#Stuff to do when restarting the init process
::restart:/sbin/init
#Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot    //捕捉ctrl+alt+del鍵,重啟文件系統(tǒng)
::shutdown:/bin/umount -a –r    //當(dāng)關(guān)機(jī)時(shí)卸載所有文件系統(tǒng)
::shutdown:/sbin/swapoff -a

3.2.2.etc/rc.d/rc.sysinit文件
說明:這是一個(gè)腳本文件,可以在里面添加想自動(dòng)執(zhí)行的命令,。以下命令配置環(huán)境變量,、主機(jī)名、dev目錄環(huán)境,、掛接/etc/fstab指定的文件系統(tǒng),、建立設(shè)備節(jié)點(diǎn)與設(shè)置IP。
vi etc/rc.d/rc.sysinit
添加如下內(nèi)容
#!/bin/sh
#Set binary path
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
#Set hostname
/bin/hostname  "Loongson-gz"
#Config dev enviornment
mount –t tmpfs –o size=64k,mode=0755 tmpfs /dev
mkdir –p /dev/pts
mount –t devpts devpts /dev/pts
# mount all filesystem defined in "/etc/fstab"
echo "#mount all......."
/bin/mount –a
echo "# starting mdev...."
echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev –s
#Set ip
ifconfig eth0 192.168.3.110 up
ifconfig lo 127.0.0.1
(說明:eth0的ip地址可根據(jù)需要自行配置)
 
3.2.3.etc/fstab文件
說明:執(zhí)行mount –a時(shí)掛接/etc/fstab指定的文件系統(tǒng),。
vi etc/fstab
添加如下內(nèi)容
none    /tmp    ramfs   defaults 0 0
none    /var    ramfs   defaults 0 0
sysfs   /sys    sysfs   defaults 0 0
proc    /proc   proc    defaults 0 0
 
3.2.4.etc/profile文件
說明:inittab中執(zhí)行了這樣一個(gè)語句“::respawn:-/bin/sh”,。
啟動(dòng)/bin/sh程序時(shí)會(huì)啟動(dòng)ash的配置信息,而它就是/etc/profile,sh會(huì)把profile的所有配置全部都運(yùn)行一遍,,因此用戶可以把自己的啟動(dòng)程序放在這里,。
#vi etc/profile
添加如下內(nèi)容
#!/bin/sh
#/etc/profile:system-wide .profile file for the Bourne shells
echo "Processing /etc/profile......"
# Set search library path
export LD_LIBRARY_PATH=/lib:/usr/lib
# Set user path
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
#Set PS1
USER = "LOONGSON"
#LOGNAME=$USER
HOSTNAME=’/bin/hostname’
PS1='[$USER@\h:\w]\$'
echo "Done!"
 
3.2.5.修改系統(tǒng)配置文件權(quán)限
#chmod 755 etc/*
#chmod 755 etc/rc.d/rc.sysinit
 
3.2.6.拷貝Busybox文件
將安裝好的Busybox文件拷貝到/root/rootfs/目錄:
#cp ./Busybox1.19.2/_install/* /root/rootfs -rf
 
3.2.7.拷貝庫(kù)文件(配置Busybox若選擇靜態(tài)編譯則省略此步驟)
在x86系統(tǒng)中,動(dòng)態(tài)編譯Busybox制作文件系統(tǒng),,需將下列幾個(gè)必須庫(kù)從工具鏈gcc-3.4.6-2f/mipsel-linux/lib拷貝到lib目錄,。
ld.so.1, ld-2.3.6.so, libcrypt.so.1, libc.so.6, libdl.so.2, libgcc_s.so.1, libm.so.6, libpthread.so.0, libstdc++.so.6
#cp /opt/GCC/gcc-3.4.6-2f/mipsel-linux/lib/庫(kù)文件名 /root/rootfs/lib/
為了減少根文件系統(tǒng)的庫(kù)大小,使用交叉編譯工具即gcc-3.4.6-2f的strip工具來處理庫(kù)文件,,把二進(jìn)制文件中的包含的符號(hào)表和調(diào)試信息刪除掉,可有效減少庫(kù)文件大小,。
例:
#cd /opt/GCC/gcc-3.4.6-2f/bin
#./mipsel-linux-strip /root/rootfs/lib/*.so
至此文件系統(tǒng)制作完成。

本篇文章來源于 Linux公社網(wǎng)站(www.)  原文鏈接:http://www./Linux/2011-10/44886p2.htm
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多