给 nanopi m2 Android系统安装busybox

本次参考了http://blog.csdn.net/lxgwm2008/article/details/38925051

但在原有基础上有一定创新


1.首先有一块nanopi2 的开发板,CPU是 4418芯片

2. 下载busybox。
下载地址:http://www.busybox.net/downloads/binaries/1.21.1/
(目前最新版是1.21.1)
打开网页后可以看到busybox支持了各种不同的arch,这里需要选择跟手机arch一致的版本。
 4418芯片是arm-v7,因此选择busybox-armv7l。
3. 安装busybox
将下载的busybox-armv7l改名为busybox,然后push到手机的/system目录下:
[cpp] view plain copy
1. adb push busybox /system  
注:
a)如果遇到提示说没有权限,请先执行su
b)如果提示Read-only file system,则需要将/system目录重新挂在为可读写方式。具体可参考:http://blog.csdn.net/hktkfly6/article/details/52496703 (nanopi m2开发板 mount:Read-only file system Android手机不能挂载读写,终极解决方案)
c)对于未获得root权限的手机,可以先push到sd卡目录,push busybox /mnt/sdcard。可以安装kingroot获取root权限。得到root权限后adb shell 登录后,再cp busybox /system/bin/
push成功后,开始安装busybox:
[html] view plain copy
1. chmod 755 busybox  
2. ./busybox --install  
注意:"./"很重要
 此命令将busybox默认安装到/usr/bin目录下。有些手机没有这个目录,比如nanopi2 的开发板,其目录是/system/bin,这是需要更改默认安装目录:
