当前位置: 首页 > article >正文

hi3798mv100 linux 移植

# Linux开发环境搭建

## uboot编译

1. 必须先安装gcc,要不然make 等命令无法使用

2. 配置arm 交叉编译链

# gcc
sudo apt-get install gcc-9
gcc -v


# 安装 Linaro gcc-arm-linux-gnueabihf,注意不是arm-linux-gnueabihf-gcc
sudo apt-get install arm-linux-gnueabihf-gcc # 这是错误的
sudo apt-get install gcc-arm-linux-gnueabihf
arm-linux-gnueabihf-gcc -v


# 卸载 Linaro gcc-arm-linux-gnueabihf
sudo apt remove --auto-remove gcc-arm-linux-gnueabihf
sudo apt autoremove

whereis arm-linux-gnueabihf-gcc
which arm-linux-gnueabihf-gcc



# 安装 Arm 官方 gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf/
tar -xvf gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf.tar.xz #解压

vim /etc/profile
export PATH=$PATH:/home/gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf/bin # 最后添加这一句
source /etc/profile

arm-none-linux-gnueabihf-gcc -v

 ## uboot 编译时报错

# 最终没找到问题,重新解压一下源文件即可。

/bin/sh: 1: scripts/basic/fixdep: Exec format error
make[1]: *** [scripts/Makefile.host:95: scripts/basic/fixdep] Error 126
make[1]: *** Deleting file 'scripts/basic/fixdep'
make: *** [Makefile:514: scripts_basic] Error 2

## 机顶盒直接开发

1. 首先刷入 hinas 系统, 这时候机顶盒就是一个arm 版的Linux,编译环境就是arm的。 只需要安装gcc即可(sudo apt install gcc)

## 虚拟机Linux 开发

需要安装交叉编译环境(arc-gcc)

sudo apt-get install gcc-arm-linux-gnueabihf

sudo apt-get install g++-arm-linux-gnueabihf

arm-linux-gnueabihf-gcc -v


lzma --version | awk '$0~/LZMA.SDK.[0-9]\.[0-9]/{print $3}'


# 指定版本linux内核编译
cd /root/hi3798mv100/HiSTBLinuxV100R005C00SPC041B020 #(SDK_path)


"/root/hi3798mv100/HiSTBLinuxV100R005C00SPC041B020/source/kernel/linux-3.18.y/"

"/root/hi3798mv100/HiSTBLinuxV100R005C00SPC041B020/source/kernel/linux-3.18.y/arch/arm/configs/"


cp "/root/hi3798mv100/hi3798mv100_defconfig-0812" "/root/hi3798mv100/HiSTBLinuxV100R005C00SPC041B020/source/kernel/linux-3.18.y/arch/arm/configs/hi3798mv100_defconfig"


1. 先备份上面路径下的hi3798mv100_defconfig 原始文件

2. cd source/kernel/linux-3.18.y/

3. make ARCH=arm hi3798mv100_defconfig # Linux 内核编译选项

4. make ARCH=arm savedefconfig #重新生成defconfg文件,会在 上面的目录下生成deconfig 文件

5. cp defconfig arch/arm/configs/hi3798mv100_defconfig # 这一步可省略,如果用 hi3798mv100_defconfig-0812 文件,就不要拷贝

6. make distclean # 清理Linux内核的编译

7. cd $SDK_path;make linux #重新编译kernel


编译报错 yylloc
https://blog.csdn.net/zhoukaiqili/article/details/126191871




# uboot 编译
source ./env.sh  #SDK各种环境变量

make menuconfig
make build -j4 2>&1  | tee -a buildlog.txt

上面编译成功后,在out/hi3798mv100可以找到编译好的fastboot-burn.bin、bootargs.bin、hi_kernel.bin,分别是uboot引导文件、uboot引导参数配置和linux内核。


make cfg.mak clean #重新编译之前先clean
rm -r buildlog.txt




# Linux 6.8 内核 编译

https://gitee.com/Embedfire-imx6/ebf_6ull_document_pdf

Linux内核 :Linux内核 :是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。

Linux 内核的主要模块(或组件)分以下几个部分:进程管理子系统、内存管理子系统、文件子系统、网络子系统、设备子系统等


Linux发行版:它是一个可以高效使用Linux 内核的操作系统,即它涵盖了Linux内核,此外还包含一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。典型的有CentOS、Ubuntu、RedHat、SUSE等。

Ubuntu 24.04 LTS 采用 Linux 6.8 内核



1. 下载源码



2. 
cd linux-6.8-rc6 #进入源码目录

3. 
cp -v /boot/config-$(uname -r) .config

4.
make menuconfig # 选择编译的模块

5.
make # 开始编译


http://www.kler.cn/news/358190.html

相关文章:

  • Rocky Linux 9安装后无法远程ssh密码登录解决
  • 网盘直链下载神器NDM
  • MySQL数据库:基础介绍下载与安装
  • Unity中通过给定的顶点数组生成凸面体的方法参考
  • quic-go源码二---server accept请求
  • 【Linux】system V进程间通信--共享内存,消息队列,信号量
  • 服务器运维监控平台
  • 数据结构和算法的常见面试题
  • kernel32.dll下载地址:如何安全地恢复系统文件
  • rk3568 android11 单独烧写内核。
  • RHCE【远程连接服务器】
  • vue3.0 + vue-i18n:使用方法和自动引入多个语言文件
  • vue.js【网络请求和状态管理】
  • YoloV10改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发
  • .NET 中的 Web服务(Web Services)和WCF(Windows Communication Foundation)
  • 【数据结构】栈的概念与结构
  • 【天池比赛】【零基础入门金融风控 Task2赛题理解】【2.3.6】
  • 如何使用Websocket订阅实时股票价格
  • mysql表添加索引
  • docker compose 容器单机编排