IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Exynos4412 Linux Kernel移植过程记录(一) -> 正文阅读

[系统运维]Exynos4412 Linux Kernel移植过程记录(一)

项目说明
操作系统Ubuntu 18.04
Linux内核版本Linux Kernel stable: 5.15.14
Image NameLinux-5.15.14-FriendlyARM
硬件CBT4412(类似:tiny4412)
U-Bootu-boot-2022.01-rc4
gccarm-none-linux-gnueabihf-gcc 10.3.1 20210621

一、Linux Kernel编译的准备工作

1、Linux Kernel下载与解压

下载地址:https://www.kernel.org/
目前,最新版本是5.16。我下载的是linux-5.15.14.tar.xz。
解压到~目录下。

tar vxf linux-5.15.14.tar.xz

2、修改内核顶层目录下的Makefile

cd ~/linux-5.15.14/
gedit Makefile

修改:

ARCH               ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

为:

ARCH               ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabihf-

3、导入默认配置

make exynos_defconfig

4、配置内核

make menuconfig

配置System Type —>
Samsung Exynos —>Samsung Exynos 4412

5、解决error: gmp.h No such file or director问题

编译内核

make uImage

报错:error: gmp.h 没有这个文件或目录
通过360搜索,找到解决方案如下:

sudo apt-get install  libgmp3-dev

6、解决error: mpc.h: No such file or director

编译内核,报错fatal error: gmp.h: 没有那个文件或目录。解决方法:

sudo apt-get install libmpc-dev

7、解决multiple (or no) load addresses错误

make uImage编译内核,报错multiple (or no) load addresses。表明没有定义宏LOADADDR。具体分析可参见博文Linux内核移植 part3:Exynos4412内核编译1

编辑arch/arm/boot/Makefile,直接添加

LOADADDR := 0x40008000

由于找不到mkimage工具,复制在uboot根目录tools目录的mkimage,放到/usr/local/bin即可。

sudo cp ~/u-boot-2022.01-rc4-cbt4412/tools/mkimage /usr/local/bin

准备就绪,make uImage编译内核,显示如下信息:

$ make uImage
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-5.15.14-FriendlyARM
Created:      Sat Jan 15 20:11:36 2022
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    6795088 Bytes = 6635.83 KiB = 6.48 MiB
Load Address: 40008000
Entry Point:  40008000
  Kernel: arch/arm/boot/uImage is ready

8、配置tftp服务器,

配置tftp服务器具体步骤参见另一篇博文ubuntu18.04上配置tftp服务器2

把arch/arm/boot目录下的uImage复制到/CBT-SuperIOT/tftpboot/。

cp arch/arm/boot/uImage /CBT-SuperIOT/tftpboot/

9、烧写内核

安装串口助手CuteCom。

sudo apt-get install cutecom

打开/dev/ttyUSB0。如果遇到无权限打开串口的情况,通过chmod指令修改/dev目录下的ttyS0或ttyUSB0等串口的读写权限即可。

sudo chmod 666 ttyUSB0

在CuteCom终端中,输入指令

tftp 40008000 uImage;bootm 40008000;

在CuteCom终端中显示。

[20:14:46:125] ## Booting kernel from Legacy Image at 40008000 ...??
[20:14:46:145]    Image Name:   Linux-5.15.14-FriendlyARM??
[20:14:46:145]    Image Type:   ARM Linux Kernel Image (uncompressed)??
[20:14:46:145]    Data Size:    6795088 Bytes = 6.5 MiB??
[20:14:46:145]    Load Address: 40008000??
[20:14:46:161]    Entry Point:  40008000??
[20:14:46:161]    Verifying Checksum ... OK??
[20:14:47:026]    Loading Kernel Image??
[20:14:47:128] FDT and ATAGS support not compiled in??

以上是开发板通过串口打印出的信息,在“OK”之前的内容是64Bytes打印出的内容,之后的是Linux内核自解压程序输出的内容。在打印出“Loading Kernel Image”后,内核遇到错误停止运行。而接下来,即在内核移植之前,有必要去了解Linux内核源代码构造框架——Kbuild机制,这是进行内核代码增删改的基础。


  1. Linux内核移植 part3:Exynos4412内核编译_Camus-CSDN博客 ??

  2. ubuntu18.04上配置tftp服务器解决Transfer timed out ??

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:31:42  更:2022-01-16 13:33:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:43:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码