[html] view plain copy
1. ./busybox --install /system/bin  
注意:"./"很重要
安装成功后,执行busybox命令,会有如下提示:
[html] view plain copy
1. shell@hlte:/ $ busybox  
2. busybox  
3. BusyBox v1.21.1 (2013-07-08 10:26:30 CDT) multi-call binary.  
4. BusyBox is copyrighted by many authors between 1998-2012.  
5. Licensed under GPLv2. See source distribution for detailed  
6. copyright notices.  
7.  
8. Usage: busybox [function [arguments]...]  
9.   or: busybox --list[-full]  
10.   or: busybox --install [-s] [DIR]  
11.   or: function [arguments]...  
12.  
13.        BusyBox is a multi-call binary that combines many common Unix  
14.        utilities into a single executable.  Most people will create a  
15.        link to busybox for each function they wish to use and BusyBox  
16.        will act like whatever it was invoked as.  
17.  
18. Currently defined functions:  
19.        [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arp, arping, ash,  
20.        awk, base64, basename, beep, blkid, blockdev, bootchartd, brctl,  
21.        bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod,  
22.        chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm,  
23.        conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd,  
24.        deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff,  
25.        dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap,  
26.        dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake,  
27.        expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat,  
28.        fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk,  
29.        fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty,  
30.        grep, groups, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid,  
31.        hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave,  
32.        ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip,  
33.        ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel,  
34.        kbd_mode, kill, killall, killall5, klogd, last, less, linux32, linux64,  
35.        linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread,  
36.        losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat,  
37.        lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg,  
38.        microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix,  
39.        mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more,  
40.        mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite,  
41.        nbd-client, nc, netstat, nice, nmeter, nohup, nslookup, ntpd, od,  
42.        openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress,  
43.        pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv,  
44.        printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev,  
45.        readahead, readlink, readprofile, realpath, reboot, reformime,  
46.        remove-shell, renice, reset, resize, rev, rm, rmdir, rmmod, route, rpm,  
47.        rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,  
48.        scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,  
49.        setkeycodes, setlogcons, setserial, setsid, setuidgid, sh, sha1sum,  
50.        sha256sum, sha3sum, sha512sum, showkey, slattach, sleep, smemcap,  
51.        softlimit, sort, split, start-stop-daemon, stat, strings, stty, su,  
52.        sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl,  
53.        syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp,  
54.        tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true,  
55.        tty, ttysize, tunctl, udhcpc, udhcpd, udpsvd, umount, uname, unexpand,  
56.        uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, users, usleep,  
57.        uudecode, uuencode, vconfig, vi, vlock, volname, wall, watch, watchdog,  
58.        wc, wget, which, who, whoami, whois, xargs, xz, xzcat, yes, zcat, zcip  
59.  
60. shell@hlte:/ $  
安装busybox的好处是可以执行一些系统不带的命令,比如ifconfig
#busybox ifconfig
未安装时无任何输出,安装后输出效果与Linux系统一致。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Busybox创建nfs文件系统 1、解压busybox-1.19.4.tar.bz2 修改Makefilez中的ARCH和CROSS_COMPILE与本机的路径一致: CROSS_COMPILE ?= /opt/crosstool/bin/arm-s3c2410-linux-gnu- ... ARCH ?= arm 2、编译busybox。先make menuconfig,修改以下: Busybox Settings ---> Build Options ---> Build BusyBox as a static binary (no shared libs) //直接编译成静态库,省事点 (/opt/crosstool/bin/arm-s3c2410-linux-gnu-) Cross Compiler prefix //这里和Makefile里保持一致,应该写一处就行了 Installation Options ---> Don't use /usr //不用本机的目录 Shells ---> Choose your default shell (ash) ---> //这里选择shell为ash,应该是默认选中的 --- ash //把ash这档的选项全部选上 保存退出,直接make,make install。 3、用shell脚本创建根文件系统的目录结构,并在想要建立根文件系统的地方运行此脚本。我是用root用户登陆的,直接创建了设备节点。 [root@Sure root-s3c2410]# vim makedir.sh #!/bin/sh echo "makeing rootdir" mkdir rootfs cd rootfs echo "makeing dir: bin dev etc lib proc sbin sys usr" mkdir bin dev etc lib proc sbin sys usr #8 dirs mkdir usr/bin usr/lib usr/sbin lib/modules #Don't use mknod, unless you run this Script as mknod -m 600 dev/console c 5 1 mknod -m 666 dev/null c 1 3 echo "making dir: mnt tmp var" mkdir mnt tmp var chmod 1777 tmp mkdir mnt/etc mnt/jiffs2 mnt/yaffs mnt/data mnt/temp mkdir var/lib var/lock var/log var/run var/tmp chmod 1777 var/tmp echo "making dir: home root boot" mkdir home root boot echo "done" 执行这个sh: [root@Sure root-s3c2410]# sh makedir.sh 创建出一个主文件夹rootfs,里面有一批文件: [root@Sure rootfs]# ls bin boot dev etc home lib mnt proc root sbin sys tmp usr var 4、把busybox源码目录下的etc的内容拷贝到这里的etc下 [root@Sure rootfs]# cd etc/ [root@Sure etc]# cp -a /home/jacky/busybox-1.11.1/examples/bootfloppy/etc/* ./ 5、修改拷贝过来的profile文件 [root@Sure etc]# vim profile # /etc/profile: system-wide .profile file for the Bourne shells echo "Processing /etc/profile" # no-op # Set search library path echo " Set search library path" export LD_LIBRARY_PATH=/lib:/usr/lib # Set user path echo " Set user path" PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH # Set PS1 echo " Set PS1" HOSTNAME=`/bin/hostname` # 此处让shell提示符显示host名称的。是`,不是’,要注意 # 会在进入根系统后显示Jacky export PS1="\\e[32m[$USER@$HOSTNAME \\w\\a]\\$\\e[00;37m " # 此处\\e[32m是让后面的“[$USER@$HOSTNAME \\w\\a]”显示为绿色 # \\e[00是关闭效果 # \\e[05是闪烁 # 37m是让后面的显示为白色 # 多个命令可以;号隔开 echo "All done!" echo 6、修改初始化文件inittab和fstab [root@Sure etc]# vim inittab ::sysinit:/etc/init.d/rcS ::respawn:-/bin/sh ::restart:/sbin/init tty2::askfirst:-/bin/sh ::ctrlaltdel:/bin/umount -a -r ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff –a [root@Sure etc]# vim fstab proc /proc proc defaults 0 0 none /tmp ramfs defaults 0 0 mdev /dev ramfs defaults 0 0 sysfs /sys sysfs defaults 0 0 7、修改初始化的脚本文件init.d/rcS [root@Sure etc]# vim init.d/rcS #! /bin/sh echo "Processing etc/init.d/rc.S" #hostname ${HOSTNAME} echo " Mount all" /bin/mount -a echo " Start mdev...." /bin/echo /sbin/mdev > proc/sys/kernel/hotplug mdev -s echo "****************************************************" echo " RootFS by NFS, s3c2410" echo " Created by Jacky Xu @ 2008.7.13" echo " Enjoy it!!!" echo "****************************************************" echo 8、创建一个空的mdev.conf文件,在挂载根文件系统时会用到的 [root@Sure etc]# touch mdev.conf 9、从本机拷贝passwd、shadow、group文件。 [root@Sure etc]# cp /etc/passwd . [root@Sure etc]# cp /etc/shadow . [root@Sure etc]# cp /etc/group . 修改passwd文件,把第一行和最后一行的bash修改成ash。 10、把busybox默认安装目录中的文件全部复制到这里的rootfs中。会发现多了linuxrc -> bin/busybox文件,这是挂载文件系统需要执行的。 [root@Sure etc]# cd .. [root@Sure rootfs]# cp -Rfv /home/jacky/busybox-1.11.1/_install/ ./ OK,以上用busybox创建了一个基本的文件系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿破仑的海阔天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值