busybox-1.24.0制作AM335X文件系统

本文介绍了一个基于AM335X的文件系统构建过程,从Busybox的配置和编译开始,逐步介绍了根文件系统的搭建、VSFTPD服务器的移植、网络配置以及telnet服务的开启等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一天

平台说明

     busybox  版本:   busybox-1.24.0

Linux      版本:   ubuntu 15.04(编译主机)

GCC       版本:     gcc version 4.7.3 20130226 (prerelease)(crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03)
      硬   件   平  台:  自制硬件板子(VoipServer-V0.0.1)


/*****************************************************************************************************************************/
开始:
    将源码解压到自定义一个目录下         

    cd /home/am335x/app/
    tar xvjf busybox-1.24.0.tar.bz2
    cd busybox-1.24.0
    配置
    make  menuconfig    
    
   Busybox Setting ----->
      Build Options -----> 
        //1选择将busybox进行静态编译 
        [ * ]Build BusyBox as a static binary (no shared libs)
               
       //2.指定交叉编译器为
       (/usr/local/arm_linux_4.7.3/bin/arm-linux-gnueabihf-)Cross Compiler prefix

     Busybox Library Tuning---> 
        //3.编译出的busybox的shell命令解释器支持显示当前路径及主机信息
        [ * ]Username completion 
        [ * ]Fancy shell prompts 
        [ * ]Query  cursor  position  from  terminal 

     General Configuration---> 
        //4.去了Use the devpts filesystem for Unix98 PTYs
         [   ]Use the devpts filesystem for Unix98 PTYs
    Networking Utilities ----->
         //5.去了inetd

        [   ]inetd
    配置保存
   编译
   make
   编译完成后安装
   make install

   此时会在busybox的根目录下生成_install目录,里面有/bin /sbin  /usr linuxrc 四个文件。


第二天

busybox-1.24.0制作AM335X文件系统          第二天

/*****************************************************************************************************************************/
开始:

1、创建根文件系统目录,主要包括以下目录
    /dev  /etc /lib  /usr  /var /proc /tmp /home /root /mnt /bin  /sbin  /sys
    #mkdir rootfs
    #cd rootfs
    #mkdir  dev  etc  lib  usr  var  proc tmp  home  root  mnt   sys
    将第一天编译好的文件复制到 根文件系统目录(注意:复制的时候加上-rfa参数)
2、构建etc目录
    在etc目录下创建inittab文件
    文件内容:
# /etc/inittab init(8) configuration for BusyBox
#
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
#
#
# Note, BusyBox init doesn't support runlevels.  The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use sysvinit.
#
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# <id>: WARNING: This field has a non-traditional meaning for BusyBox init!
#
#        The id field is used by BusyBox init to specify the controlling tty for
#        the specified process to run on.  The contents of this field are
#        appended to "/dev/" and used as-is.  There is no need for this field to
#        be unique, although if it isn't you may have strange results.  If this
#        field is left blank, it is completely ignored.  Also note that if
#        BusyBox detects that a serial console is in use, then all entries
#        containing non-empty id fields will be ignored.  BusyBox init does
#        nothing with utmp.  We don't need no stinkin' utmp.
#
# <runlevels>: The runlevels field is completely ignored.
#
# <action>: Valid actions include: sysinit, respawn, askfirst, wait, once,
#                                  restart, ctrlaltdel, and shutdown.
#
#       Note: askfirst acts just like respawn, but before running the specified
#       process it displays the line "lease press Enter to activate this
#       console." and then waits for the user to press enter before starting
#       the specified process.
#
#       Note: unrecognised actions (like initdefault) will cause init to emit
#       an error message, and then go along with its business.
#
# <process>: Specifies the process to be executed and it's command line.
#
# Note: BusyBox init works just fine without an inittab. If no inittab is
# found, it has the following default behavior:
#         ::sysinit:/etc/init.d/rcS
#         ::askfirst:/bin/sh
#         ::ctrlaltdel:/sbin/reboot
#         ::shutdown:/sbin/swapoff -a
#         ::shutdown:/bin/umount -a -r
#         ::restart:/sbin/init
#
# if it detects that /dev/console is _not_ a serial console, it will
# also run:
#         tty2::askfirst:/bin/sh
#         tty3::askfirst:/bin/sh
#         tty4::askfirst:/bin/sh
#
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
#
::sysinit:/etc/init.d/rcS

