ラズベリーパイ おすすめの環境設定編
僭越ながら、筆者が薦めるラズベリーパイの環境設定を紹介。
lhaをインストールしたり、vimを使えるようにしたりといった"筆者の癖"みたいな部分も多々ありますが、
参考になれば幸いです。
使いやすいエディタ "vim" をインストールしよう
viはUnix系OSに標準のエディタとして搭載されているが、カーソルキーが使えないので少々使いにくい。 viを改良したvimをインストールして、viコマンドで起動するように設定しよう。 まずは管理者権限で vim をインストールする。
sudo apt-get install vim
これで vim [ファイル名] でエディタが使えるようになった。 次は vi コマンドで vim が起動するようにエイリアス設定をしよう。
sudo vim ~/.bashrc
.bashrc を開いたら、適当な個所に下記一行を追加する。
alias vi='vim'
これで viコマンド で vimが使えるようになった。
余談だが、筆者はこのvimが大好きだ。CUI環境では最強のエディタだと思う。 WindowsのDOSプロンプトでも使いたいので、私の愛機 Let's Note CF-AX3 (Win8.1)にも、vimをインストールしている。 余談だが、"GOW"というパッケージをWindowsにインストールすると、ls や grep といったLinuxのコマンドが使えるようになる。 DOSコマンドはちょっと…という人は試してもらいたい。
無線LAN子機を省エネモードにしない設定
筆者が使っている無線LAN子機(PLANEX GW-USNano2)で、SSHがつながらなくなったことが複数回あった。色々調べると、省電力モードになったからだと判明。 ドライバ[Realtek 8192cu]の設定ファイルを作成することで回避できるようだ。
まず、下記のファイルを新規作成する。
sudo vim /etc/modprobe.d/8192cu.conf
ファイルの内容を下記のように設定する。
# 省エネモードOFF options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1
保存して再起動すれば、OK。 確認方法は、次のコマンドを打つだけ。
cat /sys/module/8192cu/parameters/rtw_power_mgnt
0:省電力モードOFF / 1:省電力モードON
0になっていれば成功。
これで筆者の環境では、サーバを見失うことがなくなった。ホッ…。
ルータのポートマッピングをせずに外部から接続
LAN内での遠隔操作は簡単だが、サーバを外部に公開するには意外と手間とリスクがかかる。
ハッキングされない為の技術というのは、セキュリティの専門職でない限り、習得することはかなり難しい。
そのセキュリティを考慮したハッキングされにくいネットワーク構築を、簡単にしてくれるのが今回紹介したい 『 Weaved 』 というサービスだ。
これはラズパイに専用プログラムを組み込むことで、WEBブラウザからSSHやHTTP接続を安全に行う為の情報を教えてくれる。なお、この情報は30分毎に無効になる。
筆者の環境でSSHとHTTPについては動作確認済み。
先述したように30分毎にポートが無効になり接続が切れてしまうが、外部から何時間も作業することは稀だし、外部に向けて自分でポート開放するリスクも多少あるので
こういうサービスは嬉しい。なお、このサービスは現在無料で利用可能だ。
まず、『 Weaved 』 のサイトに行き、無料のアカウントを作成する。

アカウントを作成したら、公式サイト上のインストール手順を見ながらセットアップする。基本、コピペで問題なかった。

