首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内核移植_rom内核移植

这两天在友善的tiny210的实验板上移植linux内核,正好和大家分享,同时也算是做个记录吧!首先介绍一下开发环境吧,这个在做移植的时候还是挺重要的。...主机linux:Fedora9 安装在VMware虚拟机上; 开发板 :友善的tiny210,256M的FLASH; 移植linuxLINUX-3.3.5; 交叉编译环境:arm-linux-gcc...= /opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux- 第一行的修改大家肯定是明白的嘛,因为咱们需要移植到arm上,所以是arm嘛。...4.编译内核 把smdk210v板子的config文件拷过来了,进行内核编译。简单的说一下,咱们在这里的移植是属于板级的移植,一般来说移植操作系统分为:体系结构级的移植、soc级的移植和板级的移植。...运行 make uImage 命令,开始内核的编译。

4.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 内核裁剪框架初探

一晃20多年过去了,Linux 已经有了太大的变化,内核裁剪的技术和方式也有了较大的不同。...Linux内核裁剪是为了减少目标应用中不需要的内核代码,在安全性和高性能(快速启动时间和减少内存占用)方面有着显著的好处。但是,现有的内核裁剪技术有其局限性,有没有内核裁剪的框架化方法呢?...关于内核裁剪 近年来,Linux操作系统在复杂性和规模上都在增长。然而,一个应用程序通常只需要一部分 OS 功能,众多的应用需求导致了Linux内核的膨胀。...内核裁剪框架从应用程序中获取配置选项,并过滤掉在引导阶段观察到的硬件相关的选项。这些硬件特性是根据它们在内核源代码中的位置定义的。...不排除这样的可能性,即硬件相关的选项只能在应用程序执行期间观察到,例如,它根据需要加载新的设备驱动程序。 配置组装 将基线配置一个或多个应用配置组合在一起,可以以生成用于构建内核的最终配置。

2.2K30

2.移植3.4内核-支持烧写yaffs2,裁剪内核并制作补丁

在上章-制作文件系统,并使内核成功启动jffs2文件系统了 本章主要内容如下: 1)使内核支持yaffs2文件系统 2)裁剪内核 3)制作内核补丁 ---- 1.首先获取yaffs2源码(参考git命令使用详解...3.2 修改代码 所以接下来只有遇到struct mtd_info有关的error,都在成员前加上: _ 比如: 将yaffs_vfs.c文件2514~2515行的mtd->sync 改为: mtd-...5.内核裁剪 为什么要裁剪内核?...因为mtd的kernel分区只有2M大,而实际内核有2.37MB,所以需要裁剪到小于2M(或者修改mtd分区值) 5.1首先裁剪内核里无关的CPU/单板文件 1)通过vi .config,然后搜索2440...-urN linux-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成补丁文件linux-3.4.2_new.patch 未完待续,下章来移植以前

1.3K30

linux内核移植步骤「建议收藏」

2016.6.8 经过一个多星期的内核折磨,今天终于可以写下自己移植内核的一些心得,网上有很多博客论坛都有谈到,但是这些又说的方式有些模糊,这里我综合的几个博客在重新说下内核替换编译的步骤、以及如何更新启动项...替换linux内核一共有两种方式,第一种方式是下载官方kernel提供的源码包,进行编译替换;第二种直接下载内核安装包deb,进行升级替换。...下面分别从这两种方式进行 一个说明: 方式一:kernel提供的源码包,进行编译替换 1、首先做好内核编译前的准备工作, 主要有两个准备工作,一是在linux kernel官网上下载源码包,二是安装好任意版本的...进入内核的源码目录 #cd /usr/src/linux_3.2.1 执行以下命令: #make menuconfig 注意:这个命令需要在超级用户权限下执行,否则可能会报出一些莫名奇妙的错误。...3.更新启动项grub 按照上述的步骤9开始,上面一样。更新完了grub.cfg,然后重新启动,进行新的内核即可 测试按照这种步骤进行,但是开机进入之后直接紫屏,没有任何现象,原因不明!!!

4K31

全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩

