制作根文件系统
1、首先下载BusyBox(我用的是busybox-1.20.0)
#make menuconfig //进入 Busybox Settings ---> Build Options ---> (arm-linux-) Cross Compiler prefix //制定交叉编译器 #make //编译 #make install CONFIG_PREFIX = /root/nfs/roofs //安装到你制定的目录
2、再将交叉编译器目录里面的库文件拷贝到相应的lib目录(参照韦东山的毕业班第3课第2节视频教程)
3、新建etc目录
3.1新建文件inittab文件内容:
#etc/inittab ::sysinit:/etc/init.d/rcS #进入init.d目录执行rsS文件中的命令 ::askfirst:-/bin/sh #打开命令行程序是我们可以使用命令 ::ctrlaltdel:/sbin/reboot #关机相关的命令 ::shutdown:/bin/umount -a –r
3.2新建init.d目录在里面新建rcS文件内容:
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel #mount -a 时会执行 etc/fstab文件中的挂载选项 mount -a #支持热插拔 echo /sbin/mdev>/proc/sys/kernel/hotplug mdev -s #设置用户名 /bin/hostname cxd
3.3新建fstab目录内容:
#device mount-point type option dump fsck order proc /proc proc defaults 0 0 none /tmp ramfs defaults 0 0 sysfs /sys sysfs defaults 0 0 mdev /dev ramfs defaults 0 0
3.4新建mdev.conf文件内容为空,复制友善之臂文件系统中的group、passwd、profile文件
4、新建dev目录
//在dev目录下创建两个节点 #mknod console c 5 1 # mknod null c 1 3
5、创建home、mnt、proc、root、sys、tmp目录
6、挂在根文件系统后在系统中执行
#mkdir -p /lib/modules/$(uname -r)
现在的内核模块在插入卸载时都会要转到 “/lib/modules/内核版本号/ ” 这个目录里。所以只要建立这个目录
否则使用rmmod卸载驱动模块时会出现 rmmod : chdir(/lib/modules): No such file or directory 但是有时会出现这种错误rmmod: chdir(2.6.38-cxd-g696d0ab-dirty): No such file or directory于是我又在/lib/modules下建立这个文件夹 2.6.38-cxd-g696d0ab-dirty 就可以了;
7、移植QtE,首先说明一下Qtopia和QtE的区别:
网友彬ye介绍:
值得特别注意的是在版本4之前,Qt/E和Qtopia是不同的两套程序,Qt/E是基础类库,Qtopia是构建于Qt/E之上的一系列应用程序。但从版本4开始,Trolltech将Qt/E并入到了Qtopia产品线中去了,并推出了新的Qtopia4。但实际上原来的Qt/E仍然作为基础类库,只是改名为Qtopia Core了,也许又感觉Qtopia Core跟Qtopia容易让人搞混,所以又改名为qt-embedded-linux-opensource-linux/wince(QT也支持Wince )。它作为嵌入式版本的核心,既可以与Qtopia配合,也可以独立使用。而原来的Qtopia则被分成几层,核心的应用框架和插件系统被称为 Qtopia Platform,上层的应用程序则按照不同的目标用户分为不同的包,如Qtopai PDA,Qtopia Phone。Qte的改名过程,Qte-->Qtopia Core-->Qt-embedded-linux-xxxx --> qt-everywhere-opensource-src-xxxxx(目前是这样的,博主注)
这几个其实差不多是一个东西,名称很容易搞混。
记住在QT4版本前要安装Qtopia需要先装Qt/E,但之后的就不需要了。4之后的Qtopia 已经带有QT/E库了。
所以总的来说,QT也就三种:面向桌面的x11、面向嵌入式的Qt/E、以及面向嵌入式带各种应用程序的Qtopia桌面系统!!!
其实也不叫什么移植,只是拷贝友善文件系统中库文件而已;
首先在/bin目录下新建一个qt脚本文件内容如下:
#!/bin/sh # tell the program the qt lib's path export QTDIR=/opt export QTDIRLIB=/opt/Qt_lib export LD_LIBRARY_PATH=$QTDIRLIB:$LD_LIBRARY_PATH export PATH=$PATH:$QTDIR/bin export QWS_KEYBOARD=TTY:/dev/tty1 export QWS_SIZE=800*480 export QT_QWS_FONTDIR=/opt/Qt_lib/fonts cd /opt ./hospital -qws
然后再/opt目录下新建一个Qt_lib目录然后把qt测试程序考到/opt目录下,运行命令 #qt
会出现错误说找不到共享库,你就在友善的文件系统里去一个一个的搜索相应的库文件拷贝到Qt_lib目录下就行,
注:这几天收获的有点多要好好记录下来,此文件系统还有很多需要完善,呵呵!