Linux-VRの使い方

Linux-VR の起動用のCFメモリカードの作り方から Xサーバの起動方法ま で、Linux-VRの使い方の手順について書きました。Telios シリーズを対 象の機種としてますが、 ほとんどモバイルギアIIなど他の機種でも同じ 手順でよいと思います。 ユーザランドには Linux-MC (川島氏が中心となっ て linuxce-jp メイリングリストで準備中のディストリビューション) を 使いました。
  1. 用意するもの
  2. 起動用CFメモリカードの作成
  3. linuxの起動
  4. パッケージのインストール
  5. Xサーバのインストール
  6. scancode, keycode について(Telios)
  7. シリアル・ポートの制限について(Telios)
  8. セルフ開発環境

用意するもの

カーネルをブートさせるのに最低限必要なもののリストです。

パーティションを切る

LinuxVR起動用のCFメモリカードのパーティションの切り方を説明します。

以下の作業は、母艦側(LinuxをインストールしたPC)で行います。

  1. fdisk 以下の説明で CFメモリカードのデバイスは /dev/hdc にあると仮定 します。(これを間違えると取り返しのつかないことになるので、 ご自分の環境でCFメモリカードがどのデバイスに見えているのか を dmesg 等を見るなどして確実に調べてから作業して下さい)。 以下の例では,j128MbyteのCFメモリカードを使い、 基本領域1に FAT16 で 3Mbyte を確保して、基本領域2に EXT2 で残りすべてのサイズを割り当てました。 後で、FAT16 の領域にカーネルのイメージと ブートローダ(WindowsCEの実行ファイル)、 EXT2 の領域に LinuxVR の ユーザランドをインストールします。
    
    # fdisk /dev/hdc
    
    コマンド (m でヘルプ): p
    
    ディスク /dev/hdc: ヘッド 8, セクタ 32, シリンダ 978
    ユニット = シリンダ数 of 256 * 512 バイト
    
     デバイス ブート   始点      終点  ブロック   ID  システム
    /dev/hdc1             1        25      3184    1  FAT12
    /dev/hdc2            26       978    121984   83  Linux
    
    コマンド (m でヘルプ): d
    領域番号 (1-4): 1
    
    コマンド (m でヘルプ): d
    領域番号 (1-4): 2
    
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本領域 (1-4)
    p
    領域番号 (1-4): 1
    最初 シリンダ (1-978, 初期値 1): 
    初期値 1 を使います
    終点 シリンダ または +サイズ または +サイズM または +サイズK (1-978, 初期値 978): +3M
    
    コマンド (m でヘルプ): t
    領域番号 (1-4): 1
    16進数コード (L コマンドでコードリスト表示): 6
    領域のシステムタイプを 1 から 6 (FAT16) に変更しました
    
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本領域 (1-4)
    p
    領域番号 (1-4): 1
    領域 1 は定義済です。まずは削除を行なってください。
    
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本領域 (1-4)
    p
    領域番号 (1-4): 2
    最初 シリンダ (26-978, 初期値 26): 
    初期値 26 を使います
    終点 シリンダ または +サイズ または +サイズM または +サイズK (26-978, 初期値 978): 
    初期値 978 を使います
    
    コマンド (m でヘルプ): p
    
    ディスク /dev/hdc: ヘッド 8, セクタ 32, シリンダ 978
    ユニット = シリンダ数 of 256 * 512 バイト
    
     デバイス ブート   始点      終点  ブロック   ID  システム
    /dev/hdc1             1        25      3184    6  FAT16
    /dev/hdc2            26       978    121984   83  Linux
    
    コマンド (m でヘルプ): w
    領域テーブルは交換されました!
    
    ioctl() を呼び出して領域テーブルを再読込みします。
    
    警告: DOS 6.x 領域を作成、または変更してしまった場合は、
    fdisk マニュアルページにある追加情報を参照してください。
    ディスクを同期させます。
    
    
  2. FAT16パーティションとLinux(EXT2)のパーティションの mkfs
    
      # mkfs -t msdos /dev/hdc1
      # mkfs -t ext2 -m 0 /dev/hdc2
    
    

