Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57781
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-15 18:41
文章分类
文章存档

2015年(7)

2014年(5)

我的朋友

分类: LINUX

2014-08-15 18:48:00

折腾了两天,终于把这个做好,移植的工作还是很辛苦的,目前自己对/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中的文件要进行一些调整,以下是调整之后的。

  1. /etc/profile  
  1. # Ash profile   
  2. # vim: syntax=sh  
  3.   
  4. # No core files by default  
  5. #ulimit -S -c 0 > /dev/null 2>&1  
  6.   
  7. export set HOME=/root  
  8. export set QTDIR=/opt/PDA  
  9. export set QPEDIR=/opt/PDA  
  10. export set QWS_DISPLAY="LinuxFB:/dev/fb0"  
  11. export set QWS_KEYBOARD="TTY:/dev/tty1"  
  12. if [ -f /sys/devices/virtual/input/mice/subsystem/input$ts/uevent ] ; then  
  13.         export set TSLIB_CONFFILE=/etc/ts.conf  
  14.         if [ -n "$pointer" ] ; then  
  15.                 export set TSLIB_CALIBFILE=$pointer  
  16.         fi  
  17.         export set TSLIB_TSDEVICE=/dev/event$ts  
  18.         export set TSLIB_PLUGINDIR=/lib/ts  
  19.         export set QWS_MOUSE_PROTO="TSLIB:/dev/event$ts MouseMan:/dev/mice"  
  20. fi  
  21. export set QT_PLUGIN_PATH=$QTDIR/plugins/  
  22. export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/  
  23. export set PATH=$QPEDIR/bin:$PATH  
  24. export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$QPEDIR/plugins/accessible:$LD_LIBRARY_PATH  
  25.   
  26. #USER="`id -un`"  
  27. #LOGNAME=$USER  
  28. #PS1='[\u@\h \W]# '  
  29. #PATH=$PATH  
  30.   
  31. #HOSTNAME=`/bin/hostname`  
  32.   
  33. /bin/hostname FlyingGames  
  34. PS1="[""$(whoami)"@"$(hostname): "'$PWD'"]# "  
  35.   
  36.   
  37. export USER LOGNAME PS1 PATH  

  1. /etc/init.d/rcS  
  1. #!/bin/sh  
  2.   
  3.   
  4. PATH=/sbin:/bin:/usr/sbin:/usr/bin  
  5. runlevel=S  
  6. prevlevel=N  
  7. umask 022  
  8. export PATH runlevel prevlevel  
  9.   
  10. #  
  11. #       Trap CTRL-C &c only in this shell so we can interrupt subprocesses.  
  12. #  
  13.   
  14. mount -a  
  15. mkdir -p /dev/pts  
  16. mount -t devpts devpts /dev/pts  
  17. mount -n -t usbfs none /proc/bus/usb  
  18. echo /sbin/mdev > /proc/sys/kernel/hotplug  
  19. mdev -s  
  20. mkdir -p /var/lock  
  21.   
  22. #modprobe rt5370sta  
  23.   
  24. hwclock -s  
  25. #EmbedSky_wdg &  
  26.   
  27.   
  28. ifconfig lo 127.0.0.1  
  29. net_set &  
  30.   
  31. /etc/rc.d/init.d/netd start  
  32. /etc/rc.d/init.d/httpd start  
  33. /etc/rc.d/init.d/leds start  
  34.   
  35. InputAdapter  
  36. #pda &  
  37. #/bin/hostname -F /etc/sysconfig/HOSTNAME  
  38.   
  39. #telnet  stream  tcp     nowait  root    /usr/sbin/telnetd       /usr/sbin/telnetd -i  
  40. /usr/sbin/telnetd &  
  41. /usr/sbin/vsftpd &  
  42.   
  43.   
  44. insmod /usr/lib/rt3070sta.ko  
  45. 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即可。

Wifi-Module-804  /   WifiModule

阅读(1339) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:java常用的第三方框架

给主人留下些什么吧!~~