2010年4月1日 星期四

移植 BASH 到 ARM 平台

起因:Android 的 shell 不怎麼具親和力~~~

在開發平台上使用 Android 時,因為 toolbox 使用起來不怎麼順手,所以習慣弄 Busybox 到平台上跑。那假設妳也覺得 Android 的 shell 使用起來不怎麼順手,該怎麼辦呢?

其實一個很簡單的方法就是執行 busybox sh 去載入 Busybox 預設的 shell (ash)。這時最大的差異就是萬一不小心敲錯指令,Backspace 終於可以用了。

那如果妳習慣 bash 呢?

其實解決方法也很簡單。

首先下載 bash 4.1 的源碼。

wget -c http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz

解開之後先執行:

CC=arm-linux-gcc ./configure --host=arm-linux --target=arm-linux --enable-static-link --enable-history --without-bash-malloc

然後修改 Makefile,在 CFLAGS 加上 -static 後,就可以 make 出 bash 這個可執行檔了。

接著將 bash 複製到 out/target/product/generic/system/bin 目錄內,將重新生成的 system.img 下載到平台就 OK 了。

1 則留言: