gentoo linux 1.4_rc2 インストール 2003/2/03 redhatlinux7.3 で、gentoo1.4rc2 の LiveCD をダウンロードする。 # wget ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/releases/1.4_rc2/x86/pentium3/livecd/gentoo-grp-pentium3-1.4_rc2.iso # wget ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/releases/1.4_rc2/x86/pentium3/livecd/gentoo-grp-pentium3-1.4_rc2.iso.md5 # md5sum -c gentoo-grp-pentium3-1.4_rc2.iso.md5 gentoo-grp-pentium3-1.4_rc2.iso OK Windows の B'z Gold で CD-RW にやく(パケットライトじゃないよ)。 CD-ROMドライブにつっこんで、PCをシャットダウンし、電源を入れる。 http://www.gentoo.org/doc/ja/gentoo-x86-install.xml を読みながら進める。 boot: と出る。何もせずにいたら勝手にスタート。 keymap: と出る。私は 101英語キーボード配列を使っているので、何もせずenter。 cdimage root # _ と表示される。 # dmesg | less として見たが network card(NIC) が自動検知されてないっぽい。 # lsmod としたが無い様子。 私の使用しているマシン(自作) の LANチップを調べる。マザーボードのオンボードNICなので、まずマザーボードをキーワードにして調べる。 google: GA-6IEML http://www.gigabyte.co.jp/products/6ieml.htm Intel 82562ET LAN chip と分かった。 google: 82562ET Linux http://www-6.ibm.com/jp/domino01/linux/hardware/loperate.nsf/hardinfo/971AFF599B9B82AB49256BA7002D7D64?OpenDocument > ネットワーク > チップ・モデル > Intel 82562ET > 100BASE-TX,10BASE-T対応 > > ネットワーク・カードの設定 > 当機種でネットワークを正常に動作させるには、インストール後に手動で「e100」ドライバーを適用する必要があります。以下の手順で「e100」ドライバーを導入します。 > > ■/etc/modules.confの修正 > /etc/modules.confのエントリーを以下のように修正します。 > > ----------------------------- > 修正前 alias eth0 eepro100 > ----------------------------- > 修正後 alias eth0 e100 > ----------------------------- > > ■再起動 > 再起動後、lsmodコマンドで「e100」ドライバーがロードされているか確認してください。 > # lsmod # modprobe e100 と入力。 ハードディスクの転送モードを調べる。(/dev/hdc は cd-romドライブだった) # hdparm -i /dev/hda ... PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 mdma3 mdma4 *mdma5 ... 「mdma5」に「*」がついているので、転送が遅い PIO モードではなく、早い DMA モードだった。問題なし。 ネットワークの手動設定 network は、ADSLモデム+ルータの Aterm DR35-Accaを使用。このルータのIPアドレスは 192.168.0.1。今 gentoo 入れてるマシンは 192.168.0.2 で使用していた。 # ifconfig eth0 192.168.0.2 broadcast 192.168.0.0 netmask 255.255.255.0 # /sbin/route add -net default gw 192.168.0.1 netmask 0.0.0.0 metric 1 次に DNS の指定。/etc/resolv.conf を作る。 最初からあるぞ...。 > domain gentoo.org > nameserver 216.233.224.7 > nameserver 216.233.224.6 # cd /etc # cp -p resolv.conf resolv.conf.orig # cat > resolv.conf nameserver 192.168.0.1 ここで [Ctrl+D] # _ ネットワークのテスト。 # /sbin/ifconfig -a | less eth0 ... UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ... 動いてるようだ。 # ping www.yahoo.com .. 2 packets transmitted, 2 packets received, 0% packet loss .. ちゃんと打ててます。 ディスクの設定 Windows98SE で、Cドライブ、Dドライブがある。(Win98のCD-ROMのfdiskは 64G以上のHDDをまちがって認識するので、とりあえず Cドライブを小さく(5Gくらい)作成してWin98をインストールしてから、あとで Dドライブを作成していた) # fdisk Command (m for help): m (コマンド一覧を見る) Command (m for help): p (パーティションを表示) ... /dev/hda1 Win95 FAT32 /dev/hda2 Win95 Ext'd (LBA) /dev/hda5 Win95 FAT32 まず boot/ パーティションを作成。 Command (m for help): n Command action l logical (5 or over) p primary pattition (1-4) p (l を選ぶと No free sectors available と言われる) Partition number (1-4): 3 (3か4しかない。 1 を指定すると「もうあるよ」と言われる) First cylinder (..NNNN): (何もせず enter) Using default value NNNN Last cylinder or ...: +96M (最初の「+」が必要) 次に swapパーティションを作成。 n -> p -> 4 -> enter -> +96M t -> 4 -> L -> 82 (82 Linux swap) 次に rootパーティションを作成..のつもりだったが、 n No free sectors available ぐは、もう作れませんよ。 今インストール中で fdisk してるんですが、 win98 が /dev/hda1, /dev/hda2, /dev/hda5 を占有しているので gentoo で boot,swap,rootの 3 パーティション作れません。 2パーティション作ったあとで 3 つめのパーティション作ろうとすると No free sectors available って言うんです。 logical (5 or over) パーティション を作ろうとしても、 No free sectors available って言うんです。 primary pattition (1-4) しか作れないようです。 しかたないので、bootパーティションは作らないことにした。 plamo,Vine,RedHatどれでも bootパーティションはなくてもよかったし。 「d」で 3 と 4 (/dev/hda3,/dev/hda4) を消して、 swap と root を作る。 Command (m for help): w 書き込む。 The new table will be used at the next reboot. と表示されたので、再起動 # shutdown -r now ネットワーク設定しなおしかよ! なんじゃそりゃ。 ネットワークより前に、HD の設定するべきじゃないの? まあ、ディスクの初期化をする。 # mkswap /dev/hda3 # (初期化されるので注意) # mke2fs -j /dev/hda4 (ext3ファイルシステムを使う) # swapon /dev/hda3 # mkdir /mnt/gentoo # mount /dev/hda4 /mnt/gentoo # cd /mnt/gentoo # tar -jxpvf /mnt/cdrom/gentoo/stage3-pentium3-1.4_rc2.tbz2 # mount -o bind /proc /mnt/gentoo/proc # cp /etc/resolv.conf /mnt/gentoo/etc/ # chroot /mnt/gentoo /bin/bash # env-update (/etc/make.profile がない、'emerge sync' するといい、と表示) # source /etc/profile # nano /etc/make.conf USE="-X -gtk -gnome -alsa" CFLAGS="-march=pentium3 -O2 -pipe" # ln -sf /usr/share/zoneinfo/Japan /etc/localtime # emerge sys-kernel/vanilla-sources とすると、/etc/make.profile がない、'emerge sync' するといい、と表示 # emerge sync 10分かからない。 # emerge sys-kernel/vanilla-sources 2.4.20.tar.bz2 27Mだった。しかし www.ibiblo.org が遅い 8kとはなんだよ ここで電源offにして寝た。 やり直し。mke2fs -j すると昨日の HD書き込みが無駄になるので実行してはいけない CD-RW から立ち上げて、 # mkdir /mnt/gentoo # mount /dev/hda4 /mnt/gentoo これで、昨日の HD 書き込みがそのまま使える。 # mkswap /dev/hda3 # swapon /dev/hda3 # mount -o bind /proc /mnt/gentoo/proc 以下の 4 行のシェルスクリプトを作った。 # modprobe e100 # ifconfig eth0 192.168.0.2 broadcast 192.168.0.0 netmask 255.255.255.0 # /sbin/route add -net default gw 192.168.0.1 netmask 0.0.0.0 metric 1 # echo nameserver 192.168.0.1 > /etc/resolv.conf うまく動いた。 # ping www.ocn.ne.jp # cp /etc/resolv.conf /mnt/gentoo/etc/ # chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile # nano /etc/make.conf USE="-X -gtk -gnome -alsa" CFLAGS="-march=pentium3 -O2 -pipe" GENTOO_MIRRORS="http://gentoo.oregonstate.edu" # ln -sf /usr/share/zoneinfo/Japan /etc/localtime # emerge sync # emerge sys-kernel/vanilla-sources やった ミラーからだと ADSL の限界まで速度がでている。 # cd /usr/src/linux # source /etc/profile cmi8738 のドライバですが、 http://www.cmedia.com.tw/e_download_01.htm から落とせる最新版 cmpci-5.68.tar.gz より、 linux-2.4.20 に入っている cmpci.c のほうが新しいようにみえる。 /usr/src/linux/drivers/sound/cmpci.c linux-2.4.20 にもドキュメントが入っているが、これは cmpci-5.68.tar.gz と同じ /usr/src/linux/Documentation/sound/CMI8338 # make menuconfig ドキュメントに書いてある Device File System ってなんだよそんなのない > be sure to enable the "Device File System" (note that you don't need to > enable the "/dev/pts file system support" option) と思ったが、software design 2002/7 読んだら * /dev file system support (EXPERIMENTAL) * Automatically mount at boot だった Sound で C-Media PCI(CMI8338/8738) * Enable legacy FM * support CMI8738 based audio cards * Inverse S/PDIF in for CMI8738 ドキュメント読むと「モジュールでインストールしてくれ、モジュールじゃない場合は テストしてない」と書いてあったので、モジュールにする。 Inverse S/PDIF(光入力の極性逆転) は、sony の CSチューナーから入力を逆転させる 必要があったので、そうしている。 # make dep # make clean bzImage modules modules_install 20分くらい? # cp /usr/src/linux/arch/i386/boot/bzImage /boot # emerge app-admin/sysklogd # rc-update add sysklogd default # emerge sys-apps/vcron # rc-update add vcron default # emerge nvi 8分くらいかかった。 # vi /etc/fstab # vi /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.0.4 szk 192.168.0.2 rad 192.168.0.3 lets # echo rad > /etc/hostname # passwd ブロードキャストアドレスって 0 じゃなくて 255 だっけ? # vi /etc/conf.d/net # rc-update add net.eth0 default それでは grub のインストール # grub end_request: I/O error, dev...とか出てくる grub> root (hd0,3) (/dev/hda4を指定した) grub> setup (hd0) checking if "/boot/grub/stage1" exists... yes ... Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded. succeeded Running "install /boot/grub/stage1 d (hd0) (hd0)1+16 p (hd0,3)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded grub> quit ないファイルを作成する # vi /boot/grub/grub.conf # ln -s /boot/grub/grub.conf /boot/grub/menu.lst # etc-update # exit # umount /mnt/gentoo/proc # umount /mnt/gentoo 再起動したらすぐ、CD-RWを手動で取り出す 起動しますた! CMI8738 のドキュメント見て、 # depmod -a これ意味ないみたい # modprobe cmpci # wget http://member.nifty.ne.jp/Breeze/softwares/unix/bin/cmictl-20021102.tar.gz # tar... # cd.. # cat /proc/ioports .. a400-a4ff : C-Media Electronics Inc CM8738 a400-a4ff : cmpci .. # ./configure --with-cmibase=0xa400 --enable-cmi8738 --disable-gcmictl 音は一応なっているがnoisy。左チャンネルにかたよっているし。 cmictl で 48/44.1, normal/inverse を変換してみてもうまくいかない。 Win98 起動して確認したが、やはり極性がnormal のときの音だ。 cmictl が極性反転に対応していないか、モジュールのconfigで Inverse S/PDIF 指定したのがまずかったか。 2003/5/11 あとで調べると、Linux 2.5.xx では CMI-8738-6ch に既に対応していた。 逆にいうと、上の Linux2.4付属ドライバや開発元ドライバは CMI-8738-6ch には対応していない「-6ch」なしの CMI-8738 ドライバだった。 Linux 2.5 を導入しなくても、ALSA の最新版を導入すればよいはず。 しかし、Windows で デジタル音声入力 → MP3 したほうが便利な環境になったので 試していない。