转自迅为4412开发板项目实战教程
B站视频地址:https://www.bilibili.com/video/BV157411c7sc?p=7
项目名称;图像识别项目
硬件平台:iTOP-4412开发板
本节课我们需要使用前面编译的好库,本节课也给大家提供了编译好的库,可以直接使用。接下来我们开始制作支持opencv和百度AI的文件系统。
环境:迅为提供的ubuntu16.04
制作根文件系统大家可以参考系统编程里面的制作最小文件系统的视频,这里就不再重新制作了。
一.添加openssl到文件系统
我们把制作好的根文件系统拷贝到ubuntu,这里我拷贝到了/home/baidu/root下面,如下图所示:
输入以下命令解压并进入解压生成的目录,
tar -vxf iTOP-4412-QtE5.7_4412_elite.tgz
cd root/
把编译好的openssl拷贝到根文件系统的/usr/local/路径下面,命令如下:
cp -r /usr/local/openssl/ ./usr/local/
如下图所示:
修改根文件系统的环境变量,输入命令vi ./etc/init.d/rcS ,如下图所示:
添加openssl的环境变量,命令如下:
PATH=$PATH:/usr/local/openssl/bin
如下图所示:
拷贝 ubuntu下的/usr/local/openssl/lib 下的所有文件拷贝到. /lib 目录下,命令如下:
cp -r /usr/local/openssl/lib/* ./lib/
如下图所示:
二.添加curl到文件系统
把编译好的curl库拷贝到根文件系统的/usr/local/路径下面,命令如下:
cp -r /usr/local/curl/ ./usr/local/
如下图所示:
修改根文件系统的环境变量,输入命令vi ./etc/init.d/rcS ,如下图所示:
添加curl的环境变量,命令如下:
PATH=$PATH:/usr/local/curl/bin
如下图所示:
拷贝 ubuntu下的/usr/local/curl/lib 下的所有文件拷贝到. /lib 目录下,命令如下:
cp -r /usr/local/curl/lib/* ./lib/
如下图所示:
三.添加jsoncpp到文件系统
在根文件系统./usr/local/下面创建一个json的文件,如下图所示:
将编译好的jsoncpp 目录下的 include 文件夹和lib复制到根文件系统./usr/local/json/ 目录,命令如下:
cp -r /usr/local/json/* ./json/
如下图所示:
拷贝 /usr/local/json/lib 下的所有文件到 ./lib 目录下,命令如下:
cp -r /usr/local/json/lib/* ./lib/
如下图所示:
四.添加opencv到文件系统
将编译好的opencv拷贝到根文件系统的 ./usr/local/下面,命令如下:
cp -r /usr/local/opencv-2.4.9/ ./usr/local/
如下图所示:
将编译好的opencv库拷贝到根文件系统的 ./lib下面,命令如下:
cp -r /opt/opencv-arm/lib/* ./lib/
如下图所示:
我们使用命令“cd lib/”进入“.lib”文件夹。使用以下命令创建链接。因为自带的 libstdc++.so.6.0.10 不支持GLIBCXX_3.4.11,运行程序会报错。
cd ./lib/
rm -rf libstdc++.so.6
cp -r /usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12 ./
ln -s libstdc++.so.6.0.12 libstdc++.so.6
如下图所示:
四.添加中文字库
在跟文件系统的./opt/qt-5.7.0/lib/下使用mkdir fonts 创建一个存放字库的文件,然后将文件“wenquanyi.ttf”拷贝到根文件系统的“./opt/qt-5.7.0/lib/fonts”,如下图:
打开根文件系统的/etc/profile,添加字库的环境变量,注意这里字库的环境变量一定要写在QT库的路径下面
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
如下图所示:
五.打包文件系统
生成可以下载的 system.img 文件需要工具“mkimage”,这个工具在视频目录下可以找到中,如下图所示。我们把他拷贝到ubuntu的根目录。如下图所示:
在根目录解压这个压缩包,我们会在/usr/local/bin下面看到生成的俩个文件,如下图所示:
然后我们回到我们解压根文件系统的目录下,我们输入以下命令生成文件系统,注意这里的我们指定的linux的空间大小为2G,所以我们在烧写的时候要使用2G的分区,也就是命令fdisk -c 0 2048 300 300
make_ext4fs -s -l 2092957696 -a root -L linux system.img root
如下图所示:
最后,我们把生成的文件系统烧写到开发板并验证是否可以启动成功,内核和uboot使用光盘里面QT系统的内核和uboot。
烧写命令:
fdisk -c 0 2048 300 300
fatformat mmc 0:1
ext3format mmc 0:2
ext3format mmc 0:3
ext3format mmc 0:4
fastboot
fastboot.exe flash bootloader u-boot-iTOP-4412.bin
fastboot.exe flash kernel zImage
fastboot.exe flash ramdisk ramdisk-uboot.img
fastboot.exe flash system system.img
fastboot -w
fastboot reboot