扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
[ ] Root file system on NFS
# 如果前面没选择 kernel level autoconfiguration
# 这个是看不见的。
# 如果您打算做 diskless client 的核心,这个一定要选。
# 但如果做为 dsiskless 的 server,那就不必了。
<*> NFS server support
# 这个是当然要选的,除非您单纯做 NFS client 。
[*] Provide NFSv3 server support
# 第 3 代的 NFS,可以用 TCP (以前用 UDP)。
<*> SMB file system support (to mount Windows shares etc.)
# 就算自己不用 Windows,相信还很多人在用,
# 不妨编为内建。
[*] Use a default NLS (NEW)
Default Remote NLS Option: "cp950" (NEW)
# 如果需要中文支援,不妨改为 cp950
[*] Packet signatures
[*] Proprietary file locking
[*] Clear remove/delete inhibit when needed
[*] Use NFS namespace if available
[*] Use LONG (OS/2) namespace if available
[*] Lowercase DOS filenames
[*] Use Native Language Support
[*] Enable symbolic links and execute flags
# 所有 NCP 需要的,都是 novell 档案系统需要的,
# 如果您确定您不打算和 novell 连接,那就不用理会。
Partition Types --->
[*] Advanced partition selection
[ ] Acorn partition support (NEW)
[ ] Alpha OSF partition support (NEW)
[ ] Amiga partition table support (NEW)
[ ] Atari partition table support (NEW)
[ ] Macintosh partition map support (NEW)
[*] PC BIOS (MSDOS partition tables) support
[ ] BSD disklabel (FreeBSD partition tables) support (NEW)
[ ] Minix subpartition support (NEW)
[ ] Solaris (x86) partition table support (NEW)
[ ] Unixware slices support (NEW)
[ ] SGI partition support (NEW)
[ ] Ultrix partition table support (NEW)
[ ] Sun partition tables support (NEW)
# 上面只有一项是预设选择的,只要其它,您自己看著办吧。
Native Language Support --->
Default NLS Option: "big5-0" (NEW)
# 如果需要中文支援,不妨改为 big5-0
<*> Traditional Chinese charset (Big5) (NEW)
<*> NLS ISO 8859-1 (Latin 1; Western European
Languages) (NEW)
Languages) (NEW)
Maltese, Turkish) (NEW)
with Euro) (NEW)
# 上面这些,除了繁体中文和 ISO 8859-1 编为内建之外,
# 其它的我都选为模组了,也建议您如此。
# 要不然以後读到某些编码的文章,再回来重编可不好玩。
Console drivers --->
[*] VGA text console
[*] Video mode selection support
# 可以让您在核心开机的时候,设定显示解析度。
# 如果您认为没必要的话,第 2 个可以不要。
Frame-buffer support --->
# 这就是传说中的神情 FB 了!
# 据说可以让您在找不到最新 AGP 显示驱动程式的情况下,
# 仍能杀出条血路。不过,我没玩过~~ ^_^
Sound --->
# 强烈建议您改为模组,否则日後用不了 sndconfig 工具。
# 在 Linux 里面设定音效卡可没 windows 那麽容易哦!
[*] Enable legacy FM (NEW)
(388) FM I/O 388, 3C8, 3E0, 3E8
[*] Enable legacy MPU-401 (NEW)
(330) MPU-401 I/O 330, 320, 310, 300 (NEW)
[*] Enable joystick (NEW)
(2) Number of speakers 2, 4, 5, 6 (NEW)
support (NEW)
[*] Yamaha PCI legacy ports support
# 呵:这里的清单太长啦!不全部列出来了。
# 不过我发现,在编译 modules 的时候,会卡在 sound 上面,
# 您或许需要取消下面这些项目才能通过:
# < > ESS Technology Solo1
# [ ] Enable PSS mixer (Beethoven ADSP-16 and other compatibile)
# [ ] Have DSPxxx.LD firmware file
# 其它的,能模组就模组吧。
# 您要是使用 Creative 的原厂音效卡,成功的机会比较高。
# 如果花很多时间都搞不定那些奇怪的型号,我建议您换卡好了,
# 除非是内建的不能换。
USB support --->
<*> Support for USB
# 现在来说, USB 应该是标准了,
# 搞不好,这正是您升级核心的唯一理由呢!
[ ] USB verbose debug messages
--- Miscellaneous USB options
[ ] Preliminary USB device filesystem
--- USB Controllers
<*> UHCI Alternate Driver (JE) support
--- USB Device Class drivers
[ ] USB Mass Storage verbose debug
[ ] Freecom USB/ATAPI Bridge support
[ ] Microtech CompactFlash/SmartMedia reader
--- USB Human Interface Devices (HID)
--- USB Imaging devices
--- USB Multimedia devices
--- USB Network adaptors
--- USB port drivers
USB Serial Converter support --->
--- USB misc drivers
# 原则一样:尽量模组化。
# 越新的核心,支援的 USB 越多,如果您找不到您的型号,那就等下一版本吧。
Kernel hacking --->
[ ] Magic SysRq key
# 破解核心?可不是当骸客啦,而是帮忙改良核心。
# 我绝对没这个能力,没办法啦...
---
Load an Alternate Configuration File
# 可以将您以前保存的设定叫回来。
Save Configuration to an Alternate File
# 可以将您的当前设定保存起来。
如果您使用的核心版本和我这里的不一样,那麽上面的选项和摆放位址或许都不一样,请您自己多加留意。
这里,我把我在 desktop 电脑上安装的 2.4.9 核心设定档放在 这里,您可以下载回去,解压後用 Load Configuration 的办法载入设定,再根据您实际的情形调整即可。注意哦:我的设定是有打开 NTFS 的读取模组,如不需要请取消,要不请参考前面的提示修改 /usr/src/linux/fs/ntfs/unistr.c 这个档,否则您会遇到错误。
当您完成选择之後,按‘Exit’退出,看到“Do you wish to save your new kernel configuration?”,确定您选择‘Yes’。
Tips:前面做了一大堆动作,无非为了一个目的:产生出 /usr/src/linux/.config 这个隐藏档。除了 menuconfig 之外,透过 oldconfig、config、xconfig 也都可以产生(或修改)这个档。甚至,您也可以直接从别的设定当复制过来,例如在原 CD 所带的 source 版本中,您可以在 configs 这个目录里面找到厂商所使用的预设值。当然,您如果会手工设定它的话,直接编辑也行(小心不要改错就是了。)
执行 ls /lib/modules 看看里面有没有一个目录和编译版本相同名字,如果有,用 ‘mv’命令将之改名,如: mv /lib/modules/2.4.9 /lib/modules/2.4.9.bck
然後再为 /lib/modules 、 /boot、和 lilo.conf 做一个备份: cp -af /lib/modules /lib/modules.bak
cp -af /boot /boot.bak
cp -af /etc/lilo.conf /etc/lilo.conf.bak
最後,请按顺序输入: make dep # 建立相依关系
make clean # 清除旧有的设定
make bzImage # 建立核心档 ( arch/i386/boot/bzImage)
make modules # 建立模组 ( drivers, net, fs, kernel, ... etc.)
make modules_install # 将模组安装至系统 (/lib/modules/2.4.9)
(注意:bzImage 的‘i’为大写)
Tips:上面的句子,您可以用一行代替: make dep clean bzImage modules modules_install 1>/dev/null
甚至,您还可以将 make 丢到 background 执行。不过,这通常在您比较确定核心没有问题的时候才使用。我是建议您手工的执行每个 make 命令,检查它的执行结果才进行下一个动作,如果有错误,解决之後才好继续。
在make modules_install 之前,请先将 /lib/modules/ 目录下面的相同版本子目录移除掉,或改名。
这个过程比较需时,荧幕上会迅速的略过许多信息,有兴趣可以看看,如果您不想看,那就将 STOUT 重导到 /dev/null 去,保留 STDERR 就好(不要说您不会做哦,否则请回去补习上一章的内容);或是分别将它们重导到档案去,在除错时参考。
如果有问题,您通常会卡在 modules 和 bzImage 上面,请仔细检查错误信息,然後根据信息进行修改,直到您再没看到错误为止。(有些警告信息是无须理会的,如果您碰到 Error 结尾的句子就要小心了,通常在最後面,如果看不见,那是好消息。)
当您 make bzImage 顺利完成之後,您应该会看到几行信息,告诉您核心的大小: Root device is (3, 6)
Boot sector 512 bytes.
Setup is 4648 bytes.
System is 936 kB
假如您碰到 warning: kernel is too big for standalone boot from floppy 的话,那就要考虑回去将内建的选项改为模组,或尽量减少。否则,您将不能为这个核心制作开机磁片,也不能运用下面提到的核心安装测试程序。
安装核心
不过,到此为止,我们只是将核心编译出来而已,接下来的是要将核心安装到系统上面去。
先将一张空白磁片放进软碟机,然後输入: make bzdisk
这可能需要一点时间,等完成之後,输入: reboot
这样会让机器重新启动,这时候,你要确定您的BIOS里面的开机顺序是以“A”(或 Floppy )为先,和确定磁片留在 Floppy Drive 里面。
我们这样做的目的,是用磁片测试一下新的核心是否工作。我强烈建议您先用磁片测试新核心,除非您编译出来的核心实在塞不进一张磁片中。如果不成功的话,您还可以取出磁片,用原来的核心来启动,然後再重新编译,再来反复测试。
Tips:如果您不能建立磁片开机(例如系统上根本没 floppy drive ),或是做出来的核心太大,塞不进 floppy 中,那您可以执行 make bzlilo 将新核心装到 / 目录去,然後参考後面的 lilo.conf 设定,将 image 指向 /vmlinuz ,并用新的 label (如 linux.new ) 来测试新核心。
然而,我发现,在一些新版的核心中(如 2.4.16),它在执行 make bzlilo 的时候,却是将 vmliuz 写到 /boot 目录中。这可要小心了:以为不小心会将旧的核心内容概掉!然则,请参考後面对手工方法来安装核心。
无论如何,保持一片旧的可开机的磁碟片、以及为 /boot 目录做备份,是一个非常明智的做法。
如果新的核心是没问题,也就是能用新核心的 floppy 开机的话,等我们重新登入系统後,再回到 /usr/src/linux 目录里面,然後执行: make install
这个动作和 make bzdisk一样,只不过将核心安装。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者