(二)linux内核准备及编译
1. 内核下载地址
linux内核网站,可以拿到最新的和最近的稳定版本内核: https://www.kernel.org/
通过网站下载压缩包后解压或者使用git下载到本地: git clone https://git.kernel.org/
2. 准备编译
配置工具链:
下载后的压缩包放到linux上进行解压,或者使用git下载完成后进入linux主目录
由于编译后准备使用在JZ2440的开发板上,因此需要将交叉编译工具连的信息写到makefile中,将主目录下Makefile的以下两项修改
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
高版本的liunx内核可能没有CROSS_COMPILE,自行添加上就好。
加载编译配置:
因为要位JZ2440使用,因此在config文件夹下找寻最相似的文件进行配置
根目录下执行: make s3c2410_defconfig
这会将基本配置项写道根目录下的.config文件中,这个文件也就是执行make的时候加载的配置项,同时可以执行make menuconfig对加载后的配置进行手工修改

进行编译:
由于使用uboot做启动,因此编译的时候需要编译出uImage文件,在4.20版本下uImage的加载地址需要自己指定,这个需要配套结合uBoot的设定进行修改,我在UBoot中设定的内核加载地址是0x30108000,因此执行以下命令进行编译
make uImage LOADADDR=0x30108000

等待编译完成即可在arch/arm/boot下找到生成的uImage了
编后语:
这里只是基本的编译流程,这么编出来的包是肯定不能使用的,例如需要针对分区地址进行设计,内核大小进行剪裁,文件系统支持,uboot配套分区地址,等等。
这些内容稍后在一一记录,
(二)linux内核准备及编译的更多相关文章
- Linux 内核配置和编译
Linux 内核配置和编译 一.配置内核 (1). 为什么要配置内核 1. 硬件需求 2. 软件需求 选出需要的,去掉不要的 (2). 如何配置内核 1. make config 基于文本模式的交互 ...
- linux内核裁剪及编译可加载模块
一:linux内核裁剪: 1:编译内核源码: 今天的重点内容是内核驱动的编写,在编写驱动之前首先的了解linux内核源码,linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进 ...
- Linux内核配置、编译及Makefile简述
Hi,大家好!我是CrazyCatJack.最近在学习Linux内核的配置.编译及Makefile文件.今天总结一下学习成果,分享给大家^_^ 1.解压缩打补丁 首先是解压缩你获取到的Linux内核. ...
- Linux内核-模块编译和安装
我安装Ubuntu的时候是没有安装源码的,在没有安装源码前 /usr/src/ 目录下是只有两个包含内核的头文件的文件夹的: 我的内核版本是: 所以接下来就是先安装内核源码: 执行后,/usr/src ...
- linux内核系列(一)编译安装Linux内核 2.6.18
1.配置环境 操作系统:CentOS 5.2 下载linux-2.6.18版本的内核,网址:http://www.kernel.org 说明:该编译文档适合2.6.18以上的Linux内核版本,只需所 ...
- Xilinx-Zynq Linux内核源码编译过程
本文内容依据http://www.wiki.xilinx.com网址编写,编译所用操作系统为ubuntu 14 1.交叉编译环境的安装配置 1)http://www.wiki.xilinx.com/I ...
- (十二)Linux内核驱动之poll和select
使用非阻塞 I/O 的应用程序常常使用 poll, select, 每个允许一个进程来决定它是否可读或者写一个或多个文件而不阻塞. 这些调用也可阻塞进程直到任何一个给定集合的文件描述符可用来读或写. ...
- [国嵌攻略][099][Linux内核配置与编译]
为什么要配置内核 基于硬件和软件的需求选出需要的功能,去掉不要的功能. 内核配置的方法 make config:基于文本交互的配置. make menuconfig:基于图形菜单的配置. make m ...
- 升级 Linux 内核版本(编译源代码)
升级内核版本(自己编译源码) 从 linux 官网 https://www.kernel.org/ 下载内核源码 解压 tar -xvf linux-4.16.8.tar.xz cd linux-4. ...
随机推荐
- 关于VMware中的几个网络模式
直接参考别人的: 写的已经很细致了: http://blog.csdn.net/yaoyaowugui/article/details/7422388 关键是看别人的几张图
- thphp(tp5)项目网站从Apache换成nginx报500
thphp(tp5)项目网站从Apache换成nginx报500 百度了一下,查看资料是Nginx配置fastcgi.conf的问题,打开文件编辑既可,如下图:
- struts框架的一些注意点
1.Struts.xml文件中<include file="">标签的运用 用法:此标签引用配置文件,Struts2提供了一个默认的struts.xml文件,当此配置文 ...
- spring-第五篇之spring容器中的bean
1.bean的基本定义和bean别名 2.容器中bean的作用域 singleton:单例模式,在整个spring IoC容器中,singleton作用域的bean将只生成一个实例. prototyp ...
- python 日产经销商
''' ajaxCallSiteInfo: {1C8B2BC6-35E2-460E-A63D-3576F3039D79} ''' import requests import json from db ...
- Stupid cat & Doge (分形图)
[题目描述] [题目链接] http://noi.openjudge.cn/ch0204/8463/ [算法] 为求等级N下的点的坐标可由几何关系找到其与等级N-1下对应点的关系,然后递归直至所有点的 ...
- tornado后台小框架
import tornado.ioloop import tornado.web """使用get方法提交过来数据就是用get方法,使用post执行post方法这个框架的 ...
- SQL 查询中not in 与 not exists 的区别
1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的.如果查询的两个表 ...
- 从“中产梦”中醒来,好好打工吧
"中产"定义 自打"中产阶级/阶层"概念出现,总有人试图给出定义.搞不清何为"中产"却试图定义"中产阶级/阶层",注定是 ...
- 关于Object.create方法
ES6最新的Object.create语法是 创造一个对象 可以传参,参数为一个对象,得到的结果是一个克隆的对象, 实际上 这是基于原型的克隆 分析如下: var a={b:1}; var a1 = ...