BBS水木清华站∶精华区

发信人: Dinosaur.bbs@bbs.ee.nthu.edu.tw (无责任恐龙), 信区: Linux 
标  题: kernel Change.doc 中文翻译 
发信站: ☆清华电机☆ (Mon Jun 17 23:39:39 1996) 
转信站: Interaction!news.sinica!news.cc.nctu!thccx4!news.ee.nthu!star 
 
 简介 
****** 
 
      这份文件包括一些 Linux 下重要 package 的最新版的资讯,希望能帮助初次 
  接触、升级为 kernel 1.3.xx 的使用者能成功无误的使用新的 kernel。希望 (虽 
  然我知道一定会希望落空的...) 以後不会再看到有人问:『为什麽我的 make 不 
  能用了?』『怎麽 ps aux 每次都出错?』..... 这份文件理论上应该是 Linux 
  kernel Documentation/Changes 的翻译,不过能力有限,如果你发现有看不懂的 
  地方,建议还是翻翻原文吧.... :) 
 
 
 目前版本 
********** 
 
- Kernel modules         稳定版: 1.3.57, 测试版: 1.3.69k 
- PPP daemon             稳定版: 2.2.0f 
- Dynamic linker (ld.so) 1.7.14 
- GNU CC                 2.7.2 
- Binutils               2.6.0.14 
- Linux C Library        稳定版:  5.2.18, Beta 测试版:  5.3.12 
- Linux C++ Library      2.7.1.4 
- Termcap                2.0.8 
- Procps                 0.99a 
- Gpm                    1.09 
- SysVinit               2.62 
- Util-linux             2.5 
 
 
 升级须知 
********** 
 
 Network errors 
================ 
 
      许多网路的 script 的初始设定会在启动的时候加个 route 到 localhost 
  (127.0.0.1),但是他们的方法错误。要解决这个问题,从你的网路设定档里面 
  找出 "route add -net 127.0.0.1" 并改成 "route add -net 127.0.0.0" 即 
  可。 
 
      这个问题出现在 Red Hat 以及从其延伸出去的系统 (Ex: Caldera)。如果 
  你正是使用这些系统,修改你的 /etc/sysconfig/network-scripts/ifup-lo, 
  将 "route add-net $(IPADDR)" 这一行改成 "route add -net 127.0.0.0" 即 
  可。 
 
 Booting Changes 
================= 
 
      kernel 1.3.xx 的 boot 程序做了些改善,现在你可以载入较大的 kernel 
  (bzImage),另外也可以直接由 loader 来启动 ramdisk (initrd)。有关 initrd 
  的部份请参阅 Documentation/initrd.txt。如果想编译较大的 kernel,请使用 
  下列的 make 参数:bzImage, bzlilo, bzdisk (各相当於 zImage, zlilo 和 
  zdisk)。如果你想使用这项新功能,你必须升级你的 bootloader。LILO 请升级 
  为 0.19 (lilo.19.tar.gz),loadlin 请升级到 1.6 (lodlin16.tgz)。如果你使 
  用的是罕见的  SysLinux 或是 etherboot,最新版本分别为 1.3 和 2.0。 
 
 C Library 
=========== 
 
      Linux 最新的稳定版 C library 是 5.2.18,如果你从 5.0.9 之前版本升级 
  为这个版本,请一定务必必须阅读 release.libc-5.2.18,因为 make 及一些重 
  要工具可能因升级而无法正常工作。 
 
      目前正在 beta 的版本则是 5.3.12。这版本有些重大改变,一些有□的程式 
  可能会遭遇麻烦 (以前的版本用 free() 来处理不是由 malloc() 传回的指标没有 
  问题,但是新版的 library 就有麻烦了),因此请先仔细阅读 release.libc-5.3.9! 
  新版的 library 更正了 dirent 的 bug -- 如果有 define USE_GNU 的话,将会错将 
  d->reclen 定义为 d->namlen,但是有些 GNU package 却是以错为正,例如 GNU 
  make 3.xx。要更正这项错误你必须 path 後重新 compile。(release.libc-5.3.9 
  中有 make 的 patch 以及何处可取得编译好的 binary) 
 
      另外,libc-5.3.x 有保全的漏洞,而 libc-5.3.12 已经补好这个洞。因此如果 
  你要使用测试版的 library,请记得使用 5.3.12 版。 
 
      如果你遇到以下的错误讯息: 
 
   `fcntl_setlk() called by process 123 with broken flock() emulation' 
 
      你也必须升级到 5.2.18 版。1.3.x 版 kernel 增加了 BSD 形式的 flock 系 
  统呼叫,如果你使用旧版的 library 就会有这个错误讯息。不过这讯息一点影响 
  也没有,因此你可以忽略不管。如果你觉得这个讯息很烦,那就升级你的 library 
  吧。如果你又烦又懒,那直接把 kernel fs/locks.c 里面的 
 
                   printk(KERN_WARNING 
     "fcntl_setlk() called by process %d with broken flock() 
      emulation\n",                        current->pid); 
 
      去掉然後重新 compile。如果你是使用 aout 格式,你可以升级成 libc-4.7.6 
  来解决这个问题。 
 
 Termcap Library 
================= 
 
      目前 Termcap 的版本是 2.0.8。如果你升级成这个版本,请阅读 README, 
 取得有关 tegtent 函式更改的重要讯息。 
 
 Procps Utility 
================ 
 
      kernel 1.3.x 的 /proc 结构已经改了,因此你必须将 proc 升级为 0.99a 版 
  而在最新的 kernel 中,档案结构又再次更改,但是 procps 还没有个正式升级版 
  反应这个改变,所以还是使用 0.99a 吧。你也可以找找流传在外解决让 0.99a 可以 
  和 kernel 1.3.94 相容的 patch。 
 
 Kernel Modules 
================ 
 
      kernel 1.3.x 版几乎已经全部模组化了,也加入了 kerneld。想使用个功能, 
  你必须更新到最新版的 modules。目前最新的稳定版 modules 是 1.3.57 (注), 
  beta 版则到了 1.3.69k。这些都可以在你抓 kernel 的同一地点取得,或是到 
  它的 Homepage:http://www.pi.se/blox/modules/index.html。注意:如果你载入 
  modules 会出现以下的讯息: 
 
    gcc2_compiled, undefined Failed to load module! 
    The symbols fromkernel 1.3.foo don't match 1.3.foo 
 
      那就是该换到 1.3.69 的时候了。会出现这个错误是因为你使用最新版的 
  binutil,因此大部份的人还是停留在 1.3.57 即可。 
 
      另外一点要注意的,你不能同时把 a.out 和 ELF 支援编译成 modules,否则 
  当你为了能够使用 insmod 而用 insmod 来载入 a.out/ELF modules 时会有 
  Catch/22 状况发生 (这是啥啊?)如果你的系统主要是 ELF 而你偶尔会需要用到 
  a.out,你可以把 a.out 支援编译为 modules,否则你最好把它直接放入 kernel 
  之中。如果你还没进入 ELF 的世纪 (不会吧..),在 compiler kernel 时可以 
  直接把 ELF 支援去掉。另外的另外,在开机就会 mount 上来的 partition 的 FS 
  、device driver 记得要 compiler 进 kernel,不能把它弄成 modules。请不要 
  夸张到为了完全模组化而忘了把 ext2fs 和 IDE dirver compiler 进 kernel 里... 
 
 
*注:在 kernel 目录下已经可以看到 2.0.0 版的 modules 了 
 
 PPP driver 
============ 
 
      你的 pppd 必须是 2.2.0 版或更新。最新的稳定版本是 2.2.0f 可以在 
 
ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz 
 
      取得。 
 
 Named pipes (SysVinit) 
======================== 
 
      Linux 处理 named pipes 的方式改变了 (从 SunOS 方式变成 "正确" 的方式) 
  ,这使得某些程式因此而失效了,最值得注意的就是 SysVinit。如果你的 SysVinit 
  是 2.59 或更早的版本,在 shutdown 时虽然可以正常工作,但是你会看到这样 
  的错误讯息:INIT: error reading initrequest 或是这些字不停的在卷动... 
 
      如果你使用 NCSA 的 httpd,你必须把 daemon 的 pre-spawn 设为 0,不过我 
  建议你直接换成 Apache 的 httpd。 
 
      新的 named pipes 方式也让 Hylafax 发生问题,如果你有 Hylafax daemon, 
  它会不断用掉 CPU time 直到系统没有 idle time 为止。要修正这个错误,修改 
  Hylafax 的 port.h,把 
 
        CONFIG_OPENFIFO="O_RDONLY" 
 
      改成 
 
        CONFIG_OPENFIFO="O_RDWR" 
 
      类似的处理方式 (把 named pipe 开启方式从 read only 改成 read/write) 
  可以解决因这个改变引起的问题。 
 
 File Locking (Sendmail) 
========================= 
 
      从 pre2.0.6 (1.99.6) 以後,file locking 方式不能够混用,例如:你不能 
  同时使用 flock 和 fcntl 来锁住档案。请参阅 Documentation/lock.txt 取得更 
  详细资料。这个对较旧版的 sendmail 造成影响 (注)。如果你发现 sendmail 抱怨 
  无法 lock aliases.dir (或其他档案),你必须更新 sendmail 到 8.7.x 版。最 
  新版的 sendmail 可以在 
 
ftp://ftp.cs.berkeley.edu/ucb/src/sendmail/sendmail.8.7.5.tar.gz 
 
      取得。 
 
*注:这个问题在 elm 2.4 pl 25 之中也会发生。 
 
 Uugetty 
========= 
 
      旧版的 uugettys 在新 kernel 里会有问题,请更新之。 
 
ftp://sunsite.unc.edu/pub/Linux/system/Serial/getty_ps-2.0.7h.tar.gz 
 
 Kbd 
===== 
 
      使用非 ASCII 的字元/字型的人,应该升级成: 
 
ftp.funet.fi:/pub/OS/Linux/PEOPLE/Linus/kbd-0.91.tar.gz 
 
*注:这个我也不太了解,不过我没升级好像也没事.... 
 
 Console 
========= 
 
      Linux 的 console type (虽然知道是什麽东西可是不会翻) 改变了。如果 
  你的版本太旧了,使用上发生问题 (像说 joe 不能用啦...),该是升级 termcap 
  的时候了。要修正这个问题,把 linux 加入 /etc/termcap 之中,或是到 
 
        http://www.ccil.org/~esr/ncurses.html 
 
  逛逛。另外你也需要更新 terminfo。以 root 来做下面的动作: 
 
        ln -s /usr/lib/terminfo/l/linux /usr/lib/terminfo/c/console 
 
      当然,最好的解决办法,就是去抓最新的 termcap 回来安装: 
 
        ftp://sunsite.unc.edu/pub/Linux/GCC/termcap-2.0.8.tar.gz 
 
      Also, the console driver is now responsible for keeping track of 
  correspondence between character codes and glyph bitmaps.  If you 
  encounter problems, try `loadunimap def' to get back the default 
  correspondence. (不太会翻,大概是说如果你的萤幕本来应该显示文字的确 
  变成一堆乱码的话,可以用 loadunimap def 来解决) 
 
 Hdparm 
