《2022年busybox网络配 .pdf》由会员分享,可在线阅读,更多相关《2022年busybox网络配 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、想找一些现成的busybox 配置脚本启动网络搜到的都是些介绍性质的,彼此拷来拷去的东西,没办法.自己看脚本配置,很简单,几分钟就搞定了.过程从 busybox 的启动脚本:/etc/rc.d/init.d/network的启动过程终可以看到网设备的初始化过程.首先/etc/network.conf终定义了 NETWORKING和网关的值,如果是 yes 那么从network.d中找设备的配置文件.(在 linux 发行版中看network配置,它地网卡配置在/etc/sysconfig目录下)network如下;#!/bin/ash#Network interface(s)init scri
2、pt#config:/etc/network.conf#/etc/network.d/interface.devname./etc/rc.d/init.d/functions./etc/network.conf if$NETWORKING!=yes;then echo Networking is disabled in/etc/network.conf exit 0 fi case$1 in start)for i in/etc/network.d/interface.*do if -r$i;then.$i if$DHCP=yes;then echo-n Starting DHCP for i
3、nterface$INTERFACE:udhcpc-b-i$INTERFACE -p/var/run/udhcpc.$INTERFACE.pid /dev/null else echo-n Setting up interface$INTERFACE:ifconfig$INTERFACE$IPADDRESS netmask$NETMASK broadcast$BROADCAST up fi check_status fi done if$USE_GATEWAY=yes-a-n$GATEWAY;then 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -echo-n Set
4、ting default route:route add default gw$GATEWAY check_status fi;stop)if$USE_GATEWAY=yes-a-n$GATEWAY;then echo-n Removing default route:route del-net 0.0.0.0 check_status fi for i in/etc/network.d/interface.*do if -r$i;then.$i echo-n Shutting down interface$INTERFACE:ifconfig$INTERFACE down check_sta
5、tus if$DHCP=yes;then kill cat/var/run/udhcpc.$INTERFACE.pid sleep 1 fi fi done;restart)$0 stop$0 start;status)ifconfig route;*)echo Usage:$0 start|stop|restart|status exit 1 esac 所以设计网络初始化如下:在/etc/rc.d/init.d/start中加文件联结如下;ln-s./init.d/network 02network 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -定义/etc/net
6、work.conf如下:NETWORKING=yes USE_GATEWAY=yes GATEWAY=192.168.2.1 在 etc 中加目录 network.d,并且定义 v/etc/network.d/interface.eth0如下;DHCP=no INTERFACE=eth0 IPADDRESS=192.168.1.3 NETMASK=255.255.255.0 BROADCAST=192.168.1.255 按照上述步骤可以添加网卡配置.如果输入命令echo 1 /proc/sys/net/ip_forward 那么可以实现转发。通过上述步骤可以自动完成网络系统的配置.下面是转载
7、的网上的文章,实际上可以更加简单,busybox 编译的时候确定选上不需要inetd 启动,那么在启动过程中直接添加:telnetd 就可以了。转贴:进入 busybox源代码目录,选择telnet,telnetd.后确保在 ramdisk 的 sbin 目录下存在inetd 和 in.telnetd 或 telned。在 ramdisk 中的 mnt/etc 目录中,确保存在文件 fstab,service,inetd.conf,passwd文件确保 fstab 文件中存在none /dev/pts devpts mode=0622 0 0 这一行确保 services 文件中存在telne
8、t 23/tcp 这一行确保 inetd.conf 中存在 telnet stream tcp nowait root /sbin/in.telnetd in.telnetd 确保 passwd 文件中存在root:0:0:root:/:/bin/sh,表示没有密码的root 帐号在 kernal 的代码中,通过makemenuconfig,在 Character devices 中选中 Unix98 PTY support 在 File systems 中选中/dev/pts file system for Unix98 PTYs 退出后 make zImage 即可在 ramdisk 的启
9、动文件mnt/etc/init.d/rcS中,在 mount a 的后面下一行加入inetd,使系统启动的时候就加载 telnetd 服新建 inetd.conf 文件,内容如下:#telnetstream tcp nowait root /usr/sbin/telnetd 运行 inetd inetd.conf 在网上 google 了一天,最终可以确定要使用telnetd,内核必须配置以下项:dev/pts file system for Unix98 PTYs Unix98 PTY support (256)Maximum number of Unix98 PTYs in use(0-2
10、048)可我使用的 2.6.14.1 的内核,make menuconfig根本找不到这些配置项!那么内核是否支持这些选项呢?cat/proc/filesystems发现已支持 devpts 文件系统,那么uinx98 pty 呢?查看内核的 Kconfig 和 Makefile 文件,发现只要CONFIG_UNIX98_PTYS=y就会编译支持devpts 文件系名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -统和 unix98 的功能。而选择了嵌入式CPU 内核会默认CONFIG_UNIX98_PTYS=y。所以我的内核已经支持 telnet。fstab 文件中也加
11、载了devpts 文件系统:devpts /dev/pts devpts defaults 00 inittab 文件中也指明了telnet 的动作:tty0:askfirst:-/bin/sh 为什么还不行呢?困惑!后来仔细想想,应该是设备文件节点的问题。我在开发板上移植2.6 内核和驱动时一直没有使用devfs。因为 devfs 虽然方便,但同时也阻止了对设备文件节点的了解,且2.6 内核已放弃了devfs。那么使用 telnet 应该创建那些文件节点呢?devpts 会在/dev/pts 下自动创建节点,还有什么呢?google 了一会没有答案。后来忽然想起Kconfig 文件中好象些说
12、明,再去看一看,原来是这样:A pseudo terminal(PTY)is a software device consisting of two halves:a master and a slave.The slave device behaves identical to a physical terminal;the master device is used by a process to read data from and write data to the slave,thereby emulating a terminal.Typical programs for the
13、master side are telnet servers and xterms.Linux has traditionally used the BSD-like names/dev/ptyxx for masters and/dev/ttyxx for slaves of pseudo terminals.This scheme has a number of problems.The GNU C library glibc 2.1 and later,however,supports the Unix98 naming standard:in order to acquire a ps
14、eudo terminal,a process opens/dev/ptmx;the number of the pseudo terminal is then made available to the process and the pseudo terminal slave can be accessed as/dev/pts/.What was traditionally/dev/ttyp2 will then be/dev/pts/2,for example.是因为缺少 ptmx 设备文件!查看Documentation/devices.txt文件,好了。mknod-m 666 ptmx c 5 2 再试试,OK 可以 telnet 开发板了!我是直接使用的busybox 的 telnetd,busybox 支持用 inetd 管理 telnetd,有兴趣的朋友可以试名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -