2012年9月27日木曜日

Raspberry pi (Raspbian “wheezy”) で無線LANはつかえるか

Raspberry pi (Raspbian “wheezy”) にUSB接続タイプの無線LANアダプタを挿してみました。
カーネルヘッダの準備はできているので、
理論上ドライバはなんとかなるはずです。

手元にあるbuffaloのWLI-U2-KG54とpciのGW-US54Mini2のチップは
偶然にも同じrt2x00系なので、
Rt2x00Wiki からドライバが取ってこれます。
ただし、ここに書いてあるとおり
# apt-get install git-core
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git rt2x00
でソースを取ってこようとしても
Cloning into rt2x00...
fatal: The remote end hung up unexpectedly
なるエラーが出てうまくいきません。

そこでLegacy版を使うことにしました。
$ su -
# cd /usr/local
# chmod 777 src
# exit
$ cd /usr/local/src
$ wget http://sourceforge.nUS54Mini2et/projects/rt2400/files/latest/download/release/rt73-legacy-final-cvs/rt73-cvs-daily.tar.gz
$ tar zxf rt73-cvs-daily.tar.gz
$ cd ./rt73-cvs-2009041204/Module
$ make arm
$ su -
# make install
を実行すればうまくいくと思ったのですが、"make arm"実行時に
make[1]: Entering directory `/usr/src/linux'
  Building modules, stage 2.
  MODPOST 0 modules
make[1]: Leaving directory `/usr/src/linux'
rt73.ko failed to build!
make: *** [arm] Error 1
なるエラーが出てこちらもだめです。

で、何の気なしに
# zcat /proc/config.gz > .config
で展開したコンフィグレーションファイルを見ると
それっぽいドライバがモジュールとして生成されているっぽいではないですか。
実際、"/lib/modules/3.2.27+/kernel/drivers/net/wireless/rt2x00/"ディレクトリには
"rt*.ko"ないかにもなカーネルモジュールがいくつもあります。
あー、最初から見ておけばよかった。

そこで無線LANアダプタを挿して
# modprobe rt2x00usb
を実行すると見事"wlan0"インターフェイス(状況により"wlan1"とかかも)が現れます。
# iwlist wlan0 scan
で周辺のアクセスポイントを探してきてくれますし、
# iwconfig wlan0 essid <SSID>
で特定のアクセスポイント(WEPなし)に接続し、
# dhclient wlan0
でIPアドレスを取得して通信可能になります。
私の場合"/etc/network/interfaces"に
auto wlan0
iface wlan0 inet static
wireless-essid <SSID>
address <IPアドレス>
netmask <サブネットマスク>
gateway <ルータのアドレス>
を追加して起動時から固定IPアドレスで運用するようにしています。

2012年9月26日水曜日

Raspberry pi (Raspbian “wheezy”) のカーネルヘッダはどこ?

かなり古い製品なUSB接続タイプの無線LANアダプタを
Raspberry pi(Raspbian “wheezy”)をUSB端子に挿してみたところ、
"lsusb"コマンドの結果から正しく認識できていることは確認できましたが、
やはりデバイスドライバは組み込まれていないようです。
こういう場合ソースからビルドして何とかすることが多いのでやってみることにしました。
それらしいLinuxデバイスドライバのソースを探してきてさてビルドしようとすると、
どうもLinuxのカーネルソースのヘッダがないようです。
デバイスドライバをビルドする場合にはカーネルヘッダは必須となります。

で、カーネルヘッダを探すのですが…ない。
"uname -a"コマンドの結果から現在動いているカーネルのバージョンは"3.1.9+"とわかりましたが、
これのソースのありかがわかりません。
"apt-cache search"コマンドでそれらしい"linux-headers-3.2.0-3-rpi"パッケージが見つかり、
とりあえずインストールしてみましたが当然バージョン違いです。
もしかして、最新のカーネルが"3.2.0-3"なのかなと思い、
# apt-get update
# apt-get dist-upgrade
してみましたが今度は"3.2.27+"へと行き過ぎてしまいました。