# /bin/sh invocations on selected ttys
#
# Note below that we prefix the shell commands with a "-" to indicate to the
# shell that it is supposed to be a login shell.  Normally this is handled by
# login, but since we are bypassing login in this case, BusyBox lets you do
# this yourself...
#
# Start an "askfirst" shell on the console (whatever that may be)
:nce:-/bin/sh
# Start an "askfirst" shell on /dev/tty2-4
#tty2::askfirst:-/bin/sh
#tty3::askfirst:-/bin/sh
#tty4::askfirst:-/bin/sh
# /sbin/getty invocations for selected ttys
#tty4::respawn:/sbin/getty 38400 tty5
#tty5::respawn:/sbin/getty 38400 tty6
# Example of how to put a getty on a serial line (for a terminal)
#::respawn:/sbin/getty -L ttyS0 9600 vt100
#::respawn:/sbin/getty -L ttyS1 9600 vt100
#
# Example how to put a getty on a modem line.
#::respawn:/sbin/getty 57600 ttyS2
# Stuff to do when restarting the init process
::restart:/sbin/init
# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
    在etc 目录下创建fstab文件
    文件内容:
#device     mount-point     type        options         dump     fsck order
proc        /proc                 proc        defaults       0          0
tmpfs    /tmp                 tmpfs       defaults        0          0
sysfs       /sys                  sysfs       defaults        0          0
tmpfs       /dev                  tmpfs       defaults        0          0
    在etc 目录下创建mdev.conf文件
    文件内容:
mmcblk([0-9]+)p([1]+)                  0:0 660 */etc/sd_automount.sh                         $MDEV
sd([a-z]+)([0-9]+)      0:0 660 @/etc/usbdisk_inserting.sh                 $MDEV
sd([a-z]+)              0:0 660 $/etc/usbdisk_removing.sh                 $MDEV
    在etc目录下创建profile文件
    文件内容:
#!/bin/sh
export HOSTNAME=VoipBoxServer-V0.0.1
export USER=root
export HOME=root
#export PS1="\[\u@\h \W\]\$ "
export PS1="[$USER@$HOSTNAME \W]\# "
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib
LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
echo "************************************************************************"
echo "================= Welcome to VoipBoxServer Console ^_^ ================="
echo "************************************************************************"

     拷贝虚拟机上的/etc/passwd, /etc/group到rootfs/etc下
    在etc目录下创建NetConfig.ini文件
    文件内容:
[NetConfig]
NetCardType=LAN
AddrConfigType=MANUAL
IpAddr=192.168.1.114
Netmask=255.255.255.0
Gateway=192.168.1.1
MacAddr=00:02:AC:55:88:A8
    在etc目录下创建sd_automount.sh文件
    文件内容:
#! /bin/sh
echo "sd_automount*************$1****************" > /dev/console
if [ "$1" == "" ]; then
        echo "parameter is none" > /dev/console
        exit 1
fi
MNT=$1
if echo "$1" | grep mmcblk; then
        MNT=sdcard
else
        echo "is not SD" > /dev/console
        exit 1        
fi
mounted=`mount | grep $MNT | wc -l`
if [ $mounted -ge 1 ]; then
        umount -l "/mnt/$MNT"
        rm -rf "/mnt/$MNT"
        echo "[Umount FS]: /dev/$1 -X-> /mnt/$MNT" > /dev/console
else
        mkdir -p "/mnt/$MNT"
        mount -t vfat -o noatime,shortname=mixed,utf8 "/dev/$1" "/mnt/$MNT"
        echo "[Mount VFAT]: /dev/$1 --> /mnt/$MNT" > /dev/console        
