Top Page Index Mail Form |
Eee PC 701(フラッシュ 4GB)で 7.10を 8.04にオンラインアップデートを試してみたが、案の定、容量不足でできなかった。なのでいっそのこととクリーンインストールしてみた。うちの場合、Eee PCの他に Ubuntu Linuxが動いているパソコンはあるが、Eee PCが起動してくれる外付け CD-ROMドライブは無いので 1GBの USBメモリーからインストールする。その手順を書いておく。(あまり親切な書き方じゃないけど。)
Windowsの場合はループバックマウントはできないんじゃないかと思うので素直に CD-ROMを焼く。syslinuxについては Windows版があるらしいのでそれを使うといいらしい。→1CD LinuxをUSBメモリから起動するには
注:これはうちの Eee PCが台湾で売られてた Linuxバージョンなので念のため元に戻せるようにメモしたもの。国内バージョンでは違ってるかもしれないのでマニュアルとかを調べてください。
eeeXubuntuを参照のこと。以下はわたしがやった手順による。
noatimeを追加すると、ファイル Read時にその時間を記録するのを省略します。tmpfsはいわゆる RAMディスクです。テンポラリディレクトリを RAMディスクに設定します。proc /proc proc defaults 0 0 # /dev/sda1 UUID=3ce2e84f-d262-4a22-bd7f-e3e5a4644832 / ext3 defaults,noatime,errors=remount-ro 0 1 /dev/sdc1 /media/cdrom0 udf,iso9660 user,noauto,exec 0 0 tmpfs /tmp tmpfs noatime 0 0 tmpfs /var/tmp tmpfs noatime 0 0
#!/bin/sh -e # コメント省略 sleep 5 /etc/init.d/networking restart exit 0
WILLCOM DD(WS002IN)のドライバは Linuxカーネル 2.6.21以降なら標準で入っているので eeeXubuntuで使用可能。PPPのフロントエンドとしては gnome-pppと kpppがある(他にもあるかも)。kpppの方が使い勝手は良さそうなのだが、kpppは KDE環境をインストールする必要があり、数十MBのディスク容量を消費してしまう。それでとりあえず gnome-pppを使ってみる。
こちらの情報に従ってわたしがパッチ当て・コンパイルしたバイナリを置いておきます。これを使うと接続成功したらちゃんと接続中表示になります。解凍して /usr/bin ディレクトリにコピーしてください。(実行権限を忘れずに。)
↓勝手パッチバージョンその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 コマンドの無い、最近のケータイ系モデムが使えるようになるんじゃないかと思います。
# USBasp(OLD) SUBSYSTEM=="usb_device",SYSFS{idVendor}=="03eb",SYSFS{idProduct}=="c7b4",MODE="0666" # USBasp(NEW) SUBSYSTEM=="usb_device",SYSFS{idVendor}=="16c0",SYSFS{idProduct}=="05dc",MODE="0666" # AVRISP mkII SUBSYSTEM=="usb_device",SYSFS{idVendor}=="03eb",SYSFS{idProduct}=="2104",MODE="0666" # AVR Dragon SUBSYSTEM=="usb_device",SYSFS{idVendor}=="03eb",SYSFS{idProduct}=="2107",MODE="0666" # AVR-Doper(HID) SUBSYSTEM=="usb_device",SYSFS{idVendor}=="16c0",SYSFS{idProduct}=="05df",MODE="0666"
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コードは自動保存されるので、変更しない限りそれ以降の入力は不要。
注意:今のところサスペンド/リジュームするとそれ以降、アクセス不可になるが解決方法はわからない。モバイル用途には向かないだろうが、サーバや組み込みで使うとかでは使うこともあるかもしれない(未改造であっても取り外ししないのであれば使える)ので書いておく。
/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メモリを 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カードはこんなややこしいことをしなくても勝手にマウントされ、サスペンド・リジュームしても問題ない。