历史上的今天
今天是:2024年12月27日(星期五)
2021年12月27日 | 迅为4412开发板项目实战-制作支持百度AI和opencv的文件系统
2021-12-27 来源:eefocus
项目名称;图像识别项目
硬件平台: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
史海拾趣
|
小弟今天刚开始看redboot启动代码,发现一个问题请各位大侠指教?就是这条语句UNMAPPED_PTR(reset_vector)的目的何在?为啥不可以写成PTR(reset_vector)呢? 先谢过各位!!!!! [code] #define PTR(name) &nb ...… 查看全部问答> |
|
内存控制器和mmu有什么区别? 现在接触davinci系列处理器,其中包含arm926、vpss(主要用于视频处理)、dsp 这些东西都在内存控制器之下工作,而mmu只在arm端有,想问是内存控制器是在arm内还是另外在片内独立的一个东西,而mmu和内存控制器有什么 ...… 查看全部问答> |
|
我现在是在EVC下做一个简单的对话框程序,程序是在2440XP开发板上运行,系统是WinCE5.0 这个程序就是一个基于对话框的程序,首先我给对话框设置一张背景图片,然后还在对话框上加了一些CBitmapButton和CStatic这些控件我都把它们的背景设置成一些 ...… 查看全部问答> |
|
香版:您好! 我在使用Custom_Hid的时候,发现其需要安装驱动,但其启动好像是PC系统自带,这倒没有什么问题。 问题是,在第一次插入PC的时候,会提示ST等信息。而作为我们设计的产品,希望能提示公司自己的ID或者什么都不显示。不知道这样 ...… 查看全部问答> |
|
目的研制一种具有无线传输功能的便携式 电监护仪 。方法以MS P 4 3 0单片机为核心 , 控制心电采集 、 放大模块 , 并通过 BC M一 0 3蓝牙模块 将心电数据发送到掌上 电脑上进 行监护。结果 实现了心数据的采集及与P D A的蓝牙无线通讯 ...… 查看全部问答> |




