运行在TQ2440开发板上以及X86平台上的linux内核编译
一、运行在TQ2440开发板上的linux内核编译
1、获取源码并解压
直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包。
解压(天嵌默认解压到/opt/EmbedSky/linux-2.6.30.4/中)
tar xvjf linux-2.6..4_20100531.tar.bz2 -C /
2、获取默认配置文件
可以使用“config_EmbedSky_W43”作为默认配置文件
cp config_EmbedSky_W43 .config
3、配置(根据需要修改部分选项)
笔者认为只要有一个适合自己开发板的“.config”,这一步也不需要,直接使用这个配置文件去编译内核即可。
至于这一步的意义,其实也就是为了生成一个适合自己开发板的“.config”,决定哪些模块需要编译进内核(裁剪内核)。
默认配置文件的意义就在于,为我们提供了一种参考,通常选择的默认配置文件是与我们的开发板很相似的。由于配置选项太多,多达上千项,使用默认配置文件,只需要修改那些默认配置文件与我们开发板不一样的选项即可,这肯定是节省时间和体力的捷径。
make menuconfig
4、编译内核
make zImage
5、编译modules(内核驱动)模块
make modules
可在内核中挂载使用生成的“*.ko”文件
二、运行在X86平台上的linux内核编译和安装
1、获取源码并解压
可以从http://www.kernel.org/选择一个想要的版本,例如“linux-3.2.55.tar.xz”,并解压到“/usr/src”(/usr/src目录下是专门存放内核源代码的)。
sudo tar -xvf linux-3.2.55.tar.xz -C /usr/src
解压后源码大小几百MB。
2、 获取默认配置文件
比如说:/boot/config-3.2.0-55-generic-pae(Ubuntu当前内核的配置文件)
cp /boot/config-3.2.--generic-pae .config
3、配置
make menuconfig
此命令会调取各级目录中的kconfig生成一个菜单,通过这个菜单,我们可以配置linux内核。配置完成后的信息,保存在“.config”中。在编译内核的时候,会读取这个配置文件,从而决定以什么样的方式编译内核,编译内核的那些模块等等。
4、编译内核和模块
编译内核
make
此过程长达几个小时,编译完后源码包就有5、6个G,所以在编译之前确保你的虚拟磁盘剩余容量足够大,不够的话参考修改虚拟机linux硬盘的大小 进行磁盘扩容,否则在编译过程中将出现“磁盘空间不足”的问题。生成的内核镜像在arch/x86/boot目录下。
安装模块
make modules_install
make modules_install命令用于安装可装载模块,安装的目的目录时/lib/modules/3.2.55
5、安装
make install
make install命令执行三个操作:复制内核镜像到/boot目录下;生成initrd-img;更新grub。命令成功执行成功后,新的内核已可以使用,并且列在引导菜单中。
/boot目录下的内容
6、重启检查
重启系统,grub引导选项中多了我们新编译的内核选择,选择新内核引导。“Previous Linux version”为更新内核前的内核启动项。
进入系统后执行命令uname -r 查看当前的内核版本。
uname -r
后记
倘若想卸载自己编译的内核,可以参考linux下删除内核 进行操作。
参考网页:linux内核学习之二:编译内核
运行在TQ2440开发板上以及X86平台上的linux内核编译的更多相关文章
- 【转】深度分析NandFlash—物理结构及地址传送(以TQ2440开发板上的K9F2G08U0A为例)
K9F2G08U0A是三星公司生产的总容量为256M的NandFlash,常用于手持设备等消费电子产品.还是那句话,搞底层就得会看datasheet,我们就从它的datasheet看起. 这就是 K9 ...
- 在TQ2440开发板上ping 127.0.0.1不通
问题:在TQ2440上ping 127.0.0.1,提示错误 ping: sendto: Network is unreachable 解决方法:ifconfig lo 127.0.0.1 up ...
- DE1-SOC开发板上搭建NIOS II处理器运行UCOS II
DE1-SOC开发板上搭建NIOS II处理器运行UCOS II 今天在DE1-SOC的开发板上搭建NIOS II软核运行了UCOS II,整个开发过程比较繁琐,稍微有一步做的不对,就会导致整个过 ...
- 在Developerkit开发板上运行blink例程
本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运行起来. DeveloperKit开发板 在例程中分别用到两个led和一个按钮 ...
- 如何编译(helloworld)可以在开发板上运行的应用
本节介绍如何编译可以在开发板上运行的应用,编译方法很简单.基于:iTOP4412开发板首先要确定一下环境变量,如下图所示,使用“cd”命令回到根目录,然后使用命令“vim .bashrc”打开环境变量 ...
- 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上
在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...
- 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上
博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813 本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...
- easycwmp在开发板上的配置
原创作品,转载请注明出处 copyright:weishusheng 2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.e ...
- FS210开发板上Qt4.7.0移植过程
作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...
随机推荐
- 410. Split Array Largest Sum
做了Zenefits的OA,比面经里的简单多了..害我担心好久 阴险的Baidu啊,完全没想到用二分,一开始感觉要用DP,类似于极小极大值的做法. 然后看了答案也写了他妈好久. 思路是再不看M的情况下 ...
- SQL-LINQ-Lambda语法对照
SQL LINQ Lambda SELECT *FROM HumanResources.Employee from e in Employees select e Employees .Select ...
- IIS7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。=
本文转载:http://www.cnblogs.com/ctcx/archive/2012/07/19/2599741.html 在 Microsoft Visual Studio 2010 打开看了 ...
- Rebuild my Ubuntu 分类: ubuntu shell 2014-11-08 18:23 193人阅读 评论(0) 收藏
全盘格式化,重装了Ubuntu和Windows,记录一下重新配置Ubuntu过程. //build-essential sudo apt-get install build-essential sud ...
- percona-MYSQLGUI监控
1.https://www.percona.com/blog/2016/05/26/monitoring-with-percona-app-for-grafana/ http://pmmdemo.pe ...
- 编写android的widget
以前对这个东西很感兴趣,因为确实方便,如今有时间了来做一个例子 首先要定义一个layout(widgetview.xml)和一个配置文件(widgetconfig.xml) <?xml vers ...
- iOS UIKit:viewController之定义(2)
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- java 钱币的单位转换
将钱转成转换为带指定单位的钱 int money = 10; NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US); System ...
- ASP.NET MVC5框架揭秘 学习笔记01
1.自治视图 在早期(作者也没说明是多早,自己猜吧),我们倾向于将所有与UI相关的操作糅合在一起(现在我身边还有很多人这样做),这些操作包括UI界面的呈现. 用户交互操作的捕捉与响应(UI处理逻辑). ...
- 如何在安卓/data(而不是/data/data)目录下进行文件的读写操作
分析:Android默认是无法直接操作/data目录的,只能读写程序自己的私有目录,也就是/data/data/package name/下,默认只能操作这个目录下的文件,也就是我们想直接读写/dat ...