Linux内核裁剪移植学习分享

1. 内核裁剪移植

内核源码是大量模块代码的集合!

每一个模块代码都是大量的.c 和 .h文件组成的!

内核是系统所有功能的集合!

内核镜像是一个二进制文件,是一个大型可执行程序!

内核源码包:linux-3.5.buildok.tar.gz

内核移植步骤:

1)把内核源码包复制到linux系统下的 /work/目录下,并解压!

命令:

cp  /mnt/hgfs/xxxxx/linux-3.5.buildok.tar.gz  /work/

cd  /work

tar  xf  linux-3.5.buildok.tar.gz

2)解压完成后,进入解压后目录。

命令:

cd  linux-3.5/

3)内核源码裁剪,去掉不需要的模块,保留需要的模块!

命令:

make  clean

make  distclean

cp  tiny4412_linux_defconfig   .config

make  menuconfig

进入配置菜单:

system type

--> Support TrustZone-enabled Trusted Execution Environment [去掉该选项]

保存退出!

4)编译内核源码,生成内核镜像zImage。路径:arch/arm/boot/zImage

命令:

make  -j8

5)进入内核镜像所在目录,编写烧录脚本,烧录zImage镜像!

命令:

cd  arch/arm/boot/

vim  sd_fusing.sh

编辑:

#!/bin/bash

if [ -e /dev/sdb ]

then

echo fusing...

dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdb seek=1057

else

echo  /dev/sdb is not find!

exit -1

fi

echo fused OK!!!

chmod  777  sd_fusing.sh

烧录: 插入SD卡

./sd_fusing.sh

6)烧录完成,拔出SD卡!

补充:

内核源码的默认配置文件是: .config

内核配置方法有以下三种:

方法1:在终端一个一个功能的询问!

make  config

方法2:Qt风格的内核配置菜单

make  xconfig

方法3:由shell脚本勾画出来的内核配置菜单

make  menuconfig

menuconfig菜单使用方法:

上下键:选项之间切换

左右键:操作方式之间切换  <select  exit   help>

空格键:对选项进行选择<勾选/取消>

回车键:执行操作 <进入下级菜单(select),返回上级菜单(exit)>

嵌入式Linux学习交流群:195723435

原文地址:https://www.cnblogs.com/646087666-lxd/p/12568453.html

时间: 2024-10-12 04:49:59

Linux内核裁剪移植学习分享的相关文章

linux内核裁剪及编译可加载模块

一:linux内核裁剪: (1):编译内核源码: 在邦飞的课程学习已经接近尾声:这周的重点内容是内核驱动的编写,在编写驱动之前首先的了解linux内核源码,linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进程间通信:下面是解压的linux内核源码文件: 下面对linux内核里面的文件进行简单的说明: arch目录中包含于体系结构有关的子目录和文件,arm的相关平台信息在arch/arm目录下. scripts目录中存放着对核心配置的脚本文件. crypto目录中包含着

Linux内核分析第一次学习报告

Linux内核分析第一次学习报告 学生 黎静 学习内容 1.存储程序计算机工作模型 冯诺依曼体系结构:核心思想为存储程序计算机. CPU抽象为for循环,总是执行下一条指令,内存保存指令和数据,CPU来解释和执行这些指令. API:应用程序编程接口(程序员与计算机的接口界面) ABI:二进制接口,指令编码(程序员与CPU的接口界面) 2.X86汇编 1.寄存器 (1)通用寄存器 (2)段寄存器: (3)标志寄存器 2.计算机的汇编指令 (1)movl指令: 寄存器寻址,寄存器模式,以%开头的寄存

linux内核启动过程学习总结

下面是学习linux内核启动过程的记录 平台是:powerpc mpc8548 + linux2.6.23 内核 通用寄存器的作用r0 :在函数开始时使用r1 :存放堆栈指针,相当于ia32架构中的esp寄存器r2 :存放当前进程的描述符的地址r3 :存放第一个参数和返回地址r4-r10 :存放函数的参数r11 :用在指针的调用和当前一些语言的环境指针r12 :用于存放异常处理r13 :保留做为系统线程IDr14-r31 :作为本地变量,具有非易失性 Linux启动过程描述 第一步:使用Boot

Linux内核(16) - 高效学习Linux内核

世界悲结束了,章鱼哥也退役了,连非诚勿扰中的拜金女也突然的少了很多.这本<Linux内核修炼之道>在卓越.当当.china-pub上也已经开卖了,虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释能够更容易的理解,力求即使对于初学者也可以有很少阻碍的一气读完.同时我也把书中一部分自己的感悟抽出来整理了精华版,share出来.当然水平有限,

Linux内核“问题门” - 学习问题、经验集锦

陈宪章说:"学贵有疑,小疑则小进,大疑则大进.疑者,觉悟之机也,一番觉悟一番长进." 培根说:"多问的人将多得." 还在学校的时候导师在激情讲演之后对着会议室里形态各异但均静默不语的我们痛心疾首的说:"会提问题很重要啊,同志们!不会提问题怎么有资格做研究!" 这样铿锵有力的训诫今日想起仍觉深受刺激,于是就要不可避免得要做出一些反应来.不过一是因为咱这年代还没有非主流的说法,二是因为也没有冯仰妍同学的性别优势,不可能受到刺激就整出个门来.咱能够做到

Linux内核(17) - 高效学习Linux驱动开发

这本<Linux内核修炼之道>已经开卖(网上的链接为: 卓越.当当.china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释能够更容易的理解,力求即使对于初学者也可以有很少阻碍的一气读完.同时我也把书中一部分自己的感悟抽出来整理了精华版,share出来.当然水平有限,错漏之处有发现而修订时遗漏的,也有尚没有发现的.这本书

第三十九天:linux内核裁剪

培训的第四阶段:通过编写驱动,从应用层,内核层,再到底层硬件之间的关系.明白内核驱动的意义.现在开始才是重头戏,前面的都是铺垫. 正式编写驱动前,要先了解linux内核代码的组成.linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进程间通信.linux源代码用来实现这些功能,linux源码包在source_code目录下的linux-3.5-20131028.tgz,将其解压,进入目录下,在下面是linux源码截图: 这里面最重要的是Makefile,这个文件中包含了许

Linux内核源码学习之 数据结构

本篇记录在学习Linux内核源码过程中对一些知道但不熟悉不会用的数据结构进行记录. union 是在学习进程复制函数do_fork中遇到的: <sched.h> union thread_union { struct thread_info thread_info; unsigned long stack[THREAD_SIZE/sizeof(long)]; }; struct  thread_info和stack被声明为union 共享空间 "联合"是一种特殊的类,也是一

Linux内核裁剪的具体步骤

在menuconfig中配置: 详细介绍内核配置选项及删改情况 第一部分:全部删除 Code maturity level options ---> 代码成熟等级选项 []Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.不选. 第二部分 :除以下选项,其它全部删除 General setup-〉 System V IPC (IPC:Inter Process