Rasberry Pi 3 Model B 設定覚書
最終更新:20200703
はじめまして,カッキーといいます.
このブログは趣味関連の記述他,技術(機械設計,電子工作,PC,DIYその他)系の覚書に使っていこうと思っています.
では早速……アレコレきちんと設定されたRaspberry Pi 3 Model B を仕立て上げる仕事を今やっているので,それ関係のことを実践しながらまとめて(引用して)おきます.
※(PC系は特に)トーシロなので試行錯誤します.
※後輩向けのマニュアルを兼ねているので,長く書いてます.
※20180824追記
何でか3B+を設定する記事タイトルになってたので修正しました.当時売ってなかっただろなんで間違えた.
※20180919追記
最近3B+をやたら設定した結果,同様の手順でいけることがわかりました.なんかあればまた更新します.
※20200703
もういい加減内容が古いです.のち,気が向いたら更新します.
内容.
①ユーザー設定とセキュリティ設定
②↑に伴うプロキシ設定
③日本語化,日本語入力設定
④シンボリックリンクの設定【追記】
⑤ネットワーク設定【追記】
Win32 Disc Imagerで,以前適当に作ったディスクイメージを焼いたmicroSD(16GB)を用意.それを本体にぶっこんでスタート.
※20180919追記
SDXC規格のSDを使う場合,ひと手間いります.
以下リンク参照.主な問題はファイルシステムのフォーマット.
上記で紹介されるguiformatは一度フォーマット(このときはexFATのままでよい)したSDカードでないとエラーを吐く(SDが使用中だと言われる).何故だ.
===※重要 20200703 ================
Raspberry Pi Imagerというやっべえ便利ツールが登場し,上記SD準備の手順が全てひっくり返りました.このツールでSDのフォーマットから最新パッケージのダウンロードまで全部終わります.Rasberry Pi 4でも同じ.
バックアップも,前はSDからイメージを丸コピーしていたけど,今はSD Card Copierできれいにコピーできます.(SDの容量個体差も吸収してくれるのでより安定)時代の進歩と自分の老いを感じるこの頃.
動かしてるだけでSDカードを破壊してた昔のラズパイはもういないんだ.
=================================
①ファームウェア・ユーザー設定・セキュリティ系
ここが詳しかったので,参照すると早そう.
ただし,このブログを見るような人間は学校とか会社で設定やらないといけない,つまりプロキシ越しに設定しなきゃいけない人も多そう(というか,僕がそうなんですけど).そこでこちらも.
②apt-get のプロキシ設定
この「Raspberry Pi で学ぶ電子工作」,僕も買いましたが面白い本です.ちゃんと電子工作の基本に関してフォローされてるのがいいですね.プルアップ・プルダウンに関してとか,Arduinoの教本(オライリーのやつ)には載ってなかったし.
ただ,バージョンの違いなのかディレクトリがちょっと違うので補足.
apt-getのプロキシ設定ファイルは/etc/apt/apt.confではなく,/etc/apt/apt.conf.d/02proxy 内です.記述自体は上述リンクのままで良し.
さて,基本の設定がほぼ完了.
あと役に立ちそうな設定……日本語化と日本語入力設定かな.いらん気もするけど,あって困るでもなし.むしろ,いざって時無いと地味に困る.
③日本語化,日本語入力設定
とりあえず日本語入力設定はやることに.日本語化もできればついでに.
ubuntu 14.04だとfcitx-mozcを使う方法が早かった記憶があったので,mozcでサクサク検索.
うむ,googleは偉大.
……と思ったのもつかの間.全然日本語が出ない.ibusの設定で全角半角キーで切り替わるよう設定.しかし無駄.何かおかしい.忘れてる気がする.
……そうだ,肝心のフォントを入れていない.上述リンクの方は他の方法を試す途中で入ったのでは.
……
正しい方法を求めて奔走.怒涛のリブート連発.SDはブート早くて助かる.
※20180919追記
ロケールの設定は初起動時に済んでいればよい.
これかな……やってみたところ日本語化には成功.
むむむ.
この2つを削除.
sudo apt-get autoremove uim uim-mozc
かなり頭悪いことしてるな……と思いつつ.開き直る.
sudo apt-get install fcitx-mozc
慣れ親しんだfcitxに頼る.インストール後再起動.ついに日本語入力できた.
(狙ったキーで切り替えを行うのにguiでの設定は必要だった)
===5/21追記===
キーボードレイアウトの設定もfcitx側でやるようだ.
==========
どうやら,
①ロケールの変更
②フォントのインストール
③入力メソッドの変更と設定
が肝のようだ.メモメモ.
しかしiBusは悪い話しか聞かない.僕の運が悪いのだろうか……
=20180919追記====
20180627リリースのRaspbian-STRETCHの設定をしていたところ,日本語ロケールの
設定をした後大抵行う「デスクトップ等home/内ディレクトリの名前をDesktop等英語に変更する作業」にて問題発生.(3Bも3B+も同じ症状が出た……当たり前か.)
LANG=C xdg-user-dirs-gtk-update
で今まではうまくいってたのだけど,失敗.xdg系パッケージののインストールでもうまく行かなかったので,以下リンクの情報にて解決した.
要約すると,~/.config/user-dirs.dirs に設定が書いてあるからそこをいじるといいよとのこと.これはうまくいった.
=追記ここまで=========
とりあえず今回はここまでです.まとめ.
・ユーザー設定とセキュリティ設定
・↑に伴うプロキシ設定
・日本語化,日本語入力設定
まあ日本語化に関しては設定済みイメージが出回ってるから,簡単に済ませたいひとはそっちでいいかも.でも自分でやるのもそれっぽくていいじゃない.
気が向いたらまた追記をします.それでは.
===追記===
④シンボリックリンクの設定
ロボット屋かIoTやりたいMakerでもなければ要らないと思うのだけど,必要な人にはかなり必要なので追記.
udev の設定をカスタマイズする - いますぐ実践! Linuxシステム管理 / Vol.115
↑参考サイト.rulesを書き込むディレクトリ名もそのまんま使えた.
ArduinoはPC接続時にシリアルポートとして認識され,/dev/内にttyACM*(UNOの場合)だとかttyUSB*(NANOの場合)といった名前でバッファとなるファイル(リンク)ができます.
で,このファイル名が他のUSBデバイス(ロボ屋的にはUSBシリアル変換モジュールとかLIDARとかDACSボードとか……)と被る,また差す度番号が変わってしまうので,USBを差した時点でArduinoを認識し,別の名前をつけてしまう.この新しい名前のファイルがシンボリックリンク.
ついでに権限を書き換えることで,管理者権限無しでユーザーが利用できるようにしたり.
USBデバイスがきちんと認識されていれば(認識がこける場合は扱わないこととする,モジュールのインストールとか必要.),lsusbというコマンドでベンダーID等が見られる.これをキーにして識別する.
とりあえず答えを書く.やたら#がつくのは.rules内に丸コピすることを想定しているため.
##for Arduino
KERNEL=="ttyACM*", OWNER="mekakky", GROUP="mekakky", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", MODE=="0666", SYMLINK+="Arduino"
##上部の文を/etc/udev/rules.d/ に10-myrules.rulesといった感じのタイトル(数字は優先順位,ほかの部分は適当)で入れればOK.
##説明##
## KERNEL=="ttyACM*" 対象デバイスの名前(頭の部分)
## 0WNER="mekakky" 権限をもつユーザー(デフォルトではroot. これをhomeユーザーにすることでsudoなしでUSBデバイスが使える.)
## GROUP="mekakky" 所属グループ(デフォルトではroot)
## ATTRS{idVendor}=="2341" ID(対象のデバイスを接続したときlsusbで出てくるものを打ち込んで指定)
## ATTRS{idProduct}=="0043" 同上
## MODE=="0666" モード(読み書き可能なモード)
## SYMLINK+="Arduino" シンボリックリンクの名前(好きに命名できる)ショートカットのようなもの.
## 上部の文の意味をざっくり説明すると,「名前の頭に"ttyACM"を含み」「ベンダーIDが2341で」「プロダクトIDが0043の」デバイスを,「権限者をmekakky」「所属グループをmekakkyに」に指定し,「モードを0666」とし,「シンボリックリンク"Arduino"を作成する」といった感じ.
##他にもいろいろ設定をつけられるので,調べるとよい.
こんなところか.前に身内向けに書いたマニュアルそのまま書いた.
じつは,IDが被る場合も存在する.そして,その場合はまた違った設定が要る.
が,まだよく理解していない.今回はここまでで.
===追記2===
⑤ネットワーク設定
これまた重要なやつを忘れていた.DHCPで事足りていたのだ.
リモート操作したい時は必要になるからね.
では今回の参考サイト.
これの前半がそのまま使えた.
/etc/dhcpcd.conf を編集する.
一番末尾に,
interface eth0
static ip_address=X.X.X.X/24
static routers=X.X.X.1
static domain_name_servers=X.X.X.1
適宜入力.順に,使用しているアダプタ(無線LANならwlan0だ),IPアドレス,ゲートウェイ,DNS.……多分これであってる.接続はできた.