文章目录 1 概述 2 Tina系统裁剪简介 2.1 boot0裁剪 2.2 uboot裁剪 2.3 内核裁剪 2.3.1 删除不使用的功能 2.3.2 删除不使用的驱动 2.3.3 修改内核源代码 2.3.3.1...2.3 内核裁剪 通常关于Linux内核裁剪主要有如下方法: 删除不使用的功能。如符号表、打印、调试等功能。 删除不使用的驱动。 修改内核源代码。 内核压缩。...一旦使能该宏后,将会采用部分上面的裁剪措施来减小kernel镜像尺寸,主要思路是关闭log/debug等相关的配置,然后对kernel进行xz压缩,可参考tina/scripts/reduce-kernel-size.sh...2.3.3 修改内核源代码 内核源码庞大,直接修改往往难度很大,可借助相关工具来评估模块以及符号的大小,然后进行针对性的裁剪。...Linux上有许多具有相似功能的软件包,可以选择其中占存储空间较小的软件包并移植到嵌入式设备上。 资源文件。一些音视频以及UI资源往往占用很大空间,如果没有用到,也需要删除。

8.2K20

linux系统移植的一般过程_内核移植的基本步骤

在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛。性能优良、源码开放的Linux具有体积小、内核可裁减、网络功能完善、可移植性强等诸多优点,非常适合作为嵌入式操作系统。...一个最基本的Linux操作系统应该包括:引导程序、内核根文件系统三部分。   ...嵌入式Linux系统移植主要由四大部分组成:   一、搭建交叉开发环境   二、bootloader的选择和移植   三、kernel的配置、编译、和移植   四、根文件系统的制作   第一部分:搭建交叉开发环境...因此,要得到一个交叉工具链,就像我们移植一个Linux内核一样,我们只关心我们需要的东西,编译我们需要的东西在我们的平台上运行,不需要的东西我们不选择不编译,所以,交叉工具链的制作方法和系统移植有着很多相似的地方...测试交叉工具链   到此,嵌入式Linux系统移植四大部分的第一部分工作全部完成,接下来可以进行后续的开发了。

6.5K21

4.移植驱动到3.4内核-移植总结

1.常用函数改动 1)device_create() 作用: 创建设备节点 头文件: #include 替代了2.6内核里的class_device_create()...函数 2)device_destroy() 作用:卸载设备节点 头文件:#include 替代了2.6内核里的class_device_destroy()函数 3)usb_alloc_coherent...end_request()函数 2.结构体改动 1) struct net_device结构体 改动方向: 2.6内核下的net_device结构体成员(操作相关的),都放在3.4内核的net_device.../lifexy/p/7515488.html) 4.以移植LED为例 4.1首先直接修改Makefile 将以前的内核位置改为KERN_DIR = /work/system/linux-3.4.2 4.2.../device.h> 5)然后再次编译测试程序,移植到板子上测试即可 5.移植LCD 1)编译驱动 2)去掉内核自带的lcd驱动 进入Device Drivers -> Graphics support

1.8K10

Linux移植移植步骤

在这里总结一下我在移植Linux2.6.22.6内核过程时的步骤。移植成功后最终能挂接做好的根文件系统,并且启动第一个init程序。...移植的步骤如下: 1、将网上下载的内核源码文件linux-2.6.22.6.tar.bz2放入/work/system路径下。...2、切换到/work/system,使用tar xjf linux-2.6.22.6.tar.bz2解压缩内核源码文件得到一个名为linux-2.6.22.6的文件夹 3、cd linux-2.6.22.6...= arm-linux- 5、执行make s3c2410_defconfig修改内核配置,最终会生成一个.confg文件 6、执行make menuconfig配置内核,会读取.confg文件然后根据这个文件的基础上更改配置.../patch-ker.sh c /work/system/linux-2.6.22.6打补丁到内核所在目录     上述命令完成以下三件事情       1)、修改内核fs/Kconfig文件,增加source

3.7K20

Linux移植一_linux从零开始移植

Linux移植一 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明....现在手上有两个开发板,一个是tiny6410,一个是OK6410-A.tiny6410上跑的是linux2.6.38,支持alsa,uboot支持yaffs2系统以及从sd卡启动linux,并且移植了qte...的库.而ok6410上跑的是linux2.6.36,没有移植alsa库,默认安装的系统为cramfs系统,yaffs2系统需要再安装.用户空间音频编程仅支持oss方式,可以跑qtopia,不过qte库未移植或至少不完整...移植到ok6410上.方案有两种: 1.用ok6410提供的uboot + linux2.6.38 2.用tiny6410提供的uboot + linux2.6.38 先尝试第一种. ok6410tiny6410...我没有兴趣继续去修改cramfs系统,因为这是只读系统.所以接下来准备做第二步:在ok6410上移植用tiny6410提供的uboot + linux2.6.38.

1.9K20

linux内核设计实现

