树莓派系统的精简与打包qt程序

1.树莓派系统精简的整个过程:
(1)将qt运行的代码打包: http://blog.csdn.net/z3512498/article/details/64922180

笔者这里只演示如何在linux下打包免安装程序,程序名称为giptables,
0、找个地方,比如桌面,创建空文件夹Giptables,这个将用来存放giptables程序的运行文件
1、先将工程使用Release模式编译
2、打开编译输出文件的文件夹(带二进制文件giptables的那个)
笔者的文件夹名称是build-giptables-Desktop_Qt_5_7_1_GCC_64bit-Release
3、在上一步的文件夹中新建文件copylib.sh,通过指令设置权限chmod 777 copylib.sh
4、在 copylib.sh 中加入内容
#!/bin/bash

LibDir=$PWD"/lib"
Target=$1

lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))

$(mkdir $LibDir)

for Variable in ${lib_array[@]}
do
    cp "$Variable" $LibDir
done

5、打开终端并进入到当前文件夹,输入./copylib.sh giptables
其中, giptables 是运行copylib.sh 脚本的参数,脚本实际上是调用了 ldd giptables指令获得giptables运行时需要哪些库,并将库都复制放到当前目录的lib文件夹中。
运行完上述指令后,同目录下会生成lib文件夹,这里我们将其称作giptables的库文件夹,避免与下文内容混淆
6、将giptables的二进制文件和 giptables的库文件夹里所有的文件复制到Giptables文件夹中,注意:这里是把lib里的所有文件复制出来,不用复制lib文件夹
7、进入QT的安装目录,找到platforms文件夹,笔者的路径是
~/Qt5.7.1/5.7/gcc_64/plugins/platforms
将整个platforms文件夹复制到Giptables文件夹中,注意:这时复制的是整个文件夹,这使得Giptables文件夹中会多出一个platforms文件夹
8、将上文的copylib.sh放到Giptables/platforms/中,并运行./copylib.sh libqxcb.so,这时会得到lib文件夹——libqxcb.so的库文件夹
9、将libqxcb.so的库文件夹中的所有文件复制Giptables文件夹中,然后删除掉Giptables/platforms/lib文件夹
10、在Giptables文件夹中新建脚本giptables.sh,执行chmod 777 giptables.sh,并在其中加入
#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"


到这里就基本完成了,将Giptables文件夹复制到需要运行程序的目标主机即可,在目标主机中,运行程序,都采用 ./giptables.sh而不是./giptables,即运行程序的sh脚本,而不是二进制文件

步骤:运行release编译得到IOT可执行文件
新建一个链接依赖库的copylib.sh文件
运行./copylib.sh IOT生成IOT的库文件
找到platforms拷贝到目录下,执行./copylib.sh libqxcb.sh 生成另外一个库文件
新建一个IOT.sh文件
将所有的库文件放在同一目录下。打包到另外一台设备 执行IOT.sh文件
(2)
 另外一块树莓派的开发板,写入系统程序,配置分辨率
 sd卡插上树莓派。
 安装vnc, 取消U盘自动挂载( http://blog.csdn.net/u010940020/article/details/45431325
 把打包程序的整个文件夹ftp放进去,  对树莓派进行其他的相关配置

3)卸载不必要的程序:
  卸载之前的内存占用情况:
 
  
(4)制作镜像文件:   
进入root账户,fdisk -l 查看分区


1、挂载SD卡

使用以下命令进行挂载:
$ cd /media
$ sudo mkdir sdc1 sdc2
$ sudo mount /dev/sdc1 /media/sdc1
$  sudo mount /dev/sdc2 /media/sdc2
挂载完成后如下图中所示。
2、备份SD卡

使用 dd 命令可以直接备份SD卡。这里树莓派的SD卡的路径是 /dev/sdc1 和 /dev/sdc2 ,所以备份整个SD卡的路径就是 /dev/sdc。
输入备份命令:
$ sudo dd if=/dev/sdc | gzip>/home/lixinxing/raspberry.gz
其中备份文件要保存的位置、文件名和 SD卡的路径要根据实际选择。
这个命令可以在备份的同时压缩镜像大小,压缩完成后镜像有6.7G.
镜像大小

另外一个只备份系统占用的部分: http://www.360doc.com/content/17/0805/03/40492717_676751545.shtml

注:删除的软件:
bluej ,geany , greenfoot , minecraft-pi , Idle ,scratch , sonic-pi , chromium-browser , clawsmail ,libreoffice-base , libreoffice-calc , libreoffice-impress ,  ,libreoffice-writer , pimixer , python3 , python , nodejs , archiver , gpiciview , wolfram-engine



一定不要删除的软件:
 lxsession ,startx相关软件(用于启动桌面的软件),dh-python, java-common,python2.7 python3.5(安装lxsession 会自动安装的包,也不能卸载)
 
上述软件卸载的时候会卸载相关包,如果出现vnc连接树莓派的时候出现一直显示登陆页面,请安装lxsession即可

2.启动过程的配置
(1)树莓派去除启动LOGO( http://blog.csdn.net/flyfish1986/article/details/58587995

文件位置
/boot/cmdline.txt
执行命令
sudo nano /boot/cmdline.txt
文件最后面增加一小节 logo.nologo



此种方法是在树莓派正常启动并进入图形界面后打开自定义的图形界面程序【亦应适用于非图形界面程序】,具体如下:
1.进入/home/pi/.config文件夹:
$cd /home/pi/.config
2.在.config文件夹中创建autostart文件夹:
$mkdir autostart
3.在autostart文件夹中创建my.desktop文件:
文件内容如下:
#file start
[Desktop Entry]
Type=Application
Exec=#你要启动的图形界面程序的绝对路径#
#file end
4.reboot看下有没有效果吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值