======== 
 
      Hdparm 为了利用到新版 kernel 的新功能而作了更新,最新版可以在: 
 
ftp://sunsite.unc.edu/pub/Linux/kernel/patches/diskdrives/hdparm-2.7.tar.gz 
 
      抓到。(目前已经有看到 2.9 版了) 
 
IP Accounting 
============= 
 
   All IP packets coming in or going out via one of the network 
interfaces are now passing the accounting chain.  So, packets being 
forwarded are passing this chain twice.  Since pre2.0.7 (aka 1.99.7), 
accounting rules can be defined so that they will only match in one 
direction (either incoming or outgoing). 
 
   There also exists a possibility to match on device names and/or 
device addresses, so that only packets coming in/going out via that 
device (network interface) match with a rule.  You'll need to get 
ipfwadm from ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.1.tar.gz to 
use this. 
 
IP Firewalls 
============ 
 
   The IP firewall code has been changed drastically during 1.3.x. 
There are now 3 categories of firewall rules: one for incoming packets, 
one for outgoing packets, and one for packets being forwarded.  There 
also exists a possibility to match on device names and/or device 
addresses, so that only packets coming in/going out via that device 
(network interface) match with a rule.  This is especially useful to 
prevent spoofing.  You'll need to get 
ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.1.tar.gz to use this. 
 
