FreeBSD on CASSIOPEIA FIVA MPC-206VL

CASSIOPEIA FIVA MPC-206VL (Crusoe/600MHz, 256MB, 30GB included WindowsME 10GB) で FreeBSD 6.2-RELEASE-p3 と X.Org-6.8.1 をインストールして、モバイルマシンとして活躍中!

年末年始の帰省初日でマザーボードが壊れて、修理に出しました。 ハードディスクの中身が消えることを前提にしていたので、 2005年1月24日にFreeBSD 5.3-RELEASE に更新しました。 実際は、ハードディスクは元のままでした。 CASIO のサポートには満足です。 FIVA後継機を出してくれると嬉しいんだけどな〜

2004年3月1日にFreeBSD 5.2.1-RELEASE に更新しました。 ファイルシステムが UFS2 になったために、 ハードディスク構成を変更しました。 ついでに、WindowsME 領域を 5GB に縮小しました。

2004年3月8日にFreeBSD 5.2.1-RELEASE-p1 に更新しました。 loader.confのリンクを修正しました。

CASSIOPEIA FIVA MPC-206VL(以下 FIVA)は、 標準でモードスイッチによって WindowsME と Midori Linux に切り替えができます。 そこで、このモード切り替えを利用して、 Midori Linux の代わりに FreeBSD を起動するようにしました。 以下、2001年11月25日に bsd-nomads のメーリングリストに送ったメールを若干加筆修正した内容を示します。 ただし、誰もがこの手順で行って正しく動作するかは無保証です。

FreeBSD 5.2.1-RELEASE への更新に伴う追加情報を含めて以下の内容を編集します。

この手順では、Mode A で電源をいれると WindowsME が起動し、 Mode B では FreeBSD が起動するようになります。 FreeBSD の BootMgr は使わなくて済みます。