内核用C语言编写,移植能力很强 进程创建迅速,独特的fork调用 提供了简洁但是稳定的进程间通讯原语 1.2 unix和linux linux克隆unix,但不是unix linux借鉴了unix很多的设计...应用程序通常调用库函数,库函数通过系统调用让内核带其完成各种任务 内核对硬件设备的管理:硬件想要通讯时,发送异步信号去打断内核内核通过中断号查找处理程序 linux内核开发的特定 不能链接标准c函数库...32为机器为8kb,64为16kb 内核很容易产生竞争条件,注意同步和并发 注意可移植性 二. 进程管理 1. 基本概念 unix系统的两大抽象对象:进程,文件。...调度算法 3.1 概述 linux调度程序定义kernel/sched.c 2.5版本内核重写调度算法,和以前版本区别很大,实现以下目标 充分实现O(1)调度,不管多少进程或什么输入,每个算法能在恒定时间内完成...中断处理程序 响应特定中断时,会执行的函数为中断处理程序或中断服务例程 中断处理程序是设备驱动程序的一部分,设备驱动程序是用于对设备进行管理的内核代码 内核函数的区别:中断处理程序是被内核调用来响应中断的

2.8K52

Linux添加删除内核

笔者所做的工作是需要用到Linux自带的分析工具——***ftrace1***该工具中的一些专门性的工具(姑且叫插件吧)在发行版本中并没有编译到内核中去,所以笔者需要重新编译内核将这些插件勾选上,并安装到自己的系统中...具体命令如下(本命令执行目录为***/usr/src/linux-3.19.8/***,如无特别说明下同): # make mrproper 配置3 本步骤主要是为了配置编译选项,比如哪些模块需要编译到内核中去...查看系统中已经安装了的内核 # dpkg --get-selections | grep linux 该命令可以查看系统中已经安装过的所有内核,如: 图4 查看所有已经安装了的内核 如上图所示,...删除内核 完成1-2两步后,我们可以确定将要被删除的内核版本。 # apt-get remove linux-image-****-generic 4....比如,笔者本人就遇到这样的奇葩问题:在安装内核后,通过 # dpkg --get-selections|grep linux 命令就找不到刚才安装的内核

3.2K30

linux 内核用户态_linux内核态和用户态通信

2/用户态->内核态 在linux中,用户对设备的操作往往被抽象为对文件的操作。利用这一特性,可以通过注册和实现伪字符设备到内核,来实现用户进程和内核空间的交互。...因此,可以在内核态将要输出的信息写入文件,写入后用户态程序直接读取文件就可以完成从内核空间向用户空间的数据传递。...4/内核态用户态 proc文件系统,是当前内核内核模块,和用户交互的主要方式,它通过将虚拟的文件系统挂载在/proc下,利用虚拟文件读写在用户和内核态间传递信息。...向内核中注册/proc下文件的调用是create_proc_entry 5/内核态用户态 netlink是一种特殊的socket,用于用户态内核态的双向通讯。...在用户态中,netlink的使用标准的socket API相同,在内核态,则需要使用专门的API。

2K30

Linux 内核】宏内核内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

文章目录 一、操作系统需要满足的要素 二、宏内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足的要素 ---- 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要...独立功能模块 之间通过 " 消息 " 进行通信 , 微内核 效率低 ; 下图中 , 进程 , 文件系统 , 设备驱动 , 内核 中的 通信模块 , 进程调度模块 , 内存管理模块 , 通过 消息...进行通信 , 微内核优点 : 稳定性好 , 实时性好 ; 微内核缺点 : 高度模块化 , 模块之间只能通过消息传递信息 , 效率低 ; 四、Linux 内核动态加载机制 ---- Linux 内核模块动态加载...: Linux 内核 使用了 模块设计 , 可以进行 动态加载 内核模块 ; Linux 内核的 核心实现 , 设备驱动实现 , 可以 编译成一个独立模块 , 这些独立模块可以被编译成 独立的目标文件..., 必须 遵守规定的接口 , 来访问内核 , 这样 开发内核模块 , 变得 更加容易 , 方便 ; 平台无关 : 内核模块 可以 设计成 平台无关的 模块 , 如 : 文件系统 ;

4K30

Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的...Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址...: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org...参考 【错误记录】解压 Linux 内核报错 ( Can not create symbolic link : 客户端没有所需的特权 | Windows 中配置 7z 命令行执行解压操作 ) 博客 ;...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用

23.2K32
领券