Howto

Armadillo-500 FX 液晶モデルでDebian lennyを使う

本 Howto では、Armadillo-500 FX 液晶モデルに Debian GNU/Linux 5.0 lenny (以下、Debian lenny) をインストールし、Window Systemとして X.org を動作させる方法について説明します。本Howto執筆時点(2011年01月現在)では、Armadillo-500 FX 液晶モデルの標準ユーザーランドはDebian GNU/Linux 4.0 etch をベースとしたものとなっていますが、Debian lenny をインストールすることで、比較的新しいソフトウェアを使用できるようになります。

Deiban lenny を インストールした Armadillo-400 液晶モデルで X Window System を使用する方法については「Howto: Armadillo-440 液晶モデル を使用して Debian 上で X.org を使ってみる」を参照してください。

おおまかな手順は以下のようになります。

  1. Debian lenny のインストール
  2. Linuxカーネルのビルド
  3. カーネルパラメータの設定
  4. Debian lennyの基本設定
  5. X Window Systemのインストール
  6. X Window Systemの起動

本 Howto で使用するソフトウェアのバージョンは以下の通りです。

  • 開発環境(作業用PC): ATDE v3 v20100309
  • Linuxカーネル: linux-2.6.26-at13
  • ディストリビューション: Debian GNU/Linux 5.0 (コードネーム「Lenny」)
  • ウィンドウシステム: X.org X11R7.3

1. Debian lenny のインストール

まずは、Armadillo-500 FX内蔵のSSDにDebian GNU/Linuxをインストールします。基本的には、「Armadillo-500 FX 液晶モデル ソフトウェアマニュアル」の「Debian GNU/Linuxを構築する」の手順と同じですが、ダウンロードするファイルが異なります。標準のカーネルとユーザーランドでArmadillo-500 FXを起動し、以下のコマンドを実行してください。

[armadillo ~]# mke2fs -j /dev/sda1
[armadillo ~]# mount /dev/sda1 /mnt/
[armadillo ~]# mkdir tmp
[armadillo ~]# mount -t ramfs ramfs tmp
[armadillo ~]# cd tmp
[armadillo ~]# for N in 1 2 3 4 5 a500fx; do
> wget http://download.atmark-techno.com/armadillo-500-fx/debian/debian-lenny-armel-${N}.tgz;
> gzip -cd debian-lenny-armel-${N}.tgz | (cd /mnt; tar xf -);
> sync;
> rm -f debian-lenny-armel-${N}.tgz;
> done
[armadillo ~]# cd
[armadillo ~]# umount tmp
[armadillo ~]# rmdir tmp
[armadillo ~]# umount /mnt

2. Linuxカーネルのビルド

本 Howto 執筆時点(2011年01月現在)では、Armadillo-500 FX 液晶モデルの標準カーネルは OABI 対応となっています。前章の手順でインストールした Debian lenny は EABI となっていますので、標準カーネルでは動作しません。そこで、EABI 対応のカーネルをビルドします。

作業用PCで、以下のコマンドを実行してください。Armadillo-500 FX 液晶モデルの標準コンフィギュレーションが適用されます。

[PC ~]$ wget https://download.atmark-techno.com/kernel-source/linux-2.6.26-at/linux-2.6.26-at13.tar.gz
[PC ~]$ tar xzvf linux-2.6.26-at13.tar.gz
[PC ~]$ cd linux-2.6.26-at13
[PC ~/linux-2.6.26-at13]$ make armadillo500fx_dev_defconfig 

make menuconfigでコンフィギュレーションを変更し、EABI 対応にします。「Use the ARM EABI to compile the kernel」にチェックを入れてください。

[PC ~/linux-2.6.26-at13]$ make menuconfig
Linux Kernel Configuration
  Kernel Features  --->
    [*] Use the ARM EABI to compile the kernel  <-- チェックを入れる
    [ ]   Allow old ABI binaries to run with this kernel (EXPERIMENTAL) <-- チェックを外す