どうやら、ハードディスクのパーティション 1 が Mode A で起動する区画、 パーティション 3 が Mode B で起動する区画のようです。

  1. 緊急時のために WindowsMe 起動ディスクを作成
    FD 1枚で済みます
  2. WindowsMe の領域を縮める
    fips が使えなかったので、 http://Zeleps.com/ から presizer-1.3.4 を入手。 これを用いて、WindowsMe の領域を 9.50GB にしました。 一応、この後、WindowsMe の起動を確認。

    FreeBSD 5.2.1-RELEASE への更新の際に、presizer を利用し 5GB に縮小。

  3. WindowsMe 起動ディスクでブート
    Windows の fdisk コマンドを用いて FreeBSD 用とハイバネーション用のパーティションを作成します。 実際は、FreeBSD 用領域として拡張 MS-DOS 領域を作成します。 領域サイズは、ハイバネーションサイズ(260MB = 256 + 2 + 2)を引いた値です。 ちなみに、FreeBSD 領域は 18409MB です。 ハイバネーション用は FreeBSD のパーティションエディタで確保します。
  4. BIOS の設定
    OS Switch を Disabled にします。
    また、起動モードは Mode A にしておきます。 ハイバネーション用に Suspend Mode を Save To Disk にします。
  5. FreeBSD のブートフロッピーで起動/導入開始
    FDISK パーティションエディタで次のように設定します。 手で写したので間違いがあるかもしれませんが、 副タイプを間違えず、この構成になればほぼ問題ないようです。
    
    ディスク名:      ad0                           FDISK パーティションエディタ
    ジオメトリ:3648 シリンダ/255 ヘッド/63 セクタ = 計 58605120 セクタ (28615MB)
    
    開始位置   大きさ(ST)   終了位置     名称 タイプ       種別 副タイプ    フラグ
             0         63         62        -      6     unused       0
            63     417627     417689    ad0s3      3    freebsd     165      C
        417690      16065     433754        -      6     unused       0
        433755   19936665   20370419    ad0s1      2        fat      12
      20370420   37704555   58074974    ad0s4      3    freebsd     165
      58074975     530145   58605119    ad0s2      1    unknown     160
    
    

    上記補足。 2番目の領域は Linux が入っていた領域です。 ここに FreeBSD の / パーティションをおけば、Mode B で起動できるかな? と思い、Linux を削除して FreeBSD にしました(期待通りになった!) 3番目の領域は FIVA が予め切ってあった 8MB です。 よく分からなかったので、そのまま残しました。マージ可能かも。 5番目が FreeBSD で使用する領域(その2)です。 最後の領域がハイバネーション用です。副タイプを 160(0xa0) にします。

    FreeBSD 5.2.1-RELEASE では、ad0s1, ad0s2, ad0s3 になりました。 実際には、presizer を利用して Windows 領域を ハイバネーション領域の前に移動させました。 構成的には、MBR, FreeBSD(ad0s3), WindowsME(ad0s1), ハイバネーション領域(ad0s2)の順となっています。

    ブートマネージャは BootMgr を選択します。

    ラベリングは、各自の好みに応じて切ると良いでしょう。 ただし、/ パーティションだけは、上記の ad0s3 を使ってください。 これを間違うと Mode B で起動しません。

    私が行ったラベリングは次のとおりです。

    
      /           203MB  ad0s3 全部
      /dos       9734MB  DOS
      swap          1GB
      /usr       1536MB            (SoftUpdate)
      /var          1GB            (SoftUpdate)
      /usr/local    5GB            (SoftUpdate)
      /home      残り全部(約9.7GB) (SoftUpdate)
    
    
    FreeBSD 5.2.1-RELEASE では次のようにしました。
    
      /          256MB
      /dos         5GB  DOS
      swap         1GB
      /usr         8GB            (SoftUpdate)
      /var         1GB            (SoftUpdate)
      /home      残り全部(約12GB) (SoftUpdate)
    
    

    後は、適当な配布物とメディアを選択してインストールします。 私は、Custom + FTP でインストールしました。 J-DSL Personal (1.5Mbps) で約30分ほどで終了しました。 適宜、インストール後の設定を行いましょう。

  6. インストール終了後の動作確認

    1. BootMgr での起動確認
      BIOS の OS Switch は Disabled のままで、Mode は A で起動。 おなじみの Boot 画面が出るので、WindowsMe を選択。 WindowsMe の起動に成功。 これは必ず実行してください。
    2. WindowsMe の起動ディスクでブート
      fdsik /mbr を実行。FreeBSD の BootMgr を削除。 phdisk 4.32J を使ってハイバネーション領域を再フォーマット。
      phdisk /reformat /partition
    3. WindowsMe の起動を確認
      Mode A で起動して WindowsMe が立ち上がり利用できることを確認します。 FreeBSD の BootMgr の画面は出てこなくなる。
    4. BIOS で OS Switch を Enabled します。
    5. WindowsMe の起動を確認
      Mode A で起動して WindowsMe が立ち上がり利用できることを確認します。
    6. FreeBSD の起動を確認
      Mode B で起動して FreeBSD が立ち上がり利用できることを確認します。
  7. FIVA 向けに FreeBSD をカスタマイズ
    4.9-RELEASE/5.1-RELEASE を導入した場合は、以下の手順は不要かと思います。 参考程度に読んで下さい。
    1. CVSup で 4.4-STABLE のソースを入手する。
    2. ProPolice を適用する。
    3. buildword/installworld をして 4.4-STABLE 環境にする mergemaster を行い、buildkernel/installkernel を実行する。
    4. パッチをあてる
      [bsd-nomads:15492] Re: CASIO FIVA MPC-206 Hivernation OK
      [bsd-nomads:15619] IEEE1394 on FIVA MPC-206
      [bsd-nomads:15954] Re: ALi M5451 likes Trident 4D Wave
      
      上記のメールで紹介されているパッチをあてる

      上記のパッチのいくつかは取り込まれているようなので、必要なコードだけを FreeBSD 5.2.1-RELEASE 用パッチとしてまとめてみました。 微妙に完璧ではないです…。

    5. FIVA 用 kernel を再構築
  8. X を導入
    ports から XFree86-4.3.0 を導入。

FreeBSD 5.2.1-RELEASE に更新後の問題は、 suspend/resume ができなくなったことです。 正しくは、resumue 後に画面が復旧しない現象になります。 残念…。

/boot/loader.conf に「hw.acpi.reset_video="0"」を設定すると X でも suspend/resume 後に画面がちゃんと復旧するようになります。 Shinji R. Yamane さんからメールで教えていただきました。

設定ファイル

FreeBSD 6.2-RELEASE
FreeBSD 6.1-RELEASE
FreeBSD 6.0-RELEASE
FreeBSD 5.4-RELEASE
FreeBSD 5.3-RELEASE
FreeBSD 5.2.1-RELEASE
FreeBSD 5.1-RELEASE
Google