Linux内核源码的配置和编译

news2024/12/28 20:40:25

目录

配置交叉编译工具链

读README

配置内核源码支持当前的硬件平台

驱动配置

内核编译

编译:

问题:

解决问题的方法:

测试内核


配置交叉编译工具链

打开内核源码顶层目录的Makefile,

hq@Ubuntu:~/fs6818_uboot/kernel-3.4.39$ vi Makefile

195 ARCH        ?= 

196 CROSS_COMPILE   ?= 

修改为:

195 ARCH        ?= arm

196 CROSS_COMPILE   ?= arm-none-linux-gnueabi- 

读README

拿到内核源码之后,应该先清除,内核源码中的中间文件

make clean 

make distclean 

make mrproper  --》清除更干净

配置内核源码支持当前的硬件平台

方法1:

make help 

得到以下信息:

fs6818_defconfig         - Build for fs6818

方法2:

  进入arch/arm/configs/目录 

  发现以下文件fs6818_defconfig ,所以PLATFORM=fs6818.

 让当前的内核支持自己的硬件平台,应该执行make fs6818_defconfig

驱动配置

执行命令:make menuconfig 

实际开发中随内核进行菜单选项的配置,都是使用make menuconfig命令

 ESC退出,↑↓←→ 选择内容 ,enter键进入

问题1:

第一次使用make menuconfig 需要安装图形化界面的工具

配置之前需要安装图形图(make meuconfig):

sudo apt-get install libncurses5-dev 

问题2:

出现以下错误:

cripts/kconfig/mconf Kconfig

Your display is too small to run Menuconfig!

It must be at least 19 lines by 80 columns.

make[1]: *** [menuconfig] Error 1

make: *** [menuconfig] Error 2 

原因:终端的字体太大,缩小一点

内核编译

编译:

make uImage 

time make uImage -jx

-time:回显编译的时间

-jx:使用多线程的方式进行编译,x可以是2,4,6,8

问题:

在编译的过程中可能出现如下错误:

"mkimage" command not found - U-Boot images will not be built

 make[1]: *** [arch/arm/boot/uImage] Error 1

 make: *** [uImage] Error 2

错误的原因:找不到mkimage命令,根据提示分析出来mkimage应该存在uboot源码目录中

uboot源码必须进行编译之后才会有mkimage可执行程序

解决问题的方法:

将uboot源码的tools目录下的mkimage,

相对路径:sudo cp mkimage   /usr/bin

拷贝到到ubuntu的/use/bin目录下:绝对路径

sudo  cp  ./tools/mkimage    /usr/bin      

 uboot目录         ubuntu目录

再次对内核源码进行编译即可通过。

测试内核

将arch/arm/boot/目录下的uImage拷贝到tftpboot目录下,

