海思AI芯片(Hi3519A/3559A)方案学习(三)Ubuntu18.0.4上编译Hi3519AV100 uboot和kernel

article/2025/10/25 13:07:40

先重申下我的平台为ubuntu18.0.4,SDK的目标平台为Hi3519AV100系列

准备工作

  1. 安装himix200交叉编译器
  1. tar –xzf arm-himix200-linux.tgz
  2. sudo ./arm-himix200-linux.install
  3. source /etc/profile
  1. 安装SDK包
  1. tar -zxf Hi3519AV100_SDK_V2.0.1.0.tgz
  2. sudo ./sdk.unpack 

这时可能会遇到下面错误:

提示 source命令在shell脚本里面找不到: source: not found

解决办法如下:

注意两点:

  1. SDK所在目录的所有路径不能有中文或空格符。
  2. 上面两步的操作说明可在《Hi3519AV100 SDK 安装及升级使用说明》找到。

编译uboot

通过上面Unpack操作后的SDK根目录,如下所示:

上面红框勾选目录osdrv是我们关注的重点,它的内容如下所示:

首先要好好研读readme_cn.txt,里面提供两个编译思路:

  1. 直接在osdrv根目录下  make all  这样就可以一次性的把kernel和uboot都编译好。当然为了使其在目标平台能运行正确,可能需要加一些额外参数, 比如CHIP=hi3519av100 BOOT_MEDIA=xxx等。这是后话,本文主要讲编译。 但是,我们发现直接在这里做总的编译,很难成功。总是容易遇到uboot或kernel问题。后来,我去uboot单个目录下把编译搞定,回过头来这里make all,结果把以前编译好的uboot binary还有修改的uboot的makefile都删掉了。
  2. 所以,我个人认为在osdrv下总的编译是个坑,最好是去opensource下面来分别编译kernel和uboot。好在该readme里面提供了分别编译的步骤。

通过第一步的unpack,uboot code已经解压缩出来如下,根目录是u-boot-2016.11

具体编译步骤:

  1. cp configs/hi3519av100_defconfig .config
  2. make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig

会遇到下面错误:

解决办法是:sudo apt-get install libncurs*

  1. make ARCH=arm CROSS_COMPILE=arm-himix200-linux-

会遇到错误:

loadlocale.c:130: _nl_intern_locale_data: Assertioncnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.

Aborted (core dumped)

我的解决办法是在Makefile添加一行:export LC_ALL=C

  1. cp ../../../tools/pc/uboot_tools/reg_info.bin .reg
  2. make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

最终会生成u-boot-hi3519av100.bin

 

Kernel编译

  1. 先对下载kernel-4.9.37.tar.gz然后根据xx/opensource/kernel/readme_cn.txt对它打一个patch
  2. 开始编译
  1. cp arch/arm/configs/hi3519av100_smp_defconfig .config
  2. make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
  3. make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage

会遇到下面问题:

解决办法:


http://chatgpt.dhexx.cn/article/WqnXnyLk.shtml

相关文章

Hi3798M V200 SDK文档介绍

目录 下载SDK并解压解压后主要的文件夹 下载SDK并解压 步骤1&#xff1a;下载Hi3798M V200 SDK。 大家如果有下载路径可以直接下载&#xff0c;如果没有的话可以使用我这个路径。 链接&#xff1a;https://pan.baidu.com/s/1buqwwZ7yBPNmi6JA2KG1eQ 提取码&#xff1a;dv6f ps…

FPGA+海思Hi3559

海思3559av100接收FPGA通过LVDS发送的模拟数据&#xff0c;&#xff0c;模拟数据为彩带。 FPGA可以模拟彩带或者黑白灰图像的模拟数据&#xff0c;通过LVDS协议&#xff08;LVDS为低电压差分信号&#xff0c;核心是采用极低的电压摆幅高速差动传输数据&#xff0c;可以实现点对…

海思Hi3798MV310机顶盒芯片Datasheet-基本信息

Hi3798M V310 是用于 IPTV/OTT 机顶盒市场的支持 4KP60 解码的超高清高性能 SOC芯片。集成 4 核 64 位高性能 Cortex A53 处理器和多核高性能 2D/3D 加速引擎&#xff1b;支持H.265/AVS2 4Kx2KP60 10bit 超高清视频解码&#xff0c;高性能的 H.265 高清视频编码&#xff0c;HDR…

海思Hi3798MV200机顶盒芯片规格书-基本信息

Hi3798MV200 是用于 IPTV/OTT 机顶盒市场的支持 4KP60 解码的全 4K 高性能 SOC芯片。集成 4 核 64 位高性能 Cortex A53 处理器和多核高性能 2D/3D 加速引擎;支持H.265 4Kx2K@P60 10bit 超高清视频解码,高性能的 H.265 高清视频编码,HDR 视频解码及显示,HDR 转 SDR,BT.202…

hi3798mv300是什么手机_海思Hi3798MV300/Hi3798MV310/Hi3798MV300H共升级包使用指南芯片手册...

本文针对现网各种场景&#xff0c;对hi3798MV300、Hi3798MV310、Hi3798MV300H共升级包方案的升级包的编译、制作方法和原理进行了详细介绍。 适用场景 场景1&#xff1a; 现网同时有Hi3798MV300和Hi3798MV300H&#xff0c;而且版本基线相同&#xff0c;现需要升级到最新版本 场…

Hi3519AV100 适配IMX347

前言 环境介绍&#xff1a; 1.编译环境 Ubuntu 18.04.5 LTS 2.SDK Hi3519AV100_SDK_V2.0.1.0 3.单板 Hi3519AV100开发板 IMX347 2688x1520(4M)30fps master mode i2c id 0x34 一、Sensor i2c寄存器读写 海思默认文件系统是有i2c读写工具的&#xff0c;可以使用这个工具…

