在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Busybox制作嵌入式Linux的文件系統(tǒng)

            Busybox制作嵌入式Linux的文件系統(tǒng)

            作者: 時(shí)間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

            一、編譯

            本文引用地址:http://www.biyoush.com/article/201610/305908.htm

            1.busybox簡(jiǎn)介

            熟悉嵌入式Linux的人對(duì)busybox一定不會(huì)陌生。它被非常形象地稱為嵌入式Linux系統(tǒng)中的“瑞士軍刀”,因?yàn)樗鼘⒃S多常用的UNIX命令和工具結(jié)合到了一個(gè)單獨(dú)的可執(zhí)行程序中。雖然與相應(yīng)的GNU工具比較起來,busybox所提供的功能和參數(shù)略少,但在比較小的系統(tǒng)(例如啟動(dòng)盤)或者嵌入式系統(tǒng)中,已經(jīng)足夠了。

            下面就來一步步地用busybox從無到有地建立一個(gè)全新的Linux文件系統(tǒng)。

            2. 編譯busybox

            完整的源代碼可以從http://www.busybox.net下載,壓縮包大小為1.3 MB左右。將源碼解壓之后,進(jìn)入到busybox1.00目錄中,運(yùn)行make menuconfig可以打開它的編譯界面。這個(gè)界面和Linux內(nèi)核編譯有些接近。在這個(gè)菜單界面中除了可以對(duì)最終編譯到可執(zhí)行文件中的命令進(jìn)行選擇外,還有很多其他設(shè)置也是非常重要的。下面三個(gè)目錄是很多人都會(huì)感興趣的:

            我改變了以下選項(xiàng):

            General Configuration --->

            [*] Support for devfs

            Build Options --->

            [ ] Build BusyBox as a static binary (no shared libs)

            [*] Do you want to build BusyBox with a Cross Compiler?

            /usr/local/arm/3.4.1/bin/arm-linux-

            (/usr/local/arm/3.4.1/bin/arm-linux-) Cross Compiler prefix

            Installation Options --->

            (./_install) BusyBox installation prefix

            然后到當(dāng)前目錄建立一個(gè)_install的文件夾。

            Linux Ext2 FS Progs --->

            [*] e2fsck

            Linux Module Utilities --->

            [*] insmod

            [*] rmmod

            [ ] lsmod

            [ ] modprobe

            --- Options common to multiple modutils

            [*] Support tainted module checking with new kernels (NEW)

            [ ] Support version 2.2.x to 2.4.x Linux kernels

            [*] Support version 2.6.x Linux kernels (NEW)

            注意此處的選擇,可能會(huì)影響到編譯不過。

            Networking Utilities --->

            [*] ftpget

            [*] ftpput

            ...

            [*] wget

            ...

            [*] telnet

            [*] Pass TERM type to remote host (NEW)

            [*] Pass USER type to remote host (NEW)

            [*] telnetd

            注釋:tlenetd命令是一個(gè)遠(yuǎn)程登錄服務(wù)程序,把它編譯進(jìn)busybox中會(huì)為將來的調(diào)試提供很多的方便。

            Shells --->

            [*] Enable builtin version of 'echo'

            Linux System Utilities --->

            [*] mount

            [*] Support mounting NFS file systems

            注釋:這個(gè)比較重要,否則會(huì)在后來的mount時(shí)候出現(xiàn)mount program didn't pass remote address的錯(cuò)誤。

            在Installation Options里面可以設(shè)置安裝的路徑,即設(shè)置為新文件系統(tǒng)的根目錄。當(dāng)然也可以用缺省的 _install目錄,安裝之后再?gòu)?fù)制到新文件系統(tǒng)中去。

            在設(shè)置Login/Password Management Utilities的時(shí)候,為了免去配置glibc的麻煩,最好設(shè)置使用busybox自己的password和shadow文件的功能(Use internal password and group functions rather than system functions)。

            busybox提供的命令無疑比較全面,但它的缺省配置還不能構(gòu)成一個(gè)功能比較完備的文件系統(tǒng)。必須要添加的命令有Login/Password Management Utilities里面的getty、login和passwd,這些命令從前是由另外一個(gè)軟件包tinylogin所提供的。當(dāng)然,如果不需要一個(gè)交互的登錄界面,這些命令也可以去掉。通過設(shè)定內(nèi)核參數(shù)init=/bin/sh可以在系統(tǒng)啟圖1busybox的編譯配置界面動(dòng)后直接得到一個(gè)shell。

            設(shè)置完畢后保存、退出,執(zhí)行make; make install命令,busybox將在未來的根文件系統(tǒng)中建立/usr、/bin、/sbin等目錄。從中可以看到,編譯好的busybox可執(zhí)行文件和其他應(yīng)用命令的符號(hào)鏈接。典型的busybox文件大小在動(dòng)態(tài)鏈接的情況下是300 KB左右,靜態(tài)鏈接為800 KB左右,用它實(shí)現(xiàn)的文件系統(tǒng)完全可以控制在1 MB以下。但就目前為止,得到的還不是一個(gè)完整可用的文件系統(tǒng),必須要在這個(gè)基礎(chǔ)上添加一些必要的文件,讓它可以工作。

            編譯的時(shí)候可能出錯(cuò):variable or field '__user' declared void

            可以將

            /usr/local/arm/3.4.1/arm-linux/sys-include/linux/fd.h

            中修改下面的語句,編譯完成后再修改回去。

            //void __user *data;

            void *data;

            3. 安裝

            make install

            二、制作文件系統(tǒng)

            用已經(jīng)編譯好的busybox制作完善的能自啟動(dòng)的文件系統(tǒng)

            1、建立文件夾arm2410-root-1.0:

            mkdir /ebutek/arm2410-root-1.0

            export ARM2410HOME=/ebutek/arm2410-root-1.0

            export BUSYBOXHOME=/ebutek/busybox-1.1.0

            2、將busybox編譯后的文件拷貝到arm2410-root-1.0.

            cp -fr $BUSYBOXHOME/_install/* $arm2410HOME

            拷貝后可以看到$arm2410HOME下的文件如下:

            ls -all $arm2410HOME

            總計(jì) 20

            drwxr-xr-x 5 root root 4096 01-24 13:58 .

            drwxr-xr-x 16 root root 4096 01-24 13:56 ..

            drwxr-xr-x 2 root root 4096 01-24 13:58 bin

            lrwxrwxrwx 1 root root 11 01-24 13:58 linuxrc -> bin/busybox

            drwxr-xr-x 2 root root 4096 01-24 13:58 sbin

            drwxr-xr-x 4 root root 4096 01-24 13:58 usr

            3、創(chuàng)建其它文件夾:

            cd $arm2410HOME

            mkdir mnt root var tmp proc boot etc lib dev

            mkdir var/{lock,log,mail,run,spool}

            3、將交叉編譯器中的busybox需要的lib庫(kù)文件拷貝過來。

            在/usr/local/arm/3.4.1/arm-linux/lib中找到如下文件和鏈接:

            -rwxrwxrwx 192519 ld-2.3.2.so

            lrwxrwxrwx 111 ld-linux.so.2 -> ld-2.3.2.so

            -rwxrwxrwx 1 1190032 libc-2.3.2.so

            lrwxrwxrwx 113 libc.so.6 -> libc-2.3.2.so

            -rwxr-xr-x 118348 libcrypt-2.3.2.so


            上一頁 1 2 下一頁

            關(guān)鍵詞:

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