2009/12/07(月)GMA500でcompizを有効にする

Ubuntu9.10においてcompizを使ったほうが、デスクトップ描写が速くなるではないか、という想定の元、GMA500でcompizを有効にする方法をまとめてみました。

参考サイト
Ubuntu wiki - HardwareSupportComponentsVideoCardsPoulsbo
Otro Blog Más - Configurar en Ubuntu 9.10 la tarjeta gráfica Intel GMA500 y Compiz
参考サイトを見ながら、少し変更しつつ自分なりにまとめていきます。すでにGMA500を使えるようにしている場合は以下の「GMA500を使う設定」は読み飛ばします。

GMA500を使う設定

レポジトリを追加します。
$ sudo add-apt-repository ppa:kalon33/ppa
compizを使わない場合は、最小限の4つだけ利用します。
  • psb-kernel-headers
  • psb-kernel-source
  • psb-modules
  • xserver-xorg-video-psb
ちなみにカーネルイメージのバージョンが上がった場合は psb-kernel-headers と psb-kernel-source を入れ直す必要があります。しかし、psb-kernel-headers を削除する場合エラーが出るため、手動で /usr/include/drm-linux-libc を削除する必要があります。xorg.confを作成し、再起動するとpsbドライバが有効になっているはずです(mbookとVAIO Pで確認)

$ sudo vi /etc/X11/xorg.conf
Section "Device"
        Identifier      "GMA500"
        Option "AccelMethod" "EXA"
        Option "DRI" "on"
        Option "MigrationHeuristic" "greedy"
        Option "IgnoreACPI" "yes"
        Driver "psb"
EndSection

Section "DRI"
    Mode    0666
EndSection

compizを有効にする場合

さらに追加で、以下の3つをインストールします。依存関係でいくつかのファイルが追加でインストールされます。
  • poulsbo-driver-2d
  • poulsbo-driver-3d
  • psb-firmware
Synapticパッケージマネージャで「psb」で検索して、それっぽいのを全部入れてしまっても、問題ないと思います。
psb.png



/usr/bin/compiz の WHITELIST を編集して、psbを追加します。
$ sudo vi /usr/bin/compiz
# Driver whitelist
WHITELIST="nvidia intel ati radeon radeonhd i810 fglrx psb"

システム > 設定 > 外観の設定 > 視覚効果で、通常効果か追加効果を選択するとcompizが有効になります。細かい設定は「CompizConfig 設定マネージャ」を使うと便利です。
$ sudo apt-get install compizconfig-settings-manager


compizを有効にした場合と、無効の場合を比較するベンチマークがなさそう(そもそも環境が違う)なので、具体的な数字による比較はできないのですが、少なくとも体感的には向上してるようです。あくまで個人的な感覚なので、実際にパフォーマンスが上がっているかどうかはわかりませんのであしからず。

atomZ系CPUはあまりパワフルではないので、視覚効果を付けまくると逆に重くなるので注意です。

2009/10/12(月)Ubuntu9.04でWILLCOM CORE 3G

UbuntuでWILLCOM CORE 3Gを使うときのメモです。今回はUbuntu9.04のgnome-ppp、NetworkManagerそれぞれで動作確認をしました。

最初にすること

以前にも書きましたが、今回使用したモデムはHX003ZT(ZTE MF633)です。このモデムにはゼロインストール機能というものがついており、そのままUSBに差し込むとUbuntuではストレージとして認識されます。Windowsだととても便利なのですが、Ubuntuではこれをモデムとして認識させる必要があるため、ワンステップ手間が増えてしまいます。

モデムとして認識させる方法は調べた限りでは2通りで、1つが USB_ModeSwitch というツールを使う方法で、もう1つがATコマンド(AT+ZCDRUN=8)で切り替える方法です。

USB_ModeSwitch
USB_ModeSwitch は、USBデバイスが複数の機能を持っているとき切り替えるソフトです。nblogの中の人は試していないので、詳しくは書けないのですが、以下を参考に設定するといいと思います。
Linuxメモ Ubuntu 9.04 (Jaunty Jackalope) - Willcom CORE 3G(HX003ZT)を使う

AT+ZCDRUN=8
ATコマンドで設定する方法ですが、モデムとして認識させたWindowsマシンで、ハイパーターミナルやPuTTYから直接モデムにATコマンドを送りつけます。
ATE
AT+ZCDRUN=8
これでWindows、Ubuntu問わずモデムとして認識されるようになります。戻す(ゼロインストールを有効にする)ときは AT+ZCDRUN=9 です。急にユーティリティやドライバが必要になったりすると困るので、事前に中からファイルを抜き出しておいてMicroSDに入れ、そのMicroSDをHX003ZTに挿しておくと便利だと思います。

どちらの場合でも、USBコネクタにHX003ZTを差し込んだあと、/dev に ttyUSB0~2 まで作成されていれば問題ないと思います。問題ないのですが、なんでデバイスが3つ作成されるのか、調べてもわかりませんでした。

Gnome-ppp編

まずはgnome-pppをインストールします。
$ sudo apt-get install gnome-ppp
WILLCOM CORE 3Gにあわせて設定していきます。
GNOME-PPP
Username: wcm
Password: wcm
Phone number: *99#
Setup
Device: /dev/ttyUSB2
Type: USB Modem (Analogでも接続できる、たぶん関係なし)
Speed: 早め
Init Strings(というかATコマンド)はいまだによくわかっていないので、適当に空白にしています。nblogの中の人はAPNがよく書き換わるので以下のような設定です。
Init Strings
Init2 : ATZ
Init3 : AT+CGDCONT=1,"PPP","a.willcomcore.jp"
ここまでで gnome-ppp の設定は終了です。Connect を押して接続できれば大丈夫です。以降は gnome-ppp の起動に関する設定です。


pppdにroot権限が必要なので、起動時は sudo gnome-ppp と入力しないといけないのですが、コンソールから毎回手入力は面倒なので visudo で設定をします。しかし、visudo なのにエディタがviじゃないので、まずはエディタをviにします。
sudo update-alternatives --config editor
sudo visudo で最後の行に以下を追加
%admin ALL=NOPASSWD: /usr/bin/gnome-ppp
アプリケーションメニューの gnome-ppp を sudo gnome-ppp に変更します。これでメニューから gnome-ppp が起動できるようになります。

NetworkManager編

USBに差し込んだ段階で、ZTEのモデムとして表示されるので、すぐ使えそうですがそうでもありませんでした。これとは関係ないですが、emobileのUSBモデムも VendorID と ProductID を変えて読んでもらえれば、そのままいけると思います。

HX003ZTの VendorID と ProductID はlsusbで確認できます。この場合 VendorID が 19d2、ProductID が 0031です。ちなみにストレージとして認識されている状態だとProductID は 2000になるようです。このblogを書くときに数台のUbuntuマシンに導入して確認したのですが、ONDA Communication S.p.A.は表示されるマシンとされないマシンがありました。
Bus 002 Device 004: ID 19d2:0031 ONDA Communication S.p.A. 

HX003ZT(MF633)の認識
/usr/share/hal/fdi/information/10freedesktop/10-modem.fdi を編集するのですが、すでにZTEのモデム群の設定がありますので、MF632の下に付け加えます。
        <!-- ONDA MF633 HSDPA USB dongle -->
        <match key="@info.parent:usb.product_id" int="0x0031">
          <match key="@info.parent:usb.interface.number" int="0">
            <append key="modem.command_sets" type="strlist">IS-707-A</append>
          </match>
        </match>
udevとNetworkManagerを再起動して、モデムをUSBに差し込むと、NetwokManagerの表示が「モバイルブロードバンド」となるはずです。ちなみに以前のバージョンではhalの情報でモデムを識別していたそうなので、これだけで使えるようになったそうです。しかし今ではもう少し設定が必要なので次にいきます。


NetworkManagerの識別
NetworkManagerがきちんとモデムを識別する必要があります。というわけで確認のため以下のコマンドを入力します。
$ /lib/udev/nm-modem-probe -x /dev/ttyUSB2
ID_NM_MODEM_GSM=1
ID_NM_MODEM_PROBED=1
これはGSMとして識別されている状態です。WILLCOM CORE 3GはCDMAモデムなので、以下のように返ってこないといけません。
ID_NM_MODEM_IS707_A=1
ID_NM_MODEM_PROBED=1

9.10がまもなく出ることですし(直ってるかどうかはわかりませんが)、WILLCOM CORE 3G以外のモデムを使う予定もないので、参考サイトのお二方と同じように /lib/udev/nm-modem-probe を以下のように書き換えることにします(もともとの nm-modem-probe はバックアップしておきます)
#!/bin/sh
echo "ID_NM_MODEM_IS707_A=1"
echo "ID_NM_MODEM_PROBED=1"
もう1度udevとNetworkManagerを再起動して、モデムをUSBに差し込むとNetwokManagerの表示が「自動モバイルブロードバンド(CDMA)接続」に変わるはずです。すでに設定がある人はGSMの設定がベースとなっていると思うので、1回削除して作り直したほうがいいと思います。

システム>設定>ネットワーク接続、で接続先の編集をして、あとは接続ボタンにチェックを入れるだけ。これでNetworkManagerからWILLCOM CORE 3GのHSDPA接続できるようになります。

