您的位置:首页 > 编程语言 > Qt开发

两种系统启动&加载QT库

2016-01-19 12:35 232 查看

在上一篇中我们已经将SD卡分为FAT区和EXT4区,其实EXT4主要是为了实现添加linaro系统用的,因为系统所占用的空间还是比较大的,所以在分区时给它留了比较大的空间。如果我们不需要进行界面化的操作完全可以使用系统镜像来完成,例如在刚出厂的demo中就是使用的8M的系统镜像来完成的。

在这里我们分别介绍一下使用linaro模式和busybox模式
1)linaro模式:也就是完整的系统模式,可进行界面化的操作。
分区完成之后需要将linaro系统文件拷贝到EXT4分区:
1.首先是将EXT4分区加载到一个目录下,

Mkdir /home/ganggang/sdcard //新建立一个文件夹

Mount /dev/sdc2 /home/ganggang/sdcard //挂载

2.找到linaro-precise-ubuntu-desktop-20120923-436.tar.gz解压,

(如果使用QT的话,在对应目录下添加自己安装的嵌入式的QT 库,必须与自己的linux系统目录一致!)

3.然后就可以将 binary/boot/filesystem.dir中的所有文件copy到EXT4中了:

Cd 具体路径/binary/boot/filesystem.dir

Sudo rsync -a ./ /home/ganggang/sdcard

过一段时间就会把所有的文件添加到EXT4分区了(包括我们添加的QT库)。

4.在FAT中添加自己的BOOT.bin、devicetree、zimage这样就可启动linaro系统了。

2)busybox模式:命令模式

busybox模式使用的是原厂带的demo,包括devicetree、zimage、ramdisk8M。

然后添加我们自己制作的BOOT.bin就可以启动系统。

这里如果我们要使用QT,需要自己生成qt的镜像文件然后挂载到系统响应的位置。

具体方法:(此处参考懒兔子博客)

cd /usr/local/QT_ARM 源文件路径

dd if=/dev/zero of=qt_lib.img bs=1M count=100 意思是建的镜像的大小是100M,所以复制的时候要根据自己的安装文件大小而定。

mkfs.ext2 -F qt_lib.img

chmod go+w qt_lib.img

mount qt_lib.img -o loop /mnt

cp -rf /usr/local/Trolltech/QtEmbedded-4.8.5-arm/* /mnt 这是安装文件的目录,我们就是要把它制作成镜像文件

chmod go-w qt_lib.img

umount /mnt

到此就完成了。这个镜像文件可以在源文件目录下找到。

然后将它拷贝到FAT分区即可使用。但是这样每一次我们需要手动输入命令将qt_lib挂载到系统相应的位置。

PS:下面是制作开机自启动实现镜像文件的自动挂载:

修改开启自启动的文件就是修改ramdisk8M.image.gz

具体方法:

Mkdir /home/ganggang/sdcard 新建一个文件夹用于挂载sd卡

Mount /dev/mmcblk0p1 /home/ganggang/sdcard

Cd /home/ganggang/sdcard

cp /home/ganggang/sdcard/ramdisk8M.image.gz /tmp/

gunzip /tmp/ramdisk8M.image.gz

mount -o loop /tmp/ramdisk8M.image /mnt/

此时文件系统被挂载在mnt上

修改/etc/init.d/rcS文件,可以看到Demo板的各个外围设备开机配置(如FTP和HTTP服务器等)都是通过这个文件实现的,在文件末尾加入指令,让驱动模块自动加载。

Gedit /mnt/etc/init.d/rcS

在文件倒数第二行添加

mkdir -p /usr/local/Trolltech/QtEmbedded-4.8.5-arm

mount/mnt/qt_lib.img /usr/local/Trolltech/QtEmbedded-4.8.5-arm

如此就可以自动加载qt库的镜像了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: