编译Linux内核2.6.36-程序员宅基地

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

编译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

智能推荐

Jquery 多选下拉列表插件jquery multiselect-程序员宅基地

文章浏览阅读286次。有一个多选的需求,在网上找到了这个插件:multiselecthttps://github.com/ehynds/jquery-ui-multiselect-widgetcsdn博客上有这个插件的介绍,不少童鞋都问了这么个问题,怎么获取选中的值?真是个好问题,因为我在看demo的时候也发现了这个问题,呵呵!先简单说说这个插件: jquery-multisel..._multiselect 多级 多选插件 checkbox

解决android studio打包后安装APK提示“签名不一致,该应用可能已被修改。“_签名不一致该应用可能已被修改-程序员宅基地

文章浏览阅读8.4k次,点赞5次,收藏15次。现象解决办法修改applicationId名_签名不一致该应用可能已被修改

PHP用户缓存APCU_php apcu 100%-程序员宅基地

文章浏览阅读6.1k次。故事APCu 是老牌 PHP 字节码和对象缓存 缓存器 APC 的分支,具体由来还得讲个故事。首先提一下,PHP 如果公用多个缓存器是会冲突的,例如同样都是字节码缓存器,OPcache 和 eAccelerate 同时安装就会起冲突甚至报错;而 XCache 同时有字节码缓存器和对象缓存,和 OPCache 共存也是会起冲突的。在 PHP 5.5 之前是没有 OPcache 这个缓存器_php apcu 100%

Android progressbar设置虚线进度条时不显示的解决办法_android 进度条设置processdrawable后不显示进度条-程序员宅基地

文章浏览阅读1.6k次。最近公司要求实现进度条,除了渐变的要求,还要有是虚线,我想定义一个shape即可,结果发现写好的资源文件,在预览图上面是虚线,可是运行到手机上就是实现,如下代码:<ProgressBar android:id="@+id/progress_ckbg" style="?android:attr/progressBarStyleHorizon..._android 进度条设置processdrawable后不显示进度条

HDU-1753 大明A+B,小数A+B_小数a+bc语言-程序员宅基地

文章浏览阅读117次。话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。Input本题目包含多组测试数据,请处理到文件结束。每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。Output请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。Sample Input1.1 2.91_小数a+bc语言

Java中如何将List拆分为多个小list集合_java把list分成多个list-程序员宅基地

文章浏览阅读2w次,点赞11次,收藏19次。文章目录一、如何将List拆分为多个小list写在前面:我是「境里婆娑」。我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在心中信念丝毫未减,眼前这个少年,还是最初那张脸,面前再多艰险不退却。写博客的目的就是分享给大家一起学习交流,如果您对 Java感兴趣,可以关注我,我们一起学习前言:在平常写代码时候可能会遇到需要将一个大list拆分多个小list,进行一些业务处理。一、如何将List拆分为多个小list如何将List拆分多个小list,首先我们需要list.sublist这个方法_java把list分成多个list

随便推点

无语!35 岁华人程序员涉嫌诈骗 150 万美元抗疫贷款,在美国遭 FBI 逮捕-程序员宅基地

文章浏览阅读1.6k次。(给程序员的那些事加星标)有个华人程序员????了最近,有一个华人程序员在网上「火了」,负面的那种火。????5 月 22 日,美国司法部官网公开了一份刑事起诉书,一位软件工程师涉嫌 1...

armeabi-v7a arm64-v8a armeabi 兼容适配区别_v8a和v7a哪个兼容性更好-程序员宅基地

文章浏览阅读9k次,点赞2次,收藏8次。首先介绍arm64-v8a: 目前主流版本(Google Play上架要求app必须适配arm64-v8a)armeabi-v7a: 一些老旧的手机armeabi/mips / mips64: NDK 以前支持 ARMv5 (armeabi) 以及 32 位和 64 位 MIPS,但 NDK r17 已不再支持,极少用于手机可以忽兼容只适配armeabi的APP可以跑在armeabi,x..._v8a和v7a哪个兼容性更好

linux下 rm 删除排除文件的两种方式-程序员宅基地

文章浏览阅读832次。为什么80%的码农都做不了架构师?>>> ..._linux排除文件后删除

symbol lookup error: /lib64/libpango-1.0.so.0: undefined symbol: g_log_structured_standard 错误-程序员宅基地

文章浏览阅读1w次,点赞15次,收藏7次。通过更新glib2包修复。(yum update glib2)即可拿走不谢,我也找得好辛苦!!!_symbol lookup error: /lib64/libpango-1.0.so.0: undefined symbol: g_log_struc

此查询使用的不是 ANSI 外部联接运算符(sqlserver)_此查询使用的不是ansi外部联接运算符-程序员宅基地

文章浏览阅读3.6k次,点赞4次,收藏3次。com.microsoft.sqlserver.jdbc.SQLServerException: 此查询使用的不是 ANSI 外部联接运算符("*=" 或 "=*")。若要不进行修改即运行此查询,请使用存储过程 sp_dbcmptlevel 将当前数据库的兼容级别设置为 80 或更低。极力建议使用 ANSI 外部联接运算符(LEFT OUTER JOIN、RIGHT OUTER JOIN)重写_此查询使用的不是ansi外部联接运算符

Linux数据文件自动迁移,linux下增加磁盘改变指定文件路径分区挂载点和迁移数据...-程序员宅基地

文章浏览阅读243次。Centos7 系统上原有目录/data 挂载根目录下,空间有点小,我们需要把/data目录挂载到另一个磁盘,同时把数据迁移。1.查看分区情况fdisk -l2.查看路径对应分区情况df -l3.查看分区文件格式df -T -H4.给指定磁盘分区fdisk /dev/vdaCommand (m for help) nprimary partition (1-4) pPartition number..._linux 移动文件会改变文件的挂载点吗