第一步,下载源代码
1.查看内核版本信息[1]:
mc22@mc22-laptop:~$ uname -a
Linux mc22-laptop 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux
2.使用apt查看可下载的内核源码[2]:
mc22@mc22-laptop:~$ apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
linux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patches
3.其中有linux-source-2.6.32,正好是与我使用的linux一样的内核,使用apt直接下载:
mc22@mc22-laptop:~$ sudo apt-get install linux-source-2.6.32
4.下载完成后,在/usr/src目录下,可以找到压缩包linux-source-2.6.32.tar.bz2,解压此压缩包得到整个内核的源代码[3]:
mc22@mc22-laptop:/usr/src$ sudo tar -jxvf linux-source-2.6.32.tar.bz2
第二步,配置及编译内核
1.进入/usr/src/linux-source-2.6.32目录下,配置参考[2][4],此处使用oldconfig命令,将当前系统的参数写入配置。
mc22@mc22-laptop:/usr/src/linux-source-2.6.32$ sudo make oldconfig
scripts/kconfig/conf -o arch/x86/Kconfig
#
# using defaults found in /boot/config-2.6.32-24-generic
#
#
# configuration written to .config
#
2.此处编译会出现错误[5]:
LD [M] ubuntu/omnibook/omnibook.o
ld: /ubuntu/omnibook/sections.lds: No such file: No such file or directory
make[2]: *** [ubuntu/omnibook/omnibook.o] Error 1
make[1]: *** [ubuntu/omnibook] Error 2
make: *** [ubuntu] Error 2
解决方法是进入源码的目录,打开omnibook的Makefile进行少量修改:
mc22@mc22-laptop:/$ sudo gedit /usr/src/linux-source-2.6.32/ubuntu/omnibook/Makefile
将文件中的:
#EXTRA_LDFLAGS += $(src)/sections.lds
EXTRA_LDFLAGS += $(PWD)/ubuntu/omnibook/sections.lds
改为:
EXTRA_LDFLAGS += $(src)/sections.lds
#EXTRA_LDFLAGS += $(PWD)/ubuntu/omnibook/sections.lds
3.在此源码目录下执行make(可跳过):
mc22@mc22-laptop:/usr/src/linux-source-2.6.32$ sudo make
4.在同一目录下执行make bzImage命令:
mc22@mc22-laptop:/usr/src/linux-source-2.6.32$ sudo make bzImage
编译内核大概耗时1小时以上,之后会在当前目录生成新文件vimlinux,其权限为-rwxr-xr-x。
5.之后执行make modules命令编译模块,若未执行步骤2,需要修改omnibook的Makefile,方法同步骤2:
mc22@mc22-laptop:/usr/src/linux-source-2.6.32$ sudo make modules
6.执行make modules_install命令安装模块:
mc22@mc22-laptop:/usr/src/linux-source-2.6.32$ sudo make modules_install
7.执行完上述操作,切换到目录/lib/modules/,会看到新出现的2.6.32.28+drm33.13文件夹,里面的build文件夹就是编译模块需要的文件树。不过我做到这一步的时候,提示磁盘空间不够,系统挂掉了,给虚拟机分配的空间太小了,8GB。第二次使用20G大小的虚拟机,执行完全部操作之后磁盘占用为7.9G
参考:
[1]
查看Linux内核版本的命令
[2]
Linux 2.6内核的编译步骤及模块的动态加载
[3]
linux解压 tar命令
[4]
Linux 2.6.19.x 内核编译配置选项简介
[5]
内核编译的过程(网上收集)
- 大小: 6.6 KB
- 大小: 7.4 KB
- 大小: 17.2 KB
- 大小: 24.1 KB
- 大小: 6.8 KB
分享到:
相关推荐
整个程序就一个JSP文件,但是程序还是有特点的,比如跨平台,只要共享80端口,就可以用它来管理远程管理;客户端无论安装任何插件。 远程连接建立成功后,这个程序 可以完成文件的增、删、改名等以及打包下载;...
1.跨平台,基本WEB服务,无论防火强怎么封端口,只要打开80,就可以远程管理服务器. 2.客户端无论安装任何插件. 3.只有一个JSP文件,文件名可以随意改,隐蔽性好. 功能: 1.文件管理: 包括对文件的操作和打包下载....
MTC一体化费显功能测试说明(湖南高速公路)用于测试
远程屏幕监视程序(含源代码),代码简单易用,操作容易,
本软件使你的TurboC2.0支持鼠标
和MTC组合式联网收费系统方案PPT学习教案.pptx
JSP版文件管理,可以管理系统所有盘的文件。
MTC温控器调试助手zip,MTC温控器调试助手
基恩士上位链路通讯C#实现,基于官方文档实现的通讯代码。
普通晶闸管可控硅模块MTC110A1600V.pdf
Project3 VerilogHDL完成MIPS微系统开发(支持设备与中断) 配套实验报告见个人主页Word版 配套实验报告见个人主页Word版 配套实验报告见个人主页Word版 一、设计说明 1.MIPS 微系统应包括:MIPS处理器、系统桥和 1 个...
普通晶闸管可控硅模块MTC110A1600V[参考].pdf
MTC 神经网络, 加上 MACD - 用于 MetaTrader 5 的智能交易系统。
例子: 提供者的服务器: nslookup elb001-mtc-ag21.mtc.usw2.np.cy.s0.playstation.netServer: 192.168.1.1Address: 192.168.1.1#53Non-authoritative answer:Name: elb001-mtc-ag21.mtc.usw2.np.cy.s0....
注意:您仍然需要自己获取coreboot/tegra_mtc.bin 。 docker run -ti --rm -v$(pwd):/source nold360/switch_linux_toolchain bash 00_build.sh 利润! 注意:您还需要准备一个根文件SD卡等中描述的 然后只需运行...
MTC-04-NVT温控器速查手册.pdf
全球移动技术大会2016PPT下载合集mtc.part1
目录 知识产权..........................................................................................................................................................13 前言 13 ...
(MTC), where the objective is to attach a large number of lowrate low-power devices, termed Machine-Type Devices (MTDs) to the cellular network. MTDs pose new challenges to the cellular network, one ...
采用面向对象技术设计VHDL编译系统MTC,通过对VHDL语法产生式进行分析,将各语法现象以C++类的形式进行抽象分类,给出词法分析和语法分析设计策略,并针对存在于LALR(1)分析过程中的两类冲突提出解决方法。MTC编译...