ThinkPad X61にDebianをインストール
最近のDebianインストーラは優秀なので空きパーティションにインストールすれば、ちゃんとWindowsとデュアルブートできるようになってる。
あと、ちょっとだけ新しいやつを使いたかったのでwheezyにしてみた。
特別にやったをことを箇条書きしてみる。
- 空きパーティションは Windows から EASEUS Partition Master で作った。このソフト凄すぎる。
- ThinkPadのトラックポイントを使えるようにした。
- 振動時にHDDを保護するようにした。
- バッテリー情報にアクセスできるようにした。
- いくつか便利ソフトを入れたり、キーボート゛ショートカットを設定したり。
ThinkPadのLinux情報はThinkWikiにいろいろ書いてある。
$ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 8 1 $ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 8 2 $ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 8 200 $ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 8 6 7 4 5
振動時のHDD保護とバッテリー情報にアクセス可能に。
振動時保護は find / した後、本体を横にしたときに表示が止まるかどうかで確認できる。
# aptitude install tp-smapi-dkms hdapsd sysfsutils # echo tp_smapi >> /etc/modules # echo hdaps >> /etc/modules # modprobe -a hdaps # /etc/init.d/hdapsd restart # cat >> /etc/sysfs.conf << EOF # For a LiIon battery in a Thinkpad devices/platform/smapi/BAT0/start_charge_thresh = 50 devices/platform/smapi/BAT0/stop_charge_thresh = 80 EOF
start_charge_thresh は バッテリー残量が指定%になったら充電開始させる。
stop_charge_thresh は バッテリー残量が指定%になったら充電終了させる。
これらの情報に関してはここに詳しく書いてある。
出力画面の切り替え(ARandR)とWifiのアクセスポイント接続クライアント(wicd)
# aptitude install arandr wicd
Xfceのキーボードショートカット(音量関係)
設定マネージャ → キーボード → アプリケーションショートカットキー → 追加 → 実行したいコマンドを入力 → 割り当てたいキーを押す
こんなもんですかね。
LinuxでBrotherのプリンタを使う
Brotherのプリンターはネットワーク経由でしかもLinux対応、そしてそこそこ安いということで採用してます。
んで印刷はCUPSを使えばいいじゃんと思ってたけどBrotherのページにある例と今のCUPSの管理画面が違いすぎてとまどった。
んでブラウザからとか印刷できたので、次はPDFと思って xpdf で印刷すると "no daemon" とかでエラーになった。
調べてみると xpdf の印刷は lpr を使うけど、 lpr コマンドは cups-bsd パッケージに入ってるやつじゃないと CUPS で印刷できない罠。うーん、いろいろあるのねぇ。
# aptitude install cups cups-bsd (lprパッケージがインストール済みならば削除していいか聞かれるので Yes)
スプール用ディレクトリが作成されているか一応確認。無ければ以下のようにして作成。
# mkdir -m 2775 /var/spool/lpd # chown lp.lp /var/spool/lpd
Brotherのページからダウンロードしたdebファイルをインストール(lpr用とcups用両方)
# dpkg -i mfc*.deb (64bit環境にインストールする場合は --force-architecture をつける)
http://localhost:631/ にブラウザからアクセス
その他のネットワークプリンター: LPD/LPR ホストまたはプリンター 接続: lpd://(プリンターのIP)/binary_p1
説明と場所は適当に。メーカーはBrother、モデルは使ってる型番のやつを選択。
これで綺麗に印刷できるようになった。
ただ xpdf での印刷は日本語が化けちゃうので xpdf の付属コマンド pdftops を使って
$ pdftops hoge.pdf | lpr
でお茶を濁すことに。
pdftops で生成されるファイルに比べて、 xpdf で生成されるpsファイルはかなり小さい。
フォントが入ってないんじゃないかなぁと。それで化けてる予感。
まぁいいか。
sheevaplugの中身をDebianに置き換える
初期状態ではubuntuが入っているがいい加減古い。
せっかくバージョンアップするなら使い慣れてるDebianにしようと思いやってみた。
さらにこの際なのでフラッシュメモリに特化したファイルシステムUBIFSに変更してみた。
多分DreamPlugでもほぼ同じ手順でできると思う。
参考URL
http://www.plugcomputer.org/plugwiki/index.php/SheevaPlug_Installer
http://www.plugcomputer.org/plugwiki/index.php/Installing_Debian_To_Flash
準備するもの
* sheevaplug 本体
* 作業領域として利用する512M以上のUSBメモリ(SDカードで代用可)
* ローカルネットワークのどこかで稼動しているDHCPサーバとTFTPサーバ
* sheevaplug-installer
以下からダウンロードする。
http://www.plugcomputer.org/index.php/us/resources/downloads?func=select&id=5
* kernel uImage
http://sheeva.with-linux.com/sheeva/ から好きなバージョンのものをダウンロード
ここでは 2.6.38/2.6.38.6/sheeva-2.6.38.6-uImage を選択した。
ついでに sheeva-2.6.38.6-Modules.tar.gz もダウンロードしておくとよい。
* Debian インストーラ
以下から uImage と uInitrd をダウンロードする。
http://d-i.debian.org/daily-images/armel/daily/kirkwood/netboot/marvell/sheevaplug/
TFTPサーバの準備
Debian なら atftpd をインストールして /etc/init.d/atftpd start すればいい。
その場合のルートディレクトリは /srv/tftp/ になる。
TFTPサーバのルートディレクトリに以下を配置
uboot.bin # sheevaplug-installer に付属している uboot/uboot.bin sheeva-2.6.38.6-uImage # ダウンロードした kernel uImage uImage # ダウンロードした Debian インストーラ uInitrd # ダウンロードした Debian インストーラ
U-BOOT入れ替え
Marvell>> setenv ipaddr (sheevaplugのIP) Marvell>> setenv serverip (TFTPサーバのIP) Marvell>> tftpboot 0x0800000 uboot.bin Marvell>> nand erase 0x0 0xa0000 Marvell>> nand write 0x0800000 0x0 0xa0000 Marvell>> reset
ここに限らず tftpboot を実行したとき "Retry count exceeded; staring again"というエラーがでることがあるが、成功するまで何度でも頑張ること。
NANDに書き込まれているカーネルを入れ替える。
Marvell>> setenv ipaddr (sheevaplugのIP) Marvell>> setenv serverip (TFTPサーバのIP) Marvell>> tftpboot 0x2000000 sheeva-2.6.38.6-uImage Marvell>> iminfo Marvell>> nand erase 0x100000 0x400000 Marvell>> nand write 0x2000000 0x100000 0x400000 Marvell>> setenv mainlineLinux yes Marvell>> setenv arcNumber 2097 Marvell>> saveenv
Debianインストーラを実行し、USBメモリにインストール。
USBメモリをsheevaplugに挿入 Marvell>> tftpboot 0x0400000 uImage Marvell>> tftpboot 0x0800000 uInitrd Marvell>> setenv bootargs console=ttyS0,115200 base-installer/initramfs-tools/driver-policy=most Marvell>> bootm 0x0400000 0x0800000
Debianのインストールが始まる。途中でUSBメモリのパーティションの区切り方を聞いてくるが、default のままで行う(LVMは利用しない)。
USBメモリから起動
Marvell>> setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0xa0000@0x0(uboot),0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) root=/dev/sda2 rootwait rw Marvell>> boot
SDカードで行っている場合は /dev/sda2 でなく /dev/mmcblk0p2 になる。
root でログインし NAND のファイルシステムを UBIFS に変更
sheeva login: root root@sheeva:~# dhclient root@sheeva:~# apt-get install mtd-utils root@sheeva:~# ln -fs /proc/mounts /etc/mtab root@sheeva:~# ubiformat /dev/mtd2 -s 512 root@sheeva:~# ubiattach /dev/ubi_ctrl -m 2 root@sheeva:~# ubimkvol /dev/ubi0 -N rootfs -m
USBメモリにインストールした Debian を NAND にコピー
root@sheeva:~# mount -t ubifs ubi0:rootfs /mnt root@sheeva:~# mkdir /tmp/rootfs root@sheeva:~# mount -o bind / /tmp/rootfs/ root@sheeva:~# cd /tmp/rootfs root@sheeva:~# sync root@sheeva:~# cp -a . /mnt/
/mnt/etc/fstab を以下の内容に差し替え
/dev/root / ubifs defaults,noatime,rw 0 0 tmpfs /var/run tmpfs size=1M,rw,nosuid,mode=0755 0 0 tmpfs /var/lock tmpfs size=1M,rw,noexec,nosuid,nodev,mode=1777 0 0 tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
再起動し、sheevaplug の起動オプションを修正
root@sheeva:~# shutdown -r now 再起動して Marvell>> のプロンプトを表示させたらUSBメモリを抜く Marvell>> setenv bootargs 'console=ttyS0,115200 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs' Marvell>> saveenv Marvell>> reset
めでたくDebianが起動したら、後はお好きに〜
2011/06/22追記
openvpnでtunが必要になったので、別マシンにて sheeva-2.6.38.6-Modules.tar.gz から tun.ko を取り出して以下を実行した。
# cp tun.ko /lib/modules/2.6.38.6/kernel/drivers/net/tun.ko # depmod -a # echo tun >> /etc/modules # modprobe tun
他にも必要なモジュールがでてきたら同様にすればいいと思う。
Xfce4.8で再起動とシャットダウンとかを有効にする
4.6から4.8にバージョンアップしたら、ログアウトダイアログで再起動とシャットダウンのボタンが押せなくなってた。
https://wiki.archlinux.org/index.php/Xfce によると power グループに所属しているユーザでないとできないらしい。
powerグループを作ってもいいんだが、せっかくなのでサービス記述ファイルをごにょごにょしてみる。
/etc/polkit-1/localauthority/50-local.d/org.freedesktop.consolekit.pkla
このファイルを作成/編集すると即時反映されます。
[Local restart] Identity=(再起動を許可するグループとかユーザとか) Action=org.freedesktop.consolekit.system.restart ResultAny=yes ResultInactive=no ResultActive=yes [Local shutdown] Identity=(シャットダウンを許可するグループとかユーザとか) Action=org.freedesktop.consolekit.system.stop ResultAny=yes ResultInactive=no ResultActive=yes [Local Users] Identity=(リムーバブルディスクのマウントを許可するグループとかユーザとか) Action=org.freedesktop.udisks.* ResultAny=yes ResultInactive=no ResultActive=yes
サスペンドとハイバネートも設定する場合は Local Users の org.freedesktop.upower なので
[Local Users] Identity=(もろもろ許可するグループとかユーザとか) Action=org.freedesktop.udisks.*;org.freedesktop.upower.* ResultAny=yes ResultInactive=no ResultActive=yes
って感じにしとく。
Identityの書式は
Identity=unix-group:hoge # グループ hoge に許可 Identity=unix-user:hoge # ユーザ hoge に許可 Identity=unix-group:hoge;unix-user:hege # グループ hoge と ユーザ hege に許可
という感じ。複数設定する場合はセミコロンでつなげていけばよい。
adobe-flashpluginが削除できない
古いFLASHプラグインがインストールされてたのに気が付いて削除しようとしたら
adobe-flashplugin を削除しています ... update-alternatives: エラー: iceape-flashplugin の alternatives がありません。 update-alternatives: エラー: iceape-flashplugin の alternatives がありません。 dpkg: adobe-flashplugin の処理中にエラーが発生しました (--purge): サブプロセス インストール済みの pre-removal スクリプト はエラー終了ステータス 2 を返しました
とかでて削除できなかったので以下の内容でスクリプトファイルを作ってrootで実行して解決。
#!/bin/sh TARGETS="midbrowser adobe iceape iceweasel mozilla firefox xulrunner xulrunner-addons" for t in $TARGETS do touch /usr/local/$t.path update-alternatives --install /usr/local/$t.link $t-flashplugin /usr/local/$t.path 50 done aptitude purge adobe-flashplugin for t in $TARGETS do update-alternatives --remove-all $t-flashplugin done
SheevaPlugを導入してみた(その1)
OpenBlockS266が今まで稼動してたけど、USBが使えるやつが欲しくなったのでSheevaPlug Dev Kitを買ってみた。実際に買ったのは12月なのだが時間が無くて放置してたら、今は本家ではGuruPlugなんてのが出てるし、国内ではDev Kitとほとんど同じSheevaPlug+なんてのがでてるのね。まぁいいや。
個人的には http://www.plugcomputer.org/ のトップにあるやつがデザイン的に好きなのだが、これは発売予定あるのかな?
最終的な用途は無線LAN(うちはFONがアクセスポイントになってる)の中継機。
今のところWDS(リピータ機能)では動かせてないけど、テレビとかスカパーチューナからアクセスできればいいのでIPマスカレードすればいいやという結論に。
まず最初にやったこと
何はともあれログインしなきゃ話にならん。
Windowsでやるなら、付属CDにUSBのシリアルコンソール用ドライバが入ってるのでそれをインストールする必要があるが、めんどいのでLinuxマシンにUSBでつなぎシリアルコンソールを起動。
$ screen /dev/usbttyS0 115200 Ubuntu jaunty (development branch) debian ttyS0 debian login: (初期アカウントは root/nosoup4u)
histroy で履歴を見ると
du -h Verizon-2009-01-25-1152.mp4
ってのがあったこれ何だろ?
まずはパスワードを変更し、適当に時刻を合わせる
root@debian:~# passwd root@debian:~# date [MMDDhhmmYY]
再起動してみる
root@debian:~# /sbin/shutdown -r now __ __ _ _ | \/ | __ _ _ ____ _____| | | | |\/| |/ _` | '__\ \ / / _ \ | | | | | | (_| | | \ V / __/ | | |_| |_|\__,_|_| \_/ \___|_|_| _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** MARVELL BOARD: SHEEVA PLUG LE U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CEE80 Soc: 88F6281 A0 (DDR2) CPU running @ 1200Mhz L2 running @ 400Mhz SysClock = 400Mhz , TClock = 200Mhz DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6 DRAM CS[0] base 0x00000000 size 256MB DRAM CS[1] base 0x10000000 size 256MB DRAM Total size 512MB 16bit width Flash: 0 kB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:512 MB CPU : Marvell Feroceon (Rev 1) Streaming disabled Write allocate disabled USB 0: host mode PEX 0: interface detected no Link. Net: egiga0 [PRIME], egiga1 Hit any key to stop autoboot: 0 Marvell>> version U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16 Marvell>>
U-Bootが古すぎるので新しくする
ここに書いてあるとおりにやる。
- TFTPサーバを用意する。うちはDebianなので aptitude install atftpd でサクッとインストール。
- U-Boot 3.4.27+pingtoo binaryをTFTPサーバに u-boot.bin として保存しておく。
- SheevaPlugにてU-Bootを更新する
Marvell>> setenv serverip (TFTPサーバのIPアドレス) Marvell>> setenv ipaddr (SheevaPlugのIPアドレス) Marvell>> bubt u-boot.bin ... **Warning** If U-Boot Endiannes is going to change (LE->BE or BE->LE), Then Env parameters should be overriden.. Override Env parameters? (y/n) n ... Marvell>> reset
せっかくだからカーネルも新しくする
READMEに大抵のことは書いてあります。
- http://sheeva.with-linux.com/sheeva/ から入れたいカーネルの README を SheevaPlug の /root に保存。うちでは2.6.34を採用。
- 保存した README はシェルスクリプトになっているので実行権限をつけて実行する。
- ダウンロードしたカーネルをNANDに保存か/bootに保存するか聞かれるので、SDカードから実行するのでなければNANDに。まぁこれは好み。
- 保存した README の最初のほうに記述されている setenv の行をメモしておく。
- 再起動し U-Boot に入る。そしてメモした setenv を実行し、saveenvする。
続きは明日