Top Page Index Mail Form

Linuxメモ / ASUS Eee PCで eeeXubuntu Linux

eeeXubuntu 8.04をインストール
リカバリーUSBメモリの作成
eeeXubuntuのインストール
最初の設定(お好みでどうぞ)
無線LANの設定
DD(WS002IN)でのダイヤルアップ
AVR開発環境の設定
Bluetoothのシリアル接続
改造して内蔵した USBメモリを /home等にマウントする
改造して内蔵した USBメモリのマウントポイントを固定する

eeeXubunt 8.04をインストール

 Eee PC 701(フラッシュ 4GB)で 7.10を 8.04にオンラインアップデートを試してみたが、案の定、容量不足でできなかった。なのでいっそのこととクリーンインストールしてみた。うちの場合、Eee PCの他に Ubuntu Linuxが動いているパソコンはあるが、Eee PCが起動してくれる外付け CD-ROMドライブは無いので 1GBの USBメモリーからインストールする。その手順を書いておく。(あまり親切な書き方じゃないけど。)

  1. 以前の eeeXubuntu 7.10の isoイメージから mkusbinstall.shを取り出しておく。Linuxの場合、isoイメージをループバックマウントすることでいちいち CD-ROMに焼かなくてもファイルを取り出せる。こんな具合:
    $ sudo mount -t iso9660 -o loop eeexubuntu-7.10.3-desktop-i386.iso /media/cdrom0
  2. eeeXubuntu 8.04の isoイメージをダウンロードする。今回はライブCDの部屋の eeeXubuntu-lcr 8.04 を使わせていただく。感謝。
  3. syslinuxをインストールしておく。$ sudo apt-get install syslinux
  4. eeeXubuntu 8.04をループバックマウントしたディレクトリに移動する。そこで $ sudo どこぞのディレクトリ/mkusbinstall.sh --autodetect を実行する。
  5. 指示に従って USBメモリを挿したり抜いたりして起動可能な USBメモリを作る。
  6. この USBメモリを Eee PCに挿して起動・インストール。これとだいたい同じ。
  7. ソフトウェアのアップデートをしてカーネルモジュールが更新されると無線LANが使えなくなるのでこちらの「Enabling wifi」の手順で madwifiを再コンパイルする。
  8. USキーボードを指定してもなぜか /etc/X11/xorg.conf の Section "InputDevice"の Option "XkbModel" が "jp106" になっているので pc105にする。ついでに Option "XkbOptions" "ctrl:swapcaps" を追加。
  9. あとはこちらを参考にいろいろやる。→Ubuntu 8.04 (Hardy Heron) on the Asus Eee PC
  10. こちらのカーネルを使ってもいい。→Array.org EeePC Ubuntu Repository

 Windowsの場合はループバックマウントはできないんじゃないかと思うので素直に CD-ROMを焼く。syslinuxについては Windows版があるらしいのでそれを使うといいらしい。→1CD LinuxをUSBメモリから起動するには

リカバリーUSBメモリの作成

 注:これはうちの Eee PCが台湾で売られてた Linuxバージョンなので念のため元に戻せるようにメモしたもの。国内バージョンでは違ってるかもしれないのでマニュアルとかを調べてください。

  1. 1GB以上の容量の USBメモリを用意して Windows機にセット
  2. Windows機で Eee PC付属DVDの \Software\BootTool\AsusSetup.exe を実行する
  3. ディスクは USBメモリを指定して「実行」
  4. フォーマットが終わるとダイアログが出る。一旦 USBメモリを抜いて再度差し、「再試行」のボタンを押す。
  5. 作成完了

