我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux内核重编译问题的解决办法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux内核重编译问题的解决办法

本篇文章为大家展示了Linux内核重编译问题的解决办法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

内核重编译对很多Linux爱好者来说是一个不小的挑战。笔者认为,很多Linux用户对内核通常有一种误解,他们认为普通用户是不能调整内核的。其实,就实际情况而言,这种认识是不全面的。应该说,内核重编译是具有一定深度和复杂性的,同时也是易失败的配置工作。下面我把我的经历与大家分享,让你们少走一些弯路。

如果大家留意那些比较权威的Linux参考工具书的话,就会发现很多原版书籍都把内核重编译作为一个很重要的章节进行介绍。本文将要向读者介绍的并不是如何去一步步的对Linux内核进行重编译,而是收集整理了几个在Linux内核重编译中最常见的故障及其解决方法,如果您在编译内核过程中遇到了类似的故障,那么本文将会对您有所帮助。

Linux内核重编译常见故障介绍

在介绍Linux内核重编译常见故障前,假设我们已经按照参考工具书上的步骤对Linux内核进行了相应的配置。

Linux内核重编译通常包括了许多步骤。如果"幸运"的话,Linux内核重编译是可以一次性编译成功的。如果在编译完成后,启动计算机或者内核的时候系统有错误信息的提示,那么最有可能出现的是以下5个:1.内核不能启动;2.异常I/O错误;3.内核反映缓慢;4.内核不能正确编译;5.系统重复启动。

故障分析及其解决方法

内核不能启动

当我们重新创建Linux内核时,主要是选择用户需要或不需要在系统中使用的设备及服务。从2.0版内核开始,Linux引入了一个全新的设计特征到内核中并提供了折中方案:组件可以动态的、随时的调入和调出内核。例如我们在修改/etc/lilo.conf之后都要重新启动系统,如果你的内核不能启动,并且在屏幕上看到了下面的信息:

Warning: unable to open an initial console Kernel panic:

no init found. Try passing init= option to kernel

这个错误***的可能就是我们没有正确的给/etc/lilo.conf 中的"root="提供参数。例如,在一个Linux系统中有root=dev/hdc5这样的配置方式,那么这是错误的,正确的应该是root=/dev/hdc5,不要小看只是多了一个 "/",这是给root提供的重要参数。没有"/"则Linux内核无法确认root到底该从哪里启动。很多朋友往往忽略了这个小细节而造成内核引导失败。下面给出/etc/lilo.conf的一个正确的配置清单,仅供参考。

/etc/lilo.conf示例

―――――――――――

boot=/dev/hdc5

map=/boot/map

prompt

timeout=50

image=/boot/vmlinuz-2.2.2-1

label=Linux

root=/dev/hdc5

inirtd=/boot/initrd-2.2.2-1.img

read-only

other=/dev/hda1

label=dos

table=/dev/hda

异常I/O错误

如果您重新创建了一个Linux内核,并且能正确启动,但在使用新内核过程中,系统经常出现崩溃、死机等异常现象。那么很可能是I/O出现了问题。I/O异常除了使得系统频繁出现莫名其妙的故障之外,更重要的是会使Linux内核降级,导致整个系统系能严重下降。

究其异常I/O错误的原因,是用户在编译Linux内核结束的时候没有执行"make dep clean"这一步骤。一般来说,我们在保存Kernel configuration选项中的"menuconfig"或"xconfig"时并不包含"make dep clean"这个步骤。因此,这里建议用户在保存配置后的Kernel configuration选项时注意确认是否已经进行了"make dep clean"这一步。

内核反映缓慢

目前很多计算机都采用了高速的CPU和大容量内存。可有时候在创建新内核后系统显得比没有配置内核之前的反映速度慢得多。出现这个情况,很可能是用户在修改Kernel configuration options的时候,在"menuconfig"或者"xconfig"选择了过多的选项。这样不仅使得计算机在编译新内核的时候要花费更多的时间,也使得系统在工作的时候占用了太多的内存。由于很多内存都是被无用的选项所占用,这就导致了系统运行的缓慢。解决方法很简单,尽量选择我们需要的选项,那些无用的,太过于复杂的选项就无需去修改了,有时候使用默认的参数效果会显得更好。

内核不能编译

当用户输入"make bzImage modules"并按下输入键的时候,出现了内核不能编译或者其他的奇怪现象。此时***的方法就是重新启动系统,然后使用"rpm -e"命令移除Kernel configuration tools这个内核配置工具。接着再重新安装这个工具(请使用"rpm -I"或"rpm -Uvh"命令来安装),如果能正确安装,那么问题就简单多了,此时再重新配置内核和再编译应该就能成功。如果还是不能编译内核,请检查硬件设备是不是有问题。

