平台:虚拟机Ubuntu10.04

内核版本:3.0.80

----------------------------------------------------------------------------------------------------

内核的编译分为两种:X86平台和ARM嵌入式平台

一.X86

平台:虚拟机Ubuntu10.04

内核版本:3.0.80

1.下载(并安装)源码:linux-3.0.08

网站默认的源码支持的为X86平台,下载源码解压到自定义的目录:/root(此目录是我自己建的,你尽可以解压到任意目录),解压后生成内核文件夹:linux-3.0.80

2.下载(并安装)终端处理库:libncurses5-dev

这个库用于后面的内核配置界面命令的执行环境。许多人在线安装软件包会遇到网速过慢的情况,这里建议先在“新立得软件管理”里搜索到适合自己系统的软件包版本,然后在下述网址搜索下载,最后离线安装即可。

网址1:

网址2:

3.内核配置:

终端界面,执行以下命令:

cd /root/linux-3.0.80#进入内核根目录

make meuconfig#进入内核配置界面

此时,出现如图内核配置界面:

上下键选择相应的选项,空格键更改相应的选项的属性:

[*]把此项编入系统内核

[M]把此项以驱动模块的形式编译。

[]不选择编译此项。

双击Esc后退。选择完后退出,提示是否保存,确定即可。这时候在根目录下生成一个隐藏文件:.config

里面以“文本”的形式记录下你的配置信息。当你后续编译的时候即按照这个文件的信息进行编译。

当然,你也可以直接输入:

make defaultconfig

来执行默认的配置信息。

这里还要叙述一下另外两个文件:Kcongfig和Makefie。

这两个文件分布在内核源码树的各个目录下,其中Kconfig构成了一个分布式的内核设置数据库,每个Kconfig描述了所属目录源文件相关的内核设置菜单。在内核设置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户在配置界面选择后保存到.config的内核设置文件中。在内核编译时,Makefile调用这个.config,就知道了用户的选择。

比如,要想添加新的驱动到内核的源码中,要修改Kconfig,这样就能选择这个驱动。如图

就是下图USB_SURPORT的菜单信息

如果想使某个驱动被编译,要修改Makefile,如图:

也就是说,Kconfig负责使你的配置菜单显示出来。而真正要想编译出来相应的模块是由Makefile来负责的。而上图中等号右边的文件名对应的c源代码,就在Makefile当下的目录下,Makefile负责引导编译这些c源代码变成相应的文件。

3.编译:

如果是编译整个内核,直接输入:

make

而实际上,为了加快编译速度我们常常执行

make -j4

其中数字4可以理解为4线程同时编译,所以速度会快。理论上数字应为实际cpu核心+1.但是,如果你是双核的就直接写成make -j4也是没有问题的。另外需要解释的是,你会看到一些文档的执行命令是:make bzlmage。实际上,make命令默认的执行的是:Make bzlmage和make modules,即编译内核和内核驱动。而生成的内核镜像zlmage在内核源码目录下:arch/x86/boot或者是arch/i386/boot.

而如果你只是编译驱动的话,请执行:

make modules

就行了。

4.安装:

安装模块:

make  modules_install

执行后,系统会在/lib/modules目录下生成一个3.0.8子目录,里面存放着新内核的所有可加载模块(即将编译好的modules拷贝到/lib/modules下),注意,此目录是系统的目录,不是内核源码的目录。

安装内核:

make install

执行后,即复制内核目录内的.config,vmlinuz,initrd.img,System.map文件到系统/boot目录、更新grub。

5.检查:

dpkg--get-selections|grep linux

此命令可以查看当前安装的内核版本号有哪些,从而看到我们是否把新内核安装到系统了

6.重启:

Reboot

在内核选择界面,选择内核版本号。对于不同的系统,有可能得修改一下启动引导文件。这里先不叙述。

好了,这就是X86内核的编译与安装。

------------------------------------------------------------------------------------------------------

二ARM

平台:Ubuntu10.04

交叉编译环境:arm-linux-gcc  4.5.1

目标开发板:友善之臂tiny210

内核移植版本:3.0.8

1.下载内核

2.下载终端处理库

3.建立交叉编译环境:

虚拟机上默认的系统的编译器是X86的,也就是说编译完成的内核是适用于X86机器的。所以我们必须安装交叉编译环境,使X86机器编译出的内核适用于ARM平台。一般所买的开发板都配套有开发板建立交叉编译环境的说明文档,这里我简要的说明一下:

1.首先把交叉编译器拷贝到Ubuntu系统任意目录:

在终端命令行输入:

cd /tmp#进入所在目录

tar xvzfarm-linux-gcc-4.5.1-v6-vfp-20101103.tgz –C /#解压安装

执行后,将把arm-linux-gcc安装到/opt/FriendlyARM/toolschain/4.5.1目录

2.编辑环境变量:

gedit /root/.bashrc#打开文件.bashrc,

最后一行添加:

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin,注意路径一定要写对,否则将不会有效。

3.注销计算机后,重新回到命令终端,执行命令:

arm-linux-gcc –v

会出现如下信息,这说明交叉编译环境已经成功安装