eeeXubuntuのインストール

 eeeXubuntuを参照のこと。以下はわたしがやった手順による。

  1. イーサネットで DHCPの有効な有線LANにつないでおく。あるいは、Live CDで起動した後、ネットワークを設定してインターネットにアクセスできるようにする
  2. eeeXubuntu Live CDか、あるいはそれを mkusbinstall.sh --autodetect でコピーした USBメモリから起動する
  3. live/eeepc を選んで [Enter]
  4. 画面が暗くなったらマウスを動かしてみる(タッチパッドをいじる)
  5. 起動したらデスクトップの「install」アイコンをダブルクリック
  6. 「Wellcome」では「日本語」を選択。[Alt]を押しながらインストール画面をマウスでドラッグしてウインドウを移動すると下の方のボタンが押せる
  7. 時間やキーボードは適当に選択
  8. 「ディスクの準備」は「手動」でパーテーションを設定する。新しいパーテーションの作成で /dev/sdaを全部 / に割り当てる。スワップパーテーションはあまり意味が無いので作らない方がいいだろう。特に 1GB以上のメモリを実装している場合。スワップパーテーションを作らないと警告が出るがそのまま続ける
  9. 「あなたは誰ですか?」は適当に
  10. 「インストール準備完了」で確認後、[→Install]
  11. ネットにつないでいないと「セキュリティアップデートにアクセスできません」と言われるが、このまま「OK」だろう。後でネットワーク設定ができてからアップデート・マネージャを実行すればいいと思う
  12. インストール完了。「すぐに再起動する」
  13. 画面が乱れた場合は、インストールメディアのアクセスが止まったことを確認してから抜いて、[Enter]を押すと再起動する
  14. インストールした eeeXubuntuが起動する。Usernameとパスワードを入力
  15. デスクトップが表示される。「Battery may be broken」と言われるが無視していい
  16. 「Applications」メニューの「システム」→「Add/Remove」で不要なソフトをアンインストールする。Braseo Disk Burning Applicationとか
  17. 「Applications」メニューの「システム」→「Synaptic パッケージマネージャ」で不要なソフトをアンインストールする。abiwordとか gnumericとかは OpenOfficeを後で入れるなら不要だろう
  18. アップデート・マネージャでソフトウェアのアップデートをしておく。1月26日にやったら 102個のアップデートがあった。orz

最初の設定(お好みでどうぞ)

無線LANの設定

  1. アクセスポイントは WPA or WPA2で暗号化しておく。ただし、SSIDは公開状態にする。WPA/WPA2できちんと暗号化していれば SSIDは公開状態でも特に問題ないと高木先生もおっしゃってる(WEPはセキュリティ的に不可)ので
  2. 有線LANを抜く
  3. xfceパネル(画面下段のバー)のネットワークアイコンをクリック
  4. 手動でネットワークを設定する。パスワード入力
  5. 無線LAN接続をクリックして「プロパティ」
  6. 「ローミングを有効にする」を解除
  7. あとは環境に合わせて SSIDやパスフレーズ等を設定して「OK」
  8. 「無線LAN接続」にチェックを入れて「閉じる」
  9. 以上でつながると思うが、うちの場合、時々接続ミスすることがある。この場合、sudo /etc/init.d/networking restart を実行すると直る
  10. うちの場合、起動時の接続ミスが多いので上記を自動実行させる。/etc/rc.local を以下のようにした
    #!/bin/sh -e
    # コメント省略
    
    sleep 5
    /etc/init.d/networking restart
    
    exit 0
    
  11. 更にレジューム時にも実行させる場合は /etc/acpi/resume.d/ の中に 99-local.sh などという名前のファイルを作る。中身は 上記の rc.local と同様でいいだろう。実行権限をつけるのをお忘れなく。sudo chmod +x /etc/acpi/resume.d/99-local.sh

 →netstatコマンドを使いこなす

日本語環境の追加

→日本語ローカライズ

