1.5にアップグレードや

メイリングリストでサスペンドのことを小耳にはさんだ。 サスペンドできねばモバイルできぬと言っても過言ではない。 使い慣れた環境を捨て、自ら死地へと赴こうとしてしまうのは漢の性なのだろうか…
  1. 方針
  2. 準備
  3. install
  4. 起動後
  5. cvsでcurrentの追跡
  6. そしていざサスペンドへ
  7. 画面も消えてくれます

方針

インストール前の準備

今回アップグレードといっても、やることはクリーンインストールです。 というのもちゃんとしたアップグレードはめんどくさそうなので。

といってもいままで作ってきた環境が全て消えてしまうのも何なので、 必要そうなものはバックアップをとっておきましょう。 私の場合、コンパイルしたカス等は母艦側にあるので、home と /etc/ppp/ と /etc/fstab を取っておきました。

tar cvzf home.tar.gz /home/hoge
とかでhomeは固められたと思います。 あとは配布ファイルをとってくる。 今回は20000627-1.5を使いました。

それではいきなりCFを初期化してしまいます(暴挙)。 もう1枚あればいいのですが、当然そんなものはありません。

newfs_msdos /dev/wd2
ですかね。 で 、mount_msdos /dev/wd2 /hoge して pbsdboot.exe と netbsd をコピーします。

boot&install

あとは ここ らへんを参考にインストールします。 dd を使ってCFを破壊しておくことをお勧めします。 ていうかしないと、再起動後に初期化してくれなかったり、boot時にちゃんと / をマウントできなかったりと、さんざんな結果になってくれます。 NFSの設定は、ちゃんとmountできる場所に配布物を置くこと。 /etc/exportsを書き換えたら、kill -HUP でもしておきませう(これではまった)。 マウントポイントの指定にシンボリックリンクを使ってもだめよん。

これらの注意を守れば多分インストールできると思います。 私もやっとでできました。

起動後

起動して無事プロンプトがでると、おっけー。 まずは root でログインします。 パスワードなしで入れます。 ここで root のパスワードと一般ユーザをつくりましょう。

なんか、1.5-alpha では Kerberos が動いているらしく、普通に passwd ってうつだけじゃ、番犬に叱られます。 この時は -l をつけてやりましょう。 一般ユーザは、/etc/group を編集して users とか適当なグループをつくり、 vipw でアカウントを作ってあげます。 で、passwd -l hoge で hoge さんのパスワードもつくり、準備完了。

これからは一般ユーザで作業しましょう。 su や shutdown を使えるように、 wheel,operator グループに加えておくといいかな。

あとは /etc/rc.conf を好きなようにいぢってください。 他にもいろいろいぢらないと、とても楽しく使える環境にはならないので、 がんばっていきませう。

cvsでcurrentの追跡

さて、適当に環境を構築しつつ(昔(といっても2ヶ月程度だが…)に比べてラクになったような、 これもみなさまの努力のおかげっす)、 当初の目標のサスペンドができないことがひっかかっていました。 そんなことを思っていると、またもやメイリングリストで、カーネルつくったよん情報が! そしてまたもや安直にゲットして入れ替えてみる。 が、デバッガに落ちてしまった…。 はい、あきらめです。

で、自分でつくることにしました。 まずはカーネルつくって、それでだめならユーザランドまで行ってやるぜ!

さて、cvsでソースを取ってきませう。 ここ 見てください。 CVSROOT は /cvs/cvsroot を使いましょう。 jprootからはとってこれませんでした(7/25)。 あと root では login できませんでしたので、おとなしく一般ユーザをつくって、 そこから login しましょう。 また、NFSで母艦に寄生している私のような環境でなぜか外にいけん!って人は /etc/resolv.conf がちゃんとあるか確認してみましょう。 私は眠鯖がひけてなかったです。

無事 login できたら、いざ checkout。

kernelを構築しよう

カーネルソースをチェックアウトしてきたら、新しいカーネルを作りましょう。 私は7/24のソースを取ってきやした。

さて、 ここ を見れば完璧でしょう。 とりあえずはGENERICのままコンパイルしました。 お、サスペンドできるぞ。 おまけにサスペンド後、復帰すると時間も合わせてくれます。 すげー。 が、画面は消えません。 ここ とか読んでるとどうやらmq200なるものが関係あるようです。 でconfig fileで

    mqvideo0 at vrip? addr 0x0a000000 size 0x800000 # MQ200 video controller
    hpcfb*          at      mqvideo?
ちゅうのがあるのでコメントアウトします。 ついでに こちら に書いてあるのも実験してみました。 が、そのままではエラーがでたので、適当に試していると。
    options         PCKBD_LAYOUT=KB_JP_SWAPCTRLCAPS
でconfigが通りました。が、makeは通らず、あっさりあきらめ(^^;

とりあえずサスペンド実験。 といってもサスペンドしてどのくらいもつかというのを試しただけですが。 5時間くらいしてから目を覚ますと、まだ生きてました。 8時間後だとお亡くなりになってました。 フル充電かどうか確認してないのでいまいち分かりませんね。 でも、持ち歩けそうな予感。

画面も消えてくれます

ここ でドコモバでサスペンド時にバックライトと画面が消えることが判明。 というわけで1.5ALPHA_2にバージョンアップ。 しかし容量をケチろうとしたため、分けの分からん状態になり (ここ参照) 大苦戦。 結局おとなしく普通にbase.tgzを展開して、ダイナミックリンク版で上書き。 これで90M中の50%くらいを使用することになります。 下手に削るとさらにはまりそうなので、それは後ほど。

でCVSでカーネルソースとってきて、再構築。 いぢる場所は

    pwctl1 at vrgiu? platform NEC_MCR_300 id PWCTL_LCDLIGHT port 45
    pwctl2 at vrgiu? platform NEC_MCR_300 id PWCTL_LCD port 10
    pwctl1 at vrgiu? platform NEC_MCR_3XX id PWCTL_LCDLIGHT port 45
    pwctl2 at vrgiu? platform NEC_MCR_3XX id PWCTL_LCD port 10
にします(その下の方にMCR_FORDOCOMOとかいうのもあるような)。 でコンパイルかけて睡眠。 今朝起きてみると無事終了していて、カーネルをいれかえ再起動。 おお、本当に消えてくれます。 うっしゃー。 これで持ち運ぶ気にもなってきます(そのような所はありませんが)。

今はまだ手動でバックライトの点灯消灯ができず、またmgl使用時には画面が変になる などの問題があるようです。

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

Last-Modified: Fri, 29 Mar 03:09:41 2002 JST.
Yohei Terada (youhe@cherrylain.que.ne.jp)