コンフィギュレーションが完了したら、カーネルをビルドします。以下のコマンドを実行してください。

[PC ~/linux-2.6.26-at13]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- && gzip -c arch/arm/boot/Image > linux.bin.gz

ビルドが完了すると、カーネルイメージ linux-2.6.26-at13/linux.bin.gz が作成されます。これを、Armadilloのフラッシュメモリのカーネル領域に書き込んでください。

3. カーネルパラメータの設定

SSDにインストールしたDebian lennyで起動するように、カーネルパラメータの設定をおこないます。Armadillo-500 FX 液晶モデルのJP4にジャンパソケットを挿しショートした状態で電源を投入し、保守モードで起動してください。

Hermit-Atのプロンプトが表示されたら、以下のコマンドを入力してください。

hermit> setenv console=ttymxc0 root=/dev/sda1 rootwait usb-storage.delay_use=0

JP4のジャンパソケットを外し、再度電源を投入すると、SSDにインストールされたDebian lennyが起動します。

4. Debian lennyの基本設定

Debian lennyが正常に起動すると、以下のようなログインが面がシリアルコンソールに表示されます。ユーザー名: root(パスワード: 無し)でログインしてください。

Debian GNU/Linux 5.0 debian ttymxc0
 
debian login: 

以下のコマンドを実行し、インストールされているパッケージを全てアップデートしてください。

debian:~# apt-get update && apt-get upgrade

5. X Window Systemのインストール

X Window Systemのメタパッケージ(xorg)と、タッチスクリーン入力用のドライバ(xserver-xorg-input-evtouch)をインストールします。以下のコマンドを実行してください。

debian:~# apt-get install xorg xserver-xorg-input-evtouch

Armadillo-500 FX 液晶モデルに合わせて、/etc/X11/xorg.confを修正します。

debian:~# vi /etc/X11/xorg.conf

以下に設定例を示します。ポイントは、ビデオデバイスの設定と、インプットデバイスの設定です。(修正済みのファイルは、Armadillo-500 FX 液晶モデル用 xorg.conf からダウンロードできます。)

Section "ServerFlags"
        Option          "AllowEmptyInput"       "true"
EndSection
 
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "jp106"
        Option          "XkbLayout"     "jp"
EndSection
 
Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "evtouch"
        Option          "Device" "/dev/input/event1"
        Option          "MinX" "140"
        Option          "MinY" "150"
        Option          "MaxX" "3920"
        Option          "MaxY" "3870"
        Option          "MoveLimit" "50"
EndSection
 
Section "Device"
        Identifier      "Configured Video Device"
        Driver          "fbdev"
        Option          "UseFBDev"              "true"
EndSection
 
Section "Monitor"
        Identifier      "Configured Monitor"
EndSection
 
Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
EndSection
 
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
EndSection

ビデオデバイスには、フレームバッファを使用します。Device セクションの Driver に "fbdev" を指定してください。

インプットデバイスには、タッチスクリーンを使用します。タッチスクリーンドライバは、タッチ入力に応じてインプットイベントを発行する作りになっているため、InputDevice セクションの Driver に "evtouch" を指定してください。また、 Device オプションを追加し、タッチスクリーンのデバイスファイルを追加してください。デバイスファイルは、通常 /dev/input/event1 です。(USBキーボードなどを接続すると、デバイスファイル名が変わる可能性がありますので、注意してください。)

また、インプットデバイスとしてマウスの設定を行わなかった場合に発生する以下のエラーを回避するため、ServerFlags セクションを追加し、"AllowEmptyInput" オプションに "true" を指定してください。

6. X Window System の起動

以下のコマンドを実行すると、X Window System が起動します。

debian:~# startx &

X Window System を使用するアプリケーションを起動する場合、DISPLAY環境変数には「:0」を指定してください。

debian:~# DISPLAY=:0 some_app_using_x