上述内容就是Linux内核重编译问题的解决办法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux内核重编译问题的解决办法

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

下载Word文档

猜你喜欢

Linux内核重编译问题的解决办法

本篇文章为大家展示了Linux内核重编译问题的解决办法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。内核重编译对很多Linux爱好者来说是一个不小的挑战。笔者认为,很多Linux用户对内核通常有一种
2023-06-16

如何解决Linux内核编译失败的问题

本篇内容主要讲解“如何解决Linux内核编译失败的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决Linux内核编译失败的问题”吧!内核常识我们先要了解一点.一个内核有哪些东西.比如我
2023-06-12

linux编译内核的方法

1、下载需要的内核版本 2、上传到操作系统 3、解压到/usr/src目录下 比如:3.19内核tar -xvf linux-3.19.tar.xz -C /usr/src4、创建连接cd /usr/src ln -sv /usr/src/
2022-06-03

linux内核编译常出现的问题有哪些

这篇文章主要介绍了linux内核编译常出现的问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、若编译内核时总是出现同一个错误,如下: 在make modules_i
2023-06-13

linux内核的安全问题如何解决

要解决Linux内核的安全问题,可以采取以下措施:1. 及时更新:及时更新Linux内核版本,以获取最新的安全补丁和修复程序。2. 强化访问控制:确保只有授权的用户和进程能够访问内核。使用强密码和多因素身份验证来保护内核。3. 配置安全策略
2023-10-18

linux内核编译安装的方法是什么

Linux内核编译安装的方法如下:1. 下载内核源代码:在Linux官方网站(https://www.kernel.org/)或其他来源下载最新版本的内核源代码。2. 解压源代码:使用tar命令解压下载的内核源代码压缩包。3. 配置内核选项
2023-09-25

eclipse无法解析的编译问题怎么解决

要解决Eclipse无法解析的编译问题,您可以尝试以下几个步骤:1. 清理项目:在Eclipse中,选择“Project”菜单,然后选择“Clean”选项。在弹出的对话框中选择要清理的项目,然后点击“OK”按钮。这将清理项目的编译缓存,有时
2023-09-14

java无法解析的编译问题怎么解决

当Java编译器无法解析编译问题时,可以尝试以下几种方法来解决:1. 检查语法错误:首先检查代码中是否存在语法错误,如拼写错误、缺少分号等。编译器通常会给出错误提示,可以根据提示进行修正。2. 导入缺失的类:如果代码中使用了某个类,但编译器
2023-08-28

Linux编译LVGL仿真器出错问题解决

目录一、错误现象二、错误分析三、错误解决一、错误现象 我在虚拟机下使用 LVGL 仿真器,编译仿真器源代码时发生报错 cc: error: unrecognized command line option ‘-Wshift-negative
2022-06-04

解析Linux内核与设备树的编译和烧写

目录一、准备材料二、下载Linux内核文件三、编译四、通过TFTp烧写zImage与.dtb文件五、常见问题一、准备材料 可以根据自己的需要准备相应材料: 开发环境:VMware 操作系统:ubuntu 开发版:湃兔i2S-6UB 二、下载
2022-06-03

linux编译kernel和svn版本冲突的解决办法

现象 系统本来可以正常编译linux系统kernel,但在安装svn后,kernel编译出错。CHK include/linux/version.hCHK include/generated/utsrelease.h make[1]
2022-06-03

ubuntu中如何解决php无法编译问题

小编给大家分享一下ubuntu中如何解决php无法编译问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ubuntu的php无法编译的解决办法:1、执行“apt-
2023-06-22

C++中编译优化问题和解决方法的详解

C++中编译优化问题和解决方法的详解摘要:C++编译器优化是提高程序性能的重要手段。然而,在实际开发中,我们经常会遇到一些与编译优化相关的问题,比如编译器错误优化、代码性能下降等。本文将针对这些问题进行详细的解析,并提供相应的解决方法,以期
2023-10-22

webpack打包、编译、热更新Node内存不足问题解决

Webpack是现在主流的功能强大的模块化打包工具,在使用Webpack时,如果不注意性能优化,有非常大的可能会产生性能问题,下面这篇文章主要给大家介绍了关于webpack打包、编译、热更新Node内存不足问题解决的相关资料,需要的朋友可以参考下
2023-03-19

C++中编译优化问题及解决方法概述

C++中编译优化问题及解决方法概述引言:编译优化是在编译过程中对代码进行优化的一种技术。优化可以提高程序的执行效率、减少内存占用以及降低功耗。然而,虽然编译器在编译过程中会尽力优化代码,但在某些特定情况下,编译器可能无法进行有效的优化,从而
2023-10-22

编程热搜

目录