mini2440にXをインストール
このページでは、Debianインストール済みのmini2440ボードにXをインストールします。 また、いくつか必要なパッケージも合わせてインストールします。

念のため、SDカードのバックアップを行い、SDカードが余分にあればコピーを作って、そこで続きをするといいと思います。

mini2440:~# apt-get update もし、なにもアップデートが起こらないときは、/etc/apt/sources.list の中身に deb http://ftp.de.debian.org/debian lenny main があるか確認する。なければ、vi等で追加。 mini2440:~# sudo apt-get install gcc make gdb lv

mini2440でifconfigして得られるアドレスにsshしても、接続は出来てもログインができません。
そこで、sshできるように設定します。

/etc/ssh/sshd_configで一箇所書き換えます。 途中の PermitEmptyPasswords no を PermitEmptyPasswords yes に修正 最終行の UsePAM yes を # UsePAM yes コメントアウト その上で、'/etc/init.d/ssh restart' します。
これで、Teratermなどでsshできるようになります(root/パスワード空欄)。 もちろん、原理的にはセキュリティホールそのものですが、開発用ですし、とくに実害はないでしょう。

mini2440でXを使えるようにします。
インストールと、Xおきまりのconfの設定ですが、タッチパネルの設定に特殊な手間がかかります。 まずパッケージを入れます。 mini2440:~# apt-get install xorg かなり大量にパッケージの依存があるので、それらをまとめてインストール 次に、/etc/X11/xorg.conf を以下の通りに設定します。
(なにかにコピペして、途中のコメント確認の上、成形して挿入。たとえばメモ帳の上で用意してコピー、Teraterm上で、# cat > /etc/X11/xorg.con として、ペースト(Alt-v)。後にCtrl-D。) section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Touchpad0" "CorePointer" Option "OffTime" "10" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" EndSection Section "InputDevice" Identifier "Touchpad0" Driver "evtouch" Option "CorePointer" "true" Option "SendCoreEvents" "true" Option "Device" "/dev/input/event1" Option "DeviceName" "touchscreen" Option "MoveLimit" "10" Option "MinX" "110" Option "MinY" "104" Option "MaxX" "915" Option "MaxY" "911" Option "Calibrate" "1" # ※調整用、後述 Option "ReportingMode" "Raw" Option "Emulate3Buttons" Option "Emulate3Timeout" "50" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" EndSection Section "Monitor" Identifier "Monitor0" ModelName "Monitor Model" DisplaySize 240 320 # DisplaySize 800 480 # 解像度を設定 EndSection Section "Device" Identifier "Card0" Driver "fbdev" Option "fbdev" "/dev/fb0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" EndSection これで、Xを起動してみます。 mini2440:~# X X.Org X Server 1.4.2 Release Date: 11 June 2008 X Protocol Version 11, Revision 0 Build Operating System: Linux Debian (xorg-server 2:1.4.2-10.lenny2) [Ctrl-C] で終了 エラーや警告がでますが、素のXの画面+Xのカーソルが出れば、XのインストールはOKでしょう。
なお、液晶のサイズに応じて、MonitorセクションのDisplaySizeは設定しておいた方がいいと思いますが、さしあたって、無視されているようで、Linuxのfbのサイズに応じて画面サイズが設定されているようです。
Xを起動したところで、Ctrl-Cで強制終了します。

また、'X &'で起動すれば、別のコマンドがいれられるので、'xeyes -display :0.0'ができます。 画面の状態は'xdpyinfo -display :0.0'で確認出来ます。なお、'&'付きで起動したものは、'kill %1'で止めます。 つぎに、タッチパネルを使えるようにします。

まず、パッケージを追加で入れます。 mini2440:~# apt-get install xserver-xorg-input-evtouch X を起動してみると、明らかに対応がおかしいですが、タッチが反応することがわかります。

つぎに、調整します。USBキーボードをUSBコネクタに接続しXの止まった状態で、シリアルのターミナルから mini2440:~# cd /usr/lib/xf86-input-evtouch/ mini2440:/usr/lib/xf86-input-evtouch# cp /usr/share/xf86-input-evtouch/empty_curssor.xbm / mini2440:/usr/lib/xf86-input-evtouch# ./calibrate.sh これで画面に'X'が上下左右中央に9個表示されます(なぜか、empty_cursorを/にコピーしないと動かない仕様)

この状態で

  1. スタイラスペンのようなもので、外周を一周なぞる(max,minチェック、画面に現在値とX,Y方向のmin/maxが表示されている)
  2. USBにつないだキーボードのEnterを押す
  3. よく見ると左上のXが赤くなっている。ので、このXをなるべく正確にタッチ。
  4. 次に上中央に移るので同様に。右までいったら中段、下段。
  5. 最後までタッチするとプログラムが終了する。
このとき、同ディレクトリにout.txtができます。 mini2440:/usr/lib/xf86-input-evtouch# cat out.txt Option "MinX" "69" Option "MinY" "182" Option "MaxX" "964" Option "MaxY" "911" Option "x0" "2" Option "y0" "5" Option "x1" "-1" Option "y1" "-2" Option "x2" "-5" Option "y2" "-2" Option "x3" "-3" Option "y3" "8" Option "x4" "1" Option "y4" "15" Option "x5" "1" Option "y5" "15" Option "x6" "4" Option "y6" "20" Option "x7" "5" Option "y7" "20" Option "x8" "-5" Option "y8" "0" (値を見ると何となく、押しムラがある気がしないでもないですが)
これを/etc/X11/xorg.conf の 「Section "InputDevice"」に修正、追記します。 Section "InputDevice" Identifier "Touchpad0" Driver "evtouch" Option "CorePointer" "true" Option "SendCoreEvents" "true" Option "Device" "/dev/input/event1" Option "DeviceName" "touchscreen" Option "MoveLimit" "10" # Option "MinX" "110" # 最初に入れていたここらはコメントアウト # Option "MinY" "104" # Option "MaxX" "915" # Option "MaxY" "911" Option "Calibrate" "0" # ※1をゼロにする Option "MinX" "69" # 丸ごとコピペする Option "MinY" "182" Option "MaxX" "964" Option "MaxY" "911" Option "x0" "2" Option "y0" "5" Option "x1" "-1" Option "y1" "-2" Option "x2" "-5" Option "y2" "-2" Option "x3" "-3" Option "y3" "8" Option "x4" "1" Option "y4" "15" Option "x5" "1" Option "y5" "15" Option "x6" "4" Option "y6" "20" Option "x7" "5" Option "y7" "20" Option "x8" "-5" Option "y8" "0" Option "ReportingMode" "Raw" Option "Emulate3Buttons" Option "Emulate3Timeout" "50" EndSection (InputDeviceセクションのみ表記、残りは同一)

再びXを起動すると、それらしく、タッチしたところにカーソルがいくと思います。
ずれている場合はx0〜y8を調整してみるといいでしょう。と、いいますか、結局全部再調整しました。
具体的には、x0y0〜x8y8は
 678
 345
 012
の配列です(タッチ順ではない)。一度、x0-y8をゼロにして、それぞれの付近をタッチして、
 タッチよりカーソルが上にずれていたらyを正
 タッチよりカーソルが下にずれていたらyを負
のように、タッチの検出値からどれだけ座標をオフセットするか、の値のようです。
ある程度調整できましたが、どうも、タッチパネルそのものがあまり精度のいものではないようで、局所的に歪む場所もありました。
念のため、保護シートを剥がしてみましたが(ガワを止めている4本のネジを外す必要有り)、さほど状況は変わりませんでした。
export DISPLAY=:0.0
をすればOK以後その端末はOK。
どうも、このXは「最後の1接続(アプリ)」が切れるとXとして再起動するもよう。
そのため、xhostを実行して、それが終わると再起動してしまう。
対策として、
1:xeyesなど適当なソフトを走らせておく
2:xhost +する
3:他のマシンから -display IPaddr:0.0で画面だけつかう
がある。エレガントな方法募集中。
※最近は普通はウインドウマネージャなどが実行されていて、最低限1接続は存在し続けるが、生で使ったほうが負荷はすくない。

これで、Xが入ったので、Xに関連するものも含め、追加でパッケージを入れておきます。

# apt-get install tcl tk # apt-get install python-all python-tk python-imaging-tk なお、ここまで来て、df すると mini2440:/# df -k Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 30416 0 30416 0% /lib/init/rw udev 10240 1612 8628 16% /dev tmpfs 30416 0 30416 0% /dev/shm rootfs 706888 573964 97016 86% / と、かなり多くなっています。ただし、これは /var/cache/apt/archives にあるダウンロードしたパッケージ群による圧迫なので、apt-get cleanでわりと回復します。
mini2440:/# apt-get clean mini2440:/# df -k Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 30416 0 30416 0% /lib/init/rw udev 10240 1612 8628 16% /dev tmpfs 30416 0 30416 0% /dev/shm rootfs 706888 449000 221980 67% /