IP Masquerading 
=============== 
 
   IP masquerading is now part of the standard kernel.  However, you 
always need to load separate modules (ip_masq_ftp.o and/or 
ip_masq_irc.o) if you are going to use FTP or IRC in combination with 
masquerading.  You'll need to get 
ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.1.tar.gz to use this. 
 
 
(不清楚、不了解、不会用,还是不要乱翻... 不过看起来都跟 ipfwadm-2.1.tar.gz 
 有关...) 
 
 ISDN support 
============== 
 
      新版的 kernel 支援 ISDN,要使用 ISDN 你必须有: 
 
ftp://ftp.franken.de/pub/isdn4linux/isdn4k-utils-1.3.97.tar.gz 
 
 Term is broken 
================ 
 
      Term (一个功能类似 slirp 的东西) 在 kernel 1.3.60 以後就无法使用 
  了,偏偏作者现在正在渡假中,因此没有解决的方法。我建议你学著改用 slirp。 
 
 Networking 
============ 
 
      /proc/net 里有些栏位在新 kernel 里改变了,你必须升级你的 net-tools。 
  目前最新的稳定版是 net-tools-1.2.0.tar.gz,而最新的 beta 则是 
  net-tools-1.32-alpha.tar.gz。如果你要升级,或许升级为最新的 beta 版会比 
  较好。 
 
 Xntpd 
======= 
 
      旧版的 Xntpd 和新版的 kernel 合不来,请升级为 xntp3.5f.tar.Z 
 
 Sound driver 
============== 
 
      1.3.x 版 kernel 里的 sound driver 会让 vplay 无法使用。要解决这个 
  问题请抓新版的 sndkit: 
 
        ftp://ftp.best.com/pub/front/tasd/snd-util-3.5.tar.gz 
 
      有些使用者回报说许多音效工具程式 (Ex: cdd2wav-sbpcd) 必须重新 compile 
  才能在新版的 kernel 下使用。 
 
 Tcsh 
====== 
 
      如果你的 tcsh 在新的 kernel 下举止怪异,请从 
 
        ftp://anise.ee.cornell.edu/pub/tcsh 
 
      抓新版的 tsch source,并修改 config_f.h 加入一行:#define SYSMALLOC 
  你可以在 
 
        ftp://sunsite.unc.edu/pub/Linux/system/Shells/ 
 
      抓到新版的 binary,这应该会更正这个问题。 
 
 Make 
====== 
 
      如果更新之後 make 却罢工了,请仔细阅读你更新的 libc 的 release note。 
  这并不是 kernel 的错,不过很多却误以为是。当你更新 libc 到 5.3.9 时你 
  也要更新 make 它才会正常工作。升级 libc 也可能让 xterm 罢工,如果这不幸 
  是个事实,请重新 compile xterm。 
 
 Loop device 
============= 
 
      1.3.x 的 kernel 有个 loop device,让你可以把一个档案 mount 成一个 
  file system,然後你可以作些有趣的事情,像是加密的档案系统(encrypted file 
  systems)... 如果你想使用这个功能,你必须更新你的 mount: 
 
        ftp://ftp.win.tue.nl/pub/linux/util/mount-2.5X.tar.gz 
 
      加密的档案系统可以抓: 
 
        ftp.funet.fi:/pub/OS/Linux/BETA/loop/des.1.tar.gz 
 
 Multiple device 
================= 
 
      新的 kernel 有支援 Multiple device (让你可以把好几个 partition 结合成 
  一个 logic device)。要使用这个功能请抓: 
 
        ftp://sweet-smoke.ufr-info-p7.ibp.fr/pub/Linux/md034.tar.gz 
 
 Arp 
===== 
 
      Arp daemon 也加入新的 kernel 之中,请到: 
 
        http://www.loran.com/~layes/arpd/index.html 
 
      取得更多资讯以及 arpd。 
 
 Quota 
