LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: 北南南北

如何给内核升级?[原作:小凡兄]

[复制链接]
发表于 2003-3-27 15:52:59 | 显示全部楼层

如果用patch升级呢?

原linux核心2.4.18-14(redhat 8.0)
下载了patch2.4.19和patch2.4.20
不过升级是很多错误,
是不是patch -p0 patch2.4.19(有俩个提示错误)后可以直接
再升级2.4.20呢?
发表于 2003-3-27 23:34:20 | 显示全部楼层
其实经我试验,在任何地方都可以编译的!
我的方法如下:
1 解到 /root 目录
2 进入 /root/linux-2.4.20
3 运行 make mrproper (首次在这个文件夹编译可不用,用了反而会令到编译变慢)
4 make xconfig 选择配置:注意:A 如果有EXT3分区格式,则要将EXT2编入内核,EXT3编成模块(可能也不用)
                             B 在 general setup 里的" APM(Advance Power Manager) BIOS Support "里选"Y",然后在下面的
                               " USE REAL MODE APM BIOS CALL TO POWER OFF "选"Y",这样就能自动关机了.
5 make dep
6 make bzImage
7 make modules
8 make modules_install
9 depmod -a
10 cp /root/linux-2.4.20/System.map /boot/System.map-2.4.20
   cp /root/linux-2.4.20/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20
11 rm -f /boot/System.map
   rm -f /boot/vmlinuz
   ln -s /boot/System.map-2.4.20 System.map
   ln -s /boot/vmlinuz-2.4.20 vmlinuz
12 new-kernel-pkg --mkinitrd --depmod --install 2.4.20
13 修改 /boot/grub/grub.conf 的生成内容
   把    kernel /vmlinuz-2.4.20 ro root=LABEL=/
   改成  kernel /vmlinuz-2.4.20 ro root=/dev/hdaX (X为"/"根目录的盘号..
发表于 2003-3-28 19:22:02 | 显示全部楼层
嗯...我升级时遇到了:
=============================================================
[root@localhost linux-2.5.65]# make xconfig
make -f scripts/Makefile.build obj=scripts
  gcc -Wp,-MD,scripts/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer    -o scripts/fixdep scripts/fixdep.c
In file included from /usr/include/bits/posix1_lim.h:126,
                 from /usr/include/limits.h:144,
                 from /usr/lib/gcc-lib/i386-redhat-linux/3.2.1/include/limits.h:132,
                 from /usr/lib/gcc-lib/i386-redhat-linux/3.2.1/include/syslimits.h:7,
                 from /usr/lib/gcc-lib/i386-redhat-linux/3.2.1/include/limits.h:11,
                 from scripts/fixdep.c:105:
/usr/include/bits/local_lim.h:36:26: linux/limits.h: 没有那个文件或目录
In file included from /usr/include/netinet/in.h:212,
                 from scripts/fixdep.c:107:
/usr/include/bits/socket.h:305:24: asm/socket.h: 没有那个文件或目录
scripts/fixdep.c: In function `use_config':
scripts/fixdep.c:193: `PATH_MAX' undeclared (first use in this function)
scripts/fixdep.c:193: (Each undeclared identifier is reported only once
scripts/fixdep.c:193: for each function it appears in.)
scripts/fixdep.c:193: warning: unused variable `s'
scripts/fixdep.c: In function `parse_dep_file':
scripts/fixdep.c:289: `PATH_MAX' undeclared (first use in this function)
scripts/fixdep.c:289: warning: unused variable `s'
make[1]: *** [scripts/fixdep] Error 1
make: *** [scripts] Error 2
[root@localhost linux-2.5.65]#
===================================================================================
是不是也是用了xconfig的关系呢?
发表于 2003-4-24 23:29:17 | 显示全部楼层
我不能运行下面的命令:
new-kernel-pkg --mkinitrd --moddep --install 2.4.20
说是找不到new-kernel-pkg
请问,new-kernel-pkg在哪个包里啊?
发表于 2003-4-26 09:43:57 | 显示全部楼层
同意,编译和目录无关,

另外,我根本就没有用什么mkinitrd 之类的命令,
也没有生成img文件,只有一个vmlinuz和一个System.amp文件,
启动没有任何问题,

不知道为什么有些兄弟全部安装也不能make xconfig
我没有全部安装也照样可以make xconfig
发表于 2003-4-28 13:11:05 | 显示全部楼层
最初由 jcnet 发表
我只是想知道为什么xconfig就不行呢?
上面忘了附上错误信息了:[root@jcnet linux]# make xconfig
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
if [ -f .need_mrproper ]; then \
rm .need_mrproper; \
make mrproper; \
make preconfig; \
fi
make -C scripts kconfig.tk
make[1]: Entering directory `/usr/src/linux-2.4.19-16mdk/scripts'
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o tkparse.o tkparse.cgcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o tkcond.o tkcond.c
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o tkgen.o tkgen.c
gcc -o tkparse tkparse.o tkcond.o tkgen.o
cat header.tk >> ./kconfig.tk
./tkparse < ../arch/i386/config.in >> kconfig.tk
KVER=`sed -n 's/^.define UTS_RELEASE "\(.*mdk\).*"/\1/p' ../include/linux/version.h`; \
KTYPE=`sed -n 's/^.define __BOOT_KERNEL_\([^ ]*\) 1/\1/p' /boot/kernel.h|tr A-Z a-z`; \
[[ "$KTYPE" = "up" ]] && KTYPE="" ;\
KCONF=/boot/config-$KVER$KTYPE ; \
if [ -f "$KCONF" ]; then \
echo "set defaults \"$KCONF\"" >> kconfig.tk; \
else \
echo "set defaults \"arch/i386/defconfig\"" >> kconfig.tk; \
fi
echo "set ARCH \"i386\"" >> kconfig.tk
cat tail.tk >> kconfig.tk
chmod 755 kconfig.tk
make[1]: Leaving directory `/usr/src/linux-2.4.19-16mdk/scripts'
wish -f scripts/kconfig.tk
......(一堆乱码)
最后是make: *** [xconfig] Error 1


上次也是在这里.. 一位兄弟回帖.
xconfig 编译内核失败前先执行....
在make xconfig之前先
export LC_ALL=en_US
发表于 2003-5-7 23:29:19 | 显示全部楼层
re:
   我不能运行下面的命令:
new-kernel-pkg --mkinitrd --moddep --install 2.4.20
说是找不到new-kernel-pkg
请问,new-kernel-pkg在哪个包里啊?


   是new-kernel-pkg --mkinitrd --depmod --install 2.4.20
发表于 2005-1-21 15:33:18 | 显示全部楼层
我在make bzImage 时在 gcc -  .........  sys.c停下来。
请高手指点
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表