其实,你只需要看到最后一行gcc version 4.5.1就行了。

4.配置交叉编译器:

如果此时我们执行make命令来编译内核的话,系统默认的依然是调用gcc编译器来编译。执行:

gdit Makefile#打开源码目录下的Makefile文件

找到下面两行:(192行左右)

修改为:

这个时候,我们再执行make命令,就会调用交叉编译器。

4.修改内核:

其实,原生X86的内核是不适用于ARM开发板的,一般情况下我们需要做相应的移植工作。网上关于特定开发板的内核移植有相应的文章。而实际上如果要独立的做内核移植的话,需要对linux内核和嵌入式开发有不错的理解。但是一般情况下,开发板配套的都会有适合此开发板的已经移植好的内核。所以在第一步确切的应该是:从开发板获得内核源码。而且这样获得内核源码一般会省略掉上一步中修改Makefile文件的步骤。

5.编译内核:

执行:

make -j4

执行完后,会在arch/arm/boot生成zlmage镜像。运用开发板配套的内核烧录工具下载到开发板即可。

好了,就这样!

linux内核单独安装,Linux内核编译与安装相关推荐

  1. 64位LINUX下hadoop2.2.0重新编译及安装步骤

    yum -y install  lzo-devel  zlib-devel  gcc autoconf automake libtool gcc-c++ openssl-devel ncurses-d ...

  2. python3 安装opencv_Page20-opencv的编译与安装

    本系列专栏相关说明与镜像包.源码.工具等: 塔图:Page00-本系列实验记录说明​zhuanlan.zhihu.com 一.OpenCV在Python3.7环境下的安装 1.切换python版本 系 ...

  3. linux 设置显卡命令,linux安装显卡驱动命令

    linux安装显卡驱动命令来自小周记热点推荐.windows下的显卡驱动安装想必大家都很熟悉,呢么linux系统要如何安装显卡驱动呢?下面由小周记 XiaozhouJi.Com小编为大家整理了linu ...

  4. linux怎么打开chrome_Linux怎么下载应用并安装应用

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解如何在Linux系统上下载应用并安装应用. ...

  5. cups源码下载 linux_正点原子Linux第七十章Linux WIFI驱动实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第七十章Linux WIFI驱动实验 WIFI的使用已经 ...

  6. 编译安装linux内核步骤

    编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录.如果用户在安装Linux时,安装了内核 ...

  7. linux 为什么编译内核,Linux内核编译与安装

    导读 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统,内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.Linux内核的一大特点就是采用了整体式结构, ...

  8. linux内核配置与编译,LINUX内核的配置与编译、安装

    LINUX内核的配置与编译.安装 平台为VM RHEL 5.1 SERVER,所用的内核为linux-2.6.25. 可以到上下载相应的内核版本. 解压压缩包,并进入内核目录.下面是具体的步骤: 1. ...

  9. 在Ubuntu上下载、编译和安装Android 4.2 最新内核源代码(Linux Kernel)

    根据http://blog.csdn.net/luoshengyang/article/details/6564592博客内容对android4.2的编译 从源代码树下载下来的最新Android源代码 ...

最新文章

  1. leetcode--整数反转--python
  2. 嵌入式学习笔记之二(静态链接与动态链接)
  3. 不错!基于Springboot 2.0 + LayUI开发的物流管理系统(已开源)
  4. 使用ffmpeg裁剪和合并视频
  5. document.write()详解
  6. 【Qt for Android】OpenGL ES 绘制彩色立方体
  7. Android svg VectorDrawable 动画效果
  8. 训练caffe:registry.count(type) == 0 (1 vs. 0) Solver type Nesterov already registered
  9. “你什么色?”网易云人格主导色被刷屏后遭微信屏蔽:因包含互动测试内容...
  10. 51nod 1275 连续子段的差异(twopointer+单调队列)
  11. 《Android开发从零开始》课程下载地址汇总
  12. uitableView group模式下的间距问题
  13. Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F 表情插入mysql 报错
  14. Python练习题参考
  15. 56相册视频(土豆相册视频 激动相册视频 QQ动感影集等)——下载教程
  16. ATMEGA128+ADS1110+12864液晶显示程序和电路图
  17. PostgreSQL 11.2 手册 (中文版) PostgreSQL中文社区
  18. 计算机按键截图,怎么截图快捷键-如何给windows软件设定快捷键(截图工具、计算器、记事本等)...
  19. Untiy 接入 移动MM 详解 转
  20. 深入解析设置磁盘写保护

热门文章

  1. 初学者python用哪个版本好-python用哪个版本好
  2. python爬虫赚钱的经历-十年真ㆍPython大佬用爬虫赚钱的自述!看完学到了!
  3. python面试-Python面试题(整理)
  4. python类装饰器详解-Python 类装饰器解析
  5. python下载代码-python下载大文件代码
  6. python timer使用-Python timer定时器两种常用方法解析
  7. python发明者叫什么-python是怎么被发明的
  8. java工程师的工作时间_Java 工程师真的每天只需工作四小时吗?
  9. 微信公众平台开发 OAuth2.0网页授权认证
  10. 题目1168:字符串的查找删除