SSHやHTTPなどが選択できるので、筆者はSSHをセットアップした後、続けてHTTPをセットアップした。 サインインすると、自分の設定一覧が出てくるので、設定名を選択するとSSHであればホストとポート番号が表示され、ターミナル上で接続できる。 ポート番号のみ毎回変更されるが、サーバのアドレスは今後も変更されないので、クライアントに登録しておくと便利だ。 HTTPであれば、そのままブラウザが表示され運用しているWEBページが閲覧できる。
USBメモリを認識させる(マウント)
microSDカード内のソフトウェア資源を外部に定期的にバックアップしたい。 余っている小型のUSBメモリ( ver2.0 / 32GB )をバックアップ用として利用した。 まずは、"usbmount"を管理者権限でインストールする。
sudo apt-get install usbmount
インストール完了後、USBメモリを挿入し df -h コマンドでデバイスを確認する。 "/media/usb0"とあればOK。 あとは cdコマンドでディレクトリを移動し、適当なファイルを書き込んでチェックしておく。
あれ?chownコマンドでファイルの所有者を変更しようとしたら失敗。 調べてみると、FATフォーマットのUSBメモリはchownやchmodが失敗する様子。 メインストレージでchown/chmodして、コピーしてもダメ。うむむむ…。 とりあえず保留にしておく。
データをlzh形式に圧縮・展開できるようにする ( lhaコマンド )
データの圧縮・解凍はcompressやunzipコマンドがあるけれど、 過去のデータ資産にlzh形式に圧縮されたファイルもあるので、lhaコマンドを使えるようにしておきたい。 手順としては、古いソースをダウンロードして解凍し、ソースを編集してコンパイル後インストールする。 まずはパッケージをダウンロードする為にディレクトリを作成し、カレントディレクトリを移動しておく。
sudo mkdir /usr/src/package cd /usr/src/package
引き続き、ソースをダウンロードし解凍してsrcディレクトリに移動する。
sudo wget http://iij.dl.sourceforge.jp/lha/22231/lha-1.14i-ac20050924p1.tar.gz cd /usr/src/ sudo tar xvzf ./package/lha-1.14i-ac20050924p1.tar.gz cd lha-1.14i-ac20050924p1 ./configure -enable-multibyte-filename=utf8 prefix=/usr cd src
続いて、header.cを書き換えるのでバックアップを取り編集する。
sudo cp -p header.c header.c.bak sudo vim header.c
if (from_code == CODE_SJIS && to_code == CODE_UTF8) { for (i = 0; i < len; i++) { /* 追加*/ /* FIXME: provisionally fix for the Mac OS CoreFoundation */ if ((unsigned char)name[i] == LHA_PATHSEP) name[i] = ‘/'; else if ((unsigned char)name[i] == ‘\\’) name[i] = ‘/'; /* 追加 */ } /* 追加 */
続いて、manの文字コードを変換する。EUC→UTF8へ。
cd ../man sudo mv lha.man lha.man.euc iconv -f EUC-JP -t UTF8 lha.man.euc > lha.man sudo mv lha.n lha.n.euc iconv -f EUC-JP -t UTF8 lha.n.euc > lha.n
最後にメイクしてインストールすれば完了!
cd .. sudo make sudo make install
これでlhaコマンドが使えるようになったはず。
# 例 拡張子が.cのファイルを全て test.lzh に圧縮する sudo lha -a test.lzh *.c # 例 test.lzhの内容を閲覧する lha -l test.lzh # 例 test.lzhを解凍する sudo lha -e test.lzh
LAMP (Linux/Apatch/MySQL/PHP) 環境を構築
せっかく省エネのマシンだから、サーバ化して色々してみたい。 今回のラズパイ2からは4コアなのでMySQLも難なく動作する。Wordpressをインストールしてブログを運用するのもいいかもしんない。 まずはApacheのインストール。これでWEBサーバが実行できる。
sudo apt-get install apache2
引き続き、MySQLをインストールする。これは必須ではないがWordpressを利用するなら入れておこう。
sudo apt-get install mysql-server
最初はrootユーザでパスワードが掛かっていないので、下記コマンドで好きなパスワードを割り当てる。
mysqladmin -u root password '**********'
続いて、PHPを利用できる環境をインストール。
sudo apt-get install php5 php5-mysql
とりあえず、これでLAMPの構築は完了。色々とセットアップは必要だけれど最低限動くはずだ。 ちなみに、『 /var/www 』 ディレクトリに"index.html"を作成してLAN内のコンピュータのブラウザから http://ラズパイのIP/ とすれば、ホームページが表示されるのを確認できる。
FTPサーバの設定
FTPが動いていると何かと便利なので、FTPサーバを設定しておく。まずはインストール。
sudo apt-get upgrade && sudo apt-get update sudo apt-get install vsftpd
FTPデーモンの設定ファイルである/etc/vsftpd.confを編集していく。今回はユーザ"pi"が使えるようになる最小限の設定を行う。
sudo cp -p /etc/vsftpd.conf vsftpd.conf.bak sudo vi /etc/vsftpd.conf
変更箇所のみ記載
# anonymousでのFTPログイン anonymous_enable=NO #anonymousユーザを禁止(デフォルトはYES) # ユーザ権限設定 local_enable=YES #ローカルユーザを有効に(デフォルトはコメントアウト) write_enable=YES #書き込み可能に(デフォルトではコメントアウト) local_umask=022 #書き込んだ際のパーミッションのマスク(デフォルトではコメントアウト) # ASCIIモードの設定 ascii_upload_enable=YES #アスキーでアップロードを有効(デフォルトではコメントアウト) ascii_download_enable=YES #アスキーでダウンロードの有効(デフォルトではコメントアウト) # ユーザ権限 chroot_local_user=YES #ローカルユーザの制限(デフォルトではコメントアウト) chroot_list_enable=YES #リストにより制限を行う(デフォルトではコメントアウト) chroot_list_file=/etc/vsftpd.chroot_list #リストのパス
引き続き、ユーザ権限の設定ファイルである /etc/vsftpd.chroot_list を新規作成する。今回はユーザ"pi"を追加。
vi /etc/vsftpd.chroot_list pi
サービスをリスタート。その後、LAN内のPCからFFFTPなどでアクセスしてチェックする。
sudo service vsftpd restart
NTPサーバの設定
時刻合わせの為のntp設定もしておこう。まずは設定ファイルのバックアップ。
sudo vi /etc/ntp.conf
ntp.confを開き、0~3の行をコメントアウトして1行追加する。
###server0~3をコメントアウト #server 0.debian.pool.ntp.org iburst #server 1.debian.pool.ntp.org iburst #server 2.debian.pool.ntp.org iburst #server 3.debian.pool.ntp.org iburst ###代わりに下記を追記 pool ntp.nict.jp iburst
ntpを再起動する。
pi@raspberrypi ~$ sudo service ntp restart
しばらくしてから下記コマンドで同期確認を。
ntpq -p
日本語環境の設定
直接ディスプレイを繋げて、コンソール画面を開くと日本語が文字化けする。 次の設定をすることで日本語環境がONになる。 まずはDebian用の日本語フォントをインストールする。(フリー)
sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
コンソールで日本語を表示できるようにjfbtermをインストールし、日本語入力用にuimをインストールする。
sudo apt-get install jfbterm uim uim-anthy
日本語と英数字の切り替えを Ctrl + Space のショートカットに割り当てる。
vi /usr/share/uim/generic-key-custom.scm
下記のように変更する。<control>の横の空白を忘れずに入力しておくように。
#(define-custom 'generic-on-key '("zenkaku-hankaku" "<Shift> ") # コメントアウト #(define-custom 'generic-off-key '("zenkaku-hankaku" "<Shift> ") # コメントアウト (define-custom 'generic-on-key '("zenkaku-hankaku" "<Control> ") # 追加 (define-custom 'generic-off-key '("zenkaku-hankaku" "<Control> ") # 追加
コンソールをjfbtermに変更し、uim-fepを起動する。
jfbterm uim-fep
これでOKだが、再起動したらもう一度起動しないといけないので、スタートアップさせる。
piでログイン後、"~/.bashrc"の末尾に追加
sudo vi ~/.bashrc #下記コードを末尾に追加する case $TERM in linux) if [ -c /dev/fb0 ]; then jfbterm -q -e uim-fep -u anthy exit fi ;; esac
これで、コンソールにおいては再起動しても日本語化されている筈だ。
C++でMySQLを利用する最低限の設定
MySQLのライブラリをインストールしておく。
sudo apt-get install libmysqlclient-dev
とりあえず、テスト用の下記コードを"db.c"として保存してコンパイルが通れば開発できる環境になっているはず。
#include <stdio.h> #include <stdlib.h> #include <mysql/mysql.h> int main(){ printf("MySQL - OK!!\n"); return 0; }
コンパイル方法は次のようにリンク指定をしないと通らないから気を付けてください。
sudo g++ -o db db.c `mysql_config --cflags` `mysql_config --libs`
ちなみに、` (バッククォート)は、Shift + @ で入力できる。
コンパイルしたものを実行して、"MySQL - OK!!" と表示されれば成功。
./db MySQL - OK!!
-
2015年06月15日 ケンゴン
噂のラズベリーパイ購入!
おいしそ~♪…って食べ物じゃありません(笑) クレジットカードサイズのコンピュータ「Raspberry Pi」の話です。 購入から初期設定までのお話です。
2015年06月01日 ケンゴンおすすめの環境と設定
ラズパイを快適に使うための設定を解説。ディスプレイ設定や無線LAN子機の省エネモード回避などのテクニックから、 おすすめのソフトウェアや目的の一つであるWEBサーバ立ち上げを紹介。