设为首页收藏本站
查看: 10620|回复: 0

ARM Linux 移植 bash

[复制链接]

33

主题

15

回帖

833

积分

管理员

积分
833
米尔小助手1 发表于 2014-7-16 17:36:23 | 显示全部楼层 |阅读模式
目标板中没有bash,只有sh。如果想将shell脚本在目标机中运行,则需要把脚本第一行的#!/bin/bash改为#!/bin/sh。但这样虽然可以执行脚本,但是脚本中的许多语法是不支持的,例如:判断 if [ -d /usr ] ; if [ -b /dev/sda1 ]等等,脚本运行时会报错,解决方法就是将bash移植到目标板。

移植流程:
1、下载最新版bash
地址:http://www.gnu.org/software/bash/bash.html

2、解压
[mw_shl_code=bash,true]
tar zxvf bash-4.2.tar.gz
[/mw_shl_code]

3、配置
[mw_shl_code=bash,true]
./configure CC=/usr/local/arm-2010q1/bin/arm-none-linux-gnueabi-gcc --prefix=/home/gary/linux/bash/install --host=arm-linux --target=arm-none-linux-gnueabi --enable-static-link --enable-history --without-bash-malloc
[/mw_shl_code]注意:CC 指定交叉编译工具,--prefix指定编译后镜像和库文件安装的位置,这些我们要放到目标板上的。

4、设置静态编译
打开 Makefile 文件,
[mw_shl_code=bash,true]vi Makefile[/mw_shl_code]
在 Makefile 的 CFLAGS 后面加上 -static 选项:
[mw_shl_code=applescript,true]
CFLAGS = -g -O2 -static
[/mw_shl_code]

5、编译:
[mw_shl_code=bash,true]
make
make install
[/mw_shl_code]

6、安装成功后在安装路径 /home/gary/linux/bash/install 下生成两个文件夹 bin share,将bin中的bash可执行文件复制至开发板 /bin 中,并修改执行权限:
[mw_shl_code=bash,true]chmod +x /bin/bash[/mw_shl_code]

7、测试
在开发板中运行bash
[mw_shl_code=bash,true]bash[/mw_shl_code]

在开发版中运行相关脚本
[mw_shl_code=bash,true]./test.sh[/mw_shl_code]

恭喜,移植成功。

使用 arm-2010q1 交叉编译用具上编译好的 bash 镜像下载:
bash (3.02 MB, 下载次数: 7810)



回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-5-5 19:21 , Processed in 0.042759 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表