特定のページだけで動作するChromeの拡張が作りたくなったので作ってみました。

ソースはGitHubで公開しています。(https://github.com/MCO-APPS/chrome-extention-sample

Chrome拡張はJSで作る

とっつきにくそうな印象ですが、Chrome拡張はJavaScriptで作ります。なので普段からWeb開発に携わっている人であれば意外と簡単に作ることができます。

今回作るのは「特定のページを表示する時に自動的に動作する機能」です。ブラウザの右上にボタンが出てきて押したら〜みたいなやつはLIGさんのブログあたりが分かりやすいかと思います。

ディレクトリ構成は以下の様な感じ。

スクリーンショット 2016-03-09 19.07.31

※LICENSEとREADMEはGitHub用なので実際は不要です。

 

manifest.json

manifest.json は拡張機能の情報や設定を記述するファイルです。名前や説明文等もmanifest.jsonに記述します。以下は最低限必要なものだけを記述したものです。

 

<説明>

  • manifest_version・・・マニフェストの様式のバージョンです。拡張機能(プログラム)のバージョンではないのでご注意を。2016年3月9日時点ではバージョン2というものが使用されています。
  • name・・・拡張機能の名称です。
  • version・・・拡張機能のバージョンです。アップデートの度に数字を大きくします。”1″、”1.0″、”2.10.2″、”3.1.2.4567″といった形式の他に”1.0 beta”、”build rc2″といった形式も使用できます。
  • description・・・拡張機能の説明です。
  • icons・・・アイコン画像です。16px、48px、128pxの3種類があります。
    • 16・・・拡張機能のページのファビコンに使用されます。
    • 48・・・拡張機能の管理ページ(chrome://extensions)で使用されます。
    • 128・・・Chromeウェブストアで使用されます。
  • content_scripts・・・拡張機能を動作させるURLやスクリプトを指定します。
    • matches・・・拡張機能を動作させるURLを指定します。アスタリスクでワイルドカード指定可能です。
    • css・・・マッチしたページに追加で読み込ませるCSSファイルのパスを指定します。
    • js・・・マッチしたページに追加で読み込ませるJavaScriptファイルのパスを指定します。

今回は省略していますが、著者名等も指定できます。

https://developer.chrome.com/extensions/manifest

 

スクリプトを書く

マニフェストの content_scripts.js で指定したパスにJSのファイルを設置して下さい。JSファイルに記述したものがそのまま実行されます。

今回はjQueryも使用しています。ページ本体でもjQueryを使用していたら衝突しないの?と思われるかもしれませんが、大丈夫です。ContentScriptはページ本体のJSとは別の空間で実行されるようなイメージなので、お互いのスクリプトが干渉することはありません。

<サンプル>

 

Yahoo!のページ内のaタグを取得してガタガタにするという意味不明なサンプルです。(マニフェストで matches に http://www.yahoo.co.jp/* を指定しています)

今回は使用していませんが、Chrome拡張では「Chrome.* API」という、通常のJSだけでは出来ないようなことが出来るAPIも用意されています。興味のある人は公式ガイドをご覧ください。

https://developer.chrome.com/extensions/api_index

 

Chromeに読み込ませる

開発した拡張機能をテストするにはChromeに読み込ませる必要があります。まずは拡張機能の管理ページ(chrome://extensions/)を開いて下さい。

右上の「デベロッパーモード」にチェックを入れると「パッケージ化されていない拡張機能を読み込む」というボタンが表示されます。

スクリーンショット 2016-03-09 18.58.50

 

「パッケージ化されていない拡張機能を読み込む」をクリックして拡張機能を開発しているディレクトリを指定すると一覧に追加されます。

スクリーンショット 2016-03-09 18.59.19

これでYahoo!にアクセスするとスクリプトが実行されるはずです。なお、スクリプトを修正した場合は都度「リロード」リンクをクリックしないと反映されないので注意。

 

動作確認

拡張機能を読み込んだ状態でYahoo!にアクセスしてみます。

スクリーンショット 2016-03-09 19.00.23

できました!ガッタガタにしてやりました!CSSでaタグの文字色も指定しているので赤くなっています。

 

Chromeウェブストアに公開する

作った拡張機能を公開したい場合は下記の手順で公開できます。はじめに5ドルかかりますが、一度支払った後は追加費用は掛かりません。

  1. Chromeに読み込ませる時と同じディレクトリを丸ごとZIP圧縮しておきます。
  2. デベロッパーダッシュボードにアクセス
  3. 画面の指示に従って5ドル支払います。
  4. 「新しいアイテムを追加する」ボタンをクリックしてZIPファイルをアップロード
  5. 画面に表示されるフォームに情報を入力して公開。(スクリーンショット等が必要です。)

ラズパイにFeliCaカードリーダーを繋げてSuicaのIDmという識別子を読み取ってみます。ラズパイにSSHでログインしている状態から始めます。言語はPythonを使用します。

FeliCaカードリーダーはPaSoRi RC-S380を使用します。BluetoothではなくUSBで接続するタイプのやつです。

 

Raspberry Pi と PaSoRi を接続する

下図のようにラズパイのUSBポートにPaSoRiを接続します。

2016-03-07 12.05.12

 

この状態で lsusb コマンドを叩くとラズパイに接続されている機器の情報を見ることが出来ます。

$ lsusb
Bus 001 Device 004: ID 054c:06c3 Sony Corp. 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

PaSoRiはSony製なので、Sony Corp. と表示されます。今回は一番上に表示されています。

 

PythonでSuicaのIDmを読み取る

PythonでNFCデバイスを制御するためのnfcpyというライブラリがあるので、今回はこれを使用します。

PythonはVer.2.7系のものがラズパイに初めから入っているので別途インストールする必要はありません。ということでnfcpyのインストールを行います。基本的に公式サイトの手順通りにコマンドを実行すれば問題ありません。

 

まずはbzrコマンドをインストールします。bzrはバージョン管理システムBazzarのコマンドラインツールです。

$ sudo apt-get install bzr
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  python-bzrlib python-configobj python-crypto python-gpgme python-httplib2 python-keyring python-launchpadlib python-lazr.restfulclient python-lazr.uri python-oauth python-secretstorage python-simplejson python-wadllib python-zope.interface
提案パッケージ:
  bzr-doc bzrtools python-bzrlib.tests python-bzrlib-dbg python-kerberos python-paramiko python-pycurl python-configobj-doc python-crypto-dbg python-crypto-doc gir1.2-gnomekeyring-1.0 python-fs python-gdata python-kde4 python-keyczar python-testresources gnome-keyring
  python-secretstorage-doc
以下のパッケージが新たにインストールされます:
  bzr python-bzrlib python-configobj python-crypto python-gpgme python-httplib2 python-keyring python-launchpadlib python-lazr.restfulclient python-lazr.uri python-oauth python-secretstorage python-simplejson python-wadllib python-zope.interface
アップグレード: 0 個、新規インストール: 15 個、削除: 0 個、保留: 0 個。
2,366 kB のアーカイブを取得する必要があります。
この操作後に追加で 13.1 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-configobj all 5.0.6-1 [35.3 kB]
取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-bzrlib armhf 2.6.0+bzr6595-6 [1,579 kB]
取得:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main bzr all 2.6.0+bzr6595-6 [53.9 kB]                                                                                                                                                                               
取得:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-crypto armhf 2.6.1-5 [248 kB]                                                                                                                                                                            
取得:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-gpgme armhf 0.3-1 [20.4 kB]                                                                                                                                                                              
取得:6 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-httplib2 all 0.9+dfsg-2 [39.0 kB]                                                                                                                                                                        
取得:7 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-keyring all 4.0-1 [56.9 kB]                                                                                                                                                                              
取得:8 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-lazr.uri all 1.0.3-2 [13.7 kB]                                                                                                                                                                           
取得:9 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-simplejson armhf 3.6.5-1 [65.0 kB]                                                                                                                                                                       
取得:10 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-wadllib all 1.3.2-2 [34.3 kB]                                                                                                                                                                           
取得:11 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-zope.interface armhf 4.1.1-3.1 [84.1 kB]                                                                                                                                                                
取得:12 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-oauth all 1.0.1-4 [12.8 kB]                                                                                                                                                                             
取得:13 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-lazr.restfulclient all 0.13.3-1 [59.6 kB]                                                                                                                                                               
取得:14 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-launchpadlib all 1.10.2+ds-2 [51.6 kB]                                                                                                                                                                  
取得:15 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-secretstorage all 2.1.1-1 [12.9 kB]                                                                                                                                                                     
2,366 kB を 40秒 で取得しました (58.8 kB/s)                                                                                                                                                                                                                                     
以前に未選択のパッケージ python-configobj を選択しています。
(データベースを読み込んでいます ... 現在 126040 個のファイルとディレクトリがインストールされています。)
.../python-configobj_5.0.6-1_all.deb を展開する準備をしています ...
python-configobj (5.0.6-1) を展開しています...
以前に未選択のパッケージ python-bzrlib を選択しています。
.../python-bzrlib_2.6.0+bzr6595-6_armhf.deb を展開する準備をしています ...
python-bzrlib (2.6.0+bzr6595-6) を展開しています...
以前に未選択のパッケージ bzr を選択しています。
.../bzr_2.6.0+bzr6595-6_all.deb を展開する準備をしています ...
bzr (2.6.0+bzr6595-6) を展開しています...
以前に未選択のパッケージ python-crypto を選択しています。
.../python-crypto_2.6.1-5_armhf.deb を展開する準備をしています ...
python-crypto (2.6.1-5) を展開しています...
以前に未選択のパッケージ python-gpgme を選択しています。
.../python-gpgme_0.3-1_armhf.deb を展開する準備をしています ...
python-gpgme (0.3-1) を展開しています...
以前に未選択のパッケージ python-httplib2 を選択しています。
.../python-httplib2_0.9+dfsg-2_all.deb を展開する準備をしています ...
python-httplib2 (0.9+dfsg-2) を展開しています...
以前に未選択のパッケージ python-keyring を選択しています。
.../python-keyring_4.0-1_all.deb を展開する準備をしています ...
python-keyring (4.0-1) を展開しています...
以前に未選択のパッケージ python-lazr.uri を選択しています。
.../python-lazr.uri_1.0.3-2_all.deb を展開する準備をしています ...
python-lazr.uri (1.0.3-2) を展開しています...
以前に未選択のパッケージ python-simplejson を選択しています。
.../python-simplejson_3.6.5-1_armhf.deb を展開する準備をしています ...
python-simplejson (3.6.5-1) を展開しています...
以前に未選択のパッケージ python-wadllib を選択しています。
.../python-wadllib_1.3.2-2_all.deb を展開する準備をしています ...
python-wadllib (1.3.2-2) を展開しています...
以前に未選択のパッケージ python-zope.interface を選択しています。
.../python-zope.interface_4.1.1-3.1_armhf.deb を展開する準備をしています ...
python-zope.interface (4.1.1-3.1) を展開しています...
以前に未選択のパッケージ python-oauth を選択しています。
.../python-oauth_1.0.1-4_all.deb を展開する準備をしています ...
python-oauth (1.0.1-4) を展開しています...
以前に未選択のパッケージ python-lazr.restfulclient を選択しています。
.../python-lazr.restfulclient_0.13.3-1_all.deb を展開する準備をしています ...
python-lazr.restfulclient (0.13.3-1) を展開しています...
以前に未選択のパッケージ python-launchpadlib を選択しています。
.../python-launchpadlib_1.10.2+ds-2_all.deb を展開する準備をしています ...
python-launchpadlib (1.10.2+ds-2) を展開しています...
以前に未選択のパッケージ python-secretstorage を選択しています。
.../python-secretstorage_2.1.1-1_all.deb を展開する準備をしています ...
python-secretstorage (2.1.1-1) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
python-configobj (5.0.6-1) を設定しています ...
python-bzrlib (2.6.0+bzr6595-6) を設定しています ...
bzr (2.6.0+bzr6595-6) を設定しています ...
python-crypto (2.6.1-5) を設定しています ...
python-gpgme (0.3-1) を設定しています ...
python-httplib2 (0.9+dfsg-2) を設定しています ...
python-keyring (4.0-1) を設定しています ...
python-lazr.uri (1.0.3-2) を設定しています ...
python-simplejson (3.6.5-1) を設定しています ...
python-wadllib (1.3.2-2) を設定しています ...
python-zope.interface (4.1.1-3.1) を設定しています ...
python-oauth (1.0.1-4) を設定しています ...
python-lazr.restfulclient (0.13.3-1) を設定しています ...
python-launchpadlib (1.10.2+ds-2) を設定しています ...
python-secretstorage (2.1.1-1) を設定しています ...

 

次にnfcpyのスクリプトをリポジトリからダウンロードします。

$ sudo bzr branch lp:nfcpy
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
273個のリビジョンをブランチしました。

$ ls -l
合計 4
drwxr-sr-x 8 root staff 4096  3月  7 12:51 nfcpy

 

次にPython用のUBS接続ライブラリをインストールします。

$ sudo apt-get install python-usb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  python-usb
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
17.7 kB のアーカイブを取得する必要があります。
この操作後に追加で 132 kB のディスク容量が消費されます。
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-usb armhf 0.4.3-1 [17.7 kB]
17.7 kB を 34秒 で取得しました (513 B/s)
以前に未選択のパッケージ python-usb を選択しています。
(データベースを読み込んでいます ... 現在 127249 個のファイルとディレクトリがインストールされています。)
.../python-usb_0.4.3-1_armhf.deb を展開する準備をしています ...
python-usb (0.4.3-1) を展開しています...
python-usb (0.4.3-1) を設定しています ...

以上で必要なもののインストールは完了です。

 

nfcpyの中にexamplesというサンプルコードがあるのでこれを実行してみます。PaSoRiにSuicaを乗せた状態で実行して下さい。

$ cd nfcpy/
$ sudo python examples/tagtool.py show
Traceback (most recent call last):
  File "examples/tagtool.py", line 37, in <module>
    from cli import CommandLineInterface
  File "/usr/local/src/nfcpy/examples/cli.py", line 27, in <module>
    import nfc
  File "/usr/local/src/nfcpy/nfc/__init__.py", line 28, in <module>
    from clf import ContactlessFrontend
  File "/usr/local/src/nfcpy/nfc/clf/__init__.py", line 35, in <module>
    from . import device
  File "/usr/local/src/nfcpy/nfc/clf/device.py", line 39, in <module>
    from . import transport
  File "/usr/local/src/nfcpy/nfc/clf/transport.py", line 34, in <module>
    raise ImportError("missing usb1 module, try 'pip install libusb1'")
ImportError: missing usb1 module, try 'pip install libusb1'

なんかエラーになりました。libusb1をインストールしろと言われているのでとりあえずインストールしました。

$ sudo pip install libusb1
Downloading/unpacking libusb1
  Downloading libusb1-1.4.1.tar.gz (43kB): 43kB downloaded
  Running setup.py (path:/tmp/pip-build-_bzOpK/libusb1/setup.py) egg_info for package libusb1
    
Installing collected packages: libusb1
  Running setup.py install for libusb1
    
Successfully installed libusb1
Cleaning up...

で、もう一回サンプルコードを実行してみます。

$ sudo python examples/tagtool.py show
[nfc.clf] searching for reader on path usb
[nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:001:004
** waiting for a tag **
Type3Tag 'FeliCa Standard (RC-S???)' ID=01140114BC13B824 PMM=100B4B428485D0FF SYS=0003

出ました!ID=xxxxというのがSuicaのIDmという識別子です。PMMが製造番号だったかな?Type3TagというのがFeliCaのことです。SYS=0003はNFCのシステムコードでSuicaは0003を使用しています。

他にはSAPICAという札幌のカードでは865Eを使用していたりします。

 

ということで、今回はSuicaのIDmを読み取ることが出来たので、次回は履歴を読み取ってみようと思います!

続き:Raspberry Pi 入門 4日目 – Suicaの履歴を読み取る

イギリスのスタートアップPimoroniが開発しているFlotillaというRaspberry Pi用のモジュールセットが非常に面白そうです。

590df267f48e6f6d97d8a283e6b990ae_original

Flotillaは上の画像のような各種センサーやLEDパネルがセットとなっていて、Raspberry PiとUSBでつなげて使用します。

  • Motion・・・3Dモーションセンサー
  • Light・・・照度センサー。明るさを感知します
  • Colour・・・色センサー。近づけたものの色を感知します。
  • Barometer・・・温度・圧力センサー
  • Dial・・・クルクル回せるダイアル。音量を上げたりハンドルとして使用できます。
  • Joystick・・・ゲームやロボットを操作するときに使えるジョイスティック
  • Touch・・・静電容量方式のタッチパネル
  • Slider・・・オーディオミキサーのようなスライダー。値を微調整するのに最適。
  • Motor・・・モーター。タイヤだけではなくファンやプロペラを動かすのにも使えます。
  • Number・・・4桁の数字を表示できるディスプレイ
  • Matrix・・・8×8のLEDマトリックス。アイコン、グラフ、ゲーム等を表示するのに使えます。
  • Rainbow・・・制御可能な5つのフルカラーLEDを搭載

 

57334697e11c6d3c62e119f08a034793_original スクリーンショット 2016-03-05 12.27.30

各種モジュールはDockと呼ばれるパーツをハブにしてRaspberry Piに接続します。

 

0af207fbf8d354db0ce22baccc56fc14_original

FlotillaにはCookbookというレシピのようなものが付いて来るそうです。

 

a02b174b2697f6c35196a1e3669fe40e_original

そして「プログラマーじゃなくても」という理由がこちら。モニターと繋いでGUIでシステムを組むことが出来るんだとか。

 

今はまだ組み込み系の人達の間で使い方や技術を模索している段階ですが、いずれIoTの分野で普及するときにはWeb開発者への敷居も低くなっている必要があるので、各種モジュールがUSBだけで連携出来るようになるのは非常に大切なことだと思います。

 

Flotillaがほしい人はKickstarterで出資すると金額に応じたセットをもらうことが出来ます!

 

参考記事:

1日目はRasbianのインストールとSSHでログインするところまで行いました。今回はその続きです。ラズパイにSSHでログインした状態から始めます。

※設定は自己責任でお願いします。

raspi-config

Raspbianにはraspi-configという設定ツールが内蔵されています。

$ sudo raspi-config

上記コマンドを実行すると画面が真っ青になって少しビビります。キーボードの上下キーで項目を選択してEnterもしくは右カーソルで<Select>をEnterすると実行になります。escキーもしくは右カーソルで<Finish>をEnterすると終了します。

スクリーンショット 2016-03-04 18.44.18

 

1 Expand Filesystem

ファイルシステムを展開・・・SDカードの全容量をOSが使用できるようにします。最初は先頭の2GB程度のパーティションだけを使うようになっているんだとか。

 

実行するといきなりターミナルに結果がバーっと表示されてまたビビります。

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): Disk /dev/mmcblk0: 7.5 GiB, 8026849280 bytes, 15677440 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0cf63fa8

Device         Boot  Start     End Sectors  Size Id Type
/dev/mmcblk0p1        8192  131071  122880   60M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      131072 7870463 7739392  3.7G 83 Linux


Command (m for help): Partition number (1,2, default 2): 
Partition 2 has been deleted.

Command (m for help): Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (2-4, default 2): First sector (2048-15677439, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (131072-15677439, default 15677439): 
Created a new partition 2 of type 'Linux' and of size 7.4 GiB.

Command (m for help): Disk /dev/mmcblk0: 7.5 GiB, 8026849280 bytes, 15677440 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0cf63fa8

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        8192   131071   122880   60M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      131072 15677439 15546368  7.4G 83 Linux


Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

 

完了するとこんなメッセージが表示されます。リブートしろってことですね。

スクリーンショット 2016-03-04 19.05.21

 

2 Change User Password

ユーザーパスワード変更・・・piユーザーのパスワードを変更します。

 

なんか言われるのでEnter。

スクリーンショット 2016-03-04 19.06.26

 

パスワードを2回入力します。

Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

 

お疲れ様でした。

スクリーンショット 2016-03-04 19.06.58

3 Boot Options

ブートオプション・・・起動時にデスクトップ用のGUIが立ち上がるようにするか否かを選択します。

 

4 Wait for Network at Boot

起動時にネットワーク接続を待つ・・・起動時にネットワークに接続されるまで待機するか否かを選択します。

 

ネットワークに繋がらなかったらどうなるのかよく分からないので「Fast Boot」を選んでおいた方がいいかな。

スクリーンショット 2016-03-04 19.21.12

5 Internationalisation Options

国際化のオプション・・・言語と地域の設定を行います。
スクリーンショット 2016-03-04 19.23.57

I1 Change Locale

ロケールを設定します。やたら選択肢が多いので頑張ってスクロールして「ja_JP.UTF-8」を選択します。ここで注意するのが、カーソルを合わせたあと必ずSpaceを打つことです。そのままEnterすると「en_GB.UTF-8」だけが選択された状態になります。

スクリーンショット 2016-03-04 19.49.03

 

次の画面でデフォルトのロケールを聞かれるのでここでも「ja_JP.UTF-8」を選択。

スクリーンショット 2016-03-04 19.49.06
少し時間が掛かります。Generation completeで完了です。

Reloading keymap. This may take a short while
Generating locales (this might take a while)...
  en_GB.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.

 

I2 Change Timezone

タイムゾーンを設定します。Asia -> Tokyo と選べばOKです。

 

I3 Change Keyboard Layout

キーボードのレイアウトを変更できます。

 

I4 Change Wi-fi Country

Wi-fiのチャンネルを変更します。よくわかんないけどとりあえずJPにしておきました。

 

6 Enable Camera

カメラを有効にする・・・カメラのサポートを有効にするか否かを選択します。

カメラモジュールを使用する場合はEnableにすると良いでしょう。

 

7 Add to Rastrack

Rastrackに追加・・・Rastrackというコミュニティみたいなものに登録できます。登録すると地図上のヒートマップに反映されるようです。(http://rastrack.co.uk/

 

8 Overclock

オーバークロック・・・オーバークロックの設定を行います。高負荷時にどこまで無理を許容するかってことですね。(ざっくり)

「あんまり無理すると寿命縮めるよ!」みたいなメッセージが出るので私のような素人は触れないほうが良いと思います。

 

9 Advanced Options

高度なオプション・・・その他の設定を行います。

 

ここは特にいじってないので割愛。

スクリーンショット 2016-03-04 19.41.58

0 About raspi-config

raspi-configについて・・・raspi-configの説明です。特に見る必要はありません。

 

ここまでで設定を変更したのは、

  • 「1 Expand Filesystem」を実行
  • 「2 Change User Password」でパスワード変更
  • 「5 Internationalisation Options」の「I1 Change Locale」でロケールを「ja_JP.UTF8」に変更
  • 「5 Internationalisation Options」の「I2 Change Timezone」でタイムゾーンをAsia -> Tokyoに変更
  • 「5 Internationalisation Options」の「I4 Change Wi-fi Country」でJPに変更

その他の設定は自己責任でお願いします。

 

「1 Expand Filesystem」を実行した場合はリブートしておきましょう。

$ sudo reboot

 

その他の設定

ここまでは全てraspi-configでの設定だったのですが、次は普通にコマンドを打って色々設定します。

 

NTPを変更

NTP(Network Time Protocol)とはネットワークから正しい時刻を取得するためのプロトコルのことで、ここではどこのサーバーから時刻を取得するかを設定します。それを日本標準時を配信しているNICT(情報研究通信機構)のNTPサーバーに変更します。
/etc/ntp.conf の server 0.debian.pool.ntp.org iburst となっている箇所をNICTのサーバー名に変更します。ntp1.jst.mfeed.ad.jpはntp.nict.jpと同期している別のNTPサーバーです。

$ sudo vi /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 -4 ntp.nict.jp
server -4 ntp1.jst.mfeed.ad.jp
server -4 ntp2.jst.mfeed.ad.jp
server -4 ntp3.jst.mfeed.ad.jp
  :

 

変更したらntpdを再起動します。

$ sudo /etc/init.d/ntp restart
[ ok ] Restarting ntp (via systemctl): ntp.service.

 

ntpq -p と打ってNICTが表示されればOKです。

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp-b3.nict.go. .NICT.           1 u    3   64    7    6.248    0.200   0.272
 ntp1.jst.mfeed. 133.243.236.17   2 u    2   64    7    6.158    1.632   0.261
 ntp2.jst.mfeed. 133.243.236.17   2 u    -   64    7    6.460    1.878   0.198
 ntp3.jst.mfeed. 133.243.236.17   2 u   63   64    3    5.313   -0.472   0.453

 

vi で編集する際にABCDが表示される場合

ホームディレクトリに .vimrc を作って set nocompatible と書いておけばいいそうです。sudo vi でファイルを編集する場合はrootの .vimrc にも書いておきましょう。

$ vi .vimrc

set nocompatible

 

rootユーザーのパスワードを変更する

下記コマンドでrootのパスワードを変更出来ます。

$ sudo passwd root
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

 

以上で2日目の初期設定は終了です!お疲れ様でした!

続き:Raspberry Pi 入門 3日目 – SuicaのIDmを読み取る

 

参考記事: