【北京迅为】iTOP-4412全能版使用手册-第七十章 Linux内核移植

news2025/1/5 22:06:14

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、陀螺仪、CAN总线、RS485总线、500万摄像头等模块,稳定运行Android 4.0.3/Android 4.4操作,系统通用Linux-3.0.15+Qt操作系统(QT支持5.7版本),Ubuntu版本:12.04,接口智能分配 方便好用。


第七十章 Linux内核移植

迅为的 4412 开发板已经得到官方(www.kernel.org)的默认支持,但这并不意味这下载完以后可以直接使用,仍需要一些基本的配置和编译,以下给出步骤供大家参考:

70.1 从官网下载linux 内核

从 Linux 官网下载内核,因为在 4.10 以后的内核版本中 Linux 官方增加了对迅为 itop 开发板的支持。所以我们要下载这个版本之后的。

Linux 官方网站是“https://www.kernel.org/ 如下图所示:

 我们进入 linux 官网,为了和之前的教程统一,这里我们选择 4.14.2 的内核版本。下载完成后,我们放在 ubuntu 里面备用,如下图所示:

 

70.2 安装编译器

编译器版本:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz ubuntu 版本:ubuntu12.04我们把编译器在/usr/local/arm/下解压,得到 gcc-4.6.2-glibc-2.13-linaro- multilib-2011.12 的目录。如下图所示:

 接着我们修改环境变量,在.bashrc 文件底行添加环境变量,注意这里,大家要屏蔽掉其他的编译器,如下图所示:

更新环境变量,我们使用命令 source .bashrc 更新环境变量,然后重启 ubuntu,如下图所示: 

 70.3 配置内核

1)在 ubuntu 上解压我们下载的 linux 源码,然后进入到解压的文件,打开顶层Makefile,如下图所示: 

2)在顶层 Makefile 里面找到 251 和 252 行,修改平台和编译器,修改完成后, 如下图所示: 

 3)生成.config,我们直接使用官方的默认配置即可,直接输入命令 make exynos_defconfig,如下图所示。

4)配置平台和调试串口。在内核源码下输入命令 make menuconfig 打开menuconfig,如下图所示: 

5)选择芯片类型,我们进入下面的路径,

System Type --->

[*] Samsung EXYNOS --->

把这个路径的选项配置成下图所示:

 

6)配置调试串口,我们返回到 menuconfig 第一级目录,从第一级目录进入到以下路径:

Kernel hacking --->

选中 Kernel low-level debugging functions (read help!),

如下图所示:

 

然后选择 Kernel low-level debugging port (Use Samsung S3C UART 0 for low- level debug) 选项,把串口设置成串口 2,如下图所示: 

返回到 menuconfig 第一级目录,从第一级目录进入到以下路径:

Device Drivers --->

Character devices --->

Serial drivers--->

选中

Samsung SoC serial debug (NEW)

Support for console on SamsungSoC serial port

如下图所示:

返回到 menuconfig 第一级目录,从第一级目录进入到以下路径:

Device Drivers --->

去掉 DMA 支持,如下图所示:

 

设置完成后,保存并退出。

70.4 编译内核

我们输入以下命令:

make uImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- LOADADDR=0x40007000 -j4

其中 LOADADDR=0X40007000 表示指定内核的加载地址,如下图所示:

 

编译完成如下图所示: 

 

70.5 修改dts文件

第一处:注释我们进到内核 arch/arm/boot/dts/下,里面默认有 itop 的设备树文件,如下图所示: 我们打开 exynos4412-itop-scp-core.dtsi 文件,修改设备树文件。

注释掉掉 29 到 32 行的代码,如下图所示

 

第二处:因为没有 events 这个属性,所以我们要把 71 行的 events 修改成 event,如下图所示: 

 

第三处:配置核心板电源芯片,这部分大家可以对照下 scp 的核心板原理图,把下面的代码修改成如下图所示: 

 

 

 

第四处,我们打开exynos4.dtsi 这个文件,如下图所示,  

 

