海思hi3516ev100开发板_海思V200

海思hi3516ev100开发板_海思V2001安装ubunu14我的ubuntu14如下#uname-aLinuxubuntu4.4.0-142-generic#168~14.04.1-UbuntuSMPSatJan1911:26:28UTC2019x86_64x86_64x86_64GNU/Linux2软件包安装步骤1.配置默认使用bash执行sudodpkg-recon…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目的: 熟悉环境和流程,让更多的爱好者了解海思、加入海思。

目录

1 安装ubunu14

2 软件包安装

3 安装交叉编译工具

4 安装SDK

步骤 1.解压缩 SDK 包

步骤 2. 展开 SDK 包内容

步骤 3. 编译uboot (参考osdrv下readme)

步骤 4. 编译kernel(参考osdrv下readme)

步骤 5. 制作根文件系统(参考osdrv下readme)

5 一键全部编译


1 安装ubunu14

我的ubuntu14如下,安装方法网上很多,通用。

#uname -a

Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

2 软件包安装

步骤 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 上某些第三方库编译失败的问题。

3 安装交叉编译工具

步骤 1. 解压工具链。
执行如下命令进行解压:
tar –xvf arm-himixXXX-linux.tgz
步骤 2. 安装工具链。
运行命令 sudo ./arm-himixXXX-linux.install 即可完成此工具链的安装。
其它工具链安装方法与上述描述类似。

4 安装SDK

Hi3516CV500_SDK_V2.0.1.1.tgz的文件,该文件就是 Hi3516C V500 的软件开发包。

步骤 1.解压缩 SDK 包

在 linux 服务器上(或者一台装有 linux 的 PC 上,主流的 linux 发行版本均可以),使用命令:tar -zxf Hi3516CV500_SDK_V2.0.1.1.tgz,解压缩该文件,可以得到一个Hi3516CV500_SDK_V2.0.1.1 目录。

步骤 2. 展开 SDK 包内容

返回 Hi3516CV500_SDK_V2.0.1.1 目录,运行./sdk.unpack(请用 root 或 sudo 权限执行)将会展开 SDK 包打包压缩存放的内容,请按照提示完成操作。
如果您需要通过 WINDOWS 操作系统中转拷贝 SDK 包,请先运行./sdk.cleanup,收起SDK 包的内容,拷贝到新的目录后再展开。

步骤 3. 编译uboot (参考osdrv下readme)

#sdk目录所属者配为当前用户(非常重要)
chown -R userXXX Hi3516CV500_SDK_V2.0.1.1

#解压
tar -xzf u-boot-2016.11.tgz
cd u-boot-2016.11

#编译
source /etc/profile
export LC_ALL=C
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_defconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux-
cp ../../../tools/pc/uboot_tools/reg_info.bin .reg 
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

#uboot_tools目录下制作reg.bin,参考readme
cd Hi3516CV500_SDK_V2.0.1.1/osdrv/tools/pc/uboot_tools/hiregbin-v5.0.1
chmod 777 hiregbin
./hiregbin ./Hi3516dv300.xlsm ./reg.bin

#生成u-boot-z.bin
cp ../../../tools/pc/uboot_tools/reg.bin .reg 
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

步骤 4. 编译kernel(参考osdrv下readme)

#下载linux内核源码
1)进入网站:www.kernel.org
2)选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面
3)选择linux/菜单项,进入子页面
4)选择kernel/菜单项,进入子页面
5)选择v4.x/菜单项,进入子页面
6)下载linux-4.9.37.tar.gz (或者linux-4.9.37.tar.xz)到osdrv/opensource/kernel目录下   

#打补丁
1)将下载的 linux-4.9.37.tar.gz 存放到 osdrv的opensource/kernel目录中
2)在linux服务器中进入 osdrv 的根目录,执行如下命令:
cd opensource/kernel
tar -zxf linux-4.9.37.tar.gz
mv linux-4.9.37 linux-4.9.y
cd linux-4.9.y
patch -p1 < ../linux-4.9.37.patch
cd ../
tar -czf linux-4.9.y.tgz linux-4.9.y
cd ../../  