测试uImage是否可以正常启动,并且挂载根文件系统(重启开发板,自动方式:先将uImage下载到内存里面,然后bootcmd启动内核,然后给内核传递参数。

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

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

相关文章

IP地址、子网划分

目录 一、IP地址1.IP地址表示2.分类IP地址3.无分类编址 CIDR4.特殊IP地址 二、子网划分1.子网、子网掩码、子网划分VLSM2.网络地址、广播地址3.示例1:等分为两个子网3.1 划分前:3.2 划分后: 4.示例2:等分为四个子网3.1 划分前&…

五种经典IO模型详解

目录 同步和异步同步阻塞IO模型基本概念应用场景优缺点 同步非阻塞IO模型基本概念应用场景优缺点 IO多路复用模型信号驱动IO模型回顾复习1.信号2.产生信号的条件3.可重入函数4.为什么中断处理函数不能直接调用不可重入函数5.如何写出可重入的函数 基本概念应用场景优缺点 异步I…

【操作系统】 1、计算机系统概述

1.1 操作系统的基本概念 从操作系统的角度上来划分计算机体系结构: 这里注意一点: 编译器属于应用程序。 操作系统:是指控制和管理计算机系统的 硬件 和软件 资源,合理的组织、调度计算机的工作与资源分配,进而为用…

对象数组练习案例

定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。 * 学生的属性:学号、姓名、年龄 * 要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断 * 要求2&am…

Nautilus Chain:我们将支持EIP6969

在今年 5 月初,以太坊核心开发者、Slingshot 的 CTO zkCole 提出了一个通用的协议标准 EIP-6969 ,其旨在实现合约保护收入(在以太坊 L2 上引入 / 标准化 CSR ),该提案可以看作是之前 EIP-1559的改进版,并在…

Record类浅喽一眼~

Record类的一点小概念嗷。 一. 基本使用 java19 的新特性: 我们先构造一个student的Record类. 默认构造几个属性. public record Student(Integer id,String name, String email,Integer age) {} 然后简单搞一点例子 public static void main(String[] args) { St…

2023年上半年系统分析师上午真题及答案解析

1.信息系统的构成包括( )。 A.计算机硬件、计算机软件、网络和通信设备、系统分析人员、系统设计人员、系统开发人员 B.计算机硬件、计算机软件、系统分析人员、系统设计人员、系统开发人员 C.计算机硬件、计算机软件、系统设计人员、系统开发人员、信息用户 D.计算机硬件…

【C++】类和对象——友元函数和友元类的概念、初始化列表、explicit关键字、static成员

文章目录 1.友元函数和友元类的概念1.1友元函数1.2友元类 2.构造函数知识补充2.1初始化列表2.2explicit关键字 3.static成员3.1static成员概念3.2static成员特性 1.友元函数和友元类的概念 在C中,友元函数和友元类是指允许非成员函数或非成员类访问某个类中的私有成…

LeetCode面向运气之Javascript—第13题-罗马数字转整数-99.21%

LeetCode第13题-罗马数字转整数 题目要求 给定一个罗马数字,将其转换成整数。 罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M 分别代表1,5,10,50&#xf…

一些常用的分布式组件实现技巧

广播 可用redis的pubsub机制来支持集群内的广播。 基于redis的分布式锁 加锁 使用setnx命令: SET lock_key random_value NX PX 5000 其中: random_value 是客户端生成的唯一的字符串,用于在删除时唯一标识client身份。 NX 代表只在键不…

【开发实用】还在用BeanUtils?不如用MapStruct

文章目录 1. 什么是MapStruct2. 为什么使用MapStruct3. 如何使用MapStruct 1. 什么是MapStruct MapStruct是一个Java注解处理器,它可以简化Java bean之间的转换。它使用基于生成器的方法创建类型安全的映射代码,这些代码在编译时生成,并且比…

2023夏季黑客松大赛,Moonbeam邀请你来BUIDL

由Parity和OneBlock联合举办的「2023 夏季波卡黑客松大赛」正在火热开启中。自报名开启之日,便获得了来自海内外对波卡生态的高度专注和对Web3开发的热情。 本次黑客松聚焦智能合约、开发工具、社交网络等大赛命题,邀请了行业领军人、技术大咖、投资人等…

推进开源法律知识普及|2023开放原子全球开源峰会开源法律与合规分论坛即将启幕

随着开源在推动创新、促进协作方面的作用日益凸显,开源领域的法律与合规问题日益受到关注。 6月11日,开放原子全球开源峰会开源法律与合规分论坛将在北京经济开发区国家信创园召开,论坛以“开源知识产权的深度现实与广阔未来”为主题&#x…

基于SSM的校园旧书交易交换平台

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Mybatis_plus——标准分页功能制作

mybatispuls中提供分页查询中需要两个参数,一个是IPage接口的实现类,还有一个后面说。 IPage有且只有一个实现类Page类型在里面已经提供有了,传两个参数即可使用,一个是页码值,一个是每页显示数据的条数。查询完之后可…

chatgpt赋能python:Python代做:让您的网站更友好的SEO利器

Python代做:让您的网站更友好的SEO利器 如果您是一位网站管理员或者SEO工程师,您一定知道SEO对于网站的重要性。那么在SEO中,Python代做可以为您提供什么?在本文中,我们将通过介绍Python代做的技术和方法,…

unity发布webGL后无法预览解决

众所周知,unity发布成webgl后是无法直接预览的。因为一般来说浏览器默认都是禁止webgl运行的。 直接说我最后的解决方法:去vscode里下载一个live server ,安装好。 下载vscode地址Visual Studio Code - Code Editing. Redefined 期间试过几种方法都不管…

Ansys Zemax | 探究 OpticStudio 偏振分析功能

本文介绍了 OpticStudio 模拟基于偏振的光学现象的几种方法。本文的目的是在对基于偏振的光学进行建模时检查这些特征的优势和正确应用。讨论的功能包括偏振光瞳图、琼斯矩阵、双折射、表面涂层等。这些对于波片和隔离器等实际应用很重要。(联系我们获取文章附件&am…

plt.loglog()函数的用法和示例(含代码)

目录 常用坐标下的图像显示在loglog函数下的显示同时显示参考文献 plt.loglog()函数通常是用于和对数函数相关的显示中。 在研究plt.loglog()函数之前,我们可以先从常见的线性平面坐标系入手。 如 np.linespace()函数,它在指定的间隔内返回均等的数字。 np.linespa…

Redis主从架构、数据同步原理、全量同步、增量同步

目录 专栏导读一、Redis主从架构二、数据同步原理三、全量同步的流程三、可以从以下几个方面来优化Redis主从就集群四、全量同步和增量同步区别?五、什么时候执行全量同步?六、什么时候执行增量同步?七、超卖问题 大家好,我是哪吒…