======= 
 
      新的 kernel 之中也支援 quota。请抓: 
 
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz 
 
      然後把里面的 mntent.h 盖过 /usr/include/mntent.h,如此就可以快乐的 
  compile 出 quota 来啦。 
 
 Process Accounting 
==================== 
 
      Process accounting 的功能也包含在新版的 kernel 之中。要使用这个 
  功能请抓: 
 
ftp://iguana.hut.fi/pub/linux/Kernel/process_accounting/acct_1.3.73.tar.gz 
 
 Bdflush 
========= 
 
      bdflush 功能已经加入新 kernel 之中,你不需要再去 patch 就可以 
  直接拥有这个功能。 
 
 AMP 
===== 
 
      新的 kernel 之中直接支援 AMP (Advanced Power Management)。AMP 主要 
  使用在膝上型电脑,让你监视目前电池的使用状况,也可以帮你节省电池的电力 
  。要发挥这项功能请抓: 
 
ftp://tsx-11.mit.edu/pub/linux/packages/laptops/apm/apmd-2.4.tar.gz 
 
 iBCS and DOSEMU 
================= 
 
      要支援 1.3.x 的 iBCS,请抓: 
 
ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2/ibcs-1.3-960404-ALPHA.tar.gz 
 
      至於可在新 kernel 中使用的 DOSEMU,请抓: 
 
ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/Development/dosemu-0.63.1.19.tgz 
 
      记得照 README.newkernel 里面所说的更新你的 /usr/include/sys/vm86.h, 
  否则将无法 compile。 
 
 Mtools and Fdutils 
==================== 
 
      在 1.3.x kernel 之中,软碟的控制程序已经改变,但是为了向前相容,在 
  2.0 之前的 kernel 旧的程序还是可用,不过会显示警告讯息,但是到 2.1.x 时 
  旧程序将完全消失。 
 
      为了避免问题 (或说是免除那恼人的讯息),你必须重新编译所有会用到软碟 
  控制的程式,像是 mtool 及 fdutil。请抓: 
 
ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/mtools-3.0.src.tar.gz 
ftp://sunsite.unc.edu/pub/Linux/system/Misc/fdutils-4.3.src.tar.gz 
 
      在将来,fdformat 将会完全消失,所以请仅早学会 superformat 的使用方法。 
 
 
 如何得之目前程式的版本 
************************ 
 
GNU CC: gcc -v and gcc --version 
PPP: pppd -h (wrong but it show the version) 
Libc: ls -l /lib/libc.so.5 
Libc++: ls -l /usr/lib/libg++.so 
Binutils: ld -v 
ldd: ldd -v and ldd -V 
termcap: ls -l /lib/libtermcap.so.* 
modules: insmod -V 
procps: ps --version 
 
 
 该到哪里去抓这些更新档案 
************************** 
 
      请爱用 CCCA ftp 及 ARCHIE..... 
 
 
 其他 
****** 
 
      以上提到的这些档案在台湾的 ftp server 上面都找得到,请自行用 archie 
  搜寻。珍惜有限的频宽,尽量避免出国..... 
 
      如果你的系统是 Red Hat,大部份的更新都有 RPM 可用。安装之前先到 
  Red Hat 的 mirror site 看看。注意,你可能要用 -force 参数才能完成这些 
  升级。 
 
      如果你发现有软体在 kernel 1.3.x 上面无法正常工作的,或是那些 kernel 
  的功能需要另外抓别的套件来使用的,请 mail 给 Chris Ricker 
  (gt1355b@prism.gatech.edu)。 
 
      如果你发现翻译上有任何误谬,请 mail 给 Dinosaur.bbs@bbs.ee.nthu.edu.tw 
 
 後记 
****** 
 
      写完之後回头想想,会看 Documentation 的人根本不需要我这篇文章,真正 
  希望他会看的人,却一定是先 post "为什麽 xxx 不能用了",那我这篇文章不就 
  一点意义也没有了.... 对於现在 bbs 上面这种问问题不先看版的风气越来越受不 
  了了,希望这不会是我最後一篇 post.... 
 
 
 

BBS水木清华站∶精华区