#注意:
若下载的内核格式为linux-4.9.37.tar.xz,
第一步先用:
xz -d linux-4.9.37.tar.xz
命令将linux-4.9.37.tar.xz解压为linux-4.9.37.tar。
第二步再用:
tar -xvf linux-4.9.37.tar
解压linux-4.9.37.tar。

#编译
cd linux-4.9.y
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_smp_defconfig
# cp arch/arm/configs/hi3516dv300_smp_defconfig  .config 等效于上一句命令
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j 16
# -j 16表示开启16个线程编译,根据机器cpu配置

步骤 5. 制作根文件系统(参考osdrv下readme)

===> mtd-utils编译不过问题

# mtd-utils编译不过问题,直接引用海思原文
一、mtd-utils2.0.2依赖以下几个库,以ubuntu为例,安装方式请参考下面命令:
sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config autoconf

二、由于mtd-utils2.0.2通过pkg-config工具检查各个库是否正常安装,因此请参考如下方式设置pkg-config工具搜索路径:
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"

三、mtd-utils2.0.2依赖于automake1.15.1版本,请参考如下方式安装automake1.15.1版本:
        1、删除原有automake版本
        sudo apt-get autoremove automake
        2、下载1.15.1版本
                1)Windows系统中使用浏览器访问automake工程url并下载对应源码包:
                https://lists.gnu.org/archive/html/info-gnu/2017-06/msg00007.html
                2)linux系统中可以使用下面命令下载:
                wget ftp://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz
        3、编译安装automake1.15.1
                tar zxvf automake-1.15.1.tar.gz
                cd automake-1.15.1/
                ./configure
                make
                make install

四、编译mtd-utils2.0.2

==> tools编译(这里就直接编译了,不去一个一个编译,中间唯一编译不过的就是{mtd-utils编译不过问题})

cd Hi3516CV500_SDK_V2.0.1.1/osdrv
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hipctools
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hiboardtools

==> 生成文件系统

#编译和安装busybox
cd Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/busybox
tar xf busybox-1.26.2.tgz
cd busybox-1.26.2
cp config_v200_a7_softfp_neon .config
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux-
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- install

