Roads to Linux - インターミッション (3)

目次ページへ 前のページへ 次のページへ


■カーネルのモジュール化等

カーネルコンパイル失敗時に古いバージョンへ戻りやすいように、それと余計な問題が起こるのをなるべく避けるために、これまではほとんどモジュール化を行わずにカーネルをコンパイルしてきました。しかし、そろそろ落ち着いてきたし、原因不明のカーネルバージョンアップ失敗もだいたい原因が掴めたので、いくつかの機能をモジュール化してしまおうと思います。

また、Windows 95マシン上で久々にDIABLOをやろうとしたら、"回線がpoorか、もしくはUDPパケットが通らないぞ"と言われてbattle.netに繋がらないという問題が起きてしまい、困ってしまったので、そこのところも含めて微調整を行ってみます。(まあ、これについてはきっとISPの問題だと思うんですが)

/usr/src/linuxへ移動し、make configを行います。

cd linux
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)
<m> 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

ltm&amp;> 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] Include IDE/ATAPI FLOPPY support (new) (CONFIG_BLK_DEV_IDETAPE)
[N] SCSI emulation support (CONFIG_BLK_DEV_IDESCSI)
[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)
[y] IP: syn cookies (CONFIG_SYN_COOKIES)
[y] 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)
[y] IP: ipautofw masq support (CONFIG_IP_MASQUERADE_IPAUTOFW)
[y] IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) (NEW)
[N] IP: transparent proxy support (EXPERIMENTAL) (CONFIG_IP_TRANSPARENT_PROXY)
[y] IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG)
[N] 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 AIC7xxx support (CONFIG_SCSI_AIC7XXX)
[N] Enable tagged command queueing (CONFIG_AIC7XXX_TAGGED_QUEUEING)
[N] Override driver defaults for commands per LUN (CONFIG_OVERRIDE_CMDS)
[N] Enable SCB paging (CONFIG_AIC7XXX_PAGE_ENABLE)
[N] Collect statistics to report in /proc (CONFIG_AIC7XXX_PROC_STATS)
[15] Delay in seconds after SCSI bus reset (CONFIG_AIC7XXX_RESET_DELAY)
<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)
<N> GDT SCSI Disk Array Controller support (CONFIG_SCSI_GDTH)

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)
<m> 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)
<m> DOS FAT fs support (CONFIG_FAT_FS)
<m> MSDOS fs support (CONFIG_MSDOS_FS)
<m> 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)
<m> NFS filesystem support (CONFIG_NFS_FS)
<m> SMB filesystem support (to mount WfW shares etc..) (CONFIG_SMB_FS)
[y] SMB Win95 bug work-around (CONFIG_SMB_WIN95) (NEW)
<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> Kernel automounter support (experimental) (CONFIG_AUTOFS_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)
<m> Parallel printer support (CONFIG_PRINTER)
<N> Specialix IO8+ card support (CONFIG_SPECIALIX)
[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 &quotauxiliary 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)

結局それほどのモジュール化はされていないのですが...JAVAサポートとFDD、あとはファイルシステム(Minix、DOS、NFS、SMB)ぐらいです。現在の対象Linuxシステムは、Windows 95マシンのPPP接続代替/WWWキャッシュマシンとしての用途が大部分ですから、PPPは モジュール化する意味がありませんし、CD-ROMもほとんど常時入れっぱなしですし。まあ、今まで入れていなかったSMBをモジュールとして組み込んでおいたので、今後の展開によっては何かできるかも知れません。

ネットワーク関係では、syn cookiesとrst cookiesを有効にしました。なんだかよくわからないのですが、UNIX USER 12月号の真鍋氏の記事によれば、少なくともsyn cookiesは入っていたほうがよさそうなので。また、accountingを同様に外しました。...いずれに せよ、DIABLOの問題とは全然関係なさそうなんですが。

ではmakeを行います。

make dep ; make clean
make zlilo
make modules ; make modules_install

再起動後、カーネル/vmlinuzを/vmlinuz.2.0.32にコピーしておきます。

DIABLOを試してみましたが、何も変わりませんでした。これはまあ、対象Linuxマシンを通さずにWindows 95側単独で試してみて、もしも単独であればうまくいくようなら、また改めて考えてみる事にします。


目次ページへ 前のページへ 次のページへ