Roads to Linux - 2.0.30カーネルへのバージョンアップ
■カーネルのバージョンアップ
Sambaが入ってファイルのやり取りが楽に行えるようになったので、ここらで一気にカーネルを2.0.0から2.0.30まで上げ、同時にIPマスカレードやサウンドカードも使用可能としてしまう事にします。
linux-2.0.30.tar.gzを入手し、/usr/srcディレクトリで展開します。
tar zxvf linux-2.0.30.tar.gz
これでファイルは/usr/src/linuxへ展開されます。
次に/usr/src/linuxへ移動し、make menuconfigでカーネル設定を行います。変更項目は以下の通り(sambaインストール前に既に変更されている項目はそのままの値が残っているので、ここでは変更する必要がないため含まれていません)。
Code maturity level options
[Y] Prompt for development and/or incomplete code/drivers
General setup
[Y] Kernel support for JAVA binaries
Networking options
[Y] Network firewalls
[Y] IP: forwarding/gatewaying
[Y] IP: firewalling
[Y] IP: masquerading
[Y] IP: always defragment
[Y] IP: accountingSound
[M] Sound card support
[Y] Support for Crystal CS4232 based (PnP) cards
設定変更後、makeを行います。
make dep ; make clean
make zlilo
make modules ; make modules_install
make終了後、再起動し、rootで再度ログインします。
■問題発生
ここで問題が発生しました。再インストール前のシステムでも起こった事があるのですが、起動時にSCSIのチェックでエラーのループが発生してLinuxが立ち上がらなくなってしまったのです。かつてはpatchで2.0.28までバージョンアップして問題が起き、試行錯誤の末一気に2.0.28フルセットに入れ替えて問題が消えたはずなので、今回はそれを意識してパッチでなくフルセットを使用したのですが、どうやら問題は別のところにあるようです。
この事態を想定してliloで元のカーネルで起動できるようにしていなかったので、やむを得ず、Linuxインストール時に作成しておいた起動ディスクで起動し、/vmlinuz.oldで起動できるよう/etc/lilo.confを修正します。また、このカーネルを/vmlinuz.2.0.0としてコピーしておき、次回のコンパイル後もこのカーネルで起動できるようにしておきます。/etc/lilo.confの編集が終わったら、liloを実行して編集を反映させます。
再び再起動して2.0.0カーネルで起動します。起動ディスクの環境と違い、こちらのカーネルならNICがサポートされているので、telnetで作業が出来ます。
さて、まず/lib/modules/2.0.30を見てみると、modules.depが作成されていない事がわかります。このために、/lib/modules/2.0.0の不要な古いモジュールとバッティングが起きているのではないかと考えました。調べてみると、/etc/rc.d/rc.modulesの編集を忘れていたので、kerneldが実行され、他のmodprobeが実行されないように修正します。ひとまずこれで再起動してみます。
しかし状況は変わりませんでした。タイミング的にrcファイルが実行され始める前の問題のようなので、とにかくもう一度コンパイルし直してみる事にしました。その際、/lib/modulesの中を全部消して、/usr/src/linuxにも上書きするんではなくて中を完全に消してから展開する事にします。/lib/modulesを消しても、2.0.0カーネルはモジュールがなくても起動できるはずなので、うまくいかなかった時でも多分問題ないでしょう。
cd /lib/modules
rm -r 2.0.0
rm -r 2.0.30
cd /usr/src/linux
rm -r *
rm .*
cd ..
tar zxvf linux-2.0.30.tar.gz
cd linux
今回はtelnetで操作する事にして、menuconfigは使用しないでやってみる事にします。
make config
Code maturity level options
[y] Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)
Loadable module support
[Y] Enable loadable module support (CONFIG_MODULES)
[N] Set version information on all symbols for modules (CONFIG_MODVERSIONS)
[y] Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD)General setup
[N] Kernel math emulation (CONFIG_MATH_EMULATION)
[Y] Networking support (CONFIG_NET)
[N] Limit memory to low 16MB (CONFIG_MAX_16M)
[n] PCI bios support (CONFIG_PCI)
[Y] System V IPC (CONFIG_SYSVIPC)
[Y] Kernel support for a.out binaries (CONFIG_BINFMT_AOUT)
[Y] Kernel support for ELF binaries (CONFIG_BINFMT_ELF)
[y] Kernel support for JAVA binaries (CONFIG_BINFMT_JAVA)
[Y] Compile kernel as ELF - if your GCC is ELF-GCC (CONFIG_KERNEL_ELF)
[486] Processor type (386, 486, Pentium, PPro)Floppy, IDE, and other block devices
[Y] Normal floppy disk support (CONFIG_BLK_DEV_FD)
[Y] Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE)
[y] Use old disk-only driver on primary interface (CONFIG_BLK_DEV_HD_IDE)
[n] Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD)
[N] Include IDE/ATAPI TAPE support (CONFIG_BLK_DEV_IDETAPE)
[N] Support removable IDE interfaces (PCMCIA) (CONFIG_BLK_DEV_IDE_PCMCIA)
[n] CMD640 chipset bugfix/support (CONFIG_BLK_DEV_CMD640)
[N] Other IDE chipset support (CONFIG_IDE_CHIPSETS)
[N] Loopback device support (CONFIG_BLK_DEV_LOOP)
[N] Multiple devices driver support (CONFIG_BLK_DEV_MD)
[N] RAM disk support (CONFIG_BLK_DEV_RAM)
[N] XT harddisk support (CONFIG_BLK_DEV_XD)Networking options
[y] Network firewalls (CONFIG_FIREWALL)
[N] Network aliasing (CONFIG_NET_ALIAS)
[Y] TCP/IP networking (CONFIG_INET)
[y] IP: forwarding/gatewaying (CONFIG_IP_FORWARD)
[N] IP: multicasting (CONFIG_IP_MULTICAST)
[N] IP: syn cookies (CONFIG_SYN_COOKIES)
[N] IP: rst cookies (CONFIG_RST_COOKIES)
[y] IP: firewalling (CONFIG_IP_FIREWALL)
[N] IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE)
[y] IP: masquerading (CONFIG_IP_MASQUERADE)
[N] IP: ipautofw masq support (CONFIG_IP_MASQUERADE_IPAUTOFW)
[N] IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP)
[N] IP: transparent proxy support (EXPERIMENTAL) (CONFIG_IP_TRANSPARENT_PROXY)
[y] IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG)
[y] IP: accounting (CONFIG_IP_ACCT)
[N] IP: optimize as router not host (CONFIG_IP_ROUTER)
[N] IP: tunneling (CONFIG_NET_IPIP)
[N] IP: PC/TCP compatibility mode (CONFIG_INET_PCTCP)
[N] IP: Reverse ARP (CONFIG_INET_RARP)
[N] IP: Disable Path MTU Discovery (normally enabled) (CONFIG_NO_PATH_MTU_DISCOVERY)
[Y] IP: Drop source routed frames (CONFIG_IP_NOSR)
[Y] IP: Allow large windows (not recommended if <16Mb of memory) (CONFIG_SKB_LARGE)
[N] The IPX protocol (CONFIG_IPX)
[N] Appletalk DDP (CONFIG_ATALK)
[N] Amateur Radio AX.25 Level 2 (CONFIG_AX25)
[N] Bridging (EXPERIMENTAL) (CONFIG_BRIDGE)
[N] Kernel/User network link driver (CONFIG_NETLINK)SCSI support
[y] SCSI support (CONFIG_SCSI)
[y] SCSI disk support (CONFIG_BLK_DEV_SD)
[N] SCSI tape support (CONFIG_CHR_DEV_ST)
[y] SCSI CD-ROM support (CONFIG_BLK_DEV_SR)
[N] SCSI generic support (CONFIG_CHR_DEV_SG)
[N] Probe all LUNs on each SCSI device (CONFIG_SCSI_MULTI_LUN)
[N] Verbose SCSI error reporting (kernel size +=12K) (CONFIG_SCSI_CONSTANTS)
[N] 7000FASST SCSI support (CONFIG_SCSI_7000FASST)
[N] Adaptec AHA152X/2825 support (CONFIG_SCSI_AHA152X)
[N] Adaptec AHA1542 support (CONFIG_SCSI_AHA1542)
[N] Adaptec AHA1740 support (CONFIG_SCSI_AHA1740)
[y] Adaptec AHA274X/284X/294X support (CONFIG_SCSI_AIC7XXX)
[N] AdvanSys SCSI support (CONFIG_SCSI_ADVANSYS)
[N] Always IN2000 SCSI support (CONFIG_SCSI_IN2000)
[N] AM53/79C974 PCI SCSI support (CONFIG_SCSI_AM53C974)
[N] BusLogic SCSI support (CONFIG_SCSI_BUSLOGIC)
[N] DTC3180/3280 SCSI support (CONFIG_SCSI_DTC3280)
[N] EATA-DMA (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support (CONFIG_SCSI_EATA_DMA)
[N] EATA-PIO (old DPT PM2001, PM2012A) support (CONFIG_SCSI_EATA_PIO)
[N] EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support (CONFIG_SCSI_EATA)
[N] Future Domain 16xx SCSI support (CONFIG_SCSI_FUTURE_DOMAIN)
[N] Generic NCR5380/53c400 SCSI support (CONFIG_SCSI_GENERIC_NCR5380)
[N] NCR53c406a SCSI support (CONFIG_SCSI_NCR53C406A)
[N] IOMEGA Parallel Port ZIP drive SCSI support (CONFIG_SCSI_PPA)
[N] PAS16 SCSI support (CONFIG_SCSI_PAS16)
[N] Qlogic FAS SCSI support (CONFIG_SCSI_QLOGIC_FAS)
[N] Seagate ST-02 and Future Domain TMC-8xx SCSI support (CONFIG_SCSI_SEAGATE)
[N] Trantor T128/T128F/T228 SCSI support (CONFIG_SCSI_T128)
[N] UltraStor 14F/34F support (CONFIG_SCSI_U14_34F)
[N] UltraStor SCSI support (CONFIG_SCSI_ULTRASTOR)Network device support
[Y] Network device support (CONFIG_NETDEVICES)
[y] Dummy net driver support (CONFIG_DUMMY)
[N] EQL (serial line load balancing) support (CONFIG_EQUALIZER)
[N] Frame relay DLCI support (EXPERIMENTAL) (CONFIG_DLCI)
[N] PLIP (parallel port) support (CONFIG_PLIP)
[y] PPP (point-to-point) support (CONFIG_PPP)
[N] SLIP (serial line) support (CONFIG_SLIP)
[N] Radio network interfaces (CONFIG_NET_RADIO)
[Y] Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET)
[n] 3COM cards (CONFIG_NET_VENDOR_3COM)
[N] AMD LANCE and PCnet (AT1500 and NE2100) support (CONFIG_LANCE)
[N] Western Digital/SMC cards (CONFIG_NET_VENDOR_SMC)
[y] Other ISA cards (CONFIG_NET_ISA)
[N] AT1700 support (EXPERIMENTAL) (CONFIG_AT1700)
[N] Cabletron E21xx support (CONFIG_E2100)
[N] DEPCA, DE10x, DE200, DE201, DE202, DE422 support (CONFIG_DEPCA)
[N] EtherWORKS 3 (DE203, DE204, DE205) support (CONFIG_EWRK3)
[N] EtherExpress 16 support (CONFIG_EEXPRESS)
[N] EtherExpressPro support (CONFIG_EEXPRESS_PRO)
[N] FMV-181/182/183/184 support (CONFIG_FMV18X)
[N] HP PCLAN+ (27247B and 27252A) support (CONFIG_HPLAN_PLUS)
[N] HP PCLAN (27245 and other 27xxx series) support (CONFIG_HPLAN)
[N] HP 10/100VG PCLAN (ISA, EISA, PCI) support (CONFIG_HP100)
[N] ICL EtherTeam 16i/32 support (CONFIG_ETH16I)
[y] NE2000/NE1000 support (CONFIG_NE2000)
[N] NI5210 support (CONFIG_NI52)
[N] NI6510 support (CONFIG_NI65)
[N] SEEQ8005 support (EXPERIMENTAL) (CONFIG_SEEQ8005)
[N] SK_G16 support (CONFIG_SK_G16)
[N] EISA, VLB, PCI and on board controllers (CONFIG_NET_EISA)
[N] Pocket and portable adaptors (CONFIG_NET_POCKET)
[N] Token Ring driver support (CONFIG_TR)
[N] FDDI driver support (CONFIG_FDDI)
[N] ARCnet support (CONFIG_ARCNET)ISDN subsystem
[N] ISDN support (CONFIG_ISDN)
CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
[N] Support non-SCSI/IDE/ATAPI CDROM drives (CONFIG_CD_NO_IDESCSI)
Filesystems
[N] Quota support (CONFIG_QUOTA)
[N] Mandatory lock support (CONFIG_LOCK_MANDATORY)
[Y] Minix fs support (CONFIG_MINIX_FS)
[N] Extended fs support (CONFIG_EXT_FS)
[Y] Second extended fs support (CONFIG_EXT2_FS)
[N] xiafs filesystem support (CONFIG_XIA_FS)
[Y] DOS FAT fs support (CONFIG_FAT_FS)
[Y] MSDOS fs support (CONFIG_MSDOS_FS)
[y] VFAT (Windows-95) fs support (CONFIG_VFAT_FS)
[N] umsdos: Unix like fs on top of std MSDOS FAT fs (CONFIG_UMSDOS_FS)
[Y] /proc filesystem support (CONFIG_PROC_FS)
[Y] NFS filesystem support (CONFIG_NFS_FS)
[N] Root file system on NFS (CONFIG_ROOT_NFS)
[N] SMB filesystem support (to mount WfW shares etc..) (CONFIG_SMB_FS)
[Y] ISO9660 cdrom filesystem support (CONFIG_ISO9660_FS)
[N] OS/2 HPFS filesystem support (read only) (CONFIG_HPFS_FS)
[N] System V and Coherent filesystem support (CONFIG_SYSV_FS)
[N] Amiga FFS filesystem support (EXPERIMENTAL) (CONFIG_AFFS_FS)
[N] UFS filesystem support (read only) (CONFIG_UFS_FS)Character devices
[Y] Standard/generic serial support (CONFIG_SERIAL)
[N] Digiboard PC/Xx Support (CONFIG_DIGI)
[N] Cyclades async mux support (CONFIG_CYCLADES)
[N] Stallion multiport serial support (CONFIG_STALDRV)
[N] SDL RISCom/8 card support (CONFIG_RISCOM8)
[N] Parallel printer support (CONFIG_PRINTER)
[y] Mouse Support (not serial mice) (CONFIG_MOUSE)
[N] ATIXL busmouse support (CONFIG_ATIXL_BUSMOUSE)
[N] Logitech busmouse support (CONFIG_BUSMOUSE)
[N] Microsoft busmouse support (CONFIG_MS_BUSMOUSE)
[y] PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE)
[N] C&T 82C710 mouse port support (as on TI Travelmate) (CONFIG_82C710_MOUSE)
[N] Support for user misc device modules (CONFIG_UMISC)
[N] QIC-02 tape support (CONFIG_QIC02_TAPE)
[N] Ftape (QIC-80/Travan) support (CONFIG_FTAPE)
[N] Advanced Power Management BIOS support (CONFIG_APM)
[N] Watchdog Timer Support (CONFIG_WATCHDOG)
[N] Enhanced Real Time Clock Support (CONFIG_RTC)Sound
[N] Sound card support (CONFIG_SOUND)
Kernel hacking
[N] Kernel profiling support (CONFIG_PROFILE)
前回までと異なり、問題を減らすため、サウンドカードは外し、ppp等もモジュール化せず組み込みとしています。また、NICが使用できなくなった場合等の非常事態に備え、フロッピー読み込みを考慮して、DOSファイルシステムサポートは活かしておきました。
設定変更後、makeを行います。
make dep ; make clean
make zlilo
make modules ; make modules_install
make終了後、再起動し、rootで再度ログインします。
今回はうまく起動できました。問題は恐らく、サウンドカードの選択/設定か、カーネルソースディレクトリに何かが残っていて問題を引き起こしたかのいずれかでしょう。当面、環境が完全に落ち着くまではサウンドカードは考慮しない事にします。
立ち上がったカーネル/vmlinuzをすかさず/vmlinuz.2.0.30にコピーし、liloで起動できるようにしておきました。