海思Hi3798硬件设计,Hi3798 datasheet(2)参考资料

本文主要介绍 Hi3798C V200 芯片的硬件封装、管脚描述、管脚复用寄存器的配置方法、电气特性参数、原理图设计建议、PCB 设计建议、热设计建议等内容。本文主要为硬件工程师提供硬件设计的参考。 2.1 封装 Hi3798C V200 芯片 TFBGA&#xff08;Thin Fine BGA package&#xf…

HI3798MV200驱动移植

目录 1.UBOOT配置修改方法 2.由EMMC启动改为SPI NAND FLASH 启动 3.网络调试 4.PHY复位 5.内核起来网络不通 6.增加RTC 7.PHY 灯ACT LINK 问题 8.PHY link状态查询 9.ETH0 网络状态灯修改 1.UBOOT配置修改方法 需要对应版本的HITOOL&#xff0c;个人也是废了很大劲&a…

M301H-BYT代工-支持Hi3798 MV300H/MV300/MV310芯片-当贝纯净桌面-强刷卡刷固件包

M301H-BYT代工-支持Hi3798 MV300H&#xff0f;MV300&#xff0f;MV310芯片-当贝纯净桌面-强刷卡刷固件包 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff…

Hi3798 openSSH的移植

前言 在编译海思SDK时&#xff0c;会自动编译openssl&#xff0c;zlib&#xff0c;故无需重复编译这两者。 编译 编译openssh 本文下载openssh-7.3p1版本&#xff0c;将其下载至虚拟机 tar -xvf openssh-7.3p1.tar.gz ./configure --hostarm-linux --prefix/usr/local/ope…

海思HI3798M GPIO和PWM操作

一、GPIO拉高拉低操作 以GPIO2_7为例 地址&#xff08;0xF8B2_2400&#xff09; 基地址&#xff08;0xF8B2_2000&#xff09; 偏移地址&#xff08;0x00000400&#xff09; ①把GPIO2_7管脚复用设置为IO模式 himm 0xF8B2205C 0x00&#xff08;0xF8B2205C 基地址0xF8B2_2000 …

海思Hi3798MV100机顶盒芯片介绍

Hi3798M V100是海思推出的专门针对OTT机顶盒市场的高性价比芯片方案。在码流兼容性、在线视频播放的流畅性、图像质量以及整机性能方面保持业界最好的用户体验。集成四核高性能处理器、内置NEON&#xff0c;其处理性能可以满足各种差异化的业务需求&#xff0c;支持Dolby和DTS音…

海思Hi3798MV300_Hi3798MV300H_Datasheet-系统

Hi3798MV300/Hi3798MV300H处理器子系统 Hi3798MV300/Hi3798MV300H采用 ARMCortex-A53MPCore 四核处理器&#xff0c;Cortex-A53 MPCore 具有以下特点&#xff1a;  处理器集成了 256KB L2 cache。  支持 ARMv8-A 架构。  支持 DVFS 自动调频调压和 AVS 自适应调压。 …

海思Hi3798处理器参数,Hi3798芯片详细信息介绍

Hi3798C V200集成4核64位高性能Cortex A53 处理器、内置NEON 加速引擎&#xff0c;强大的CPU 处理能力可以满足各种差异化的业务需求。在码流兼容性、在线视频播放的流畅性、图像质量以及整机性能方面保持业界最好的用户体验。支持4K 2KP6010bit 超高清视频解码和显示&#xff…

Linq两个List集合取交集

来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p210 GPS平台、网站建设、软件开发、系统运维&#xff0c;找森大网络科技&#xff01; http://cnsendnet.taobao.com 1、法一&#xff1a;常规方法 2、嗯&#xff0c;.NET中所有的sort&#xff0c;compare都支持…

两个对象List根据属性取交集和差集

背景介绍 咸鱼君最近做了个需求, excel导入功能, 其中 需要对已导入条目的做“更新” 未导入的条目做“新增” 其余的做“删除” 细品需求 无非是对excel的数据和数据库的数组做个差集, 交集的处理 打个比方: excel的数据我们定义为 newList 已导入的数据我们定义为 …

java8 Stream流 两个list取交集,获取共有数据

代码&#xff1a; public static void main(String[] args) {List<String> list1 Arrays.asList("a","b","c");List<String> list2 Arrays.asList("b","c","d");List<String> intersection …

Java-两个较大的List快速取交集、差集

工作中经常遇到需要取两个集合之间的交集、差集情况&#xff0c;但是普通的retainAll()和removeAll()无法满足数据量大的情况&#xff0c;由此就自己尝试运用其他的方法解决。注&#xff1a;如果数据量小的情况下&#xff0c;还是使用retainAll()和removeAll()方便 1.假使不存在…

java中两个list对象取交集、差集

在一般操作中&#xff0c;对于list集合取交集、差集、并集&#xff0c;比较简单&#xff0c;网上有很多例子&#xff0c;如&#xff1a; 今天我们来说一下对于两个list集合该如何取交集与并集&#xff1a; 如下两个集合&#xff1a;groupEntityList、saveEntities&#xff0c;…

两个 list 求交集

两个 list 求交集, 一种方式是手动遍历, 然后判断是否 contains, 然后添加到结果 list 中 这里介绍另外一个方法 直接调用 list1.retainAll(list2), 调用完成后, list1 中不在 list2 的元素都会被剔除, 此时 list1 就是交集 /*** retain* 保留*/Testpublic void testRetain() …