ブートローダとカーネルのイメージのインストール

以下の作業は母艦側(LinuxをインストールしたPC)で行います。
  1. CompactFlashカードの FAT16 のパーティションを mount
    
      # mount /dev/hdc1 /mnt
    
    
  2. ブートローダをコピー
    ブートローダはpbsdboot(0911.LZH)を使います。 (一般に LinuxVR で使われているブートローダの cyace.exe が telios では 正常に動作しません。 そのため NetBSD/hpcmips で使われている pbsdboot を使います。)
    
      # lha x 0911.LZH
      0911.exe        - Melted   :  oooooooooooooooooooooo
      # cp 0911.exe /mnt/pbsdboot.exe
    
    
  3. カーネルのイメージをコピー
    カーネルは http://www.sikigami.com/~fuku/linux-telios/にある最新の バイナリを使います。 ここでは vmlinux-telios-011007.tgz を使用しました。 モバイルギアII等のTelios 以外の機種のバイナリは、川島さんのホームページ (http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/)にあるのでそちらを使って下さい。
    
      # tar xzvf vmlinux-telios-011007.tgz
      autoconf-telios.txt
      config-telios.txt
      vmlinux-telios
      # cp vmlinux-telios /mnt/vmlinux
    
    
  4. FAT16パーティションをumountする
      # cd /; sync; umount /mnt
    

ユーザランドの展開

以下の作業は母艦側(LinuxをインストールしたPC)で行います。
  1. CFメモリカードの ext2 のパーティションを mount
    
      # mount /dev/hdc2 /mnt
    
    
  2. miniroot を展開
    ここでは Linux-MC の minirootを使います。 Linux-MC の minirootはhttp://pc1.peanuts.gr.jp/~kei/Linux-MC/Validated/V1.0/Miniroots/miniroot-20010401-chgrp-fixed.tar.bz2からダウンロードできます。
    
      # cd /mnt
      # tar xIpf /usr/xxx/miniroot-20010401-chgrp-fixed.tar.bz2
    
    
    Linux-MC以外の miniroot が以下の場所にあります。
  3. umount
    
      # cd /; sync; umount /mnt
    
    

linuxの起動

  1. Windows CE を起動
  2. 起動用CFメモリカードをTeliosに挿入
  3. 「マイハンドヘルドPC」→「メモリカード」とタップし、 CFメモリカードのフォルダを開く
  4. pbsdbootを起動
  5. pbsdbootのパラメータを以下のように設定
    
    	Kernel name:「¥メモリカート゛¥vmlinux」(すべて半角文字で) に変更
    	Frame Buffer: 「Sharp Telios HC-VJ1C」を選択
    	Options: 「root=/dev/hda2」を入力
    
    
    (Optionsに指定した文字列が、カーネルの起動パラメータです)
  6. 「Boot」ボタンをタップ

パッケージのインストール

redhat系のlinuxと同様に、 rpm コマンドを使ってインストールします。 パッケージのインストールは以下のようにして行います。

  # rpm -ivh --excludedocs パッケージのファイル名(*.rpm)

miniroot-20010401-chgrp-fixed に含まれている rpm コマンドには パッケージの削除がうまく行えないという問題があります。 rpm-3.0.6-vl2mc3.mipsel.rpm でこの問題は解決しています。 まず、rpm を以下のようにして更新しましょう。

  # rpm -Uvh --nodeps --excludedocs Vine-2.1/RPMS/mipsel/rpm-3.0.6-0vl2mc3.mipsel.rpm

他のパッケージは、以下の場所から入手できます。

ネットワークの設定

NE2000互換のLANカードが使えます。 ネットワークの設定は /etc/sysconfig/network-scripts/ifcfg-eh0 を編集して行います。

  # vi /etc/sysconfig/network-scripts/ifcfg-eh0
  # ifup eth0


