宇宙一わかりにくいラズパイ入門(仮称)③
宇宙一わかりにくいラズパイ入門(仮称)②の続きです。
宇宙一わかりにくいラズパイ入門(仮称)③では、ラズパイの環境設定をするよ。ここを手抜きすると後で「あれ?」となり、例えばサービスリリース後の運用フェーズで泣くのは君たちです(にっこり)
宇宙一わかりにくいラズパイ入門(仮称)の趣旨
Raspberry Pi2 Model B に Raspbian(Jessie)をインストールして「IoT×Blockchain までやってしまうよ!」な企画を開始しました。はっきり言って「超絶わかりにくい」ので良質な書籍やブログを読むことをオススメします。皆様の貴重なお時間をムダにするのは本懐ではありません。興味がある方だけ読んでみてください(にっこり)
raspi-config は最後に使おう
ラズパイの環境設定は普通 raspi-config を使いますが、ラズパイを楽しく使うにはまず「 Raspbianの仕組み」を理解してからにしましょう。それでこそ、宇宙一わかりにくい(略)
pi@raspberrypi:~ $ sudo raspi-config
ラズパイにSSHアクセス
無線LAN接続ができているので、HDMIケーブル/USBキーボード/USBマウスは不要です。SSH接続には Windowsユーザーなら Tera Term (テラターム)、Macユーザーはツール不要ですね。
- SSH (Port番号:22)
- User:pi
- Password:raspberry
IPアドレスはどれ?
そうなんです。DHCPでプライベートIPが払いだされているので、IPアドレスがわかりません。でも、大丈夫です。有名なポートスキャンツール Nmap を使って探しましょう。ポートスキャンツールですから悪いことには使わないでプライベート空間(e.g.192.168.0.0/24)でポートスキャンしましょう。そして、君たちが将来「ネットワークエンジニア」になりたいのであれば必須のツールです。
Nmap のダウンロードとインストール
Nmap公式サイトに行って、Windowsユーザなら「Latest release self-installer: nmap-7.01-setup.exe」をダウンロードし、インストールしましょう。後は、DOSプロンプト(cmd.exe)で以下のコマンドを叩けばIPアドレスはわかります。
C:\Users\Foo>nmap -p22 192.168.1.0/24 # -p22 でssh指定 Nmap scan report for 192.168.1.1 Host is up (1.9s latency). PORT STATE SERVICE 22/tcp open ssh MAC Address: xx:xx:xx:xx:xx:xx (Buffalo.inc) # これですね!
Tera Termでラズパイにsshアクセス
ようやく、ここまで来ました。あとは良質なブログからコードをコピペ(カット&ペースト)すれば良いだけです。宇宙一わかりにくい(略)は連載終了してよいかもしれませんね。
無線LAN環境の確認
ログイン後は以下3つをしましょう。覚えておいた方が、のちのち楽になります。
# AP(アクセスポイント)のスキャン pi@raspberrypi:~ $ sudo iwlist wlan0 scan | grep ESSID ESSID:"foo.bar" ESSID:"baz.qux" ESSID:"quux.corge" # 自分のSSIDを確認 pi@raspberrypi:~ $ iwconfig wlan0 | grep ESSID wlan0 IEEE 802.11bgn ESSID:"foo.bar" # インターネット接続確認(DNS確認も兼ねる) pi@raspberrypi:~ $ sudo ping -c 3 www.google.com PING www.google.com (216.58.197.164) 56(84) bytes of data. 64 bytes from nrt12s02-in-f4.1e100.net (216.58.197.164): icmp_seq=1 ttl=54 time=29.5 ms 64 bytes from nrt12s02-in-f4.1e100.net (216.58.197.164): icmp_seq=2 ttl=54 time=29.6 ms 64 bytes from nrt12s02-in-f4.1e100.net (216.58.197.164): icmp_seq=3 ttl=54 time=29.9 ms
タイムゾーンの設定
pi@raspberrypi:~ $ tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) coord - I want to use geographical coordinates. 12) TZ - I want to specify the time zone using the Posix TZ format. # 日本はアジアですから[5] Please select a country whose clocks agree with yours. 1) Afghanistan 18) Israel 35) Palestine 2) Armenia 19) Japan 36) Philippines 3) Azerbaijan 20) Jordan 37) Qatar 4) Bahrain 21) Kazakhstan 38) Russia 5) Bangladesh 22) Korea (North) 39) Saudi Arabia 6) Bhutan 23) Korea (South) 40) Singapore 7) Brunei 24) Kuwait 41) Sri Lanka 8) Cambodia 25) Kyrgyzstan 42) Syria 9) China 26) Laos 43) Taiwan 10) Cyprus 27) Lebanon 44) Tajikistan 11) East Timor 28) Macau 45) Thailand 12) Georgia 29) Malaysia 46) Turkmenistan 13) Hong Kong 30) Mongolia 47) United Arab Emirates 14) India 31) Myanmar (Burma) 48) Uzbekistan 15) Indonesia 32) Nepal 49) Vietnam 16) Iran 33) Oman 50) Yemen 17) Iraq 34) Pakistan # Japanは[19] The following information has been given: Japan Therefore TZ='Asia/Tokyo' will be used. Local time is now: Tue Mar 1 09:56:40 JST 2016. Universal Time is now: Tue Mar 1 00:56:40 UTC 2016. Is the above information OK? 1) Yes 2) No # [1]を押しましょう。 You can make this change permanent for yourself by appending the line TZ='Asia/Tokyo'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts:
# タイムゾーンの確認
pi@raspberrypi:~ $ cat /etc/timezone
Asia/Tokyo
しっかり、JST(日本標準時)のタイムゾーンになっていますね(にっこり)
時刻同期の設定
日本標準時を決定・維持している情報通信研究機構(NICT)、IX(インターネット・エクスチェンジ)を運用しているインターネットマルチフィード(MFEED)の時刻情報提供サービス for Publicを使いましょう。
まずは現設定を確認
pi@raspberrypi:~ $ date Tue Mar 1 10:48:57 JST 2016 # だいたい合っている。 pi@raspberrypi:~ $ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +ec2-54-64-6-78. 133.243.238.164 2 u 319 512 277 32.864 7.265 25.834 +balthasar.gimas 210.173.160.57 3 u 269 512 377 31.494 7.909 24.778 *v157-7-235-92.z 103.1.106.69 2 u 82 512 377 31.803 5.876 28.480 +next.kkyy.me 133.243.238.244 2 u 151 512 377 31.020 6.685 24.002 # 左に「*」がついているNTPサーバが同期先 pi@raspberrypi:~ $ sudo netstat -natup | grep ntpd udp 0 0 192.168.1.1:123 0.0.0.0:* 523/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 523/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 523/ntpd udp6 0 0 fe80::d90e:b213:b35:123 :::* 523/ntpd udp6 0 0 ::1:123 :::* 523/ntpd udp6 0 0 :::123 :::* 523/ntpd # udp6 はIPv6ですね
/etc/ntp.conf の設定
pi@raspberrypi:~ $ sudo cp -p /etc/ntp.conf /etc/ntp.conf.old # コピー忘れずに pi@raspberrypi:~ $ sudo nano /etc/ntp.conf #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 # コメントアウト server ntp.nict.jp # 追加 server ntp.jst.mfeed.ad.jp # 追加 [Ctrl] + [o] で上書き、[Ctrl] + [x] で終了 pi@raspberrypi:~$ diff /etc/ntp.conf /etc/ntp.conf.old 21,24c21,24 < #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 --- > 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 26,27d25 < server ntp.nict.jp < server ntp.jst.mfeed.ad.jp
ntpd(NTPデーモン)は自動起動がoffになっているので、別章で書きますね。
ラズパイの再起動と確認
pi@raspberrypi:~ $ sudo reboot pi@raspberrypi:~ $ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== ntp-a2.nict.go. .NICT. 1 u 14 64 1 31.429 0.003 0.381 *ntp3.jst.mfeed. 133.243.236.17 2 u 48 64 1 30.173 -0.114 0.203 # 左に「*」がついているのがNTPサーバが同期先
ロケールの設定
日本語を使いたいので設定しましょう。
pi@raspberrypi:~ $ cat /etc/locale.gen | grep -v '#' en_US.UTF-8 UTF-8 # この1行しか有効になっていないですね。 pi@raspberrypi:~ $ sudo cp -p /etc/locale.gen /etc/locale.gen.old pi@raspberrypi:~ $ sudo nano /etc/locale.gen ja_JP.UTF-8 UTF-8 # アンコメント [Ctrl] + [o] で上書き、[Ctrl] + [x] で終了 pi@raspberrypi:~ $ diff /etc/locale.gen /etc/locale.gen.old < ja_JP.UTF-8 UTF-8 --- > # ja_JP.UTF-8 UTF-8 pi@raspberrypi:~ $ cat /etc/locale.gen | grep -v '#' ja_JP.UTF-8 UTF-8 # ロケールを追加したので、以下でロケールの生成をします。 pi@raspberrypi:~ $ sudo locale-gen Generating locales (this might take a while)... en_US.UTF-8... done ja_JP.UTF-8... done Generation complete.
キーボードの設定変更
皆さんが使う一般的な106日本語キーボードですね。変更しておきましょう。なお、105配列と106配列と違いは「キー数」です。気にするレベルではありませんよ。
pi@raspberrypi:~ $ sudo cp -p /etc/default/keyboard /etc/default/keyboard.old pi@raspberrypi:~ $ sudo nao /etc/default/keyboard # KEYBOARD CONFIGURATION FILE # Consult the keyboard(5) manual page. XKBMODEL="jp106" # pc105→jp106に変更 XKBLAYOUT="jp" XKBVARIANT="" XKBOPTIONS="" # lv3:ralt_switchを削除 BACKSPACE="guess" # 確認 pi@raspberrypi:~$ diff /etc/default/keyboard /etc/default/keyboard.old 5c5 < XKBMODEL="jp106" --- > XKBMODEL="pc105" 8c8 < XKBOPTIONS="" --- > XKBOPTIONS="lv3:ralt_switch"
Debianのフォントインストール
日本語フォントもついでにインストールしてあげましょう。文字化けすると困りますもんね。
pi@raspberrypi:~$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
(それでも続く)
※ Amazon Web Services、“Powered by Amazon Web Services”ロゴ、及び本ブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ SORACOM、その他のSORACOMサービスは、株式会社ソラコムの登録商標または商標です。