ドコモバの環境構築をしていこう

ついに自力でコンパイルできるようになった。 これでようやく歌って踊れるモバギをつくれるようになった。 闘いはまだ始まったばかりだ…
  1. MGL2
  2. ssh
  3. カーネルは超能力者だっ
  4. jed
  5. lynx
  6. 嗚呼、念願のw3m

MGL2 のインストール

cross compile であれだけ私を苦しめてくれたこいつも NFS マウントしてやると、 何事もなくあっさりとコンパイルできました。 あ、うそ、先に jpeg と libungif いれとかんと mil で止まるわ。 もちろん mil もちゃんと動く。 ただ白黒反転しているような…

(後記:packageできました。すげーラク)

ssh のインストール

わたくし的環境といたしましては ssh は必須です。 学校のメール鯖にアクセスするのにも、研究室に入るのにも全て ssh only です。 というわけでとにもかくにも openssh をインストールしませう。 普通の ssh じゃないのは、 ただなんとなく です。

さて、openssh をいれるには openssl がいります。 さらに openssl は perl を必要としています(なぜだ)。 とりあえず perl を pkgsrc を使ってコンパイル。 package のコンパイルにもやはり ここ が役に立つでしょう。 ていうかだいたいの事はこのページ見れば分かります。 ただし鯖向けだけに、モバイル野郎向けではなさそうですが。 コンパイルは寝る前に始めたら、起きる頃にはちゃんと終ってます。 で make package 。 これに30分位かかったのにはびっくり。 package にしておくとモバギ本体にインストールするのもらくになるでしょう。

次に openssl 。 これも気長に待てば、問題なく終ります。

最後に openssh 。 これも気長に待てば、問題なく終りま せん。 コンパイル自体は終るのですが、 ssh-keygen が鍵を作る際に /dev/random を必要とします。 そして 20000315 な snapshot のカーネルには残念ながら含まれていないのです。 そのことが ML で話題にのぼり4月くらいにデフォルトで組み込まれました。 そこでそいつをとってきて、カーネルをいれかえるという安直な手を試みましたが、 この前 と全く同じ現象に遭い、おとなしく再構築することにしました。

カーネルの再構築

とりあえずカーネルソースが必要です。 普通にインストールした時には持ってませんからね。 入手には cvs を使うのが一番ラクだと思います。 これまた初心者コースやNetBSDのドキュメントの current の追跡らへんを読めば分かります 。 ていうか忘れたので、またいつか(^^;)

カーネルの再構築もそのまんま。 GENERIC を cp していらんもんをコメントアウトしていく。 けずりすぎるとはまるのでほどほどに。 FreeBSD みたいに LINT とかあるといいんだけれどね。 で、その際 option random (だっけな?)を加えることを忘れずに。 で

 # config HOGE
 # mv ../compile/HOGE (FreeBSDとは違うのね)
 # make deoend
 # make
 # make install
としていけばよかったでしょう。 再起動してうまくいけばおっけー。 いかなかった時はかなしいね。 ただ、モバギの場合、CF に全部入っているので、母艦で CF をマウントしてカーネルを古いのと変えてしまえば、ちゃんと元に戻りました。 保証はしませんが…

これで無事 openssh もインストールできるようになりました。 めでたし、めでたし。 あ、忘れずにドキュメントやマニュアルは消しておきましょう。 マニュアルとっておいても small.tgz には man がはいっていないので見れませんよ。 しかし perl も openssl もばかでかい。 特に openssl なんぞもう使わんと思うのだが。 とりあえずヘッダファイルなんて明らかにいらなそうなので、 /usr/pkg/include を /usr/pkg/include.old とかして様子を見ています。 何も問題なければそのまま消してしまえ。

jed のインストール

jed に魅せられたわたくしとしましては、なんとしても入れたい一品です。 これもなんの問題もありません。 ここ のとおりにおとなしくやればインストールできます。

これで日本語が入力できる…ようになるのはもう少し先かな。 ついでに mutt もやってしまえと思ったのですが、こいつが一筋縄ではいかぬ。 今の所断念中です。 あと w3m も gc 関係でひっかかってしまい、コンパイルできず。 こっち ではできているようなので、そのうち動くようになるでしょう(他力本願だ)。

lynx のインストール