この時点でパッケージでどうにかするのはあきらめて生ソースを探し、
https://github.com/raspberrypi/linuxに行き当たりました。
そのページに"Latest commit to the rpi-3.2.27 branch"なるコメントがあり、
gitでこれを取ってくれば何とかなるような気がしてきました。
で、以下を実行しました。
# cd /usr/src
# git clone --depth 1 https://github.com/raspberrypi/linux.git
# ln -s linux linux-3.2.27+
# cd linux
# zcat /proc/config.gz > .config
# ln -s /usr/src/linux /lib/modules/3.2.27+/build
# cd /usr/src/linux
# make oldconfig && make prepare
# make zImage
zImageをビルドしていますが、これはzImageを得るのが目的ではなく、
scriptsディレクトリにあるツール類を使えるようにするためにしたことです。

2012年9月25日火曜日

ポータブル無線LANルータ

最近は出先ではモバイルルータを使うのが半ば常識になってきましたが、
有線LANをつなげるポータブル無線LANルータ(アクセスポイント)も一定の需要があるようです。
というのも、ホテル等で有線LANはあっても無線LANはないというところがあるからです。
昔はモバイルマシンと言えばノートPCだったので長めのLANケーブル中継コネクタを持ち歩けば
有線LANでも大して問題はなかったのですが、
今はスマートフォンやタブレットなど、
無線LANじゃないとつながらない機器もたくさんあり、
ポータブル無線LANルータが復権したのではないかとひそかに分析したりしています。

私個人としては数年前からSkyLink(LAN-PWG/APR)を使っております。
もともとはアメリカ出張にNintendoDS(初代)とマリオカートDSを持っていって
現地で遊ぶことを目的に購入したような記憶がありますが、
後にZaurus SL-C1000でPHS回線をWANとした
自作モバイルルータを実現するためにも役立ってくれました。
もちろん今でも動きます。

ところで、最近家電量販店でLAN-W150N/RSPB
が投売りされているのを発見し、思わず購入してしまいました。
LAN-PWG/APRより優れている点として、11n(2.4GHz)が使えたり、
電源端子がminiUSBで消費電力も小さいのでPC等のUSB端子からでも電源が取りやすいこと、
有線LAN端子がWAN用のほかにLAN用があることがあげられるでしょうか。
ただし欠点もあって、クライアント(無線コンバータ)モードありません。

ということで、以後はポータブルルータとしてはLAN-W150N/RSPBをメインに使い、
LAN-PWG/APRはクライアントモードでRaspberry piの無線LAN化にでも使おうかと考えているところです。

2012年9月24日月曜日

携快電話のジャンク

かなり前のことで恐縮ですが、数年前にジャンク屋さんで
「SOURCENEXT 携快電話 USB-PDCコード Ver 3.00 (SSCPUV302M)」(コードのみ)を見つけました。
値段は覚えていないのですが、
用もないのに私が買ったということは投売り価格だったのでしょう。
その当時すでにmova(2G)からFOMA(3G)に主流が移っていたはずなので、
ただのUSB-シリアル(UART)変換ケーブルぐらいにしか考えていなかったはずです。

ところで、このコードの携帯電話(機器)側端子は
1,3,9番ピンがGNDで黒配線(端子間は赤配線)、
6番ピンがUART TX(PC→携帯電話)で赤配線、
7番ピンがUART RX(携帯電話→PC)で緑配線、
12番ピンがcontrol1で白配線となっています。
12番ピンは携帯電話側の都合で存在するので汎用UARTケーブルとしては不必要です。
コード自身の電源はUSB側から取っているので、
TX,RX,GNDの3ピンを組み込み機器のUARTにつなげば
シリアルコンソールとして使えるはずです。

ただしこのコード、電圧が5Vのみ対応なんですよね。
3.3Vな機器に接続すると機器側を壊す可能性があります。
最近はI/O電圧5V機器って少数派だと思いますし、
実は購入して調査してから役に立ったことがないというオチがついています。
ま、ジャンクなので気にしてもいませんけど。

2012年9月20日木曜日

svnでパスワード保存確認がうざい

私はコマンドラインなsvnを使うことが多いのですが、
svnサーバへのアクセス時にパスワード入力を要求されます。
パスワードを一度保存してしまえば入力を省略はできますが、
セキュリティの観点から言えば保存すべきではありません。
というか、平文で保存されるなんていうのはもってのほかです。

私としてはパスワードを入力することに手間は感じないのですが、
パスワードを入力するときにいちいち「パスワードを保存しますか」と訊かれるのは
うざい事この上ありません。

で、それの解決方法ですが、
"~/.subversion/config"ファイルの[auth]セクションに
store-passwords = no
を加えるだけです。

2012年9月19日水曜日

Raspberry pi (Raspbian “wheezy”) のウェブサーバでGPIOを制御

せっかくのRaspberry piですので電子工作と組み合わせて何かしたいところです。
もっとも簡単なのはGPIOの先に何か(LEDなど)くっつけることでしょう。
で、そのGPIOの制御方法についてはRaspberry pi (Raspbian “wheezy”) のI/Oピンヘッダで書いており、
sshでログインしてコマンド打てば特に何もしなくても可能ですが、
それでは芸がないのでウェブブラウザ経由で制御してみます。

すでにRaspberry pi (Raspbian “wheezy”) をファイルサーバにでhttpサーバを導入しているところからの説明となります。
私は個人的にphpが好き(というかphp3の初期から利用している)なので
# apt-get install php5
でインストールします。
次にお膳立てとして起動スクリプト"/etc/init.d/gpio"を
#!/bin/sh
### BEGIN INIT INFO
# Provides:        gpio
# Required-Start:
# Required-Stop:
# Default-Start:   2 3 4 5
# Default-Stop:
# Short-Description: Init GPIO
### END INIT INFO

case $1 in
        start)
                echo "4" > /sys/class/gpio/export
                echo "out" > /sys/class/gpio/gpio4/direction
                chmod 666 /sys/class/gpio/gpio4/value
                ;;
        stop)
                echo "4" > /sys/class/gpio/unexport
                ;;
        *)
                echo "Usage: $0 {start|stop}"
                exit 2
                ;;
esac
の内容で作成し、
# chmod 755 /etc/init.d/gpio
# /etc/init.d/gpio start
# update-rc.d gpio defaults
を実行します。
で、ウェブコンテンツ"/var/www/gpio4_on.php"を以下の内容で作成します。
<?
system("echo 1 > /sys/class/gpio/gpio4/value");
?>
これでウェブブラウザからhttpでgpio4_on.phpを開くと
GPIO4がHレベルになります。
起動スクリプトとウェブコンテンツを好きにいじれば、もっと複雑なことができます。

2012年9月18日火曜日

Raspberry pi (Raspbian “wheezy”) をファイルサーバに

最近ではすっかり市民権を得たNASの専用製品があるのであまり需要はないかもしれませんが、
Raspberry pi (Raspbian “wheezy”)をファイルサーバー化してみました。

まずはhttpサーバにします。以下を実行します。
$ su -
# apt-get update
# apt-get install apache2
# echo 'ServerName <サーバ名>' >> /etc/apache2/apache2.conf
# /etc/init.d/apache2 start
# update-rc.d apache2 defaults
これで"/var/www/"ディレクトリ以下がウェブサーバで公開されます。
デフォルトで開くコンテンツは"/var/www/index.html"です。

次にhttpサーバをWebDAVに対応させます。
以下を実行します。
# cd /etc/apache2/mods-enabled
# ln -s ../mods-available/dav.load dav.load
# ln -s ../mods-available/dav_fs.conf dav_fs.conf
# ln -s ../mods-available/dav_fs.load dav_fs.load
# ln -s ../mods-available/dav_lock.load dav_lock.load
例えば、"/opt/dav"ディレクトリをストレージとして公開するなら
設定ファイル"/etc/apache2/sites-enabled/000-default"に
Alias /dav "/opt/dav"
<Location /dav>
        DAV on
</Location>
を追加し、
# /etc/init.d/apache2 restart
でapacheを再起動すれば完了です。
より詳しいことは過去記事のこれとかこれとかこれとかをご覧ください。
ただ、WindowsXPのネットワークプレイスからのアクセスの調子がよくなく、
アクセスしようとして失敗することが多いです。
リロードを繰り返していると成功するのですが、原因は把握できていません。

今度はより一般的なWindows共有(samba)サーバを立てます。
# apt-get install samba
を実行すればインストールできます。
そして、"/opt/samba"ディレクトリを"\\<IPアドレス>\sdcard"に割り当てて
誰でも自由に読み書きできるようにするには
# cd /opt
# mkdir samba
# chmod 777 samba
を実行後、設定ファイル"/etc/samba/smb.conf"に
[sdcard]
path=/opt/samba
read only = no
guest ok = yes
を追加すれば完了です。

最後にftpサーバについて。
# apt-get install proftpd
を実行し、途中の選択肢で"standalone"を選択(まあどっちでもいいんですけど)すれば、
リモートからログイン可能になります。

ついでに言えば、sshdが動いていればsftpも当然使えます。

追加情報ですが、Raspberry piにUSB接続のHDD
(USBメモリやUSBアダプタ経由によるSDカードも同様)を挿すと
"/dev/sda1"などとして認識させられます。
オートマウントは働いていない(必要性もない?)ので手動で
# cd /mnt
# mkdir hdd
# mount /dev/sda1 hdd
などと実行すれば"/mnt/hdd"ディレクトリへのアクセスがHDD宛になります。
SDカードだと容量や寿命の面でストレージとしては使いたくないという方は
このHDDを割り当ててやればいいでしょう。

2012年9月17日月曜日

WiiU発表

ついにWiiUが発表されました。
発売日は2012年12月8日だそうです。
注目の価格はまさかの2SKUで、
ベーシックセットが26250円、プレミアムセットが31500円となります。
消費税別であらわすと25000円、30000円というきっちりとした数字になります。
消費税10%化のあかつきには27500円、33000円になるんでしょうね。
私の希望的最安値は20000円でしたが、さすがにそれは無理でしたか。
25000円ならまあ適切だと思います。
衝動買いの範囲ではないので熟考する必要はありますが。

ところでプレミアムとベーシックの違いは
内蔵ストレージ(32GB/8GB)と色(黒/白)、
それにゲームパッドのクレードル/スタンド、本体縦置スタンドがあるかないかです。
個人的にはあまっているUSB-HDDがあるので、
それをつなげれば内蔵ストレージはほぼ使わないことになるので、
8GBのベーシックで十分かとは考えています。
おまけはいらないですし。
あとプレミアムにはドラゴンクエストXベータ版が遊べる特典と
2014年末までデジタルコンテンツの
購入代金の10%を還元するポイントシステムが付いています。
ポイントシステムについて、ダウンロードはWiiのときも殆ど使いませんでしたし、
パッケージ版も1割引は当たり前の世の中ですのでそんなに魅了的でもありません。
まあゲームを2年で5万円分ダウンロードすれば+5000円の元が取れる計算ですので、
この際プレミアムで黒を手に入れるのも悪くはないのかもしれません。
また、プレミアムセットにモンスターハンター3G(HD ver)と
WiiUProコントローラ(単品で5000円)と組み合わせたパッケージが
+7000円で予約販売されますが、私はこれもあまり魅力を感じません。
ちなみにベーシックセットには本体(+ACアダプタ)、
WiiUゲームパッド(+ACアダプタ)、HDMIケーブルが同梱されているそうです。

さて、せっかくですからWiiUについて正式に公表さていることを書いておきましょう。
メインメモリは2GBとびっくりするぐらい大きいです。
PowerPC系のCPUとAMDのGPUとメモリ2GBあれば
Mac OS X(v10.5 Leopard)だって普通に動かせるんじゃないのって気もします。
GPUはGPGPUとしても使え、今流行のヘテロジニアスなシステムになっています。
なお、映像はHDMIで1080pまでの表示が可能です。
メディアは25GBの専用光ディスクとなっていますが、
物理的にはBlu-ray discなんでしょうね。
消費電力は定格で75W、通常で40W程度ということで、
Wiiが45W/20Wぐらいだった思うので、倍増ということにはなります。
WiiU GamePad(単品で12800円)は1つだけ本体に同梱されていますが、
規格的には2台までの同時接続が可能だそうです。
このWiiU GamePadと本体との通信については、
私はゲームの映像はWHDIで片方向で送って、コントローラはBluetoothでつないで、
カメラからの映像はどうやって送るかななどと予想していましたが、
実際にはすべてのデータをまとめて双方向で通信する独自規格だそうです。

あとひとつ気になっていることがあります。
Wiiでダウンロードしたバーチャルコンソールなどは、
WiiUに引っ越しできるとアナウンスがありましたが、
未使用のWiiポイントも引越しできるかどうかです。
何しろ私のWiiには4500ポイントも残っているもので。

2012年9月13日木曜日

iPhone5の発表

