FC5下编译2.4内核

centos 上搭建FC SAN 本文章只是用来备忘。 此次的FC-SAN,采用直连的模式。 target 端: 系统:centos 7.4 内核版本:linux-3.10.0-693.el7 HBA卡:QLogic QLE2562 - PCI-Express Dual Channel 8Gb Fibre Channel HBA wwn:21:00:00:24:ff:90:d0:4c initial端: ... 阅读详情

近日拜读了聂飞的大作<FC5下编译2.4内核>,甚有快感。
以下结合原文和实际编译过程整理成一篇记录
1.准备2.4.20的源代码
$tar jxf linux-2.4.20.tar.bz2
$mv linux-2.4.20 linux
$cd linux
$make mrproper
$make config
$make dep
上面这些步骤都能顺利

通过
$make bzImage
一会就出现了如下的 错误

/usr/linux-2.4.20/include/linux/smp.h:29: error: conflicting types for 'smp_send_reschedule'
/usr/linux-2.4.20/include/asm/smp.h:42: error: previous declaration of 'smp_send_reschedule' was here In file included from /usr/linux-2.4.20/include/linux/unistd.h:9,from init/main.c:17:
/usr/linux-2.4.20/include/asm/unistd.h:375: warning: conflicting types for built-in function '_exit'

这是因为FC5下的GCC版本太新(gcc4.1)
在一个国外网站上也发现了类似的 问题,他们的建议是使用 gcc 2.95或者gcc3.2进行编译(Dave Thompson)
在网上寻找了一会,发现其实FC5下可以安装一个pachage,就可以使用gcc3.2,同时不会影响当前的gcc4.1。
于是就在ftp://rpmfind.net/linux/fedora/core/5/i386/os/Fedora/RPMS/compat-gcc-32-3.2.3-55.fc5.i386.rpm里下载了一个
该包的大致描述为:The compatibility GNU Compiler Collection Fedora Core 5 for i386,马上进行安装
$rpm -ivh compat-gcc-32-3.2.3-55.fc5.i386.rpm
安装完成后在/usr/bin下多了一个gcc32
于是马上修改Makefile,把里面的CC修改为 gcc32,接着
$make bzImage

经过漫长的等待(不长,也就15分钟左右),结果等来的却是:

 {standard input}: Assembler

messages:
{standard input}:936: Error: suffix or operands invalid for `mov'
{standard input}:937: Error: suffix or operands invalid for `mov'
{standard input}:1031: Error: suffix or operands invalid for `mov'
{standard input}:1032: Error: suffix or operands invalid for `mov'
{standard input}:1083: Error: suffix or operands invalid for `mov'
{standard input}:1084: Error: suffix or operands invalid for `mov'
{standard input}:1086: Error: suffix or operands invalid for `mov'
{standard input}:1098: Error: suffix or operands invalid for `mov'

没办法,把 错误信息输入到google里面,发现很多人都遇到过类似的麻烦。
最后的结论:是FC5下的binutils的一个bug,
于是下载相应的补丁
http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
在待编译的内核源码(本例为linux-2.4.20/)的根目录下进行patch操作:
$patch -p1 < linux-2.6-seg-5.patch

patching file arch/i386/kernel/process.c
Hunk #1 succeeded at 693 with fuzz 1 (offset 96 lines).
patching file arch/i386/kernel/vm86.c
Hunk #1 FAILED at 294.
1 out of 1 hunk FAILED -- saving

rejects to file arch/i386/kernel/vm86.c.rej
patching file arch/x86_64/kernel/process.c
Hunk #1 succeeded at 458 with fuzz

2 (offset 67 lines).
Hunk #2 succeeded at 443 with fuzz 2 (offset -14 lines).
Hunk #3 FAILED at 458.
Hunk #4 FAILED at 479.
2 out of 4 hunks FAILED -- saving rejects to file arch/x86_64/kernel/process.c.rej
patching file include/asm-

i386/system.h
Hunk #1 succeeded at 84 (offset 3 lines).
Hunk #2 FAILED at 96.
1 out of 2 hunks FAILED -- saving rejects to

file include/asm-i386/system.h.rej

