9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > 動態(tài)編譯busybox和編譯并安裝busybox

動態(tài)編譯busybox和編譯并安裝busybox

時間: 若木635 分享

動態(tài)編譯busybox和編譯并安裝busybox

  動態(tài)編譯busybox

  進入Build Options時,不要選擇Build Busybox as a static binary,其他所有操作步驟跟靜態(tài)編譯一樣,你會發(fā)現(xiàn)這樣建立的文件系統(tǒng)無法啟動,終端上打印出如下消息:

  Kernel panic-not synving:No init found. Try passing init=option to kernel.

  為什么會出現(xiàn)這種問題呢?這就得回到兩種編譯方式的特點上來。靜態(tài)編譯時是將所用到的庫文件一起編譯了進去,而動態(tài)編譯時是在需要時才調(diào)用相應(yīng)的庫。我們選擇動態(tài)編譯后,沒有添加任何庫文件就運行,顯然是會出錯的。那么如何查看busybox可執(zhí)行文件里使用的庫呢。ldd和Readelf都可以顯示。

  ldd

  下面是查看cat的庫的結(jié)果,linux-gate.so.1是與內(nèi)核通信的,不用管。所有程序其實都是通過ld-linux.so.2來找?guī)煳募模褪且粋€中介,必不可少。

  #ldd /bin/cat

  linux-gate.so.1 => (0x00bfe000)

  libc.so.6 => /lib/libc.so.6 (0x00a4a000)

  /lib/ld-linux.so.2 (0x00a28000)

  readelf

  下面是編譯的ARM上的系統(tǒng)的庫文件查找。

  # arm-uclibc-linux-readelf -d busybox

  Dynamic section at offset 0xca014 contains 18 entries:

  標記 類型 名稱/值

  0x00000001 (NEEDED) 共享庫:[libm.so.0]

  0x00000001 (NEEDED) 共享庫:[libc.so.0]

  0x0000000c (INIT) 0xbe24

  0x0000000d (FINI) 0xb2054

  0x00000004 (HASH) 0x80e8

  0x00000005 (STRTAB) 0xa500

  0x00000006 (SYMTAB) 0x8b70

  0x0000000a (STRSZ) 3259 (bytes)

  0x0000000b (SYMENT) 16 (bytes)

  0x00000015 (DEBUG) 0x0

  0x00000003 (PLTGOT) 0xda0cc

  0x00000002 (PLTRELSZ) 3040 (bytes)

  0x00000014 (PLTREL) REL

  0x00000017 (JMPREL) 0xb244

  0x00000011 (REL) 0xb1bc

  0x00000012 (RELSZ) 136 (bytes)

  0x00000013 (RELENT) 8 (bytes)

  0x00000000 (NULL) 0x0

  從上面的結(jié)果中,我們可以看到,busybox這個程序使用到了libm.so.0和libc.so.0兩個庫文件,實際上這是2個符號鏈接,分別指向libc-0.9.28.so和libuClibc-0.9.28.so。

  將以上四個文件分別拷貝到lib目錄下。按理說,這樣應(yīng)該就可以了,但是仍然無法正常運行。顯示的錯誤信息和剛剛沒加庫之前一樣。可能的原因有2種:一是庫文件沒有添加全,二是庫文件沒有正確被加載。

  根據(jù)readelf顯示的結(jié)果應(yīng)該不是第一種原因。那么到底為什么沒被正確加載呢?原來庫文件的加載,還需要一個共享庫加載器。找到對應(yīng)的文件ld-uClibc-0.9.28.so和ld-uClibc.so.0添加到lib目錄下后。運行正常。

  編譯并安裝busybox

  #make

  #make install

  用 make 命令編譯busybox軟件。

  用 make CONFIG_PREFIX=<安裝目錄> install 命令安裝。

  如果在命令行中省略CONFIG_PREFIX變量的賦值,則會安裝缺省值 ./_install 目錄下。CONFIG_PREFIX可以在make menuconfig的配置界面中修改。

  編譯好后在busybox目錄下生成子目錄_install,里面的內(nèi)容:

  drwxr-xr-x 2 root root 4096 11月 24 15:28 bin

  rwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox

  drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin

  Ø bin包含用戶工具,其中,busybox可執(zhí)行文件就在這個目錄下,該目錄下其他所有文件都是指向busybox的符號鏈接

  Ø sbin目錄包含操作系統(tǒng)工具,同樣也指向busybox。

  Ø linuxrc是一個鏈接文件,指向busybox。

  將文件復(fù)制到你的鏡像根文件夾中。

75372 主站蜘蛛池模板: 亚洲男女羞羞无遮挡久久丫| 亚洲国产码专区在线观看| 人妻有码中文字幕在线| 91中文字幕一区在线| 97亚洲熟妇自偷自拍另类图片| 国产精品日韩精品日韩| 久久精品国产福利一区二区| 成人精品自拍视频免费看| 黑人巨大精品oideo| 国产精品先锋资源站先锋影院| 久久精品国产蜜臀av| 亚洲免费一区二区av| 中文字幕在线日韩一区| 亚洲成av人片一区二区| 午夜av高清在线观看| 中文丰满岳乱妇在线观看| 国产玖玖视频| 成人欧美一区二区三区在线观看| 午夜福利在线观看成人| 5D肉蒲团之性战奶水欧美| 福利一区二区不卡国产| 国产一区二区三区色视频| 亚洲第一视频区| 麻豆一区二区三区精品视频| 久久人人97超碰人人澡爱香蕉 | 国产成人啪精品视频免费APP | 真实国产乱子伦视频| 青青草原国产AV福利网站| 成人3D动漫一区二区三区| 美女午夜福利视频一区二区| 亚洲午夜亚洲精品国产成人| jk白丝喷浆| 久久综合给合久久狠狠狠| 中文字幕日韩精品人妻| 黄色A级国产免费大片视频| 一区二区亚洲人妻av| 久久99久久99精品免视看国产成人| 成人福利国产午夜AV免费不卡在线 | 国产成A人片在线观看视频下载 | 久久精品国产免费观看频道| 亚洲国产精品久久久久4婷婷|