热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

编译新内核

编译新内核--Linux发行版技术-Debian信息,下面是详情阅读。
编译新内核为什么有些人想要编译新内核? Debian 自带的默认内核已经包含了绝大部分配置,所以编译新内核并不是必需的。并且,Debian提供了多个内核供选择。所以您应该先确认一下,有没有适合您硬件的内核映像软件包存在。然而,基于下列理由,编译新内核还是很有用的:
  • 支持某些特殊的硬件,或者默认的内核配置和某些硬件冲突
  • 使用某些不为所提供的内核支持的选项 (例如,支持 high memory)
  • 通过删除无用的驱动程序来优化内核,以减少启动时间
  • 创建整体的而不是模块化的内核
  • 运行最新的内核或开发中的内核
  • 深入了解 linux 内核


8.6.1. 内核映象管理


不要害怕尝试编译内核。它很有趣而且很合算。
为了以 Debian 的方式编译内核,您需要一些软件包: fakeroot,kernel-package,linux-source-2.6 以及其它一些可能已经安装过的软件包(完整的列表请参阅 /usr/share/doc/kernel-package/README.gz)。
此方法将从您的内核源码创建一个 .deb 文件,并且,如果您有非标准模块,将同时创建它们的同步依赖 .deb 文件。这是一个管理内核的较好的方法; /boot 目录将保存内核,System.map,以及当前编译的活动配置文件的日志。
注意,您不一定以 “Debian 方式”编译内核;但我们发现使用软件包系统来管理您的内核,确实可以更加安全和易用。事实上,您可以直接从 Linus 那里而非 linux-source-2.6 得到内核源码,并仍使用 kernel-package 的编译方法。
注意您可以找到完整的文档,通过使用 kernel-package 它在 /usr/share/doc/kernel-package里。本节只包含一个简单的入门指南。
此后,我们假设您具有操作您机器的权力,可以将内核源码解压到您的 home 目录[22]。我们还假设您的内核版本是 2.6.26。确定您处于打算解开内核源码的目录,然后使用 tar xjf /usr/src/linux-source-2.6.26.tar.bz2 解压,并进入 linux-source-2.6.26 刚才创建的目录。
现在,可以开始配置您的内核了。如果您已经安装配置好,并正在运行 X11,请执行 make xconfig;否则请执行 make menuconfig(必须已经安装好 libncurses5-dev)。请花点时间阅读在线帮助并仔细地作选择。如果有疑问,通常来说包含您所不确定的设备驱动程序(用来管理硬件外设的软件,例如以太网卡、SCSI 控制器等)会比较好一点。注意:对于与特殊硬件无关的其它选项,如果您不了解它们,最好保持默认值。不要忘记选择 “Kernel module loader” 中的 “Loadable module support” (它们默认并没有被选择)。否则,您的 Debian 安装将会遇到问题。
清除源码树并复原 kernel-package 参数。也就是使用 make-kpkg clean
现在,开始编译内核: fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image。其中版本号 “1.0” 可以随便您修改;它仅是一个用来跟踪您的内核编译的版本号。同样地,您也可以用任何您喜欢的词替换 “custom” (例如,主机名称)。编译内核可能要花费较长的时间,这取决于您的机器的性能。
一旦编译完成,您就可以像安装其它软件包一样安装定制的内核。以 root 身份,执行 dpkg -i ../linux-image-2.6.26-subarchitecture_custom.1.0_amd64.deb。其中 subarchitecture 部分是一个可选的子结构,这取决于您所设置的内核选项。dpkg -i 将安装内核以及其它的一些支持文件。例如,System.map 可能会被安装(用来辅助调试内核问题),/boot/config-2.6.26 也将被安装,它包含了您当前的配置。新的内核软件包将会自动地更新系统上的启动引导器,让它使用新内核。如果您创建了一个模块软件包,也要同时安装该软件包。
下面到了重启系统的时刻了;请仔细阅读前述步骤所产生的所有警告信息,然后执行 shutdown -r now
要了解 Debian 内核与编译内核的更多信息,清参阅 Debian Linux Kernel Handbook。欲获得关于 kernel-package 的更多信息,有一份很好的文档 /usr/share/doc/kernel-package。


[22] 可以在其他目录解开内核源码并编译自定义内核,但是不需要额外的权限是最简单的方式。
推荐阅读
  • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
    一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • Ubuntu简介Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在” ... [详细]
  • 1998元龙芯学生笔记本将投产(组图)
    图1:图示龙芯笔记本机型外观靓丽,对边角做了圆滑处理以防止划伤磕碰,定位小学生。(国芯科技图片)图2:图示龙芯笔记本机型外观稳重,更适合中学生使用。(国芯科技图 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 如何将CentOS8转换为CentOSStream
    CentOS Stream是一个持续交付的Linux发行版,它在RHEL之前处于领先地位。它将具有滚动发布,即不断进行更改。CentOS将成为一个上游版本,它将具有测试补丁和更新。 ... [详细]
  • 一、安装软件包dig和nslookup需要安装相关软件包。Centos:yuminstallbind-utilsDebian:apt-getupdate ... [详细]
  • FirsttheInlinefunctionalityisanexcellentidea.Itworkswhenworkingondatabases ... [详细]
author-avatar
雨水-_-打湿我的脸_950
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有