此处和聂飞兄弟文中所述略有不同,有很多失败的地方,我也不明白是什么原因,先放着。继续
$make bzImage
又是漫长的等待,出现如下错误
{standard input}: Assembler messages:
{standard input}:936: Error: suffix or operands invalid for `mov'
{standard input}:937: Error: suffix or operands invalid for `mov'
{standard input}:1031: Error: suffix or operands invalid for `mov'
{standard input}:1032: Error: suffix or operands invalid for `mov'
make[1]: *** [process.o] 错误 1
make[1]: Leaving directory `/usr/src/linux/arch/i386/kernel'
make: *** [_dir_arch/i386/kernel] 错误 2

是as的问题,再编辑
arch/i386/kernel/process.c
在579行,将
asm volatile("movl %%" #seg ",%0":"=m" (*(int *)&(value)))
改成
asm volatile("mov %%" #seg ",%0":"=m" (value))
执行
$make bzImage
一切正常
$make modules
$make modules_install
出现了如下的信息

cd /lib/modules/2.4.20; /
mkdir -p pcmcia; /
find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia
if [ -r System.map ]; then /sbin/depmod -ae -F System.map  2.4.20; fi
Version requires old depmod, but couldn't run /sbin/depmod.old: No such file or directory
make: *** [_modinst_post] 错误 2

那就创建一个depmod.old的链接
$ln -s /sbin/depmod /sbin/depmod.old
$make modules_install
$mkinitrd -f -v /boot/initrd-2.4.20.img 2.4.20
一切正常,修改相应的

lino或者 grub,重新启动。

huggingface 镜像站推荐 在做 Ai 应用开发或者学习的时候,我们经常需要下载各种模型,而 huggingface 的模型下载速度很慢或者根本就连不上,这里推荐一个 huggingface 的镜像站,速度很快,可以大大提高我们的效率。 阅读详情

相关推荐

最新CobaltStrike4.8/CobaltStrike4.9、CS4.9/CS4.8、 Windows/Linux/Mac版下载

Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网渗透。 Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,

weixin_43167326的博客 7875

编译linux2.6.11内核,出现问题

编译linux2.6.11时,出现如下问题: In file included from include/asm/mpspec.h:5:0,                  from include/asm/smp.h:18,                  from include/linux/smp.h:19,                  from include/li

KidLeaf2的专栏 5054

北斗基带信号MATLAB仿真代码

北斗基带信号MATLAB仿真代码工程文件说明工程函数generareCACode.m:北斗C/A码发生器makeSampledCATable.m:对C/A码进行采样main.m:创建含有数据、载波与C/A码的信号,工程主函数,其中,数据为1,-1,每20ms变一次,一共持续10s验证函数BDS_CaOutput_binary.m:根据输入的卫星号产生北斗基带信号C/A码digitalCA.m:采样C/A码,即数字化C/A码表

linux下载低内核,Re: 关于Linux下高版本内核编译低版本内核的问题

下面是FC5编译2.4.20的例子,FC5有bug,中文命名文件会没有反映,建议用稳定的FC4FC5内核貌似2.6.15还是18忘了。1.准备2.4.20的源代码$tar jxf linux-2.4.20.tar.bz2$mv linux-2.4.20 linux$cd linux$make mrproper$make config$make dep上面这些步骤都能顺利通过$make bzIm...

weixin_31139027的博客 661

打patch失败:Hunk #1 FAILED at 1. What's that mean?

6down votefavorite 1 I get the following error when running make, and I have no idea what it means or what to do about it. Can anyone illuminate me or point me in the right directi

我不会编程,但不是完全不会,我会一点点 2万+

Arch Linux遇到的坑(下)

明天就要开学,终于赶忙又熟悉了新环境的用法,现在已经基本满足了日常需求,再记录一些坑~。 电脑没有声音 因为上次离奇的自己好了,我就没有再管了,但是后来使用chrome的时候还是没有声音,我就用了图形化界面pavucontrol,设置了播放的声道就好了。 截图工具 我对截图工具的需求主要是快捷键截完图之后可以复制到剪贴板中,然后我直接粘贴到markdown文档中,试了几个软件后发现deepin-screen-recorder和flameshot(使用flameshot gui命令截图)比较符..

weixin_51971301的博客 1717

linux高版本模块在低版本运行,Re: 关于Linux下高版本内核编译低版本内核的问题...

下面是FC5编译2.4.20的例子,FC5有bug,中文命名文件会没有反映,建议用稳定的FC4FC5内核貌似2.6.15还是18忘了。1.准备2.4.20的源代码$tar jxf linux-2.4.20.tar.bz2$mv linux-2.4.20 linux$cd linux$make mrproper$make config$make dep上面这些步骤都能顺利通过$make bzIm...

weixin_42303078的博客 941

FC5(Fedora Core5)下编译内核总结

摘要:最近因工作需要,需要对linux内核进行重编译,发现了一些以前没有遇到过的 问题,些出来于 大家一起分享。-------------------------------------声明:       此文为原创,欢迎转载,转载请保留如下信息       作者:聂飞(afreez)北京。中关村        联系方式:afreez@sina.com (欢迎与作者交流)       初次发布

afreez's home 2896

FC5内核编译和安装

FC5的原始内核版本是2.6.15(可以用uname -r来查看),在http://download.fedora.redhat.com/pub/fedora/linux/core/5/source/SRPMS/kernel-2.6.15-1.2054_FC5.src.rpm下载kernel-2.6.15-1.2054_FC5.src的安装包之后,编译内核源代码:#rpm –Uvh kernel-

HoneyPiggy的专栏 871

android在fc8上内核编译笔记

 android内核编译笔记 今天在fedora8上,终于android内核编译成功了,虽然App还没有编译成功。下面是图片  1 准备工作1.1 交叉编译的工具链:地址:http://www.codesourcery.com/gnu_toolchains/arm/download.html文件:ARM EABI相关工具     arm-2008q3-41-ar

实业兴国 实干报国 1678

编译 linux FC4 内核

1.首先现在内核文件我的内核版本是2.6.11-1.1369_FC4命令  uname -r  可以查看版本http://rpm.pbone.net/index.php3/stat/3/srodzaj/2/search/kernel-2.6.11-1.1369_FC4.src.rpm 2.到kernel-2.6.11-1.1369_FC4.src.rpm 文件目录执行 安装  

667

FC5-(linux)内核编译,新手艰辛的历程

<!--google_ad_client = "pub-2132256014190581";/* 160x600, 创建于 09-1-4 */google_ad_slot = "4461398019";google_ad_width = 160;google_ad_height = 600;//-->  用LINUX开发也有段时间了,一直没对内核进行

嵌入式 Linux ARM ADS ADHOC C C++ PLC 单片机 3210

简单编译升级内核2.6.6,激活FC1上的USB硬盘(转)

简单编译升级内核2.6.6,激活FC1上的USB硬盘(转)  作者:陈绪先生  本文首发于www.chinaunix.net之linux版,转载请注明出处。  本机操作系统为FC1(fecora core1),USB硬盘一直不能...

cuemes08808的博客 189

linux 2.6.x内核编译,2.6.x内核编译

开始就是下载最新的内核,我用的FC5内核已经很新了, 是2.6.8,在下载了一个最新的内核2.6.20的。把kernel下载到随便一个地方,tar:之后把压缩包放到/usr/src/redhat/SOURCES/下面,其实这么也可以这样,把内核解压到/usr/src/下面就可以了,然后进入/usr/src/就可以发现已经有2.6.20这个文件夹了,编译内核是在这个文件下面进行的。也就是说你要进...

weixin_36476695的博客 300

Linux2.6下内核模块编译

 Linux2.6下内核模块编译经过几天的努力,自己写的内核模块终于可以在linux2.6下编译并加载道内核中了,现在对这几天的努力做个总结。在旧的版本下(如linux 2.4)linux内核模块的编译只需要有内核的头文件就行了,就可以通过和编译其他程序一样的方法编译filename.o文件,这个.o文件是直接可以加载道内核中的,加载之后就可以用了,然而在2.6下就截然不同了,在li

nmzrl的专栏 1720

Linux 2.6内核编译,内核升级

本文描述了在FC8下升级linux内核2.6.25的详细步骤. 1. 首先从如下网址得到linux-2.6.25.http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz22. 然后在/usr/src下untar这个包.tar -xjfv linux-2.6.25.tar.bz23. 配置内核cd /usr/src/linux

一个爱编程的人专栏 1565

Fedora Core 5 内核模块编译

Fedora Core 5 内核模块编译  到http://download.fedora.redhat.com/pub/fedora/linux/core/5/source/SRPMS/kernel-2.6.15-1.2054_FC5.src.rpm下载kernel-2.6.15-1.2054_FC5.src的安装包。(我的内核版本是这个所以就下载的这个版本,你可以用uname -r

johnping的专栏 638
上一篇: 2.4.20(RH9)下编译2.6内核(最全)
下一篇: 摇滚曲名串烧
answerzy
博客等级 码龄23年 1粉丝 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值