DD(WS002IN)でのダイヤルアップ

 WILLCOM DD(WS002IN)のドライバは Linuxカーネル 2.6.21以降なら標準で入っているので eeeXubuntuで使用可能。PPPのフロントエンドとしては gnome-pppと kpppがある(他にもあるかも)。kpppの方が使い勝手は良さそうなのだが、kpppは KDE環境をインストールする必要があり、数十MBのディスク容量を消費してしまう。それでとりあえず gnome-pppを使ってみる。

  1. インストールは Synapticパッケージマネージャか、コマンドラインからは sudo apt-get install gnome-ppp でOK
  2. xfceパネル(画面下のバー)のネットワークアプレットを右クリック、「手動でネットワークを設定する」→パスワード入力
  3. 「無線LAN接続」「有線接続」「モデム接続」のチェックを全て外して「閉じる」
  4. gnome-pppを起動する。Applicationsメニューの「ネットワーク」→「GNOME PPP」
  5. 「Username」「Password」「Phone number」を使っているプロバイダの物にセット。必要なら「Remember password」にチェックを入れる。(パスワードは .wvdial.confに平文で格納されるので、できれば毎回入力する方が安全)
  6. 「Setup」ボタンを押す
  7. 「Modem」の「Device」は「/dev/ttyUSB0」、「Speed」は「230400」
    ちなみにこれの場合は「/dev/rfcomm0」にしてあとは同じ
  8. 「Init Strings...」ボタンを押す
  9. 「Init 2」を「AT」のみにする
  10. 「Init 3」を「ATE0V1&D2&C1S0=0」にする
  11. 「Init 4」を「ATX4\V1\X1」にして [Enter]を押してから「閉じる」
  12. 「Options」タブをクリック
  13. 「Check carrier line」のチェックを外す
  14. 「Ignore terminal strings(stupid mode)」にチェックを入れる
  15. 「閉じる」ボタンを押す
  16. 準備完了。「Connect」ボタンを押す
  17. しばらくすると接続するが、gnome-pppのバグらしく、接続したことが表示されずにいつまでも「Connecting...」のまま。それでもインターネットにアクセスが可能になっている。「Log」ボタンを押すと接続ログが表示されるが、「remote IP address …」「primary DNS address …」にそれらしい IPアドレスが設定されていれば通信可能
  18. 接続を切るときは「キャンセル」ボタンを押す

 こちらの情報に従ってわたしがパッチ当て・コンパイルしたバイナリを置いておきます。これを使うと接続成功したらちゃんと接続中表示になります。解凍して /usr/bin ディレクトリにコピーしてください。(実行権限を忘れずに。)

 gnome-ppp(zip)

 ↓勝手パッチバージョンその2。WvDialのエラー検出部分の文字列から --> を除いたので、エラー発生時にちゃんとメッセージが表示されると思います。

 gnome-ppp-yuki(zip)
 gnome-ppp-yuki.diff(差分)

 うちの場合、最初の1回目はなぜか必ず Connecting... で止まります(上記の WvDialエラー検出修正版では Modem not responding. になる)が、キャンセルして再度 Connectボタンを押すと正常につながります。

 上記の ATコマンドは RX420AL(赤耳)の W-SIM.inf から拾ったものです。他の W-SIMだと変更する必要があるかもしれません。


 tips その1。gnome-pppのデフォルト設定ファイルは .wvdial.confですが、例えば $ gnome-ppp --conf test.conf などとして起動すると設定ファイルが .test.conf (先頭にピリオドがつく)になります。複数のプロバイダを使い分ける時によろしいかと。

 tips その2。gnome-pppは通常はダイヤル時のコマンドが ATL0M0DT…… などと音量設定コマンドが追加されます。しかし、モデムのタイプを「ISDN Modem」にすると L0M0 などのよけいなコマンドがつかなくなるのですが、それといっしょに ATDP/ATDT/ATD のコマンドも消えるというバグ(?)があります。というわけでこれにも対応した勝手パッチ。

 gnome-ppp-yuki-20080307.zip
 gnome-ppp-yuki-20080307.diff

 これを使うと ATL0 ATM0 コマンドの無い、最近のケータイ系モデムが使えるようになるんじゃないかと思います。

AVR開発環境の設定

Bluetoothのシリアル接続

 USBタイプの Bluetoothドングルはたいていの物が使えるのではないかと思います(未確認)。ちなみにうちのは lsusbで見てみたら KY-BT100 Bluetooth Adapter と表示されました。

 ↑追記。ダイヤテック(FILCO) Bluetooth USBアダプタ FKBT02も問題なく動作しました。たぶんプラネックス BT-MicroEDR2と同じ物だと思います。

 必要なソフトをインストール。sudo apt-get install bluez-utils bluez-gnome

 接続先の Bluetoothデバイスを起動したら hcitool scan でスキャン。Discovery modeが ONになっているデバイスならこれで見つかるはず。

 /etc/bluetooth/rfcomm.conf に以下を追加。deviceの所はつなげるデバイスの BDアドレス。

