JRPMでいつもお世話になっている市川さんが、kernel 2.2.0pre8 の nosrc.rpm を作ってくださり、使ってみませんかと誘ってくださったのだ。今もここから取れると思う。JRPM の Package ML でもアナウンスされていたから、リンクしちゃいました。>市川さん
今の時点では、すでにkernel 2.2.0pre9 も出てるし、もう2、3日で kernel 2.2.0 も正式に出てしまうかも知れないけど、紐解いて中を見る価値あり、のspecファイルだと思う。赤帽で kernel 2.2.0 を始めて使うぜ、という人は見るといいんじゃないかな。
nosrc で作ってあるからlinux-2.2.0-pre8.tar.bz2
とpcmcia-cs-3.0.8.tar.gzとpatch-2.2.0pre8ac1.bz2は自分でftpで取ってこよう。で、rpm
--rebuild でサクッと kernel-2.2.0pre8 の rpm が作れると思う。
その他に必要なものは、rawhide の ftp サイトから
modutils-2.1.121-3.i386.rpm net-tools-1.49-2.i386.rpm procps-1.2.9-3.i386.rpm procps-X11-1.2.9-3.i386.rpm
あたりを持ってきて入れといた。で、それからおもむろにパッケージを作り、インストールしてみたんだけど、お約束のようにいくつかハマッちゃったよ(笑) あ、ハマッたと言っても、オレの場合はデスクトップでの場合で、pcmcia関係はまだ試してない。ノートは引越しのとき(もう来週だぁ(汗))に持っていくつもりなんで手を付けなかったのだ。
で、kernel パッケージの作成自体はサクッといけた。うむ。で、kernel-source もkernel-headers もガシガシ入れちゃって、念のため、古い方の kernel-2.0.36 でもブートできるように /etc/lilo.conf を確認&調整して、リブートしてみた。
したっけ、お約束のようにKernel Panicしちゃったよ。わははは。いや、これはパッケージのせいじゃないんだけどさ。オレの使っているコンダラ1号は SCSI なマシンで、AHA-2940UW をその中心としている。IDE なディスクは付いてないの。だが、作ったkernel-2.2 のパッケージは AIC 7xxx のドライバがモジュールだったのだ(笑) そりゃ当然、ルートパーティションがマウントできぬわ。
気を取りなおして 2.0.36 でブートしなおし、aic7xxxx を kernel 組み込みにし、その他、サウンド関係などを自分のマシンに微調整して kernel を再構築したら、今度は無事にブートすることができたぜ。その後、さらに微調整したので、今 uname -a すると
Linux pinga.southpole.com 2.2.0-pre8-ac1 #2 Tue Jan 19 16:42:06 PST 1999 i586 unknown
なんて表示される。おぉ、kernel 2.2 だぜ。嬉しいな。が、ハマりはまだ続いたのだった。
なぜか、ipfwadm が動かないんだよね。IP マスカレするために、rc.local で ipfwadm
を
# IP Masquerade initialize /sbin/ipfwadm -F -a m -S 192.168.9.0/24 -D 0.0.0.0/0 /sbin/ipfwadm -F -p deny
などとしていたのだが、
setsockopt failed: No such file or directory
と言われてしまい、動かないでわないか。だが、これはFAQだった(汗)
ちゃんと、/usr/src/linux/Documentation/Changes に
As of 2.1.102, the IP firewalling code has been replaced; ipfwadm will no longer work. You need to obtain "ipchains," available from http://www.rustcorp.com/linux/ipchains/ , and use that instead of ipfwadm.
などと書いてあるでわないか。落ち着いて、よく読め>オレ
またしても rawhide の ftp サイトに見に行くと、しっかり
ipchains-1.3.8-1.i386.rpm ipchains-scripts-1.0.2-3.i386.rpm
ってのがあるじゃん。とっとと入れてみると /sbin/ipfwadm-wrapper ってのがしっかり入ってたよ。rc.local の記述を単に
# IP Masquerade initialize /sbin/ipfwadm-wrapper -F -a m -S 192.168.9.0/24 -D 0.0.0.0/0 /sbin/ipfwadm-wrapper -F -p deny
に書き換えただけで、IP マスカレも普通に動くようになったわ(笑) 最初からやらんかい(汗)
やはり、ドキュメントを読まんとイカンね、うん、基本だよ基本などと言いつつ、Changes を印刷しようとすると、今度はプリンタがうんともすんとも言わぬ。なんでじゃ〜?
そういや、kernel 2.1系から、パラレル・ポートの実装って大きく変わったというのは話には聞いていた。従来は、プリンタとZIPドライブをチェインしていても、やれ insmod ppa だの insmod lp だのとモジュールのロード/アンロードがわずらわしかったりしたが、そういうのも解消されるというような話だったなぁ。
で、いろいろ見てみると、なんか、kernel 2.2 のパラレル・ポートってすごいのね。接続されている機器をautoprobeしてるでわないか。cat /proc/parport なるディレクトリが増えていて、その中の /proc/parport/0/autoprobe を見ると
CLASS:PRINTER; MODEL:DESKJET 690C; MANUFACTURER:HEWLETT-PACKARD; DESCRIPTION:Hewlett-Packard DeskJet 690C; COMMAND SET:MLC,PCL,PML;
これでなんで印刷できぬ!?
だが、これもFAQだった(汗)
ちゃんと /usr/src/linux/Documentation/parport.txt というファイルがあり、そこに詳細に説明が出てるぢゃないくあ。
それを読むと、autoprobe のやり方やめ方、irq の割り当て方、ioport の割り当て方、全部書いてあったよ(汗)
で、オレがハマッた部分についてもしっかり述べてあって、抜粋すると
Note that this is different to the way older kernels worked; there used to be a static association between the I/O port address and the device name, so /dev/lp0 was always the port at 0x3bc. This is no longer the case - if you only have one port, it will default to being /dev/lp0, regardless of base address.
だって(汗) つまり、従来はハード的なパラレル・ポートの資源と、デバイスの番号というのは固定的な割り付けだったのが、kernel 2.2 だと違うんだと。つまり、プリンタが1台しかないのなら、どこの I/O ポートのベース・アドレスがいくつだろうと、それは
/dev/lp0 になるわけね。
で、恐る恐る /etc/printcap を見てみると…
##PRINTTOOL3## LOCAL cdj550 300x300 letter {} DeskJet550 3 {} lp:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :sf:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/lp/filter:
だって。わははははは。すまん。オレが悪かった。I/O ポートは 0x378 を使っているので、kernel 2.0.36 までは /dev/lp1 だったんだわ。とっとと /dev/lp0 に直してlpd をリスタートしたら、びゅ〜びゅ〜印刷できたよ(汗)
というわけで、とりあえずハマッていた IP マスカレとプリンタ関係は、そのまんまFAQ として解決できた。PPxP 対策で、userlink.o も make し直しただけでダイアル・アップもほぼ問題なく動いている。ほぼ問題なく、ってのは実は、ブート時にダイアルしちゃうんだよね、なぜか。まぁそんなに頻繁にリブートなんかしないから(Windowsと違って(大笑い))、今は調べてないんだけど… なんかARPかなんかを飛ばしているような感じがする。
あ、あと、踏み絵でぃが動かなくなってしまった。まぁ、これはそうかなぁとは思っていたんだけどね。踏み絵でぃは dhcpcd-0.70 と
dhcp-2.0b1 を足して 4096 で割って作られているからなぁ。聞けば、kernel 2.2 では
dhcpcd-0.70 は動かぬと言うではないか。まぁ、dhcpcd-1.3.16 というのがちゃんと用意されているので(ちなみに(笑)これもrawhideにあった)困りはしないのだが。
ものは試しと dhcpcd-0.70 を kernel-2.2 にインストールして動かしてみると、確かにパケットが一発も出てないようだ。ハブのLEDもチカッともしないし。こりゃ踏み絵でぃも同じ症状だなぁ。
てなわけで、ど〜せ誰も使ってないのは知ってたが(笑)、このままぢゃクヤシイので dhcpcd-1.3.16 のソースを取ってきて、踏み絵でぃをほげって kernel 2.2 に対応させちゃったよ。だって、オレは使ってるんだもん。そうだよオレ様というビッグなビッゲストなユーザがいるじゃないか(大笑い) オレのマシンで動かなくてどうする>踏み絵でぃ
最初は kernel 2.0 用と kernel 2.2 用とを1本化して、中で勝手に判別するようにしようかとも思っていたのだけど、メンドクサイからヤメちった(笑)
kernel 2.0 用は fumied-0.4.tar.gz で、kernel
2.2 用は fumied2-0.1.tar.gz だ。UDP/IP まわりのわずかな処理を除いて、ほとんど同じなんだけどね、中身は。fumied 同士でもfumied2 同士でも、fumied と fumied2 との間でも、ちゃんと IP アドレス、ホスト名のやりとりをするよ。間違えて逆に入れても、動かないからすぐわかるし(笑)
あ、そして最後に rxvt の続報ね。例のBSが効かぬ、DELが効かぬ、ってヤツ。あれもFAQだった(汗)
ソースを展開してでてくる doc/changes.txt にちゃんと書いてあったわい。落ち着いて、よく読め>オレ
だが、落ち着いて読みなおしたかげで収穫は他にもあった。rxvt で mutt なり slrn なりを開いているときに、URL が書いてあったとするでしょ?例えばhttp://www.best.com/~hoshina なんて風に。
mutt だと、この URL をマウスでクリックすると、それだけでコピーできて便利なんだけど、実は rxvt では '~' (チルダね) がデフォルトではデリミタ扱いなので、上記のような '~" を含んだURLだと、http://www.best.com と hoshina に別れて扱われてしまうのでちょっと面倒だったのだ。
が、これの回避の仕方もちゃんと出てたよ。わはは。良く読め>オレ あ、というわけで、_tom_ さんのページ の rxvt も修正されていて BS も DEL もサクサクになっているから、使う人はもう一度ゲットだぜ!(サトシ風)
メール | 戻る |