移植busybox到开发板
2014-07-19 21:57
113 查看
折腾了两天,终于把这个做好,移植的工作还是很辛苦的,目前自己对/etc/下的配置文件的逻辑关系还不是太清晰,这还需要后续的努力,一些心得,更多的是备忘,把这些东西记录下来。
我的需求:由于目前的实验平台没有telnet和ftp,所以在软件调试过程中,只能用串口和SD卡来交互和传送文件。于是就想到自己定制一个文件系统,此文件系统包含这两个功能,另外由于项目的需求为一个演示系统,所以还需要在主板自带的屏幕上输出 程序的打印信息。
实验环境:
1.PC机位ubuntu 12.04 , 交叉编译工具gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)
2.嵌入式主板为:DevKit 8000
3.busybox版本为:1.13.1
4.vsftp 版本为:2.0.5
实验过程:
1.首先需要编译busybox,编译的过程网上有很多的教程。telnet就再busybox中编译。
make install 之后会在 当前目前下的_install/目录下生成所需要的几个目录。
bin sbin linuxrc usr(这个我并没有编译)
2.把上边的三个文件夹放到一个新建的rootfs/下,剩下的文件我并没有自己去建。把原来devkit8000的文件系统解压之后,我放到了rootfs下,(需要注意的是,/etc目录下的文件我没有拷贝,因为之前拷贝过很多次,会出现各种各样的问题,所以/etc下的文件,我用的是天嵌的板子tq335x文件系统中的/etc/)
3.值得注意的是,profile和init.d/rcS中的文件要进行一些调整,以下是调整之后的。
/etc/profile
4.接下来要做的是vsftp的移植,vsftp不同于telnetd,telnetd是在busybox自带的就有了,但是ftpd我在make menuconfig后找了好半天,都找不到有ftpd,无奈,只能用vsftp这个第三方的程序。
参考:http://blog.163.com/sunshine_linting/blog/static/44893323201391010522601/
5.接下来要做的是把文件系统打包,拷贝到主板上。
/home/embest/work/tools/mkfs.ubifs -r rootfs -m 2048 -e 129024 -c 812 -o ubifs.img
/home/embest/work/tools/ubinize -o ubi.img -m 2048 -p 128KiB -s 512 /home/embest/work/tools/ubinize.cfg
cp ubi.img /media/LABEL1
6.把sd卡插到主板上
mmcinit
fatload mmc 0:1 81000000 ubi.img
nand unlock
nand ecc sw
nand erase 680000
band write.i 81000000 680000 $(file size)
开机即可。
附:开机之后在主板的屏幕上是没有任何登陆信息的。这时候需要通过登陆telnet然后启动程序。启动程序的时候记得加个重定向 。
xxxx > /dev/tty0即可。
我的需求:由于目前的实验平台没有telnet和ftp,所以在软件调试过程中,只能用串口和SD卡来交互和传送文件。于是就想到自己定制一个文件系统,此文件系统包含这两个功能,另外由于项目的需求为一个演示系统,所以还需要在主板自带的屏幕上输出 程序的打印信息。
实验环境:
1.PC机位ubuntu 12.04 , 交叉编译工具gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)
2.嵌入式主板为:DevKit 8000
3.busybox版本为:1.13.1
4.vsftp 版本为:2.0.5
实验过程:
1.首先需要编译busybox,编译的过程网上有很多的教程。telnet就再busybox中编译。
make install 之后会在 当前目前下的_install/目录下生成所需要的几个目录。
bin sbin linuxrc usr(这个我并没有编译)
2.把上边的三个文件夹放到一个新建的rootfs/下,剩下的文件我并没有自己去建。把原来devkit8000的文件系统解压之后,我放到了rootfs下,(需要注意的是,/etc目录下的文件我没有拷贝,因为之前拷贝过很多次,会出现各种各样的问题,所以/etc下的文件,我用的是天嵌的板子tq335x文件系统中的/etc/)
3.值得注意的是,profile和init.d/rcS中的文件要进行一些调整,以下是调整之后的。
/etc/profile
# Ash profile # vim: syntax=sh # No core files by default #ulimit -S -c 0 > /dev/null 2>&1 export set HOME=/root export set QTDIR=/opt/PDA export set QPEDIR=/opt/PDA export set QWS_DISPLAY="LinuxFB:/dev/fb0" export set QWS_KEYBOARD="TTY:/dev/tty1" if [ -f /sys/devices/virtual/input/mice/subsystem/input$ts/uevent ] ; then export set TSLIB_CONFFILE=/etc/ts.conf if [ -n "$pointer" ] ; then export set TSLIB_CALIBFILE=$pointer fi export set TSLIB_TSDEVICE=/dev/event$ts export set TSLIB_PLUGINDIR=/lib/ts export set QWS_MOUSE_PROTO="TSLIB:/dev/event$ts MouseMan:/dev/mice" fi export set QT_PLUGIN_PATH=$QTDIR/plugins/ export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/ export set PATH=$QPEDIR/bin:$PATH export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$QPEDIR/plugins/accessible:$LD_LIBRARY_PATH #USER="`id -un`" #LOGNAME=$USER #PS1='[\u@\h \W]# ' #PATH=$PATH #HOSTNAME=`/bin/hostname` /bin/hostname FlyingGames PS1="[""$(whoami)"@"$(hostname): "'$PWD'"]# " export USER LOGNAME PS1 PATH
/etc/init.d/rcS
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel # # Trap CTRL-C &c only in this shell so we can interrupt subprocesses. # mount -a mkdir -p /dev/pts mount -t devpts devpts /dev/pts mount -n -t usbfs none /proc/bus/usb echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s mkdir -p /var/lock #modprobe rt5370sta hwclock -s #EmbedSky_wdg & ifconfig lo 127.0.0.1 net_set & /etc/rc.d/init.d/netd start /etc/rc.d/init.d/httpd start /etc/rc.d/init.d/leds start InputAdapter #pda & #/bin/hostname -F /etc/sysconfig/HOSTNAME #telnet stream tcp nowait root /usr/sbin/telnetd /usr/sbin/telnetd -i /usr/sbin/telnetd & /usr/sbin/vsftpd & insmod /usr/lib/rt3070sta.ko sleep 1至此,telnet已经做完。
4.接下来要做的是vsftp的移植,vsftp不同于telnetd,telnetd是在busybox自带的就有了,但是ftpd我在make menuconfig后找了好半天,都找不到有ftpd,无奈,只能用vsftp这个第三方的程序。
参考:http://blog.163.com/sunshine_linting/blog/static/44893323201391010522601/
5.接下来要做的是把文件系统打包,拷贝到主板上。
/home/embest/work/tools/mkfs.ubifs -r rootfs -m 2048 -e 129024 -c 812 -o ubifs.img
/home/embest/work/tools/ubinize -o ubi.img -m 2048 -p 128KiB -s 512 /home/embest/work/tools/ubinize.cfg
cp ubi.img /media/LABEL1
6.把sd卡插到主板上
mmcinit
fatload mmc 0:1 81000000 ubi.img
nand unlock
nand ecc sw
nand erase 680000
band write.i 81000000 680000 $(file size)
开机即可。
附:开机之后在主板的屏幕上是没有任何登陆信息的。这时候需要通过登陆telnet然后启动程序。启动程序的时候记得加个重定向 。
xxxx > /dev/tty0即可。
相关文章推荐
- 移植busybox1.15.0到OK2440V3开发板(3)---问题与解决
- ramdisk 和busybox在开发板上的移植[转]
- TQ335X开发板内核3.17.2移植和busybox移植
- 基于busybox1.19.3移植yaffs2文件系统至OK6410A开发板
- linux-2.6.39+busybox-1.19.4在tq2440开发板上的移植出错原因分析
- 移植opencv2.4.9到itop4412开发板
- 移植busybox-1.21.1
- Gt9xx芯片,在规格书+Linux驱动的基础上,移植为USB裸机经验。直接用开发板,不去碰硬件的坑。
- fl2440开发板之u-boot移植
- 移植android 到定制开发板
- LCD驱动在OK2440开发板的移植
- 第三部分 linux busybox最小文件系统的移植
- linux-2.6.30.4移植至2440开发板经验谈
- 【操作详解】终于成功移植Mplayer到OK6410开发板上了,发帖详述移植全过程!(转载)
- linux-2.6.32在mini2440开发板上移植 ---移植看门狗驱动
- U-Boot 在44B0X 开发板上的移植以及代码分析
- 移植BusyBox
- u-boot在s3c2410开发板上移植(NAND Flash Boot)过程
- Hi3518C开发板系统移植总结
- Tiny6410开发板+fedora9移植tslib-1.4