rfcomm0 {
	bind yes;
	device xx:xx:xx:xx:xx:xx;
	channel 1;
}

 rfcomm.confを書き換えたら Bluetoothデーモン再起動。sudo /etc/init.d/bluetooth restart

 bluetooth-appletを起動。xfceの Applicationsメニューから「プログラムの実行...」で、bluetooth-applet[Enter] 入力。Bluetoothドングルを USBに差すと xfceパネルに Bluetoothのマークが出るようになる。自動起動するようにするには Applicationsメニューの「設定」→「自動起動アプリケーション」で bluetooth-applet を追加する。

 これでデバイス名 /dev/rfcomm0 でシリアル通信ができる。PINコード設定されている場合はポート使用開始時に自動的にメッセージが出る。それをクリックすると PINコード入力ダイアログになるのでコードを入力すると使えるようになる。この PINコードは自動保存されるので、変更しない限りそれ以降の入力は不要。

改造して内蔵した USBメモリを /home等にマウントする

 注意:今のところサスペンド/リジュームするとそれ以降、アクセス不可になるが解決方法はわからない。モバイル用途には向かないだろうが、サーバや組み込みで使うとかでは使うこともあるかもしれない(未改造であっても取り外ししないのであれば使える)ので書いておく。

 /etc/initramfs-tools/modules に以下を追加。

ehci-hcd
usb_storage
scsi_mod
sd_mod

 /etc/initramfs-tools/initramfs.conf に以下を追加。

WAIT=5

 コマンドを実行。カーネルのバージョンが変わるとその部分も変わるので要確認。(uname -r)

$ sudo mkinitramfs -o /boot/initrd.img-2.6.22-14-generic /lib/modules/2.6.22-14-generic
$ sudo update-grub

 /etc/fstab にマウントポイントを指定する。以下は一例。

UUID=bdf9fb32-3aae-4229-bdd9-34659e1b9b28       /home   ext3    defaults,noatime	0       2

 ちなみに UUIDは blkidコマンドで調べられる。

改造して内蔵した USBメモリのマウントポイントを固定する

 追記。簡単な方法があった。内蔵 USBメモリを ext3でフォーマットした場合、e2lavel コマンドでラベル名をつけてやると、/media/ラベル名 でマウントされる。$ sudo e2label /dev/sdc1 flash などとして実行する。

 起動時にマウントさせておくにはファイルマネージャの設定を変える他に、pmountをインストールしておいてから /etc/rc.local あたりに pmount-hal /dev/sdc1 とか書いておくといいかも。

 以下は参考の為に残しておく。


 改造して内蔵した USBフラッシュメモリはそのままでも /media/disk で使えるが、SD/SDHCカードが入っている場合はそちらが優先されるので /media/disk-1 になってしまう。他の USBメモリが刺さっていたりすると更に数字が増える可能性もある。内蔵した USBメモリを自動で固定のディレクトリにマウントし、かつ、サスペンド・リジュームに対応させてみた。けっこうややこしくなったので、ひょっとしたらもっと簡単な方法があるかもしれないが、何かのヒントになるかもしれないので書いておく。

 /etc/fstab に以下を追加。

UUID=bdf9fb32-3aae-4229-bdd9-34659e1b9b28	/media/uid	ext3	defaults,user,noauto,noatime	0	0

 マウントポイントは /media/uid にしたが、/media以下であれば diskや disk-1以外なら何でもいいと思う。/media/uid はあらかじめ作っておく。ユーザーが読み書きできるように所有者をユーザーにしておいた方がいいだろう。また、この場合は取り外さないのが前提なので USBメモリは ext3 でフォーマットする。

 起動時に自動的にマウントさせるために /etc/init.d/mount-usb-internal-drive というファイルを作る。ファイル名は適当でいい。要実行権限。中身はこんなの。

#!/bin/sh
mount /media/uid
exit 0

 更に /etc/rc2.d と /etc/rc3.d 内に上記ファイルをシンボリックリンクする。リンク名は S29 で始まれば適当でいい。/etc/rc2.d 内で $ sudo ln -s ../init.d/mount-usb-internal-drive S29mount-usb-internal-drive を実行する。

 サスペンド時にアンマウントさせる。/etc/acpi/suspend.d 内に 01-umount-usb-internal-drive.sh などというファイルを作る。01- で始まっていればファイル名は適当でいい。要実行権限。中身は以下の通り。

#!/bin/sh
sync
eject /media/uid
umount -f /media/uid

 リジューム後、数秒すると自動的にマウントされるのでそちらは特にいじらない。

 なお、標準内蔵のSD/SDHCカードはこんなややこしいことをしなくても勝手にマウントされ、サスペンド・リジュームしても問題ない。