Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 開發入門 >> android linux基礎知識總結

android linux基礎知識總結

編輯:開發入門

一、busybox的編譯

  首先是交叉編譯設置,打開busybox根目錄下的Makefile,進行修改

  [attach]220792[/attach]

  一般情況下,為了讓busybox能夠獨立於其他的庫文件而可以單獨運行,需要將busybox編譯成靜態的。

  #make menuconfig

  Busybox Settings --->

  Build Options --->

  Build BusyBox as a static binary (no shared libs)        //靜態

  Installation Options --->

  Don't use /usr        //make install的時候不會安裝到根目錄,而是安裝到./_install

  Linux System UtilitIEs --->

  mdev        //相當於udev

  Support /etc/mdev.conf

  Support command execution at device addition/removal

  Shells --->

  Choose your default shell (msh)        //具有ash沒有的功能,比如支持tab補齊,歷史紀錄等等的高級功能

  而編譯成靜態的分為glibc和uclibc,如果系統沒有安裝uclibc的話,那就會報下面的錯

  [attach]220793[/attach]

  解決辦法是打開 applets/applets.c 將其中的錯誤注釋掉

  [attach]220794[/attach]

  其他的busybox選項根據需要進行選擇!

  #make

  #make install

  這樣就在./_install目錄下生成了busybox

  [attach]220795[/attach]

  二、ramdisk文件系統生成

  [attach]220796[/attach]

  上圖中首先創見了一個10M的文件系統映象

  然後使用losetup命令將此鏡像與塊設備/dev/loop0進行掛接

  如果出現"ioctl: LOOP_SET_FD:設備或資源忙",說明/dev/loop0設備還和一文件聯系,可用losetup /dev/loop0查看地,並可用-d 刪除

  [attach]220797[/attach]

  上圖是用命令mke2fs來格式化此塊設備/dev/loop0,其實就是格式化我們剛生成的那個文件系統鏡像,ext2格式

  [attach]220798[/attach]

  上圖是掛載文件系統鏡像,可見經過剛才格式化之後的文件系統鏡像裡面只有lost+found這個文件夾

  之後可以將步驟一中生成的_install目錄下的所有文件拷貝進來即可,

  /et/init.d/rcS文件如下修改

  [attach]220799[/attach]

  其他的系統配置文件可以根據需要進行更改

  三、u-boot加載內核和文件系統

  => tftp 800000 uImage; tFTP a00000 rootfs.img; bootm 800000 a00000

  Using FCC1 ETHERNET device

  TFTP from server 192.168.0.102; our IP address is 192.168.0.20

  Filename 'uImage'.

  Load address: 0x800000

  Loading: #################################################################

  #################################################################

  #################################################################

  #################################################################

  #################################################################

  ###########################################

  done

  Bytes transferred = 1880231 (1cb0a7 hex)

  Using FCC1 ETHERNET device

  TFTP from server 192.168.0.102; our IP address is 192.168.0.20

  Filename 'rootfs.img'.

  Load address: 0xa00000

  Loading: #################################################################

  #################################################################

  #################################################################

  #################################################################

  #################################################################

  #################################################################

  #################################################################

  #################################################################

  #################################################################

  ###################################

  done

  Bytes transferred = 3170368 (306040 hex)

  ## Booting image at 00800000 ...

  Image Name:   Linux-2.6.11

  Image Type:   PowerPC Linux Kernel Image (gzip compressed)

  Data Size:    1880167 Bytes =  1.8 MB

  Load Address: 00000000

  Entry Point:  00000000

  Verifying Checksum ... OK

  Uncompressing Kernel Image ... OK

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved