カテゴリー別アーカイブ: Raspberry Pi

Raspberry Pi

Raspberry Pi用にPhantomJS 2.1.1をビルドしてみました

Raspberry Pi用にPhantomJS 2.1.1をビルドしてみました。その他のarmhfアーキテクチャのマシンでも動くと思います。

https://www.scaleway.com/ のARM VPSにDebianをインストールしてビルドしました。ビルド方法は ここ に忠実に従いました。

https://github.com/mecrazy/phantomjs-binaries からダウンロードしてください。
( Pull requestが通れば”https://github.com/avaynshtok/phantomjs-binaries”に書き換える予定です )

個人的にはRaspberry Piを各種サーバアプリのテストに使っていてWEBスクレイピングもその一つです。でもPhantomJSのarmhf用のバイナリがWEB上になかったのでビルドしてみました。欲しい方は使ってください。ただし、くれぐれも自己責任でお願いします。

< "PhantomJS"とは? >
PhantomJSとはJavaScript APIによるWEBスクレイピングツールです。PDFやPNGやその他いくつかの形式でWEB画面のキャプチャーが可能です。PhantomJSについてもっと詳しく知りたいという方は http://phantomjs.org/ をチェックしてみてください。

初期のPibow zeroはRaspberry Pi Zero V1.3とサイズが合わない件

Pibow zeroをRaspberry Pi Zero用に購入する方は、必ず両方のバージョンを確認してください!

Raspberry Pi Zero買ったんですよ。
rpi_zero
合わせてZero用のPibowケースも。
pibow_and_rpi_zero

でもサイズ合ってないよコレ!!
pibow_not_fit

Raspberry Pi Zeroのこの突起が邪魔してる。
rpi_zero_connector

Raspberry Pi Zeroをよく見るとね
rpi_zero_version
“V1.3″って何さ!

やっちまったよ。

“pibow zero 1.3″でググったら見つけたし …
pibow_1.3

買い直しましたわ…..

みなさん私と同じようにならないよう気をつけて下さい …..

nginxのリバースプロキシをRaspberry Piで使用

< インストール準備 >
このページの手順を進めるにはDebian wheezyのマシンが必要です。Raspberry Piに特化した内容ではありません。

< なぜRaspberry Piか >
リバースプロキシは単純な機能です。基本的には一般的なバソコンやサーバマシンにとっては軽すぎるタスクと思います。Raspberry Piはパワフルなマシンではありませんが、省エネかつ非常に安く、世界中の誰もが購入可能で、リバースプロキシには十分なマシンです。こういった理由から自分はRaspberry Piをリバースプロキシに使用しています。

< nginxのインストール >
以下のコマンドを実行してください。

apt-get install nginx

以上です。

< 設定ファイルの編集 >
標準設定ファイルを編集します。

nano /etc/nginx/sites-available/default

私の “/etc/nginx/sites-available/default” はこんな感じです。

server {
listen 80;
server_name mydomain.net;

location / {
proxy_pass http://127.0.0.1:8080;
}
}

この設定では “mydomain.net” へのアクセスを同Raspberry Pi内の8080番ポートへ転送しています。

< プロキシ設定ファイルの追加 >
プロキシ設定ファイルを追加します。

nano /etc/nginx/conf.d/proxy.conf

私の “/etc/nginx/conf.d/proxy.conf” はこんな感じです。

# Header
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# Timeout
proxy_connect_timeout 60;
proxy_read_timeout 90;
proxy_send_timeout 60;

# Buffer
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 100 8k;

# Cache
proxy_cache_path /var/cache/nginx/mydomain.net levels=1:2 keys_zone=cache_$
proxy_temp_path /var/cache/nginx/temp;

proxy_cache_valid 200 2h;
proxy_cache_valid 302 2h;
proxy_cache_valid 301 4h;
proxy_cache_valid any 1m;

また、root権限でキャッシュディレクトリを作成します。

mkdir /var/cache/nginx

< nginxの開始 >

service nginx start

どうでしたでしょうか?簡単だったでしょうか?

Raspberry Piでbochsを動かしてみました

< x86 on ARM >
とりあえずDOSをRaspberry Pi上のDebian wheezyで動かしてみます。
( Windows95も動くとは思いますがかなり遅いと思うので )

< “bochs” のインストール >
チョー簡単です。
こんな感じです。

root@myhost:~# apt-get install bochs bochs-x bochs-sdl bochs-svga

< ハードディスクイメージの生成 >
Raspberry Pi上で “bximage” を実行します。
非rootユーザでの実行を推奨します。
bochsを使用する予定のユーザで実行することをお勧めします。
こちらが自分が2GBで作成したときのサンプルです。

$ bximage
========================================================================
                                bximage
                  Disk Image Creation Tool for Bochs
        $Id: bximage.c,v 1.34 2009/04/14 09:45:22 sshwarts Exp $
========================================================================
Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd]
What kind of image should I create?
Please type flat, sparse or growing. [flat]
Enter the hard disk size in megabytes, between 1 and 129023
[10] 
2048
I will create a ‘flat’ hard disk image with
  cyl=4161
  heads=16
  sectors per track=63
  total sectors=4194288
  total size=2047.99 megabytes
What should I name the image?
[c.img] 
msdoshdd.img
Writing: [] Done.
I wrote 2147475456 bytes to msdoshdd.img.
The following line should appear in your bochsrc:
  
ata0-master: type=disk, path=”msdoshdd.img”, mode=flat, cylinders=4161, heads=16, spt=63

“bximage” によると 「 “
ata0-master: type=disk, path=”msdoshdd.img”, mode=flat, cylinders=4161, heads=16, spt=63” を “.bochsrc” に追加してね 」 とのことです。

< MS-DOS用の”.bochsrc”を作成 >
ホームディレクトリへ移動します。
私の場合テキストエディタにはnanoを使用しています。

$ cd /home/username
$ nano .bochsrc

私の”.bochsrc”はこんな感じです。

megs: 64
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
display_library: sdl
ata0-master: type=disk, path=/home/username/msdoshdd.img, mode=flat, cylinders=4161, heads=16, spt=63
ata0-slave: type=cdrom, path=/home/username/MS-DOS-6.22.iso, status=inserted
boot: cdrom, disk
#keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map
log: bochsout.txt
clock: sync=realtime, time0=local

“MS-DOS-6.22.iso”は私が使用したMS-DOSの起動イメージファイルです。これをあなたが持っている他のブータブルISOファイルに書き換えてください。私の場合”.bochsrc”ではマウスは未設定です。 マウスを使用したい場合はググるなりして”.bochsrc”を編集してください。

< VNCのインストール >
HDMIディスプレイを使用する場合はこのステップは関係ありません。
ディスプレイを使用しない場合はRaspberry Pi上のXへリモートログインするためにVNC serverをインストールする必要があります。
以下のコマンドをrootで実行してください。

root@myhost:~# apt-get install tightvncserver

以下のコマンドをbochsを使用するユーザで実行してください。

$ vncserver :1 -geometry 1024×768 -depth 24
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? 
n
New ‘X’ desktop is myhost:1

“:1″ はポート “5901″ を意味し、
“-geometry 1024×768″ は解像度を意味し、
“-depth 24″ は色数のビット指定を意味します。

< bochsの実装 >
Raspberry Pi上のVNC serverに接続します。 ( ディスプレイを使用の場合は “startx” を実行してください )
ターミナルを起動します。 ( 例. LXTerminal )
ターミナルでbochsを実行します。

$ bochs

bochsがときどきこんな感じで確認してくるかもしれません。

A PANIC has occurred.  Do you want to:
  cont       – continue execution
  alwayscont – continue execution, and don’t ask again.
               This affects only PANIC events from device [MEM0 ]
  die        – stop execution now
  abort      – dump core
  debug      – hand control to gdb

私はいつも “alwayscont” と答えています。

< 正直なところ >
Windows95をインストールしようとしましたが、DOSの起動ディスクやWindows3.1のディスクが必要でした。( 自分のWindows95がアップグレードバージョンだったため ) さすがに面倒だったためDOSインストールまででやめてしまったというわけです。