参考にしたサイト
higuchi.com - Jolicloud 実戦配備 (Ubuntu 9.04 の Network Manager で e-mobile につなぐ)
God is in the details - Ubuntu 9.04 and E-Mobile (D03HW)

2009/09/19(土)OpenPNE(Amazon API)

放置してたので1ヶ月ぐらい前の話です。


ある所でOpenPNEを使ってSNSを運用しているのですが、amazonのレビューが使えないとのこと。運用モードになると基本放置なので、まったく忘れていたのですが、そういえばこんなのを読んだ気が、、、しかもずんぶん以前に、、、

ということで、なんとかすることになりました。もっとも本家OpenPNEはかなり前にamazon対応バージョンが上がっていたので、こちらもバージョンを上げて解決、、、のはずがうまくいきません。おそらくフィルタリングが原因と予想しつつも一応確認してみることにします。方法は外部にproxyを立てて、OpenPNEのアクセスをproxy経由に、、、


sshでトンネルを張って、接続先(nblog.jp)でproxyを立てます。チェックするだけの簡易的なものでいいのでstoneを利用することにします。
ssh -p80 username@nblog.jp -L 8080:localhost:8080
で、トンネルを張って(例によって80を通す)、接続したnblog.jpでstoneを実行。
stone proxy 8080
stoneがないよ、とエラー。apt-getで入れようとするも、Ubuntu9.04だとないらしいので、自分でコンパイルしてインストールすることに。で、コンパイルするとエラーが。。。なんかハマりの予感がしてきましたが、検索して解決法発見で乗りきりました。
Proxyを越えて。
http://blog.yakumo.la/?p=347
OpenPNEはproxyを使ってアクセスできるので、localhostの8080をproxy指定してレビュー機能が使用できるか確認すると、何の問題もなく使うことができました。stoneが流すHTTPリクエストを見ているとどうやら、http://ecs.amazonaws.jp/onca/xml が引っかかってる様子。

というわけで上記のアドレスをフィルタリングから解除するようにしたらproxyを使わなくてもレビュー機能が使えるようになりました。

2009/09/02(水)SSHの自動再接続

SSHの自動再接続のメモ


かなり用途限定なので、個人的メモとして。一応前提条件があって以下の通り。
  1. LAN内にサーバーが置いてあって、外部に公開しない。
  2. でもたまに外からメンテナンスしたい。
  3. サーバーといっても常時起動されているわけではなく、アドレスもDHCPで取得。
  4. USB-HDDだったりするので、物理的にあちこち移動して起動される。
こんなサーバーなので、サーバー自身でLANの外側へSSHコネクションを張ってもらい、それをたどって外側からLAN内のサーバーにアクセスするようにする。当然外側にはSSHを受けるマシンが必要となる。



自動再接続と言ってるが、これを自動接続と再接続で分けて考える。

まずは自動接続の部分。
接続時にパスワードを要求されるといろいろ面倒なので、最初はその辺りの設定から。
参考
sshでパスワードなしにログインするには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/447nonpassh.html
この辺を参考に、よく設定し忘れるのはchmodなので注意。googleでssh パスワードなしとかで検索するとこれでもか、ってぐらい出てくるので適当にいくつか見ておけば問題ないと思う。


次に、起動時のsshの実行だが、これは起動時に実行すればいいので、/etc/rc.localに書く。今回のサーバーはUbuntuデスクトップなので、システム>設定>セッション、に記載。
参考
システム起動時に SSH トンネルを掘らせる
http://d.hatena.ne.jp/kamicup/20090619/1245405583
fとNオプションは使ったことなかったのでmanを見ると、backgroundで実行するのと、コマンドを実行させないようにするためのものらしい。ちなみにpでポートを80に指定しているのは、LAN内から外部に出るとき22が宛先だと出れない設定にしてあるから、という個人的事情な追加設定。これでnblog.jpマシンからlocalhostの10022にsshでアクセスするとLAN内のサーバーに接続される。
/usr/bin/ssh -f -N -p80 username@nblog.jp -R 10022:localhost:22


次に再接続の部分。
同じようなことを考える人はいるもので、いろいろスクリプトを書いてる人がいて苦労しそうかなと思いきや、今はautosshというコマンドで一発解決。使い方は単純でsshを単にautosshに置き換えるだけ。というわけで以下のコマンドを起動時に実行するように設定。
/usr/bin/autossh -f -N -p80 username@nblog.jp -R 10022:localhost:22

これで、LAN内のサーバーを起動すると、起動時に外側にSSHコネクションを張るようになり、また回線が切断されても復帰時に再接続してくれる、とても便利。