"); //-->
前言 Samsung EXYNOS ---> SAMSUNG EXYNOS4
ITOP-4412开发板被Linux官方支持,所以我们在4412上学习新的内核是非常方便的,本文作者是4412精英群8群一位技术高手,接下来,我们一起来欣赏下他的表演。
环境说明
OS版本
Ubuntu 20 LTS
交叉编译环境配置
~$ sudo apt install gcc-arm-linux-gnueabihf
~$ sudo apt install flex
~$ sudo apt install bison
~$ sudo apt install u-boot-tools
目标开发板
CPU (Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz)
RAM (1GB 双通道 DDR3)
ROM (8GB EMMC)
其他请见官网链接
1. 下载源码
~$ git clone https://github.com/jason416/linux.gi
Note:移植好的源码见博主github仓库的iTop4412分支。
2. 配置内核
2.1 进入内核源码目录
~/linux-5.4$ ls
arch COPYING Documentation include Kbuild lib Makefile README security usr
block CREDITS drivers init Kconfig LICENSES mm samples sound virt
certs crypto fs ipc kernel MAINTAINERS net scripts tools
jason@jason-vm2:~/arm-develop/linux$
2.2 修改内核配置
说明:
Note: 官方提供了所有三星系列的默认配置,需要先生成一个exynos的配置为基础,再上面再修改成跟板子一致的配置选项即可。
为了避免每次都需要指定ARCH和CROSS_COMPILE变量,可以直接在顶层Makefile直接指定好,如下所示:
选择系统类型
System Type --->
--- Samsung EXYNOS
[] SAMSUNG EXYNOS3
[] SAMSUNG EXYNOS5
*** EXYNOS SoCs ***
-*- SAMSUNG EXYNOS4210
SAMSUNG EXYNOS4412
配置调试串口 - 设置为UART2
Kernel hacking --->
Kernel low-level debugging functions (read help!)
Kernel low-level debugging port (Use Samsung S3C UART 2 for low-level debug) --->
开启串口调试驱动
Device Drivers --->
Character devices --->
Serial drivers --->
<*> Samsung SoC serial support
Samsung SoC serial debug
Support for console on Samsung SoC serial port
开启DM96XX网卡驱动
Device Drivers --->
Network device support --->
<*> USB Network Adapters --->
<*> Davicom DM96xx based USB 10/100 ethernet devices
设置内核压缩模式为LZMA(非必须,可减小文件大小)
General setup --->
() Build ID Salt
Kernel compression mode (LZMA) --->
编译内核
~/linux-5.4$ make uImage LOADADDR=0x40008000 -j$(nproc)
...
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-5.4.47
Created: Sun Jun 21 22:41:40 2020
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5337464 Bytes = 5212.37 KiB = 5.09 MiB
Load Address: 40008000
Entry Point: 40008000
Kernel: arch/arm/boot/uImage is ready
这里需要指定LOADADDR变量,才能生成正确的uImage文件。因为在uboot启动内核时,会先解析uImage中的前64B头信息,定义如下:
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
多款英特尔锐炫多卡方案上线,让全场景AI部署更高效
Arm加入OCP董事会,推动开放融合型 AI 数据中心的标准制定
PIC12F675 PIC12F629 单片机中文芯片资料
555简易冰箱保护器电路
pic16f84资料
555冰箱关门提醒器电路(二)
Ceva引领下一代定位技术,率先推出带有信道探测功能之蓝牙6.0认证IP,已经与十多家客户紧密合作
《嵌入式系统设计》13-软硬件协同设计(开始到典型的协同设计流程)
英飞凌推出采用TO-247PLUS-4回流焊封装的CoolSiC™ MOSFET 1400V G2系列
创四方电子 技术助理
《嵌入式系统设计》14-软硬件协同设计技术(软硬件协同设计内容到划分)及软硬件系统划分技术(开始到系统划分)
求助:Vxworks下IO端口的读写问题
华胜天成科技
PIC16f716 中文数据手册
SoC,尽在掌握!借PMIC赋能增效
《嵌入式系统设计》12-系统级设计方法(计算机设计到系统资源安排)
PIC16F630 PIC16F676 中文数据手册
英飞凌推出专为PSOC™ Edge微控制器优化的DEEPCRAFT™ AI套件
555冰箱保护器电路(二)
华胜天成科技
Supermicro推出数据中心建构组件解决方案的全新业务线
《嵌入式系统设计》10-常见嵌入式硬件(典型的ARM系统到Boot ROM的制作)
555冰箱节电器电路
派利斯电子
巴斯夫涂料携手小米汽车共创100款车漆颜色,以色彩定义未来出行
英飞凌推出先进的800V AI数据中心电源供电架构,实现更高效率与易用性
尼得科家电产业事业本部的北京工厂提前五年实现“碳中和”
555电冰箱节电保护器电路
Philips P8XCE598带CAN总线单片机
《嵌入式系统设计》11-常见嵌入式硬件(其他硬件到结束)及系统级设计方法(开始到计算机设计)