linux内核编译常常出现的问题的解决办法
1、若编译【ruò biān yì】内核时【nèi hé shí】🥣总是出【zǒng shì chū】🦉现同一个错误【cuò wù】👐,如下:
在【zài】🚸make modules_install时最后几行弹出错误【chū cuò wù】⛏:
if [ -r System.map -a -x /sbin/depmod ]; then /sbin/depmod -ae -F System.map 2.6.12.2; fi
/bin/sh: line 1: 3357 已杀死🥃 /sbin/depmod -ae -F System.map 2.6 .12.2
make: *** [_modinst_post] 错误【cuò wù】👐 137
如果【rú guǒ】👁继续make install,重启【chóng qǐ】🔑,是进不🐋去刚刚【qù gāng gāng】编译安装的【de】🚷那个内核的【de】🚷,显示内核错误【hé cuò wù】👐。
分析:如果【rú guǒ】👁 System.map可读【kě dú】🚈 并且【bìng qiě】 /sbin/depmod可执行;那么就执行/sbin/depmod -ae -F System.map 2.6.20;结束📍
depmod(depend module)
功能说明🗝:分析可载入模块的【de】🕢相依性。
语 法😉:depmod [-adeisvV][-m <文件【wén jiàn】🙏>][--help][模块名【mó kuài míng】称]
补充说明🗝:depmod可检测模块的【de】🕢相依性,供modprobe在安装【zài ān zhuāng】🌾模块时使用🎎。
参【cān】 数🌑:
-a或【huò】👅--all 分析所有可用🚍的【de】🚷模块。
-d或【huò】👅debug 执行排【zhí háng pái】🦐错模式【cuò mó shì】⤵。
-e 输出无🍝法参【cān】照🚸的【de】🚷符号【fú hào】。
-i 不检查【jiǎn chá】😀符号【fú hào】表的【de】🚷版本。
-m<文件【wén jiàn】🙏>或【huò】👅system-map<文件【wén jiàn】🙏> 使用指🍵定的【de】符🍎号表文🆑件🔩。
-s或【huò】👅--system-log 在【zài】🚸系统【xì tǒng】🏷记录中【zhōng】🎋记录错【jì lù cuò】🐌误【wù】👐。
-v或【huò】👅--verbose 执行时显示详细的【de】🚷信息【xìn xī】🗒。
-V或【huò】👅--version 显示版本信息【xìn xī】🗒。
--help 显示帮🔏助。
解决方【jiě jué fāng】法😉:make module_install之前你是否关【shì fǒu guān】闭了【bì le】🏡selinux,
该问题是selinux阻止写/lib/modules/ <version> 目录
2、若重启【ruò chóng qǐ】🔑系统【xì tǒng】🏷后显示:
Warning--SElinux relabel is required
Disabling security enforcement
Relabeling could take a very long time
depending on file system size
可以更😰改grub.conf 将【jiāng】💱selinux=0添加到【tiān jiā dào】如下位置
kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ selinux=0 rhgb quiet
或【huò】👅者更改/etc/selinux/config,将【jiāng】💱SELINUX=Disabled,存盘就【cún pán jiù】可以把 selinux 关闭了【bì le】🏡
3、修改selinux
在【zài】🚸新版本【xīn bǎn běn】中【zhōng】🎋的【de】🚷Red Hat 和🍭 Fedora 上,修改档【xiū gǎi dàng】🔍案🌞/etc/sysconfig/selinux:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
把 SELINUX设定为disable, 下次启动【dòng】🍦系统【xì tǒng】🏷后将【hòu jiāng】💱会停止【tíng zhǐ】🌱SElinux.
Linux核心参【hé xīn cān】数🍦(Kernel Parameter)
或【huò】者可🥋以在【zài】核💠心参【cān】数🍦后加上: selinux=0 (停止【tíng zhǐ】🌱) 或【huò】👅 selinux=1 (开启)参【cān】数🍦
档案🌞/boot/grub/menu.lst
title Fedora Core (2.6.18-1.2798.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet selinux=0
initrd /initrd-2.6.18-1.2798.fc6.img
检查【jiǎn chá】😀SELinux现时况🥄态【tài】
要知到你现在【nǐ xiàn zài】🚸是否使用🎎 SELinux:
# getenforce
disabled
4、重启【chóng qǐ】🔑后若出现Kernel panic:VFS: Unable to mount root fs on unknown-block(0,0)
从错误【cóng cuò wù】👐信息【xìn xī】上🥙看,是没有♑识别到硬盘。看来【kàn lái】,我机器上的【de】🚷SATA硬盘必须在内【xū zài nèi】🐨核中做【hé zhōng zuò】🛐相应的【de】🚷配置才【pèi zhì cái】能识别。
仔细阅读了内核配置【hé pèi zhì】时的【de】🚷帮助信息【xìn xī】🗒,得知内🥛核支持🍎两种SATA驱动【dòng】程🧢序⚡:一种是【zhǒng shì】🎊libata,在【zài】🚸SCSI子【zǐ】系统【xì tǒng】🏷中【zhōng】🎋,支持最👐新的【de】🥣SATA控制器【kòng zhì qì】;还有一种是【zhǒng shì】🎊 IDE驱动【dòng】程🧢序⚡中【zhōng】🎋的【de】🚷SATA,主要是【zhǔ yào shì】支持第一代的【de】🚷SATA控制器【kòng zhì qì】。我的【wǒ de】机🍩器应该是比较【shì bǐ jiào】🛳新的【de】🥣,所以先按libata的【de】🚷方式来配置试【pèi zhì shì】试。
先看看我的【wǒ de】🤞SATA控制器【kòng zhì qì】是什么🏽类型的【lèi xíng de】🚷?运行lspci,输出如🗣下:
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Con troller (rev 01)
就是【jiù shì】SATA控制器【kòng zhì qì】的【de】🚷类型。
解决方【jiě jué fāng】法😉:在【zài】🚸make menuconfig中【zhōng】🎋设置以【shè zhì yǐ】下选项:
Device Driver
|---->SCSI device support
|---->SCSI disk support
|----->verbose SCSI error reporting (不是必【bú shì bì】🐴须的【de】🚷,但可方🚓便问题定位)
|----->SCSI low-level drivers
|---->Serial ATA (SATA) support
|---->intel PIIX/ICH SATA support
<*> RAM disk support 在【zài】🚸 device drivers -> Block devices中【zhōng】🎋
<*> Initial RAM disk (initrd) support 在【zài】🚸 device drivers -> Block devices中【zhōng】🎋
 
关键词🐈:linux
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0