1、刚刚安装了linux red hat 9.0采用的NAT网络方式,ip是dhcp自动分配。ping127.0.0.1 ping不通是怎么回事?
ping不通127.0.0.1说明网卡没有配置,需要先新建一块虚拟网卡,最好手动配置静态IP和dns、网关。
2、busybox不能连网了
【六大技巧:完美解决WiFi无法连接】
第一招:关闭并重启Wi-Fi连接。
用手机上网,手机中会保留一个由Wi-Fi连接分配的网络IP地址,它会被应用到当前Wi-Fi中,如果没有出现地址冲突,就不用担心,如果有冲突就得关闭并重启Wi-Fi连接。方法如下:
打开手机菜单,进入“设置”栏,选择“无线和网络设置”,进入“Wi-Fi设置”项目,在新窗口中选择“关闭Wi-Fi”,在完成关闭操作后,重新进入该项目,选择“打开Wi-Fi”,即可重启Wi-Fi连接。
第二招:忽略网络
如果上面的做法没有起作用的话,就应该选择让安卓设备忽略该网络,并重新进行添加操作。
移动到需要忽略网络的覆盖范围之外,选择忽略该网络,返回到覆盖范围之中,等待网络自动显示出来,然后输入网络密码重新登入。这样安卓手机就应该可以获得新的地址,并正常工作了。
第三招:检查Wi-Fi的密码
通常情况下,Wi-Fi的密码应该是定时更改的;但是,当网络进行这样的调整时,手机不会自动更新,需要手动更新Wi-Fi的密码。
移动到出现问题网络的覆盖范围之外,进入需要进行调整的Wi-Fi配置项目,选择“调整网络设置”,在窗口中输入新密码并对输入密码信息进行审核,最后选择“保存密码”。这样Wi-Fi就可以正常工作了。
第四招:查看Wi-Fi高级设置如果上述所有方法都没有能解决问题的话,下面要做的就是进入安卓手机Wi-Fi的高级设置进行相关设置了。打开手机菜单,进入“设置”窗口,选择“无线和网络”,进入“Wi-Fi设置”,然后进入“高级”选项,进入“代理服务器设置”,确认安卓设备没有使用代理服务器,如果在代理部分发现IP地址或者域名的话,将其删除,即可解决Wi-Fi连接故障。
小提示:大多数情况下,代理和端口设置并不会被更改;但在Wi-Fi出现常见问题时,选择查看这几项总归不是错的。
第五招:设置静态IP地址
还有一种解决方法就是为安卓设备设置静态IP地址。这表明用户需要连接的路由器上可能存在DHCP地址分配方面的问题,或者设备获得了错误的地址。为了设置静态IP地址,需要进入静态IP地址设置栏将信息输入进去(IP地址、网关、子网掩码、DNS等项目)。
设置静态IP地址的唯一问题是它将适用于所有的Wi-Fi,因此只有在用户仅仅连接到一张Wi-Fi上的情况时,才能使用这种方法解决问题。
第六招:关闭Wi-Fi休眠策略
如果Wi-Fi经常出现问题的话,使用者应该尝试将Wi-Fi休眠策略设置为从不,看看问题会不会消失。如果将该策略设置为从不的话,耗费的电力将会上升,但是从另外的方面来看,这也会让Wi-Fi连接更稳定。
3、linux下如何ping多个ip 如192.168.6.1----20 192.168.7.1----20 环境,PAD装了个busybox,使用超级终端
有个软件叫fping
4、如何利用busybox制作根文件系统
选定 busybox-1.9.2.tar.bz2 这个版本, 以静态方式编译, 即生成的 busybox 不需要共享库的支持就能运行。这样做我们就不需要布署程序库了。缺点是自己写的 arm-linux 程序在这个根文件系统中是不能运行的,因为缺少共享程序库的支持。不过不用担心,通过在目标机里以挂接 NFS 的方式, 将宿主机的 arm-linux-gcc 编译器的库文件挂到 arm-linux 的 /lib 下, 就可完美的运行我们自己的程序了。
现在开始制作静态链接库的根文件系统。
1、准备根文件系统
首先准备制作工具BusyBox1.9.2。
准备交叉编译工具arm-linux-gcc 3.3.2。
在机器上建立rootfs的文件夹
#mkdir rootfs
在rootfs中建立linux系统中典型的文件夹
#cd rootfs
#mkdir root home bin sbin etc dev usr lib tmp mnt sys proc
#mkdir usr/lib usr/bin
#pwd
/home/su/rootfs
2、解压源码包
#tar xjf busybox-1.9.2.tar.bz2
#cd busybox-1.9.2
3、修改 Makefile,
#vi Makefile
将Makefile中的
CROSS_COMPILE ?=
改为
CROSS_COMPILE ?= /usr/local/arm/3.3.2/bin/arm-linux-
注:这个版本的 busybox 用 3.4.1 的 arm-linux-gcc 编译有些问题, 用 3.3.2 版则可顺利编译。
4、定制 busybox
选择busybox下全部的可执行程序
#make defconfig
进到配置选项
#make menuconfig
设置静态编译方式
Busybox Settings ---> Build Options ---> [*] Build BusyBox as a static binary (no shared libs)
Busybox Settings ---> Install Options ---> 中输入建立根文件系统的文件所在的路径/home/su/rootfs。
其它的默认。
确保 [*] Build BusyBox as a static binary (no shared libs) 被选中,保存退出
5、执行 make 编译
#make
编译出错, 信息如下:
applets/applets.c:15:2: warning: #warning Static linking against glibc proces buggy executables
applets/applets.c:16:2: warning: #warning (glibc does not cope well with ld --gc-sections).
applets/applets.c:17:2: warning: #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400
applets/applets.c:18:2: warning: #warning Note that glibc is unsuitable for static linking anyway.
applets/applets.c:19:2: warning: #warning If you still want to do it, remove -Wl,--gc-sections
applets/applets.c:20:2: warning: #warning from scripts/trylink and remove this warning.
applets/applets.c:21:2: error: #error Aborting compilation.
make[1]: *** [applets/applets.o] Error 1
按照提示,修改文件 applets/applets.c 第 21 行, 将
#error Aborting compilation.
注释掉:
执行 make 重新编译
#make
编译通过, busybox 被生成了, 然后执行
#make install
busybox 就被安装到指定的路径下了/home/su/rootfs,这时可发现rootfs下多了个liunxrc的文件,bin、sbin下也多了很多文件。用ls –l命令查看其中的一个文件,可发现其是链接到busybox的一个连接符,所以我们之后在目标机上运行的命令大多都会调用busybox这个文件的。
若之前忘了指定路径,默认生成到临时目录busybox-1.9.2/_install 下了。
6、编写配置/etc下的初始化程序(可省略)
最简单的做法是把busybox-1.9.2/examples/bootfloppy/etc下的全部文件拷到目标文件的etc目录下
#cd /home/su/busybox-1.9.2/examples/bootfloppy/etc
#cp –rf * /home/su/rootfs/etc
也可自己写这些文件。
7、把rootfs做成镜像
#mkcramfs rootfs rootfs.cramfs
8、把rootfs.cramfs烧写到目标机中。
9、运行目标机
这时会遇到一个错误信息:
Can’t open tty2
Can’t open tty3
Can’t open tty4
解决办法:把/rootfs/etc/ inittab 文件的第三行“tty2::askfirst:-bin/sh”删除掉。
返回到第7步重做。
现实中,动态编译的方法更适合工程的需要,所以一般是采用动态的方法编译根文件系统的。若选择动态编译的办法,大体方法还是一样的,存在一些不同之处是:
不同之处之一是:
进到配置选项
#make menuconfig
选择动态方式
Busybox Settings ---> Build Options ---> [*] Build Shared libbusybox
不同之处之二是:
上面静态编译出现的出错信息不会出现了,所以不需对程序做任何修改,但还是必须用arm-linux-gcc 3.3.2编译,否则还是会有麻烦。
不同之处之三是(最大的不同之处):
编译完成后,需进到rootfs目录的lib中,往里面添加一些库文件
#cd /home/su/rootfs/lib
这里有点麻烦,我怎么知道需要什么库文件的支持呢?
最简单的办法是把arm-linux-gcc 3.3.2下的整个lib库拷进来,简单省事。但是这么做存在一个问题,做出的根文件系统非常大。
另一个办法是:
#cd /home/su/rootfs/bin
#arm-linux-readelf busybox | grep shared
这样就可以显示出系统运行起来需要什么库文件,再把相应的库文件拷到/home/su/rootfs/lib下。一般而言,系统库用到两个:动态链接器ld-linux.so和c函数库Glibc,Glibc包括:
ld-linux:动态链接库,必需
libc: 标准c函数库,必需
libm: 数学库,一般需要
libdl: 用于动态装载共享库,较少用到
libcrypt: 加密附加库,需要认证的程序用到,较少用
libpthread: POSIX线程库,一般需要
如果需要某个函数库,我们可以将这些库和对应的符号链接拷到目标根文件系统的/lib目录下。简单起见,应该使用-d选项或-a选项调用cp命令,这样可保留完整的符号链接信息。
例:
#cp –a libc.so.6 /home/su/rootfs/lib/
为了减少运行时库的大小,我们应该使用交叉编译版本即arm-linux-gcc 3.3.2的strip工具来处理根文件系统的库文件,把二进制文件中的包含的符号表和调试信息删除掉。
例:
#arm-linux-strip /home/su/rootfs/lib/*.so
注意:
使用busybox做文件系统时,运行make命令,系统会马上显示:
没有/dev/null这个文件
但是还是能最终编译出根文件系统,问题出在重启linux系统,机器进不去了。提示出错,信息如下:
/etc/rc.d/rc.sysinit: line 173:/dev/null: read-only file system
/etc/rc.d/rc.sysinit: line 173:/dev/null: read-only file system
/etc/rc.d/rc.sysinit: line 184:/dev/null: read-only file system
/etc/rc.d/rc.sysinit: line 184:/dev/null: read-only file system
/etc/rc.d/rc.sysinit: line 200:/dev/null: read-only file system
.
.
.
***An error occured ring the file system check.
***Dropping you to a shell;the system will reboot
***when you leave the shell
Give root password for maintenance
(or type Control-D to continue):
解决办法:
按提示输入root用户的密码,回车,可看到
(Repair filesystem)1#:
依次输入命令:
(Repair filesystem)1# mount -n -o remount,rw /
(Repair filesystem)1# rm -f /dev/null
(Repair filesystem)1# mknod -m 0666 /dev/null c 1 3
(Repair filesystem)1# reboot
问题解决。
5、linux嵌入式系统上执行mount命令,挂载nfs,没有任何输出,和busybox或者net driver那个有关?
等…抄…可能是 nfs 服务器的返回数据有问题被卡死了吧?
没有提示符表明这条命令正在运行……
你为啥不先在局域网里面找个快点的服务器,或者直接嵌入式和你的工作机组一个小的局域网来测试一下 NFS ,你这个 NFS 服务器貌似是个互联网上的远程服务器,这是不是有点太远了?
6、andorid busybox vi 怎么使用
Android所提供的命令行工具是非常有限的, 想要使用更多和熟悉的工具,那么让Busybox来帮助你把!
下载 Busybox
使用非常简单
# mkdir /data/busybox, on your G1 terminal.
复制busybox到一下目录
/data/busybox/busybox
记得执行 # chmod 655 busybox
安装将会建立自动建立软链接
# cd /data/busybox
./busybox –install.
为了更方便的使用,可以执行以下命令,就可以方便的在任意目录执行相关命令
# export PATH=/data/busybox:$PATH.
———————–
查看android linux内核版本
# busybox uname -a
Linux localhost 2.6.25-01843-gfea26b0 #6 PREEMPT Mon Oct 6 14:13:36 PDT 2008 arm v6l unknown
启动一个httpd服务器
#busybox httpd
启动后你在模拟器的web浏览器上访问 http://127.0.0.1 即可
执行运行
#busybox
即可查看busybox支持的命令。
busybox支持的命令包括:
[, [[, addgroup, adser, adjtimex, ar, arp, arping, ash,
awk, basename, bunzip2, bzcat, bzip2, cal, cat, catv,
chattr, chgrp, chmod, chown, chpasswd, chpst, chroot,
chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond,
crontab, cryptpw, cut, date, dc, dd, deallocvt, delgroup,
deluser, df, dhcprelay, diff, dirname, dmesg, dnsd, dos2unix,
, mpkmap, mpleases, echo, ed, egrep, eject, env,
envdir, envuidgid, expand, expr, fakeidentd, false, fbset,
fdflush, fdformat, fdisk, fgrep, find, fold, free, freeramdisk,
fsck, fsck.minix, ftpget, ftpput, fuser, getopt, getty,
grep, gunzip, gzip, halt, hdparm, head, hexmp, hostid,
hostname, httpd, hwclock, id, ifconfig, ifdown, ifup,
inetd, init, insmod, install, ip, ipaddr, ipcalc, ipcrm,
ipcs, iplink, iproute, iprule, iptunnel, kbd_mode, kill,
killall, killall5, klogd, last, length, less, linux32,
linux64, linuxrc, ln, loadfont, loadkmap, logger, login,
logname, logread, losetup, ls, lsattr, lsmod, lzmacat,
makedevs, md5sum, mdev, mesg, microcom, mkdir, mkfifo,
mkfs.minix, mknod, mkswap, mktemp, modprobe, more, mount,
mountpoint, mt, mv, nameif, nc, netstat, nice, nmeter,
nohup, nslookup, od, openvt, passwd, patch, pgrep, pidof,
ping, ping6, pipe_progress, pivot_root, pkill, poweroff,
printenv, printf, ps, pscan, pwd, raidautorun, rdate,
readahead, readlink, readprofile, realpath, reboot, renice,
reset, resize, rm, rmdir, rmmod, route, rpm, rpm2cpio,
run-parts, runlevel, runsv, runsvdir, rx, sed, seq, setarch,
setconsole, setkeycodes, setlogcons, setsid, setuidgid,
sh, sha1sum, slattach, sleep, softlimit, sort, split,
start-stop-daemon, stat, strings, stty, su, sulogin, sum,
sv, svlogd, swapoff, swapon, switch_root, sync, sysctl,
syslogd, tail, tar, tcpsvd, tee, telnet, telnetd, test,
tftp, time, top, touch, tr, traceroute, true, tty, ttysize,
udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand,
uniq, unix2dos, unlzma, unzip, uptime, usleep, uudecode,
uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget,
which, who, whoami, xargs, yes, zcat, zcip