w3m がコンパイルできないので lynx を使ってみませう。 package では libslang を要求してくるので、無駄な容量を使わないためにも自力でコンパイルします。 当然 ncurses なんぞは入れてないので slang を使いましょう。 jed に使った slang がまだ残っていればラッキー。 パスは /home/hpcmips/slang とします。 そこの path を指定して configure します。

 # setenv CPPFLAGS "-I/home/hpcmips/slang/src"
 # setenv LIBS "-L/home/hpcmips/slang/src/objs"
 # ./configure --with-screen=slang
てな感じでやれば slang 付きで configure できます。 そしたら make; make install で終り…

のはずなのですが、途中で反応がなくなってしまいました(;_;) どうやら swap 大量発生のようです。 swap 13M じゃきついと。 そこで NFS 鯖の方に swap 領域をつくってしまいましょう。

鯖側で適当に export の設定をして、mount します。 そこで

 # touch /swap/swap
 # dd if=/dev/zero of=/swap/swap bs=1024k count=16
 # swapctl -a /swap/swap
としてやれば swap が16M増えて、29M になってくれました。 そしたらコンパイルも無事終了。 ちなみに strip してサイズが 2099764 とかなりでかし。 しかも起動したては日本語が表示されんわ、カーソルもでないわで困ります。 すぐに o を押して設定を変えましょう。

これでモバギで html ファイルも読めるようになります。 けど結構表示が変になりやすいです。 うーん、あまり使ってないのでなんともいえませんが、w3m の方が好きかな。 誰か NetBSD/hpcmips でも動くようにしてくだされ(他力本願)。

w3mを使おう

他力本願モードのうちにやないさんが動くようにしてくれました。 大感謝ということで、早速インストールしてみると 1.5 の環境でつくられたバイナリなため、 libcurses.so.3 がないと怒られてしまいます。 そこで強引に libcurses.so.2.5 からリンクして使ってみると、無事起動したものの、 外のページを見ることができませんでした。 これから 1.4 の環境で使えるようにするための苦労が始まるのです。 (しかし、この苦労はもしかしたら必要なかったのかもしれませんが、それは後ほど…)

port-hpcmips-jaのメイリングリストに助けられて、どうやら無事動くようになりました。 問題は gc 関係のところです。 以下手順、

  1. やないさんの パッチ をありがたく頂戴する。そしてパッチをあてる。
  2. cd w3m/gc して gcconfig.h をながめる。ifdef MIPS の近くにある NETBSD のところをいぢる。
    	#   ifdef NETBSD
    	#     define ALIGNMENT 4
    	#     define OS_TYPE "NETBSD"
    	#     define DATA_START (ptr_t) 0x10000000  --ここ
    	#     define HEURISTIC2  --ここ
    	#     define USE_GENERIC_PUSH_REGS  --ここ
    	/* #     define DYNAMIC_LOADING */
    	#     define STACKBOTTOM ((ptr_t)0x80000000)
    	#   endif
        
  3. make test する。最後に STACKBOTTOM のよさげな値が出力されるので、その値をいれてあげます。 モバギでやっていると画面外に行ってしまうので、出力をファイルにおとしておくのがいいでしょう (これに気付かず、やり直してしまった)。 ついでに、さっきつけ足した部分をコメントアウトします(なんとなく)。
  4. んで make する。
  5. よさげなら cd ../ して w3m をコンパイルします。
  6. 無事終了!
さて、動かしてみるとばっちり動きます。 で、外は見れるようになったのか…なっとらん。 なぞだ…

と思っていたら、動いてもいない proxy の設定がされていましたねー。 そういや、wwwoffle が動いている母艦から設定ファイルをかっぱらってき てたのがいけなかったようです。 よいこはマネしないように。 で、設定しなおしたら、ちゃんと見れました。

ということは、 やないさんが作った1.5用のバイナリでもちゃんと動いたのでは… という疑念がわいてきます。 確認するのが恐いので、とてもできません(笑)。

もし、無事に動くのでしたら、みなさん、ご迷惑をおかけしました。 ごめんなさいm(__)m

メインページに戻る
お帰りになる

Last-Modified: Fri, 29 Mar 02:54:21 2002 JST.
Yohei Terada (youhe@cherrylain.que.ne.jp)