编译Linux内核2.6.36_weixin_34321977的博客-程序员宅基地

技术标签: 网络  运维  操作系统  

编译Linux内核2.6.36

一直以来,都是从事Linux用户空间的程序开发,对于Linux的了解仅限于基本Linux内核的经典书籍的阅读。由于目前从事的工作主要是TCP/IP 4层以上的处理,所以对内核的接触也不多。但近日空闲时间较多了,于是决定要好好研究研究Linux内核,主要集中在Linux内核的TCP/IP协议栈。

那么从今天开始,一方面是为了鞭策自己,另一方面也是给自己的学习过程做些记录,我要坚持把学习过程遇到的问题以及自己的收获记录下来。

那么,开始吧。

第一步,自然是编译内核。我选择的是当前最新的稳定版本Linux 2.6.36。我只有在很久之前,大概刚刚毕业的时候编译过内核,当时还是2.4.18呢————这个版本我记得很清楚。所以,具体步骤还得上google搜一下,结果发现大体上都差不多,但是每个人的介绍都有些细微的区别。

恩。。。那么,还是直接看linux的文档为上——这个最官方——其实就是源目录下的README,里面说得很清楚。

1. make mrproper:Make sure you have no stale .o files and dependencies lying around。用于清除以前的编译结果和依赖文件;

2. make O=/home/my_dir/works/linux_kernel/kernel menuconfig: 配置内核的编译选项。
这里的O=/home/my_dir/works/linux_kernel/kernel是指定生成的目录。如果没有该选项,就在默认目录生成。需要注意的是,如果使用了该选项,那么后面的命令中都要带有这个选项。

3. make O=/home/my_dir/works/linux_kernel/kernel:老版本的Linux还要使用make bzImage来生成image。但是新版本的Linux使用make就可以了。这与用户空间的make风格统一了。
这个make就可以生成压缩版本的kernel镜像。

4. make O=/home/my_dir/works/linux_kernel/kernel install: 如果有合适lilo,那么可以直接使用make install来进行镜像的安装。如果没有的话,只能自己动手赋值了。

如果在配置kernel的时候,有任何一个部分是配置成module的形式,那么还需要在make install之前执行make modules_install

到此ok,linux的编译过程其实很简单,重点是在配置内核上。大家根据自己的硬件尝试吧。最好使用虚拟机,这样即使出了问题,也很容易解决。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34321977/article/details/89867143

智能推荐

python安装_windows fbprophet安装(pystan)_Alex.Deng的博客-程序员宅基地_pystan安装

1. pystan安装参照官网一步步使用conda安装即可,主要命令如下:# 管理员打开ananconda prompt# 1.安装MingW-w64编译器类型:conda install libpython m2w64-toolchain -c msys2# 检查你的虚拟环境路径下\Lib\distutils中是否有distutils.cfg文件,如果没有就手动创建一个# 2. conda install numpy cython -c conda-forge# 3.cond

一键刷入twrp_小米/红米手机到手了该怎么解锁和刷 twrp_weixin_39914975的博客-程序员宅基地

资源准备:1.百度搜索小米解锁申请,进行申请解锁并下载解锁工具。如图。文件夹里有对应的驱动,要安装好。2.对应机型的 twrp。在 w大的微博下找(wzsx150)或者在酷安找或者去twrp官网。3.edxp相关的包(两个)(不需要框架的可以忽略)4.手(第一步:用各种方法备份手机所有数据(重要!!!)解锁会清除手机所有数据!!!第二步:开发者模式里打开 oem解锁,解锁状态里绑定账号(必须是解锁...

史上最全的Java从入门到精通,播放最多的Java视频教程_ZZZAILE的博客-程序员宅基地

“Java Planform Standard Edition”是Java语言的标准平台技术,是所有Java开发的语言基础,更是大数据、分布式开发思想建模的初期,此阶段的Java语义、语法,会充斥在大型企业级架构中的各个环节,是Java开发的核心内容。怎么学JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。JavaSE编程基础DOS常用命令 安装JDK、设置环境变..

IEEE 802.11 Frame Types_道al的博客-程序员宅基地

IEEE 802.11 Frame TypeszhuaIEEE 802.11 Frame TypesIEEE 802.11 in the OSI Reference ModelThe IEEE 802.11 architecture resides in the Data Link Media Access Control (MAC) sublayer an

一台电脑安装两个不同版本jdk,实现不同版本切换_Roger_CoderLife的博客-程序员宅基地

在实际开发中,可能会碰到不同项目需要利用不同jdk版本进行开发,这时候就需要我们安装不同jdk版本,实现不同项目进行jdk切换了。首先,可根据需求下载不同jdk版本,这地方我安装了jdk1.6(32位),jdk1.7jdk1.8,关于jdk可自行去官网下载安装。安装好后配置好相关环境变量,这里我们不再多加赘述。安装好后我们只需要更改java_home的配置,如下图。为了方便,此...

redis学习笔记(1):redis基础_polo_longsan的博客-程序员宅基地

redis是一个远程内存数据库,共有5中数据类型:STRING(字符串),LIST(列表),SET(集合),HASH(散列),ZSET(有序集合)。5中数据类型的基本操作:1、字符串redis 127.0.0.1:6379> set hello worldOKredis 127.0.0.1:6379> get helo(nil)redis 127.0.0.1:6379> get h

随便推点

C++ STL之vector详解_腊肉炖萝卜的博客-程序员宅基地

很详细原文地址:STL之vector详解">C++ STL之vector详解作者:naxiaoli2012Vectors   vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用

海伦公式的证明——杨子曰数学_杨子曰的博客-程序员宅基地

海伦公式的证明S△ABC=12absincS△ABC=12absin⁡cS_{△ABC}=\frac{1}{2}ab \sin c S△ABC=12ab1−cos2c−−−−−−−−√S△ABC=12ab1−cos2⁡cS_{△ABC}=\frac{1}{2}ab\sqrt{1-\cos^2 c} S△ABC=12ab1−(a2+b2−c2)24a2b2−−−−−−−−−−−−−−−√S...

python opencv 读取图片 返回图片某像素点的b,g,r值_hlgwx的博客-程序员宅基地

#coding=utf-8#读取图片 返回图片某像素点的b,g,r值import cv2import numpy as npimg=cv2.imread('./o.jpg')px=img[10,10]print pxblue=img[10,10,0]print bluegreen=img[10,10,1]print bluered=img[10,10,2]print bl...

java中foreach循环的注意事项_insping的博客-程序员宅基地

简单的ArrayList小例子: List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); for (Integer integer : list) { System.out.println(inte

java输入数字_在java中,如何从键盘中输入数字,字符,字符串_kBlnW的博客-程序员宅基地

java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。实例程序:一,利用 Scanner 实现从键盘读入integer或float 型数据Java代码importjava.util.*;publicclasstest{publicstaticvoidmain(Stringargs[]){Scann...

程序员丰富的感情生活_苏绪的博客-程序员宅基地_程序员的感情生活

今天是七夕,分享一些爱情的小故事,作为程序员,也要把生活过的有滋有味才行,并非他人想的那样,只会敲键盘,我们同样憧憬美好的爱情,追求技术卓越也需要身边爱情的滋润,社会现实虽然残酷,但是依然要对美好生活以及美好爱情寄予希望,不然我们的生活还有何意义呢?在此,祝愿有情人终成眷属!为开启不一样的程序人生而努力!小微号:EnchantedDamon简单的爱情那就简单化吧!...

推荐文章

热门文章

相关标签