#利用busybox制作根文件系统
cd Hi3516CV500_SDK_V2.0.1.1/osdrv/pub
mkdir rootfs_glibc
cd rootfs_glibc
cp -R ../../opensource/busybox/busybox-1.26.2/_install/* .
mkdir etc dev lib tmp var mnt home proc
##etc lib dev必须配置, etc直接拷贝busybox下的examples, dev直接先拷贝上ubunt下的dev, lib是应用程序所需的库
cp -R ../../opensource/busybox/busybox-1.26.2/examples/* etc/
cp -R /dev/* dev/

#SPI NOR Flash使用jffs2格式的镜像,制作jffs2镜像时,需要用到SPI NOR Flash的块大小。这些信息会在uboot启动时会打印出来。建议使用时先直接运行mkfs.jffs2工具,根据打印信息填写相关参数。
下面以块大小为64KB为例:
cd Hi3516CV500_SDK_V2.0.1.1
osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_glibc -l -e 0x10000 -o osdrv/pub/rootfs_glibc_64k.jffs2


结果:

编译得到了u-boot-z.bin 、uImage和rootfs_glibc_64k.jffs2。

 

5 一键全部编译

如果直接在osdr下make all,先解决{mtd-utils编译不过问题}就可以直接全部编译了!

Hi3516CV500_SDK_V2.0.1.1/osdrv$  ls pub/hi3516dv300_spi_smp_image_glibc/ -lah
total 71M
drwxr-xr-x 2 developer root      4.0K Mar 28 09:58 .
drwxrwxr-x 5 developer developer 4.0K Mar 28 09:58 ..
-rw-r--r-- 1 developer developer 4.1M Mar 28 09:58 rootfs_hi3516dv300_128k.jffs2
-rw-r--r-- 1 developer developer 4.1M Mar 28 09:58 rootfs_hi3516dv300_256k.jffs2
-rw-rw-r-- 1 developer developer 6.4M Mar 28 09:58 rootfs_hi3516dv300_2k_128k_32M.ubifs
-rw-r--r-- 1 developer developer 9.7M Mar 28 09:58 rootfs_hi3516dv300_2k_24bit.yaffs2
-rw-r--r-- 1 developer developer 9.5M Mar 28 09:58 rootfs_hi3516dv300_2k_4bit.yaffs2
-rw-r--r-- 1 developer developer  11M Mar 28 09:58 rootfs_hi3516dv300_4k_24bit.yaffs2
-rw-rw-r-- 1 developer developer 8.3M Mar 28 09:58 rootfs_hi3516dv300_4k_256k_50M.ubifs
-rw-r--r-- 1 developer developer  11M Mar 28 09:58 rootfs_hi3516dv300_4k_4bit.yaffs2
-rw-r--r-- 1 developer developer 4.1M Mar 28 09:58 rootfs_hi3516dv300_64k.jffs2
-rwxr-xr-- 1 developer developer 299K Mar 28 09:50 u-boot-hi3516dv300.bin
-rw-rw-r-- 1 developer developer 3.5M Mar 27 18:33 uImage_hi3516dv300_smp

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190365.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL二进制日志格式类型详解「建议收藏」

    MySQL二进制日志格式类型详解「建议收藏」mysql很多有类型的日志,按照组件划分的话,可以分为服务层日志和存储引擎层日志:-服务层日志:二进制日志、慢查日志、通用日志-存储引擎层日志:innodb(重做日志、回滚日志)其中比较重要的就是服务器层的二进制日志,其中记录了所有对mysql数据库的修改事件,包括增删改查事件和对表结构的修改事件。要注意的一点是,只有成功执行了的事件才会记录在二进制日志中,未执行成功的不会保存

    2022年6月5日
    71
  • 细说JDK动态代理的实现原理

    细说JDK动态代理的实现原理关于JDK的动态代理,最为人熟知的可能要数SpringAOP的实现,默认情况下,SpringAOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。那么,什么是JDK的动态代理呢?JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。JDK从1.3开始支持动态代理。那么JDK是如何生成动态代理的

    2022年6月15日
    35
  • 看了这篇文章觉得MySQL读写分离这么简单「建议收藏」

    点赞多大胆,就有多大产!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言​  Mysql优化那篇文章有朋友留言说就这么点?,深深刺痛了晓添的心,感觉知识深度被小看了,痛定思痛决定发布读写分离,分表分库优化文章,其实这系列文章也在Mysql优化的计划之内,最近较忙断断续续写的有点难受,到今天才跟大家见面,篇幅有限这篇我们来说说基于Mycat实现读写分离,话不多…

    2022年4月13日
    59
  • oracle 错误01017,ORA-01017:用户名密码出错 故障实例「建议收藏」

    oracle 错误01017,ORA-01017:用户名密码出错 故障实例「建议收藏」sysdba登录ORA-01017:用户名密码出错故障排查实例早上接到一个朋友的急call,说是数据库的sys登录不了系统叻。普通用户连接可以登录,只要是assysdba就提示ORA-01017:用户名密码出错。很显然这是一个典型的sysdba登录的问题。首先要他查看了sqlnet文件。SQLNET.AUTHENTICATION_SERVICES=(NONE)启动密码文件验证了,接着查看…

    2022年5月31日
    82
  • javascript如何去除对象的某个属性「建议收藏」

    js中其实是有delete这个关键字的varobj={key1:’value1′,key2:’value2′};deleteobj.key1;这样就能删除obj中的key1了。不过delete不能删除直接使用var定义的变量。比如:varvar1=’value1′;deletevar1;

    2022年4月16日
    135
  • 常用的CSS[持续更新]

    常用的CSS[持续更新]

    2021年8月20日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号