最近比较闲,定了一个任务就是学习linux的内核原理,网上找了些资料进行了汇总和记录如下:
1、找到ubuntu网站(https://launchpad.net/ubuntu/+source/linux/3.8.0-19.29)下载内核源码linux_3.8.0.orig.tar.gz
解压到本地文件夹;
2、本文采用make menuconfig方式进行内核的编译(方法有很多种);
即 apt-get install libncurses5-dev,安装后进入解压的文件夹,运行命令make menuconfig即可出现图形化界面;
得到如下图所示的界面:
以上则表示进入了内核的配置界面。
这过程中也遇到了一个问题,libncurses5-dev 无法安装的问题(无法解析软件包文件 /var/lib/apt/lists/cn.archive.......),主要是源太旧了,需要apt-get update 一下,网上的方法可以解决问题,即:
正在读取软件包列表… 有错误!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/cn.archive.ubuntu.com_ubuntu_dists_
natty_main_i18n_Translation-en
E: 无法解析或打开软件包的列表或是状态文件。
问题:软件包出错
解决方案:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
下一步翻译和分析下配置选项的含义和作用:
A:最上面说明翻译如下:
箭头表示含有子菜单
enter选择子菜单
高亮的字母表示热键
<Y>表示包含
<N>表示除外
<M>模块化功能
按 Esc Esc 两次退出
<?>表示帮助
</>表示查询
图例:[*] 内置;[ ] 除外;<M> 模块;< >模块 capable
B:帮助选项中的概览说明如下:
这个接口让你可以选择需要的功能和参数进行编译。功能可以是内置的,模块化的或者直接忽略。参数必须以十进制或十六进制或文本的方式进行输入。
菜单选项中的行首括号代表的含义如下:
[ ] 表示可以内置或者移除
<>表示可以内置,模块化或者移除
{ }表示内置或模块化(根据其他功能选择)
- - 根据其他功能选择
但 括号中为*,M或者空白时表示内置,以模块编译或者单独的执行
Linux内核编译配置详解:从Kernel Configuration开始

本文介绍了Linux内核编译过程,包括下载内核源码、使用make menuconfig进行配置,并详细解释了配置界面的选项含义,如模块支持、块设备、处理器类型、电源管理等。在配置时,遇到软件包解析问题,通过更新源和清理缓存得以解决。
最低0.47元/天 解锁文章
--Kernel Configuration&spm=1001.2101.3001.5002&articleId=10989429&d=1&t=3&u=3b58ea5e81994a8c9d6f7ff2d77cf546)
3499

被折叠的 条评论
为什么被折叠?



