RaspberryPi のセットアップでよくやってること

Robotics

RaspberryPiのセットアップをしている時に, いつも参照しているメモ書きを公開してみました.
コマンドラインで設定しているものが多いですが,GUIで設定する方が簡単な時もあります.

Save OS image in SD card

OSイメージをSDカードに書き込む方法です.

  1. download disk image (take 30min)
  2. format SD card with FAT32 (take 30 min, with SD formatter)
  3. install image to SD card (use Etcher)

References:

Installing operating system images - Raspberry Pi Documentation
This section includes some simple guides to setting up the software on your Raspberry Pi. We recommend that beginners start by downloading and installing NOOBS.

SSH Warning

環境を移行してるとsshで接続しようとした時に, 同じhostnameだけど,中身が違うからなりすましじゃない?”といった感じで下のエラーが出てきます.

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
(中略)
Offending ECDSA key in /Users</username>/.ssh/known_hosts:36

上の場合なら
~/.ssh/known_hosts の36行目を消します.

nano ~/.ssh/known_hosts

nanoは比較的使いやすいターミナルから使えるテキストエディタです. 似たようなのにviとかvimとかありますがけど, 初見殺しなので慣れないうちはvimを見たらnanoに置き換えて実行しましょう.
初心者がlinuxのセットアップで挫折する原因の3割くらいはvi, vimにあると思います(もちろん使いこなせれば便利だとは思いますが).

References:

SSH接続で WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! って言われて接続を拒否られるとき - Qiita
About (2020-03-04)更新 最近の OpenSSH クライアントであれば自動的に消すかどうか聞いてくれるのでこの記事の必要性はあんまりなくなって気がします。 (2020-03-04)更新 毎回聞かれるのしんどいので...
SSH接続を行うと何回も「Warning: the ECDSA host key for 〜」と表示される
こんにちはKUJIRAです。今日はSSH接続した時に発生したエラーについてまとめます。   事象 SSH接続を…

Setup Wifi

コマンドラインからのWifiの設定方法です.
SSIDPASSPHRASEは接続するWifiのものに置き換えます.

sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'

暗号化されてないパスワードを消します.

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

References:

Raspberry Pi 3を買ってMacを使ってWiFi接続とSSHの接続するまで - Qiita
ラズパイ初心者のメモです。 以下をした時のメモ 商品と周辺機器の購入 SDカードにOSの書き込み 起動 SSH設定 WiFi設定 買ったもの 自分は秋葉原に行って色々現地調達してきました。 通販でも売っているので買う場所は...

hostname 設定

デフォルトのhostname, raspberrypi を適当な名前に置き換えて,avahi-daemonをインストールします.

sudo nano /etc/hostname
sudo nano /etc/hosts
sudo apt-get update
sudo apt-get install avahi-daemon

研究室とかだと,raspberrypiが大量発生する可能性があるので早めに変更しておいたほうがいいです.

References:

Raspberry Piにホスト名の設定をしたメモ
Raspberry Piにホスト名の設定をしたメモです。以前お伝えしたやり方で、あるネットワーク内でIPを固定にしてしまえばアクセスしやすくなりました。 しかし、DHCP推奨のネットワーク環境を相手にするケースもあるでしょう。そうなると、毎度IP検索をかけてIPを推測してという作業レベルにダウンしてしまい。悩ましい。で...

ファイル共有設定

ssh で他のPCから操作する場合, scpでファイルを移動させるのが面倒なので, PCからraspiのファイルにFinderやFileExplorerでアクセスできるようにします.
こうすることで, raspi上のプログラムを直接atomなどのエディタで編集できるので楽です.

sudo apt-get update
sudo apt-get install samba
sudo nano /etc/samba/smb.conf
sudo smbpasswd -a pi
sudo service smbd restart

sudo nano /etc/samba/smb.confではsmb.conf の末尾に下のものを追加します. username(pi)とpath(/home/pi)は環境に応じて適宜変えてください.

[pi]
path = /home/pi
read only = No
guest ok = Yes
force user = pi

References:

Sambaのインストールと設定と接続

pigpiod の自動起動

GPIOの操作にpigpiodを使う場合は設定しておきましょう.起動するたびにsudo pigpiodを打つのは面倒ですし,忘れてしまいます.

References:

Raspberry Pi 3 systemdでpigpiodの自動起動
※2018/1/13追記「3. UnitがServiceとして認識されているか確認」箇所のハイフン2つが文字化けしていたのを修正しました。大変申し訳ございませんでした。※2018/2/27追記参考サイトとsystemctl daemon-r

パスワードの変更

初期パスワードのraspberryのままではいじられ放題なので変更しておきましょう.
さらにセキュリティを強化したい人は, こちらを参考にしてください.

passwd

SPIとI2Cの有効化

SPIやI2Cを使いたいなら有効にしておきましょう. ADコンバータを使いたいなら必須となります.

方法A:

sudo raspi-config

設定画面が出るのでinterfaceの設定を変更します.

方法B:
設定ファイル/boot/config.txtを直接変更して有効化することもできます.. 

References:

how to enable spi1? / pi 3 and two rc522 RFID readers
Is it possible to connect two RC522 readers with one RaspberryPi 3? As far as I know I should just choose different CS pins for them (Add more than 2 SPI slave...

For C++

C++ 使うなら入れておいた方がいいかもしれないものです. 必要なかったら入れなくてもいいです.

cmake

cmake はクロスプラットフォームのコンパイル支援ソフトです. makefileの生成を簡単にしてくれます. ROSだと標準で使われています. 中身がシェルスクリプトちっくなので注意してください.

sudo apt-get install cmake

boost library

boostはC++の準標準ライブラリでvectorやthreadなどもboostで公開された後に標準ライブラリ(std)に採用されたらしいです.

# 1.55 は version 適宜置き換えて
sudo apt-get install libboost1.55-all-dev

v1.55は割と古いので最新のが欲しかったら,自分でダウンロード>ビルド>インストールしましょう.
ただ,パスの通し方がわからなかったので,それは自分でがんばってください.

How to install latest Boost library on Raspberry Pi
How to install latest boost library on Raspberry Pi How to install latest Boost library on Raspberry Pi What you will need CMake Boost Lib...
wget https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.bz2
tar -xf boost_1_63_0.tar.bz2
cd boost_1_63_0/
./bootstrap.sh
./b2 install -j2 --prefix=$HOME/local

bluetooth 化

検証途中. ペアリングはできました.
sshできるかは不明です.

References:

Linux PCにBluetooth機器を接続する - Qiita
LinuxにおけるBluetoothデバイスの接続方法についてのまとめます。 LinuxでBluetoothデバイスと接続する際には、bluezというプロトコルスタックを用います。 今回はbluetoothctlを使って設定します。b...
[Raspberry Pi 3] mac の bluetooth によるインターネット共有を使ってルータがなくても SSH する - Qiita
有線でつなぐ例は比較的見つかるんですが Thunderbolt の Ethernet アダプタを持ってないわけです。 そのくらい買いなよという意見はごもっともなのですが、正直ラズパイつなぐ以外に使いみちが浮かばないのでなんかもったい...

Remote Display

ROSだとrqt系のGUIがデバッグに役立ちますが,sshでは基本的にGUIは開けません.これを可能にするのがX11 Forwardingです.

References:

X11 Forwarding設定 - Qiita
Linux上でJavaのアプリなどを導入しようと思ったのだがクラウド上の鯖でGUIログイン出来ないのでVNC等のやり方ではなくX11 Forwardingでやりたいと思った。 こいつが出来るようになるといろいろと捗ると思われる。 ...

コメント