fi
    在etc目录下创建usbdisk_inserting.sh文件
    文件内容:
#! /bin/sh
echo "usb_inserting*************$1****************" > /dev/console
if [ "$1" == "" ]; then
        echo "parameter is none" > /dev/console
        exit 1
fi
MNT=$1
if echo "$1" | grep sd; then
        MNT=UsbDisk
else
        echo "is not UsbDisk" > /dev/console
        exit 1        
fi
mounted=`mount | grep $MNT | wc -l`
if [ $mounted -ge 1 ]; then
        echo "/mnt/$MNT used!!!!!!!!!!!" > /dev/console
else
        mkdir -p "/mnt/$MNT"
        mount -t vfat -o noatime,shortname=mixed,utf8 "/dev/$1" "/mnt/$MNT"
        echo "[Mount VFAT]: /dev/$1 --> /mnt/$MNT" > /dev/console        
fi
    在etc目录下创建usbdisk_removing.sh文件
    文件内容:
#! /bin/sh
echo "usb_removing*************$1****************" > /dev/console
if [ "$1" == "" ]; then
        echo "parameter is none" > /dev/console
        exit 1
fi
MNT=$1
if echo "$1" | grep sd; then
        MNT=UsbDisk
else
        echo "is not UsbDisk" > /dev/console
        exit 1        
fi
mounted=`mount | grep $MNT | wc -l`
if [ $mounted -ge 1 ]; then
        umount -l "/mnt/$MNT"
        rm -rf "/mnt/$MNT"
        echo "[Umount FS]: /dev/$1 -X-> /mnt/$MNT" > /dev/console
else
        echo "/mnt/$MNT not found!!!!!!!!!!!" > /dev/console
fi  
    在etc目录下创建init.d目录
    #mkdir init.d
    #cd init.d
     在etc/init.d目录下创建rcS文件
    文件内容:
#!/bin/sh
##设置机器名字;
/bin/hostname VoipBoxServer-V0.0.1   
echo "#mount all.........."
mount -a
mkdir /dev/pts
/bin/mknod /dev/pts/0 c 136 0
/bin/mknod /dev/pts/1 c 136 1
/bin/mknod /dev/pts/2 c 136 2
/bin/mknod /dev/pts/3 c 136 3
/bin/mknod /dev/pts/4 c 136 4
/bin/mknod /dev/pts/5 c 136 5
/bin/mount -t devpts devpts /dev/pts
mount -o remount,rw /dev/root
echo /sbin/mdev > /proc/sys/kernel/hotplug  
mdev -s
echo "#StarNet.........."
StartNetwork.sh &


第三天

平台说明

     Vsftpd     版本:   vsftpd-2.3.4

Linux      版本:   ubuntu 15.04(编译主机)

GCC       版本:     gcc version 4.7.3 20130226 (prerelease)(crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03)
      硬   件   平  台:  自制硬件板子(VoipServer-V0.0.1)


/*****************************************************************************************************************************/
FTP(vsftpd)服务器移植
开始:
1、将源码解压到自定义一个目录下
     #tar xvzf vsftpd-2.3.4.tar.gz
     #cd vsftpd-2.3.4
2、修改Makefile
    指定交叉编译器
     CC         =        arm-linux-gnueabihf-gcc
    LIBS        =        `./vsf_findlibs.sh`末尾加 -lcrypt
    LIBS        =        `./vsf_findlibs.sh` -lcrypt
3、编译make
    编译完成后看到生成了vsftpd可执行文件
4、复制文件
    将生成的vsftpd文件复制到根文件系统rootfs/usr/sbin/ 目录下
    将生成的vsftpd.conf文件复制到根文件系统rootfs/etc/ 目录下
5、修改 vsftpd.conf配置
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
chown_uploads=YES
chown_username=ftp
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftp
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
listen_port=21
anon_other_write_enable=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd with two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES
6、在usr目录下创建share目录,在usr/share目录下创建empty目录,在var目录下创建log目录
7、在etc/init.d/rcS文件中添加启动vsftpd服务。
     在最后一行添加 vsftpd &


