Busybox 1.31.1无法执行Shell脚本

时间:2019-11-19 02:57:35

标签: busybox

现在,将最新稳定版本的Busybox(1.31.1)集成到我们的Openwrt项目中时,我面临一个问题。

openwrt中的busybox旧版本是1.23.2,当我将其升级到1.31.1时,我做了以下事情:

  1. 修改Openwrt busybox pkg生成文件:/ package / utils / busybox / Makefile

  2. cd / package / utils / busybox / config,

  3. ../ convert_menuconfig.pl ../../../../ build_dir / target-xxx / busybox-1.31.1

  4. cd ..

  5. ./ convert_default.pl <../../../ build_dir / target-xxx / busybox-1.31.1 / .config> Config-defaults.in

运行构建映像时,我可以看到busybox安装在/ bin /下,但是某些功能不起作用,例如ash / sh,请参见以下错误:

/#ls -l bin lrwxrwxrwx 1 root root 11 Nov 14 22:49灰-> busybox

-rwxr-xr-x 1根根5293568 Nov 14 22:49 busybox

lrwxrwxrwx 1 root root 11 Nov 14 22:49 cat-> busybox

...

lrwxrwxrwx 1 root root 11 Nov 14 22:49 ls-> busybox

...

lrwxrwxrwx 1 root root 11 Nov 14 22:49 sh-> busybox

...

“ cat”命令正常:

/#cat / etc / preinit

#!/bin/sh
# Copyright (C) 2006-2016 OpenWrt.org
# Copyright (C) 2010 Vertical Communications

[ -z "$PREINIT" ] && exec /sbin/init

export PATH="/usr/sbin:/usr/bin:/sbin:/bin"

. /lib/functions.sh
. /lib/functions/preinit.sh
. /lib/functions/system.sh

boot_hook_init preinit_essential
boot_hook_init preinit_main
boot_hook_init failsafe
boot_hook_init initramfs
boot_hook_init preinit_mount_root

for pi_source_file in /lib/preinit/*; do
            . $pi_source_file
done

boot_run_hook preinit_essential

pi_mount_skip_next=false
pi_jffs2_mount_success=false
pi_failsafe_net_message=false

boot_run_hook preinit_main

但是“ sh”不正确:

/#sh / etc / preinit

/etc/preinit: line 5: [: not found

/etc/preinit: /lib/functions.sh: line 57: syntax error: support for $((arith)) is disabled

0 个答案:

没有答案