とりあえずミニキーボード、ミニマウス、ミニHDMIディスプレイを手に入れてインストール作業していたが思ったより面倒。
モニタが小さいと運びやすいが見づらいし、キーボード、マウスも普段使いでないものなので、実装にストレスがかかる。
これから開発を行うにあたって、どのような環境で開発を行うかを選択する必要がある。
用途によって幾つかのケースが考えられるので、今回はこれをまとめた。
操作方法考
まずはじめに思いつくのは、Raspberry Piにマウス、キーボード、ディスプレイをつないで開発を行うことだと思われる。
ただ、開発環境と実行環境が一致している必要はない。
Web開発などは、PCで開発して、サーバにアップロードして実行することが一般的だろう。
組み込みの場合、ホストPCでクロス開発を行って、デバイスで後ほどテストする、ということもよくある開発方法だ。
何より使い慣れている環境で実装を行いたい要望は大きいだろう。
やっぱり普段使いのPCからリモート接続して開発したい。
そうすると、基本的にキーボードとかマウスとか、ディスプレイとかも持ち歩かずに済むしね。
Wifi接続
Raspberry Pi3は有線、無線LANのどちらも付いているので、ケーブルをつないでもいいが、やはり無線だと開発が楽だ。
Wifiの設定は、「Menu->Preferences->Raspberry Pi Configuration」から設定可能。
まず「System」のタブの「Change Password」からパスワードを変えておく。
その後、「Localisation」のタブの「Set Wifi Country」から「JP Japan」を」選択する。
再起動後、画面右上のWifiアイコンからAPを選択して接続する。
ホスト名アクセス
現段階では、IPアドレスでアクセスするしかなく、自動割り当てのDHCPを使っている場合、毎回IPを調べなければいけない。
つまり、毎回本体にディスプレイをつないで確認する必要がある。なんという本末転倒。
これを避ける為、ホスト名アクセスを行う。
ホスト名はRaspbian内に設定されているが、これはあくまでRaspbianがそのホストで認識されたい、と主張しているだけで、ルータに情報がないと意味がない。
ルータにホスト名を設定するには、「Avahi」というソフトを使用する。(Macなんかじゃ「Bonjour」が担っている機能)これはデフォルトで入っているので、ホスト名を設定するだけでいい。
設定方法は「Menu->Preferences->Raspberry Pi Configuration」を選択して、「System」のタブの「Hostname」を設定する。
設定したホストがraspberrypiだとすると、アクセスはraspberrypi.localでアクセスすることが可能になる。
ただ、デフォルトは一部のポートでしか変換しないようになっている為、pingなどでは導通確認ができない。
インターフェイス考
インストールしたRaspbianはLinuxである。
LinuxはCUIとGUIが選択できる。これはXというシステムを立ち上げるか立ち上げないかで切り替えるが、
一般的には動作時のモードであるRun Levelで切り替えを行う。
詳細の説明は省略するが、Run Level 3でCUI、Run Level 5でGUIとするのが一般的か。
このRaspberry Piの用途はなんだろうか?
例えば、サーバーやデバイスの制御基板の役割だったら、とくにGUIはいらない。CUIの方が負荷が少なくていい。
広告媒体のメイン基板だったり、ゲームの基板だったら、GUIは必須。
(Raspberry PiはHDMI出力が売りの一つなので、GUIの需要も高い)
用途によってインターフェイスが変わるので、今回はCUI、GUIそれぞれで便利そうな環境を構築した。
リモート操作:CUIの場合(※GUIを考えている人も読んでね)
Raspberry PiがCUIで動作している場合には、SSHで接続して開発して構わないだろう。
Linuxサーバを作ったことがある人なら慣れている手法かと思われる。
SSHはデフォルトでONになっていた。
(立ち上げサービスの設定は、Wifi設定と同じく「Menu->Preferences->Raspberry Pi Configuration」から可能)
つまり、もう接続できる環境にある。
他PCから
$ ssh pi@raspberrypi.local
などとするとアクセス可能。簡単簡単。リモート操作:GUIの場合
Linuxは古くからリモートデスクトップ環境を意識して開発実装されてきた。
「xrdp」というソフトをインストールすることで、リモートデスクトップ環境が使用できる。
インストールはaptで行う。
$ sudo apt-get install xrdp
デフォルトで起動しているっぽい。
キーボードのレイアウトを日本語に対応したいなら、日本xrdpユーザ会で紹介されている設定を行う。
下記のコマンドで設定可能。
$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini
Avahiでホスト名を周知しているのはSSHのポートのみなので、xrdpのポートもこれで周知する必要がある。
Avahiのホスト名公開の設定は
/etc/avahi/services/
内にxxxxx.serviceというXMLを置くことで設定可能。
xrdp.serviceというファイルを作る。内容はこんな感じ。
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service protocol="ipv4">
<type>_xrdp._tcp</type>
<port>3389</port>
</service>
<service protocol="ipv4">
<type>_xrdp._udp</type>
<port>3350</port>
</service>
</service-group>
重要なのは、xrdpがipv4しか対応していないらしいので、ipv4指定を行う。
これを行わないと、Macからは接続できなかった...
Avahiをリスタートしておこう。コマンドで
$ sudo /etc/init.d/avahi-daemon restart
とすると再起動できる。ログを見て再起動に成功していることを確認。ホストPCのクライアントはなんでもいいんだろうけど、良さげなソフトでの接続例を記載する。
Windowsの場合
Windows7が手元にあるので、これで接続してみます。スタートメニューの「アクセサリ->リモートデスクトップ接続」を起動する。
警告が出るが、手続きを進めるとユーザ名とパスワードを入力するダイアログが表示される。
ユーザ名にpi、パスワードには設定したものを入力して接続すると、Raspbianのデスクトップが表示される。
次回からはホスト名が保存されている為、接続操作が楽になる。
Macの場合
Microsoft Remote DesktopをAppStoreからインストールして実行する。Newボタンを押したらRemote先を追加できる。
PC nameにホスト名を入れ、User nameにはpiを、パスワードも設定したものを入力する。
あとはとりあえず編集なしで。
ダイアログを閉じると自動的に設定が保存される。
「My Desktops」に先ほど追加したホストが追加されているので、これを選択し「Start」ボタンを押すとデスクトップが表示できる。
1024 x 768とかだと、レイテンシも軽減されていい感じ。
(Raspberry Pi自体が若干のレイテンシがあるのもあり多少カクつく)
Sambaのインストール
ホストマシンからRaspberry Piにファイルを転送する方法が何かしら必要になる。
SCPやFTP、SFTPなども使われているようだが、今回は一番シンプルにSambaでファイル共有機能をつける。
インストールは例のごとくaptで行う。
$ sudo apt-get install samba
Sambaの設定は/etc/samba/smb.confを編集して行う。
修正したところのみ記載すると
[homes]
...
browseable = yes
read only = no
create mask = 0775
directory mask = 0775
...
と修正する。まあ、セキュリティ的には微妙だが、パスワード付きなのでとりあえずこれでよしとする。
その後、sambaにユーザpiを追加する。
$ sudo smbpasswd -a pi
パスワードも聞かれるので入力してね。最後にsambaをリスタートする。
$ sudo /etc/init.d/samba restart
ここまでやったら、あとはホストPCで接続する。ゲストではなくpiユーザで接続すると、ファイルの追加、削除などが可能。
上記の設定だったら、piユーザのホームディレクトリ(/home/pi/)につながる。
とりあえず、これでRaspberry Piに電源をつなぐだけで、あとは別PCから開発ができるようになった。
初めて接続するルータに対しては無線設定ができていないので、その際には有線でつないでやると同様にホスト名でアクセス可能。
無線設定を行ったのちにケーブルを外して開発できる。
次回こそ開発について書く予定。
0 件のコメント:
コメントを投稿