一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3808|回复: 0

bash shell移植到ARM Linux教程

[复制链接]
发表于 2017-3-23 10:30 | 显示全部楼层 |阅读模式
! k0 P$ Z- N( M; l% Q
一般情况下,在ARM开发板中都会有sh,这是随busybox携带的脚本工具。当然,如果是完整版的busybox,里面也会有bash。如果想将shell脚本在ARM目标机中运行,则需要把脚本第一行的#!/bin/bash改为#!/bin/sh。但这样虽然可以执行脚本,但是脚本中的许多语法是不支持的,例如:判断 if [ -d /usr ] ; if [ -b /dev/sda1 ]等等,脚本运行时会报错,解决方法就是将bash移植到目标板。
ae4ae38492a5f17ee19e78d814c560fa.png
步骤:
1 下载最新版bash2 解压
将下载的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                      # 解压5 O7 N1 x, f& r/ h4 D% y" T
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:指定编译后镜像和库文件安装的位置,这些我们要放到目标板上的5 V( P; \; n1 w% v. M% `
4 设置静态编译
打开 Makefile 文件,
$ vi Makefile$ U3 I7 Z1 F1 U+ N
  k4 L5 [( k# H
在 Makefile 的 CFLAGS 后面加上 -static 选项:
CFLAGS = -g -O2 -static
然后按ESC返回命令模式,输入 x 回车,保存并退出vi。
5 编译
编译并安装:
$ make & make install0 N" L! R4 p. g/ W& i
6 复制到目标板
安装成功后在安装路径 /home/veryarm/bash/install 下生成两个目录 bin 和 share,将bin中的 bash 可执行文件复制至开发板 /bin 中,并修改执行权限:
# cp bash /bin# chmod +x /bin/bash
- q- R# R1 J/ l. r# |3 P7 测试
在开发板中运行bash
# bash
在开发版中运行相关脚本(自行编写):
# ./test.sh
恭喜,移植成功!

$ L: K4 O9 O( f7 j

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-1-11 17:23 , Processed in 0.032704 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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