2ヶ月前にiPhone4Sユーザとなった私にとって、
特に何か期待していたわけでもなく、
ここに何かを書こうと予定していたわけでもないiPhone5が
ついに正式発表となりました。
が、ちょっと技術的に興味があることが見つかったので書き残しておきます。

iPhone5について感想を一言で言うなら、
サプライズがなかったことがサプライズ、でしょうか。
真偽のほどはともかく、事前にいろいろな情報が洩れていて、
まあほとんどそのままだったりしますし、
個人的に最も気になっていた名称も
微塵もひねりのない、どストレートな"iPhone5"になってますし。

スペックについて私が気になるのは無線規格です。
iPhone5は今までどおり
  • UMTS/HSPA+/DC-HSDPA (850/900/1900/2100MHz)
  • GSM/EDGE (850/900/1800/1900MHz)
に対応しており、これはごく普通です。
しかし、iPhone5には実は3機種あり、先の規格に加えて、
A1428では
  • LTE(バンド4/7)
A1429(CDMA)では
  • CDMA EV-DO Rev.A/Rev.B (800/1900/2100MHz)
  • LTE(バンド1/3/5/13/25)
A1429(GSM)では
  • LTE(バンド1/3/5)
をサポートしています。

LTEに関して言えば、この中で日本で使われている(予定含む)バンドは
バンド1とバンド3です。
バンド1はdocomo、au、ソフトバンクの3キャリアが使っており、
バンド3はe-accessが使っています。
ということで、ソフトバンクから発売されるのはA1429(GSM)でしょう。
万が一docomoが売るとしてもA1429(GSM)でしょうが、多分ないでしょう。
auはCDMAへの対応が必要なのでA1429(CDMA)を売るでしょうが、
多分A1429(GSM)よりも卸値は高くなるのではないでしょうか。
e-accessに関してはLTE的にはiPhone5が使えるものの、
何しろサービスエリアが狭く、組み合わせようにも3G的にはつながらないので、
こちらからの販売はないでしょう。
バンド13/25/4/17は北米で使われるバンドなので、
A1428とA1429(CDMA)をキャリアごとに使い分けるのでしょうが、
A1428は北米でしか流通しないと思われます。

さて、国際ローミングの観点から見ると、
GSMでつながらないのは世界でも日本と韓国だけでしょうから、
どのモデルであろうと利用は可能です。
残りの日本と韓国もUMTSでつながるので、
iPhone5はハードウェアとしてワールドワイドで使える携帯電話といえます。
まあ、CDMAが使えるのでA1429(CDMA)がもっとも強力ですね。
CDMAなら多分、北米や韓国で使えるでしょうし。
LTEの国際ローミングがどれぐらいの地域で使えるのかなぞですが、
あまり期待しないほうがいいのかもしれません。

ところで、日本のLTEではバンド1/3のほかにも混雑解消のため
バンド11/18/19/21/28を今後使用する予定になっていますが、
これら追加されるバンドはほぼガラパゴスなので、
今後もiPhoneがサポートするとは思えません。
周波数対応状況の狭いiPhoneを優先して収容し、
それ以外はiPhoneが対応できない他の周波数によけさせるなんて事が
当たり前になるのかもしれません。

もうひとつ気になっているのは、
香港で販売されるであろうSIMロックフリーなiPhone5が、
日本に持ってきてLTE端末として使えるかということでしょうか。
香港で販売されるのはA1429(GSM)でしょうから、
バンド1のdocomo網には理論上つながるとは思いますが。
まあ誰かが試してレポートしてくれることを期待しておきましょう。
そんなことよりナノSIMの入手をどうするかが問題ですか。
SIM(マイクロSIM)をくりぬいたら使えるのか?

2012年9月12日水曜日

Raspberry pi (Raspbian “wheezy”) のシリアルコンソール

組み込み機器といえば未だシリアルポートが残る世界ではありますが、
PCのRS232Cとは電圧が違うのでそのまま接続するわけにはいきません。
Raspberry piにも当然シリアルポート(UART)が付いており、
Raspbian “wheezy”のデフォルトではシリアルコンソールになっています。
ちなみにデバイス名は"/dev/ttyAMA0"で、ボーレートは115200になっています。
もちろんシリアルコンソールから切り離して別の用途に使うこともできますが、
実際問題UARTで接続しないといけないものって最近ではあまり見当たりません。
外部デバイスをつなげるならSPIとかI2Cのほうがメジャーですからね。