第四天

/*****************************************************************************************************************************/
开始:
1、构建lib目录
    复制交叉编译器usr/local/arm_linux_4.7.3/arm-linux-gnueabihf/libc/lib/arm-linuxgnueabihf/目录下所有文件到/home/voip_sever_am335x_project/rootfs/rootfs/lib/下
    #cp -rfa    usr/local/arm_linux_4.7.3/arm-linux-gnueabihf/libc/lib/arm-linuxgnueabihf/*    /home/voip_sever_am335x_project/rootfs/rootfs/lib/
2、 构建网卡启动肢本
     在usr/sbin/目录下创建StartNetwork.sh文件
    文件内容:
#!/bin/sh
echo Try to bring eth0 interface up ...>/dev/console
ReadIni()#设备初始化
{
        INIFILE=$1; SECTION=$2; ITEM=$3
        _readIni=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE`
        echo $_readIni
}
if [ -e /etc/NetConfig.ini ] ; then
        NETCARDTYPE=$( ReadIni /etc/NetConfig.ini NetConfig NetCardType )
        ADDRCONFIGTYPE=$( ReadIni /etc/NetConfig.ini NetConfig AddrConfigType )
        IPADDR=$( ReadIni /etc/NetConfig.ini NetConfig IpAddr )
        NETMASK=$( ReadIni /etc/NetConfig.ini NetConfig Netmask )
        GATEWAY=$( ReadIni /etc/NetConfig.ini NetConfig Gateway )
        MAC=$( ReadIni /etc/NetConfig.ini NetConfig MacAddr )
        if [ -z $NETCARDTYPE ] ; then
                echo "NetCardType is empty !" >/dev/console
                exit 1
        fi
        if [ -z $ADDRCONFIGTYPE ] ; then
                echo "AddrConfigType is empty !" >/dev/console
                exit 1
        fi
        if [ -z $IPADDR ] ; then
                echo "IpAddr is empty !" >/dev/console
                exit 1
        fi
        if [ -z $NETMASK ] ; then
                echo "Netmask is empty !" >/dev/console
                exit 1
        fi
        if [ -z $GATEWAY ] ; then
                echo "Gateway is empty !" >/dev/console
                exit 1
        fi
        if [ -z $MAC ] ; then
                echo "MacAddr is empty !" >/dev/console
                exit 1
        fi
        if [ $NETCARDTYPE = "LAN" ] ; then
                if [ $ADDRCONFIGTYPE = "DHCP" ] ; then
                        echo "Get ip type :"$ADDRCONFIGTYPE >/dev/console
                        ifconfig eth0 down
                        ifconfig eth0 hw ether $MAC
                        echo ifconfig eth0 hw ether $MAC >/dev/console
                        udhcpc
                else
                        if [ $ADDRCONFIGTYPE = "MANUAL" ] ; then
                                echo "Get ip type :"$ADDRCONFIGTYPE >/dev/console
                                ifconfig eth0 down
                                ifconfig eth0 hw ether $MAC
                                echo ifconfig eth0 hw ether $MAC >/dev/console
                                ifconfig eth0 $IPADDR netmask $NETMASK up
                                echo ifconfig eth0 $IPADDR netmask $NETMASK up >/dev/console
                                route add default gw $GATEWAY
                                echo add default gw $GATEWAY >/dev/console
                        fi
                fi
        else
                if [ $NETCARDTYPE = "WIFI" ] ; then
                        echo "wifi device not found!!!" >/dev/console
                fi
        fi        
else
        echo "/etc/NetConfig.ini not found!!!" >/dev/console
fi
echo Done > /dev/console



 第五天

/*****************************************************************************************************************************/
开始:
1、打开telnet服务
    发现在编译Busybox时已经选择了telnet服务,只要启动telnet服务。
     在etc/init.d/rcS文件中添加启动 telnet 服务。
           在最后一行添加  telnetd  &
2、尝试运行
     先将SD卡格式化成两个分区,分别为boot卷标的FAT32,rootfs 卷标的EXT4
     可以用TI的AM335X的SDK中的SD卡制作脚本(见附件:文件名:create-sdcard.rar)。    create-sdcard.rar (5.81 KB, 下载次数: 886)
    将这前的MLO 、u-boot.img、zImage、am335x-wsdv.dtb复制到boot分区下
    将刚才做好的rootfs下的所有文件复制到rootfs 分区下
    (注意:复制时要加-rfa参数)
    板子上电启动,发现停在UBOOT中,
    这时可以手动输入命令启动LINUX
    #load mmc ${mmcdev} ${fdtaddr} /${bootdtbfile}
    #load mmc ${mmcdev} ${loadaddr} /${bootkernelfile}
    #bootz ${loadaddr} - ${fdtaddr}
    此时linux已经起动启来了。
    可以看到串口打印如下信息:
reading /am335x-wsdv.dtb
31354 bytes read in 10 ms (3 MiB/s)
reading /zImage
4429464 bytes read in 330 ms (12.8 MiB/s)
Kernel image @ 0x82000000 [ 0x000000 - 0x439698 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8fff5000, end 8ffffa79 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.24 (root@ubuntu-20150704) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #1 Thu Jan 14 13:12:48 CST 2016
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: TI AM335x VoipServer
[    0.000000] cma: Reserved 24 MiB at 0x9e800000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES1.0 (neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2
。。。。。。。。。。。。。。。。此处省略一段^_^。。。。。。。。。。。。。。。
[    1.505091] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    1.511480] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[    1.519452] libphy: 4a101000.mdio: probed
[    1.523708] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[    1.533403]  mmcblk0: p1 p2
[    1.537909] cpsw 4a100000.ethernet: Detected MACID = 00:18:30:0b:92:c3
[    1.546452] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 02:53:05 UTC (946695185)
[    1.558825] vbat: disabling
[    1.561843] ALSA device list:
[    1.565025]   #0: AM335x-VOIP
[    1.570947] EXT3-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (240)
[    1.582444] EXT2-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (244)
[    1.595109] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    1.602779] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[    3.246380] EXT4-fs (mmcblk0p2): recovery complete
[    3.646335] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    3.654892] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    3.664427] devtmpfs: mounted
[    3.667832] Freeing unused kernel memory: 260K (c0811000 - c0852000)
#mount all..........
[    4.212378] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
sd_automount*************mmcblk0p1****************
mmcblk0p1
[    4.353609] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[Mount VFAT]: /dev/mmcblk0p1 --> /mnt/sdcard
#StarNet..........
#StarVsftpd..........
Try to bring eth0 interface up ...
************************************************************************
================= Welcome to VoipBoxServer Console ^_^ =================
************************************************************************
[root@VoipBoxServer-V0.0.1 ~]# Get ip type :MANUAL
ifconfig eth0 hw ether 00:02:AC:55:88:A8
[    4.443281] net eth0: initializing cpsw version 1.12 (0)
[    4.453329] net eth0: phy found : id is : 0x7c0f1
[    4.458359] libphy: PHY 4a101000.mdio:01 not found
[    4.463408] net eth0: phy 4a101000.mdio:01 not found on slave 1
ifconfig eth0 192.168.1.114 netmask 255.255.255.0 up
add default gw 192.168.1.1
Done
[    8.605221] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
2、连接网线测试ftp与telnet
     测试发现FTP可用,telnet服务端口没有打开。
     最后修改内核配置问题解决
     打开配置make menuconfig
     Device Drivers  --------->
        Character devices --------->
           //选择上Legacy(BSD)PTY support
           [  *  ]    Legacy  ( BSD )  PTY support
           (256)   Maximum number of legacy PTY in use
     重新编译内核
     启动测试,发现 telnet可用了^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值