然后找到第 473 行代码,注释掉pdma0 18,如下图所示: 

 

编译设备树,我们输入以下命令,如下图所示:

make dtbs ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

 

70.6 烧写镜像

我们把编译生成的uImage 和dtb 文件拷贝fastboot 工具,uboot 使用我们移植好的uboot_2015.04 即可,具体烧写方法大家可以看设备树视频烧写章节。

后记:这章我们给出了从官网下载原生内核,然后通过各种配置运行到开发板的步骤。由于开发板上的接口非常多,接下来大家如果有兴趣,可以对各个不同的外设移植驱动了,大家可以尝试从移植和研究当中学习Linux 的开发技巧。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2270564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CG顶会论文阅读|《科技论文写作》硕士课程报告

文章目录 一、基本信息1.1 论文基本信息1.2 课程基本信息1.3 博文基本信息 二、论文评述(中英双语)2.1 研究问题(Research Problem)2.2 创新点(Innovation/Contribution)2.3 优点(Why this pape…

.NET周刊【12月第4期 2024-12-22】

国内文章 dotnet 简单使用 ICU 库进行分词和分行 https://www.cnblogs.com/lindexi/p/18622917 本文将和大家介绍如何使用 ICU 库进行文本的分词和分行。 dotnet 简单聊聊 Skia 里的 SKFontMetrics 的各项属性作用 https://www.cnblogs.com/lindexi/p/18621674 本文将和大…

git 问题解决记录

在用git上传文件到仓库中出现了2个问题 第一个问题: 需要修改git的代理端口与电脑自己的代理服务器设置中的端口和VPN的端口保持一致, 比如我的端口是7897,就设置 git config --global http.proxy http://127.0.0.1:7897 git config --glo…

XML结构快捷转JSON结构API集成指南

XML结构快捷转JSON结构API集成指南 引言 在当今的软件开发世界中,数据交换格式的选择对于系统的互操作性和效率至关重要。JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据表…

Oracle 创建本地用户,授予权限,创建表并插入数据

目录 一. 用户的种类二. 切换session为PDB三. 创建用户并授予权限四. 创建表空间五. 为用户分配默认表空间并指定表空间配额六. 通过创建的用户进行登录七. 创建脚本,简化登录八. 查看用户信息九. 创建表,并插入数据9.1 查看当前用户的schema9.2 插入数据…

系统设计——大文件传输方案设计

摘要 大文件传输是指通过网络将体积较大的文件从一个位置发送到另一个位置的过程。这些文件可能包括高清视频、大型数据库、复杂的软件安装包等,它们的大小通常超过几百兆字节(MB)甚至达到几个吉字节(GB)或更大。大文…

【老白学 Java】简单位移动画

简单位移动画 文章来源:《Head First Java》修炼感悟。 上一篇文章中,老白利用内部类的特性完成了多个事件的处理,感觉还不错。 为了更深入理解内部类,本篇文章继续使用内部类创建一个画板,完成简单的位移动画&#x…

彻底解决 Selenium ChromeDriver 不匹配问题:Selenium ChromeDriver 最新版本下载安装教程

在 Python 的 Selenium 自动化测试中,ChromeDriver 是不可或缺的工具。它作为代码与 Chrome 浏览器的桥梁,但如果版本不匹配,就会导致各种报错,尤其是以下常见问题: selenium.common.exceptions.SessionNotCreatedExc…

[CTF/网络安全] 攻防世界 warmup 解题详析

查看页面源代码&#xff0c;发现source.php 得到一串代码&#xff0c;进行代码审计&#xff1a; <?phpclass emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php"];…

基于fMRI数据计算脑脊液(CSF)与全脑BOLD信号的时间耦合分析

一、前言 笔者之前的文章《基于Dpabi和spm12的脑脊液(csf)分割和提取笔记》,介绍了如何从普通的fMRI数据中提取CSF信号。首先是基础的预处理,包括时间层校正、头动校正,再加上0.01-0.1Hz的带通滤波。接着用SPM12分割出CSF区域,设置一个比较严格的0.9阈值,确保提取的真是…

游泳溺水识别数据集,对25729张图片进行YOLO,COCO JSON, VOC XML 格式的标注,溺水平均识别率在89.9%

游泳溺水识别数据集&#xff0c;对25729张图片进行YOLO&#xff0c;COCO JSON, VOC XML 格式的标注&#xff0c;溺水识别率在92&#xff05; 训练结果 数据集和标签 验证 游泳测试视频 根据测试的视频来获取检测结果&#xff1a; 游泳测试视频的置信度设置60% 检测结果如下&…

STM32 拓展 电源控制

目录 电源控制 电源框图 VDDA供电区域 VDD供电区域 1.8V低电压区域 后备供电区域 电压调节器 上电复位和掉电复位 可编程电压检测器(PVD) 低功耗 睡眠模式(只有CUP(老板)睡眠) 进入睡眠模式 退出睡眠模式 停机(停止)模式(只留核心区域(上班)) 进入停…

Mac M2 Pro安装MySQL 8.4.3

絮絮叨叨 MacBook Pro&#xff0c;芯片&#xff1a;Apple M2 Pro, macOS: Sonoma 14.0一直知道很多软件对Mac M1或M2的支持不好&#xff0c;但没想到在安装MySQL 8.x上也让我吃尽了苦头本文除了介绍如何安装MySQL 8.4.3外&#xff0c;还会记录笔者遇到的一些问题以及解决方法 …

闻泰科技涨停-操盘训练营实战-选股和操作技术解密

如上图&#xff0c;闻泰科技&#xff0c;今日涨停&#xff0c;这是前两天分享布局的一个潜伏短线的标的。 选股思路&#xff1a; 1.主图指标三条智能辅助线粘合聚拢&#xff0c;即将选择方向 2.上图红色框住部分&#xff0c;在三线聚拢位置&#xff0c;震荡筑底&#xff0c;…

ts总结一下

ts基础应用 /*** 泛型工具类型*/ interface IProps {id: string;title: string;children: number[]; } type omita Omit<IProps, id | title>; const omitaA: omita {children: [1] }; type picka Pick<IProps, id | title>; const pickaA: picka {id: ,title…

Linux:各发行版及其包管理工具

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Debian 包管理工具&#xff1a;dpkg&#xff08;低级包管理器&#xff09;、apt&#xff08;高级包管理器&#xff0c;建立在dpkg基础上&#xff09;包格式&#xff1a;…

2024秋语法分析作业-B(满分25分)

特别注意&#xff1a;第17条产生式改为 17) Stmt → while ( Cond ) Stmt 【问题描述】 本次作业只测试一个含简单变量声明、赋值语句、输出语句、if语句和while语句的文法&#xff1a; 0) CompUnit → Block 1) Block → { BlockItemList } 2) BlockItemList → BlockItem…

Tomcat优化指南

以下是一份详细的Tomcat优化指南&#xff1a; 一、JVM&#xff08;Java虚拟机&#xff09;优化 内存设置 堆内存&#xff08;Heap Memory&#xff09; 调整-Xms&#xff08;初始堆大小&#xff09;和-Xmx&#xff08;最大堆大小&#xff09;参数。一般来说&#xff0c;将初始…

【我的 PWN 学习手札】IO_FILE 之 劫持vtable

vtable帮助C实现了类似于多态的效果&#xff0c;然而其中的大量函数指针&#xff0c;一旦被劫持修改&#xff0c;就会产生巨大的危害。 前言 【我的 PWN 学习手札】IO_FILE相关几个基本函数的调用链源码-CSDN博客 【我的 PWN 学习手札】IO_FILE 之 stdin任意地址写-CSDN博客…

力扣编程从0-1

第一题 class Solution:def mergeAlternately(self, word1: str, word2: str) -> str:#计算两个字符串长度&#xff0c;从i 0开始遍历&#xff0c;每次循环&#xff1a;#如果i小于word1的长度&#xff0c;把word1[i]加到答案末尾#如果i小于word2的长度&#xff0c;把word2[…