さて、Raspberry piのP1ピンヘッダにはUARTが出ていて、
6番ピン(GND)、8番ピン(TX)、10番ピン(RX)で接続できます。
ただし、I/O電圧は3.3Vなので、それなりのICでRS232Cにブリッジする必要があります。
決して5Vなものをくっつけないように。
私はたまたま持っていたADM3202にRaspberry piのP1の1番ピン(+3.3V)から電源を取って駆動させ、
PCのRS232C端子に接続してみました。
見事シリアルコンソールとして使えます。

まあ普段はネットワーク経由でsshログインすればいいわけで、
私の環境ではあまり使うこともないのですが、
いざと言うときの役に立ち方がハンパないのがシリアルコンソールのいいところですから、
保険の意味もこめてADM3202のようなICを調達しておくことをお勧めします。

2012年9月11日火曜日

Raspberry pi (Raspbian “wheezy”) のI/Oピンヘッダ

Raspberry piには2×13個のI/O用ピンヘッダ(P1)が付いており、
回路図のシート2から仕様が読み取れます。
また、データシートのページ102で各GPIOピンの選択できる役割がわかります。

で、“wheezy”で試したところ、
# echo "4" > /sys/class/gpio/export
を実行することで"/sys/class/gpio/gpio4"ディレクトリが現れ、
# echo "out" > /sys/class/gpio/gpio4/direction
で端子を出力モードにし、
# echo "1" > /sys/class/gpio/gpio4/value
で、GPIO4をHレベルにできます。
当然
# echo "0" > /sys/class/gpio/gpio4/value
でLレベルにできます。
7番ピン(GPIO4)と6番ピン(GND)をテスターで確認して制御ができることが確認できました。
ただしHレベルは3.3Vで、どうもI/O電圧は3.3Vのようなので、
5Vを突っ込まないように注意する必要がありそうです。
なお、
# echo "4" > /sys/class/gpio/unexport
を実行することで"/sys/class/gpio/gpio4"ディレクトリが消えます。

2012年9月10日月曜日

Chromeアプリケーションのマニフェストのバージョン2で外部参照

先日書きましたが、
Chromeアプリケーションのmanifest.jsonがvarsion2となり、
version1が廃止の方向に突き進んでいます。
私はイノベーションは大好きですが、
マネジメントやセキュリティはクソ食らえというタイプなので、
バージョンが上がったことによるセキュリティ強化は気に入りはしませんが、
他に選択肢があるわけでもなく受け入れざるを得ません。

最近ではJavaScriptをより便利に使うためにライブラリを利用するのが一般的ですが、
もっとも多く使われているのはjQueryではないでしょうか。
このライブラリを使う準備は、HTMLファイルに
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
を追加するだけなのですが、
のマニフェストのversion2では
標準では外部スクリプトの参照ができず、
セキュリティ的なお手本としては、HTMLファイルには
<script type="text/javascript" src="jquery.min.js"></script>
を追加して、そのHTMLと同じディレクトリに、
"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"をダウンロードした
ファイル"jquery.min.js"を置くということになります。
jQuerryであれば、アプリケーションのファイルサイズが大きくなることを除けば、
この方法でなんら問題ありませんし、
先のURLの内容が改ざんされてもローカルには影響が及ばず、
むしろふさわしいといえるでしょう。

しかし、ライブラリでは気付かない間にバグ修正やなされることもあれば、
そのホストしているサーバにアクセスすること自体に意義がある場合もあり、
どうしても外部参照をしたい場合があります。
そういう時は以下のように回避できます。

