iis服务器助手广告
返回顶部
首页 > 资讯 > 操作系统 >怎么定制编译一个属于自己的Linux内核
  • 122
分享到

怎么定制编译一个属于自己的Linux内核

2023-06-28 13:06:26 122人浏览 薄情痞子
摘要

这篇文章主要讲解了“怎么定制编译一个属于自己的linux内核”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么定制编译一个属于自己的Linux内核”吧!一 编译方式编译内核有多种方式,从ke

这篇文章主要讲解了“怎么定制编译一个属于自己的linux内核”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么定制编译一个属于自己的Linux内核”吧!

怎么定制编译一个属于自己的Linux内核

一 编译方式
编译内核有多种方式,从kernel.org下载选择下载需要的版本的内核源码
如:linux-2.6.32-rc1.tar.bz2,下载内核源码到/home/user/目录,进入下载目录,解压压缩包。

#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2

二 准备编译环境

开始之前,首先确认下面软件包已经安装(编译中标普华4.0时,直接全部安装CD3可保证此条件)。
* rpmdevtools
* yum-utils
fedora系统可以使用如下命令安装:
#yum install yum-utils rpmdevtools

生成一个rpmbuild命令工作所需的目录树,下面命令可以完成该操作,也可以手动建立目录树。
命令建立:
#rpmdev-setuptree

此命令将会在/usr/src/rpmbuild/目录下生成如下目录结构(如果此位置没有,则可能在当前用户目录下).

# tree /usr/src/rpmbuild/
rpmbuild/
|– BUILD
|– RPMS
|– SOURCES
|– SPECS
`– SRPMS
上面部分是rpmbuild的环境建立。rpm
3. 安装内核源码包需要的依赖组件(在此可以跳过此步操作)

su -c ‘yum-builddep kernel-.src.rpm’
4.安装内核源码到系统,默认目录在/usr/src/neoshine:

rpm -Uvh kernel-.src.rpm

三 配置内核(生成config配置文件)

下面将介绍如何解开源码包,并修改,配置和重新打包源码
1. 解开源码包并打上所有的补丁到BUILD目录

cd ~/rpmbuild/SPECS
rpmbuild -bp –target=`uname -m` kernel.spec

kernel源码将在这里找到:

/usr/src/neoshine/rpmbuild/BUILD/kernel-/linux-. directory

配置内核源码
1. 进入内核源码:

cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 复制/boot/config*配置文件到源码目录下,此config文件也可以是已经配好或者其他地方备份的kernel配置文件:

cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先检查kernel配置中新增的选项:

make oldconfig
4. 定制内核功能,关闭initrd支持选项,执行图形化内核配置工具:

make menuconfig
注:在generic setup选项下找到initial RAM system and RAM disk(initramfs and initrd) support 项,取消编译。同时确保跟文件系统对应的驱动和系统所在存储器对应的驱动都已经编译到内核(否则会无法启动系统).

在.config文件第一行改为下面内容(注意:没有此行时,后面的编译会报错)

# i386
6. 拷贝.config到SOURCES/:

cp .config ../SOURCES/config-$arch

四 编译新内核

下面开始准备编译新的内核包
打开SPEC/kernel.spec

vim SPEC/kernel.spec
改变下面行内容,可以定制自己的内核扩展名(如fc10之类):

%define buildid .
下一步将生成一个新内核的rpm包,此过程需要编译内核源码包
使用下面命令生成新的内核源码包
rpmbuild -bb –with baseonly –without debuginfo –target=`uname -m` kernel.spec

参数说明:bb表示只编译二进制包,即不生成源码包,without debuginfo 表示没有调试信息,
target=`uname -r`表示生成对应当前平台的内核包
如果上面的命令成功执行完成,那么会在BUILD/i686目录下生成新的内核安装包

五 安装新内核

rpm -ivh kernel-$ver-$arch.rpm
此步操作会自动安装内核到boot目录下,安装对应内核模块到/lib/modules/目录下,并且生成新内核对应的grub引导菜单。
修改grub引导菜单为以下格式

title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)

注意,此处不要使用uuid指定跟文件系统(可能会无法挂载根分区而导致内核死机),也不要再加和显示相关的参数(内核不支持对应设置时,只会看到一个黑黑的屏幕)。

感谢各位的阅读,以上就是“怎么定制编译一个属于自己的Linux内核”的内容了,经过本文的学习后,相信大家对怎么定制编译一个属于自己的Linux内核这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么定制编译一个属于自己的Linux内核

本文链接: https://www.lsjlt.com/news/319795.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么定制编译一个属于自己的Linux内核
    这篇文章主要讲解了“怎么定制编译一个属于自己的Linux内核”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么定制编译一个属于自己的Linux内核”吧!一 编译方式编译内核有多种方式,从ke...
    99+
    2023-06-28
  • 利用Java编写一个属于自己的日历
    目录问题提出一点提示源码分享问题提出 编写程序,输入年份,打印出该年的年历(12个月的),效果如下图所示。 一点提示 使用 Java 自带的 Calendar 类得到一个 Cale...
    99+
    2024-04-02
  • Linux入门学习,安装一个属于自己的Linux系统
    一 Linux简介Linux抽象解释肯定有人和我一样,很早就听说过Linux这个词,但是又没接触过。然后随手百度一下看着满满的命令惊呆了,不知道从哪里开始学习。 我相信大家肯定都用过Windows系统,或者也用过Mac系统,其实Linux也...
    99+
    2023-06-06
  • 跟大神一起15分钟制作一个属于自己的Linux操作系统!
    计算机已成为现代人日常工作、学习和生活中必不可少的工具。操作系统是计算机之魂,作为用户使用计算机的接口,它负责调度执行各个用户程序,使计算机完成特定的任务;作为计算机硬件资源的管理者,它负责协调计算机中各类设备高效地工作。操作系统的重要性不...
    99+
    2023-06-05
  • 怎么写一款属于自己的JS类库
    这篇文章主要讲解了“怎么写一款属于自己的JS类库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么写一款属于自己的JS类库”吧!API介绍和效果展示事件绑定...
    99+
    2024-04-02
  • 怎么修复一个Panic的Linux内核
    这篇文章主要介绍了怎么修复一个Panic的Linux内核,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为了配置完全的静默启动,对自己的工作计算机上运行的Linux执行了不当的...
    99+
    2023-06-12
  • Linux系统下怎么编译安装支持NTFS的内核模块
    这篇文章主要讲解了“Linux系统下怎么编译安装支持NTFS的内核模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统下怎么编译安装支持NTFS的内核模块”吧!当你安装完Linu...
    99+
    2023-06-10
  • 怎么基于Kotlin实现一个简单的TCP自定义协议
    这篇文章主要讲解了“怎么基于Kotlin实现一个简单的TCP自定义协议”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么基于Kotlin实现一个简单的TCP...
    99+
    2024-04-02
  • 怎么在Linux上为执行的任务创建一个自定义的系统托盘指示器
    本篇内容介绍了“怎么在Linux上为执行的任务创建一个自定义的系统托盘指示器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!系统托盘图标如今仍...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作