HI3516DV300 开发环境搭建及NFS网络挂载
一、概述
本教程是给A182型HI3516DV300芯片而写,板载2*512M=1G的DDR4运存,板载32M NOR Flash。Hi3516CV500/Hi3516DV300/Hi3516AV300三款芯片使用同一个SDK,这里我们同一使用Hi3516CV500R001C02SPC020这个版本的SDK。
开发工具:
WIN10系统电脑;
ubantu 16.04(使用灵派科技相同的linux系统)
二、安装VM虚拟机,可以自己安装,也可以直接使用灵派的镜像,但是注意ubantu版本为16.04,过低或者过高均可能因为确少某些组件而影响以下操作。
三、ubantu安装samba服务器,用于在WIN系统和虚拟机之间的文件传输。
在win和ubantu下可以有很多种方式,这里只写一种,也是我常用的一种。
参考这个安装文档:
(24条消息) ubuntu下samba安装配置_GeYi1998的博客-CSDN博客
https://blog.csdn.net/weixin_44023406/article/details/119422155
这里的samba用户名可以和ubantu用户的名字和密码保持一致,方便记忆。
这里我的smb.conf配置文件如下图所示:
在win下操作如下所示:
四、首次安装SDK
SDK路径
..\Hi3516CV500R001C02SPC020\Hi3516CV500R001C02SPC020\01.software\board\Hi3516CV500_SDK_V2.0.2.0.tgz
通过samba将SDK拷贝到linux下的某个目录进行解压,注意不要在win下解压
在SDK的文件目录下,命令行执行
tar -zxvf Hi3516CV500_SDK_Vx.x.x.x.tgz // Hi3516CV500_SDK_Vx.x.x.x.tgz为具体的SDK名字
进入sdk目录,执行,如果没有权限就给权限chmod
./sdk.cleanup
./sdk.unpack
五、安装交叉编译器(或叫交叉工具链)
在发布包Hi3516C V500R001C01SPCxxx.rar 所在的目录中下载工具链文件。
注意:安装交叉编译器需要有sudo 权限或者root 权限。
1) 安装himix200 交叉编译器:
解压tar –xzf arm-himix200-linux.tgz
运行chmod +x arm-himix200-linux.install
然后运行./arm-himix200-linux.install 即可。
2) 执行source /etc/profile,安装交叉编译器的脚本配置的环境变量就可以生效了,或者
请重新登陆也可。
我所使用的灵派科技的ubantu镜像已经安装了两种交叉编译工具链,我这里并没有尝试安装。
六、SDK编译
步骤1 配置默认使用bash
执行sudo dpkg-reconfigure dash 选择no
步骤2 安装软件包
执行:sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl bc
(最好是粘贴过去)
步骤3 创建/etc/ld.so.preload 文件,并执行echo "" > /etc/ld.so.preload,以解决64bit linux
server 上某些第三方库编译失败的问题。
编译uboot
进入/Hi3516CV500_SDK_V2.0.2.0/osdrv/opensource/uboot/
解压tar -zxvf u-boot-2016.11
进入这个目录
步骤1 配置编译环境
使用配置命令:
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_defconfig
步骤2 编译U-boot
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- -j4
编译成功后,将在U-boot 目录下生成u-boot.bin
注意:这一步生成的u-boot.bin 只是一个中间件,并不是最终在单板上执行的
U-boot 镜像。
接下来的步骤不再叙述,具体参考《A182 型Hi3516DV300 开发板快速入门手册》有关uboot编译的章节。
内核的编译
这个也参考《A182 型Hi3516DV300 开发板快速入门手册》有关内核编译的章节。
根文件系统编译
这个也参考《A182 型Hi3516DV300 开发板快速入门手册》有关根文件系统编译的章节。
或者参考这个链接:https://www.ebaina.com/ask/100000030484
部署海思mpp
Linux下解压官方的mpp包,
复制mpp/ko里面所有文件到rootfs_glibc中,cp -r
复制mpp中的lib中的.so(动态库文件)到rootfs的lib目录中 –>是通配符,所有so后缀的文件
设置开机自动加载mpp驱动:
修改根文件目录中的
/etc/init.d/S00devs,在文件末尾添加
cd /ko
./load3516dv300 -i -osmem 128 -total 1024
cd /
制作完根文件系统和部署完MPP,修改好相关文件后,即可打包根文件系统。
注意实际的文件路径,实际命令可能和下面的不一样
//生成块大小为64K的根文件系统
sudo ./mkfs.jffs2 -d rootfs_glibc -l -e 0x10000 -o rootfs_glibc_64k.jffs2
制作根文件系统有可能过大,如接近30MB了,nor flash没有空间了,这种情况下只有两种办法,根据下面办法,精简系统:
或者挂载到TF卡上
前期测试时可以用nfs挂载根文件系统,后期挂载到tf卡上,挂载到TF未测试。
TFTP加载内核和NFS挂载根文件系统
参考正点原子的教程《【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.3.1.pdf》
搭建好上述环境后,烧录uboot,
进入uboot,设置bootargs和bootcmd
注意上面的ip地址需要和自己的实际ip一一对应
注意tftp服务的文件路径,这里主要是uImage的名字 此处是uImage_3516DV300
注意nfs挂载的路径,此处是/home/linkpi/work/3516DV300/rootfs
下面的命令最好是复制,注意空格
这些命令错一点,就无法启动了
//nfs
setenv serverip 192.168.1.90;setenv ipaddr 192.168.1.30;setenv gatewayip 192.168.1.1;setenv netmask 255.255.252.0
setenv bootcmd 'mw.b 82000000 ff 400000;tftp 82000000 uImage_3516DV300;bootm 0x82000000'
setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/nfs rw nfsroot=192.168.1.90:/home/linkpi/work/3516DV300/rootfs ip=192.168.1.30:192.168.1.90:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc'
saveenv
boot
等到启动系统,测试app的相关例程即可
- 分享
- 举报
-
浏览量:1182次2023-06-12 14:18:15
-
浏览量:850次2023-06-21 10:04:00
-
浏览量:8341次2022-06-01 10:01:04
-
浏览量:5119次2023-03-20 13:32:44
-
浏览量:7359次2020-09-17 16:12:59
-
浏览量:2277次2023-07-12 15:22:31
-
浏览量:3607次2022-10-13 17:29:06
-
浏览量:2489次2023-06-28 15:57:28
-
浏览量:1134次2024-06-06 09:47:33
-
浏览量:1503次2023-06-12 14:18:20
-
浏览量:14788次2020-12-18 17:44:33
-
浏览量:2800次2022-10-14 10:34:46
-
浏览量:1511次2023-11-06 11:04:59
-
浏览量:874次2024-01-18 15:33:23
-
浏览量:1186次2024-01-13 18:14:30
-
浏览量:1253次2024-01-08 16:49:01
-
浏览量:905次2023-12-28 14:24:27
-
浏览量:1319次2023-06-20 16:09:54
-
浏览量:2763次2024-04-30 21:01:38
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
Joker
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明