bash shell移植到ARM Linux教程

應用移植 8489瀏覽 4評論

一般情況下,在ARM開發板中都會有sh,這是隨busybox攜帶的腳本工具。當然,如果是完整版的busybox,里面也會有bash。如果想將shell腳本在ARM目標機中運行,則需要把腳本第一行的#!/bin/bash改為#!/bin/sh。但這樣雖然可以執行腳本,但是腳本中的許多語法是不支持的,例如:判斷 if [ -d /usr ] ; if [ -b /dev/sda1 ]等等,腳本運行時會報錯,解決方法就是將bash移植到目標板。

步驟:

1 下載最新版bash

地址:http://www.gnu.org/software/bash/bash.html

2 解壓

將下載的bash壓縮包解壓,命令:

$ mkdir /home/veryarm/bash                      # 創建bash工作目錄
$ cp bash-4.2.tar.gz /home/veryarm/bash         # 復制安裝包
$ cd ~/bash                                     # 進入/home/veryarm/bash目錄
$ tar zxvf bash-4.2.tar.gz                      # 解壓

 

3、配置

編譯之前,要進行配置,命令:

$ mkdir install                                 # 創建安裝目錄
$ cd bash-4.2                                   # 進入目錄
$ export PATH=$PATH:/usr/local/arm-2010q1/bin/  # 添加交叉編譯器路徑到PATH環境變量中
$ ./configure CC=arm-none-linux-gnueabi-gcc --prefix=/home/veryarm/bash/install --host=arm-linux --target=arm-none-linux-gnueabi --enable-static-link --enable-history --without-bash-malloc

其中:

  • CC:指定交叉編譯工具;
  • --prefix:指定編譯后鏡像和庫文件安裝的位置,這些我們要放到目標板上的

4 設置靜態編譯

打開 Makefile 文件,

$ vi Makefile

在 Makefile 的 CFLAGS 后面加上 -static 選項:

CFLAGS = -g -O2 -static

然后按ESC返回命令模式,輸入 x 回車,保存并退出vi。

5 編譯

編譯并安裝:

$ make & make install

 

6 復制到目標板

安裝成功后在安裝路徑 /home/veryarm/bash/install 下生成兩個目錄 bin?和?share,將bin中的 bash 可執行文件復制至開發板 /bin 中,并修改執行權限:

# cp bash /bin
# chmod +x /bin/bash

 

7 測試

在開發板中運行bash

# bash

在開發版中運行相關腳本(自行編寫):

# ./test.sh

恭喜,移植成功!

發表我的評論
取消評論

表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

網友最新評論 (4)

  1. 按照上面所說以成功移植到openwrt,但是,使用該bash的時候按刪除鍵無法刪除字符
    heln 4年前 (2015-09-18) 回復 編輯
  2. 韓美女車模 4年前 (2015-10-05) 回復 編輯
  3. 行,有意義,我頂 謝謝您了
    蘇巧容 4年前 (2016-01-23) 回復 編輯
七星彩走势图2元网官网