version2では"manifest.json"の先頭は
{
  "manifest_version": 2,
のようになりますが、このときデフォルトでcontent_security_policyは
  "content_security_policy": "script-src 'self'; object-src 'self'",
と設定されます。
そこで、
{
  "manifest_version": 2,
  "content_security_policy": "script-src 'self' http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js; object-src 'self'",
のように書いて、HTMLファイルには
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
と記述すれば、外部のスクリプトも参照できます。

2012年9月6日木曜日

Raspberry pi (Raspbian “wheezy”)のOK LED

Raspberry piにはLEDがいくつか付いており、
まあほとんどイーサネット関係のインジケータなのですが、
その中に"OK"とシルク印刷された謎のLEDがあります。
実はこれ、"wheezy"では
# echo 255 > /sys/class/leds/led0/brightness
を実行すると1ショット(短時間1回だけ)点灯します。
ちょっとしたことのインジケータには使えそうです。

ところで制御可能なLEDには"/sys/class/leds/mmc0::"というのもあるみたいですが、
たたいてもどこも光らないのでLEDは載ってないのでしょう。

2012年9月5日水曜日

Raspberry pi (Raspbian “wheezy”) で固定IP

Raspberry piが届いてからすでに一ヶ月以上経っています。
当時ちょっと使ってみてそのまま放置していましたが、
何か有効活用したいとは常々考えております。
とりあえず固定IPで運用できるようにしたのでここに書き残しておきます。
OSは独断と偏見でRaspbian “wheezy”(以下wheezy)を使います。

さて、以前も書きましたが、
私はRaspberry piはヘッドレス(ディスプレイ、キーボード、マウスなし)で使いたいと考えています。
PC(Windows、Linux)もiPadもある中で、
Raspberry piでGUIで使う意義は、少なくとも今の私にはありません。
電源とネットワークのケーブルを接続して起動し、
ネットワーク経由でアクセスできればそれで問題ありません。

wheezyでは、ざっとしたことはraspi-configコマンドで手軽に設定でき、
この中でsshサーバ機能を有効にできます。
まるで私の希望をかなえるためのようです。
ただしIPアドレスがわからないと外部からログインできません。
標準状態ではIPアドレスはDHCPによる自動取得になっていますが、
ネットワーク機器が山ほどある私の環境では何が割り当てられるか電源を入れるまでわかりません。
それでは困るのでIPアドレスを固定にしてみます。

といっても簡単で、"/etc/network/interfaces"ファイルの
iface eth0 inet dhcp
の行を
iface eth0 inet static
address <割り当てるIPアドレス>
netmask <サブネットマスク>
gateway <デフォルトルータのIPアドレス>
に変更し、 "/etc/resolv.conf"ファイルを
nameserver <DNSサーバのIPアドレス>
とするだけです。

あと蛇足かも知れませんが、
sshでログインするのに自分専用の一般ユーザを作っておきましょう。
rootでログインして
# groupadd <グループ名>
# useradd -m -s /bin/bash -g <グループ名> <ユーザ名>
# passwd <ユーザ名>
を実行すればいいです。
ついでに標準で存在する一般ユーザ"pi"とrootユーザのパスワードは変更しておきましょう。
各ユーザでログインして
$ passwd
で変更できます。
rootでログインしていれば、
$ passwd <一般ユーザ名>
で他アカウントのパスワードの変更できます。

2012年9月4日火曜日

ニューマリオ2のコインラッシュ

Nintendo3DS用ゲームNew スーパーマリオブラザーズ 2には
ゲームモードにコインラッシュというのがあって、
コイン100万枚を集めるには必要不可欠です。
8月29日にNintendo Directで公開されたコインラッシュの
開発者によるお手本映像は一見の価値があります。
テクニック的には自力で見つけられたものがほとんどですが、
1-Aのプレイは圧巻ですね。
最初のステージ終了時に5000枚に達しているので、
2番目と3番目のステージで1500枚ずつぐらい取れれば、
ポールの2倍で30000枚も夢ではありません。
まあ、コンスタントにあれが再現できるとは思えませんが。

ところで私はコインを100万枚集めたあともしばらく遊んでいて、
(5-3,5-2,5-塔)で最高16888枚取得したので、
これでおなかいっぱいになりました。
最近は積んでいた東北大学加齢医学研究所 川島隆太教授監修 ものすごく脳を鍛える5分間の鬼トレーニングで遊んでいます。
悲しいことに鬼計算は3バックから先に進めません…

2012年9月3日月曜日

行政書士試験2012

今年の行政書士試験の申し込み期限がまもなく終了します。
忘れている方は今すぐ行政書士試験研究センターを見てください。

さて、私は毎年恒例で受けていますが、いい加減合格しないとな。
昨年はかなり惜しかったので今年こそは何とかなるような気がしていますが、
果たしてどうなることやら…
とりあえず昨年購入したうかる! 行政書士 総合問題集 2011年度版で学習中です。