Xサーバのインストール

  1. パッケージのインストール
    http://pc1.peanuts.gr.jp/~kei/Linux-MC/Incoming/ よりパッケージを入手してインストールします。
    
      # rpm -ivh --excludedocs Vine-2.1/RPMS/mipsel/chkfontpath-1.7.1-1mc1.mipsel.rpm
      # rpm -ivh --excludedocs Others/RPMS/mipsel/XFree86-libs-4.0.1-mc6.mipsel.rpm
      # rpm -ivh --excludedocs Others/RPMS/mipsel/XFree86-XVR-4.0.1-mc6.mipsel.rpm
      # rpm -ivh --excludedocs Others/RPMS/mipsel/XFree86-4.0.1-mc6.mipsel.rpm
      # rpm -ivh --excludedocs Vine-2.1/RPMS/mipsel/kterm-6.2.0-14vl4mc2.mipsel.rpm
    
    
  2. Xサーバ の入れ換え
    必要なら、いくつかの機能拡張を行ったXサーバに入れ換えることができます。 拡張される機能は以下の通り。

    Linux input drivers対応のタッチパネル・ドライバは、今のところ Telios の カーネルしかありません。

    Xサーバの入れ換えは以下のように行います。

    
      # cp XVR-tpev-020109.gz /usr/X11R6/bin
      # cd /usr/X11R6/bin
      # gunzip XVR-tpev-020109.gz
      # chmod a+x XVR-tpev-020109
      # chmod u+s XVR-tpev-020109
      # rm X
      # ln -s XVR-tpev-020109 X
    
    
    Xサーバは XVR-tpev-020109.gz にあります。

  3. Xサーバの起動方法

scancode, keycode について

Telios版カーネルの20011023版以降は、keycode および scancode を IBM互換PCのlinux と日本語106キーボードの組合せで使用したときの コードに合わせました。 この結果、 /usr/lib/kbd/keymaps/i386/ 以下にある keymaps がそのまま使えるようになりました。

起動直後は USキーボードの keymaps になっています。 キートップと 合わせたい場合は、以下のように loadkeys コマンドを実行するか、


    % loadkeys jp106

/etc/sysconfig/keyboard に以下の内容のファイルを作成して 再起動をして下さい。

    KEYTABLE="jp106"

scancode, keycode を変更したことにより、以前の版で使用していた Telios用の keymaps は使用できなくなりました。

Fn キーについて

Telios版カーネルでは、Fnキーにいくつかの機能を割り当てています。 Fnキーに割り当てた機能は以下の表の通りです。

Fnキーに割り当てた機能
キー入力 機能
Fnキー 押しながら Upキー PgUpキーを入力
Fnキー 押しながら Downキー PgDnキーを入力
Fnキー 押しながら Leftキー Homeキーを入力
Fnキー 押しながら Rightキー Endキーを入力
Fnキー 押しながら F1キー F11キーを入力
Fnキー 押しながら F2キー F12キーを入力
Fnキー 押しながら F9キー バックライトを暗く
Fnキー 押しながら F10キー バックライトを明るく


シリアル・ポートの制限について

Telios版カーネルでは、シリアル・ポートは以下のようにスペシャル・デバイスへ割り当てられています。

シリアル・ポートの割り当て
スペシャル・デバイス名 メジャー番号 マイナ番号 シリアル・ポート
/dev/ttyS0 4 64 Telios内蔵のシリアル・ポート
/dev/ttyS2 4 66 PCMCIA のシリアル・カード1
/dev/ttyS3 4 67 PCMCIA のシリアル・カード2

ただし、現在のバージョンではTelios内蔵のシリアル・ポートとPCMCIA のシリアル・カードは同時に使えないという制限があります。どちらを使 用するかは、カーネルの起動パラメータで行います。起動パラメータに 「tx39uart=enable」でTelios内蔵のシリアル・ポートを選択し、 何も指定しない(「tx39uart=」を指定しない)場合はPCMCIA のシリアル・カード が選択されます。



セルフ開発環境


[Linux VR on Telios PAGE]
Last modified: Wed Feb 20 00:47:23 JST 2002