本文全文基础参考:DM365 dvsdk_4_02_00_06开发环境搭建
应原作者要求的声明:
本文源自蓝海@博客站:http://kevinxie.blog.51cto.com,原创作品,转载请保留本声明,以示对作者劳动的尊重。
上述的博文非常详细的介绍了DVSDK的安装过程,为什么我还要再重新排版一次呢?这不禁让我发自内心的想说一句: 大人,时代变了 。
截止到我写这个博文,已经0202年了,前几日看到Ubuntu社区都要推出Ubuntu20.04了,然而DVSDK依赖的环境却是Ubuntu10.04,我抱着试试看的态度在Ubuntu18.04的系统上运行安装程序,得到不能安装的提示;不甘心的我查找官网发现即便是最新的DVSDK4_03也是在Ubuntu10.04上运行的。
QWQ,我能怎么办呢?时代在发展,但是需求却是一直在徘徊。既然规定了使用DM368,那就用之。但是在按照原博文安装的过程中却遇到了一些问题,因为Ubuntu10.04实在是太老了,甚至被划归到old release版本中了。所以一些东西和方法需要做修改,这些内容网上都能查到,此处列出,emmm,希望能方便以后用得上的人吧。
Windows环境 | Windows 10, 64-bit (Build 19041) 10.0.19041 |
---|---|
虚拟机平台 | VMware® Workstation 15 Pro 15.5.1 build-15018445 |
Ubuntu版本 | Ubuntu10.04 32-bit LTS |
DVSDK版本 | DVSDK4_02_00_06 |
这个安装过程很简单,网上教程也很多,安装时也没有什么困难,所以直接上安装包。
[VMware Workstation Pro 15]
百度网盘连接: https://pan.baidu.com/s/1D_0rI8WEyyQEmYrtaK_ttw
提取码: w7nm
首先,Ubuntu10.04 LTS的下载源为:
http://old-releases.ubuntu.com/releases/
进去之后别看花了眼,按照官网的要求,我们只需要 Ubuntu 10.04.4 LTS (Lucid Lynx) 这个版本的镜像。在VMWare中安装操作系统就不多说了,也没有什么问题,甚至因为Ubuntu10.04比较小,安装的速度还会更快一些。
在安装了系统之后先别急,把系统调好了再说。有以下几步需要安排一下:
将/etc/apt/sources.list中的内容全部删除替换为:
deb http://old-releases.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ lucid main restricted
——>参考来源
比较方便的改法是先建立一个sources.list文件,输入上面的内容保存之后,使用cp替换原文件:
sudo cp sources.list /etc/apt/
文件的修改可以使用系统中自带的编辑器,别纠结在不好用的vi上。
Ubuntu10.04中没有apt命令,只好麻烦自己多输入几个字符咯:
sudo apt-get update
sudo apt-get upgrade
这样就可以使用apt-get工具安装应用了。
aot-get工具可用后,为了以后方便,建议安装vim:
sudo apt-get install vim
至此,对Ubuntu10.04的配置就算完成了。
DVSDK使用的交叉编译工具链是arm-none-linux-gnueabi-gcc,而且必须在安装的时候指定好工具链的安装位置,这是因为很多配置文件的内容在安装的时候就固定了的缘故。在安装后再手工修改工具链的路径不现实。所以一开始就要装好工具链。
各版本下载地址:https://www.veryarm.com/arm-none-linux-gnueabi-gcc
其中版本众多,我只爱一个:arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
在下载之后,将其拷贝到/usr/local目录下:
sudo cp arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /usr/local/
这里顺带说一嘴,VMWare和虚拟机之间的文件交换可以不使用VMWare Tools,在设置中挂载共享文件夹即可。
切换到目标目录
cd /usr/local
在当前目录下解压
sudo tar -jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
增加PATH变量:打开配置文件
sudo vim /etc/bash.bashrc
在末尾添加
export PATH=$PATH:/usr/local/arm-2009q1/bin/
*执行(之所以标星是因为这步也可以不执行,重启即可)
source /etc/bash.bashrc
至此,在Terminal中输入arm-并按两次TAB之后应该可以看到如下提示:
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/4_02_00_06/index_FDS.html
首先安装fakeroot:
sudo apt-get install fakeroot
然后安装autoconf automake:
sudo apt-get install autoconf automake
实际上只输入一个也是可以的,例如:sudo apt-get install autoconf,此时automake会被自动安装。
然后在DVSDK安装程序所在目录下执行SDK安装:
./dvsdk_dm365-evm_4_02_00_06_setuplinux
安装过程中应手动指定交叉编译工具(arm-none-linux-gnueabi-gcc)的安装目录以及SDK目标安装目录,toolchain详细到 /XXX/arm-2009q1/bin 。
此时基本的安装已经搞定,可以在安装目录下执行make以编译所有项目,编译过程不会出错。
在DVSDK安装目录下执行:
make u-boot
如果已经执行过make,那么uboot是已经编译好的了,编译得到的u-boot.bin在uboot文件夹内。
进入 ./psp/uboot文件夹/tools/ ,将其中的mkimage拷贝到toolchain的安装目录下bin文件夹内:
sudo cp mkimage /usr/local/arm-2009q1/bin/
mkimage是生成kernel的uImage需要使用的工具,本来在Ubuntu18.04下可以使用sudo apt install u-boot-tools得到的,但是很可惜,Ubuntu10.04中不能使用这个方法,甚至原来的mkimage源也失效了。所以使用上面的方法是最简单的了。
而拷贝到toolchain安装目录下的原因是,这个目录已经添加在了系统环境变量中,使用相应命令时系统能找得到。要是愿意,放在其它位置也行,把那个位置添加到PATH就成了。
在DVSDK目录下输入:
make linux
生成的uImage在 ./psp/linux文件夹/arch/arm/boot/ 内。
在home下新建文件夹targetfs,将DVSDK安装目录下 ./filesystem/ 中较大的包解压到该文件夹:
sudo tar -zxvf dvsdk-dm365-evm-rootfs.tar.gz -C ~/targetfs
修改文件系统的用户和组为普通用户
sudo chown username:username ~/targetfs -R
编辑DVSDK安装目录下的Rules.make文件,把最后一行改成:
EXEC_DIR=$(HOME)/targetfs
在DVSDK文件夹下执行
make install
在Ubuntu18.04中,下面的命令就行了:
sudo apt-get install mtd-utils
但是在Ubuntu10.04中有可能是执行失败的,那么需要这样安装:
(注意,以下操作只为了得到mkfs.jffs2)
首先安装
sudo apt-get install zlib1g-dev liblzo2-dev
然后在下面这个地址中下载1.5.2版本的mtd-utils:
ftp://ftp.infradead.org/pub/mtd-utils/
之所以是这个版本是因为最新版和1.5.0我都没有编译出来…可能是我太菜了吧。
tar jxf解压之后进入其中进行编译:
make WITHOUT_XATTR=1
参考mtd-utils交叉编译中的内容,指定WITHOUT_XATTR=1 是由于在编译 mkfs.jffs2使其不调用acl.h而是用zlib的库.
后续编译会报错,但是不用管,在目录下我们得到了mkfs.jffs2可执行文件了。
最后拷贝该文件到toolchain目录下:
sudo cp mkfs.jffs2 /usr/local/arm-2009q1/bin/
最后,在tergetfs上层目录执行:
mkfs.jffs2 -r /home/wind/targetfs/ -o /home/wind/dm368_basefs.bin -e 0x20000 -s 0x800 -n
即可得到根文件系统的二进制文件。
实际上,安装了DVSDK之后还有很多路要走,比如如何对不同的硬件做适配,比如读懂它的例程QWQ。
不过有一句话说得好,万事开头难,然后中间难,然后结尾难,困难总是有的,干就完了。
————2020-2-3@燕卫博————