きなこのブログ

技術系の覚書など。

Raspberry Pi 3を買ったのでセットアップする

Raspberry Pi 3を買ったのでセットアップする

必要なもの

  • microSD (SDアダプタついてきました)

  • teraterm
  • これを読んでいる人ならLANケーブルの1本や2本家に転がってるよね

使いたい新機能が特になかったのと、安かったのでB+じゃなくてBにしました。GUIも特に用途がないのでヘッドレス(ディスプレイ無し)です。使いみちを思いついたら合体型HDMIタッチディスプレイとか組んでみたいですね。

手元に届いたら早速箱を開けてヒートシンクを付けてケースをセットして組み立て完了です。小さすぎて感動する可愛さ…

電源の差込口がminiUSBで、頻繁に抜き差しするとぐらつきそうで怖かったので、ちょっとお高いですがボタン付きにしといてよかったです。

OSインストール

  1. Raspbian Stretch LITE(ここでは2018-04-18版)をダウンロード
  2. DD for WindowsmicroSDに焼き焼き
  3. microSDはFATでフォーマットして書き込み

書き込むとパーティションが2つ(+未割り当て)出来てbootパーティションだけWindowsでも読み取ることが出来ます。

DataパーティションEXT4というフォーマットでlinux用なのでこのままだと読み込みできません。ext2fsdをインストールしたら読み書きできるようになりますが、下手にいじると壊しそうなのであんまり触らないほうがいいでしょう。

SSHで繋がるようにする

  1. bootパーティションに空のテキストファイル「ssh」を作成します。拡張子はなし。
  2. microSDをラズパイに挿して電源ケーブルを挿せばOSが起動します。
  3. IPを固定(できれば)
  4. 初期ユーザpi、初期パスワードraspberryでTeratermからSSHログイン

LANケーブルを繋げばDHCPでIPが振られる…のですが自宅のルータには払い出しIPの表示機能がなかったので払い出しレンジを一個ずつpingして探す羽目になりました。この記事を読んでいる賢いあなたにはブロードキャストにpingしてからarp -aするという方法もあります。

私の場合この時点ではネットワーク設定の方法が分からなかったので、とりあえずDHCPサーバ(ルータ)側で払い出しアドレスを固定しておきましました。

先にシリアル接続を有効にしておいた方が楽でしょう。私はネットワーク設定で何度も失敗して繋がらなくなってイメージを焼き直して発狂してシリアルコンソールUSBを後からポチりました。

シリアル接続で繋がるようにする

封筒にぴょろっと入って届きましたが型番が書いてあったような…なかったような…

「PL2303 Serial USB」とかで検索すると色々ヒットしますが、とりあえずうまく行ったやり方↓

順番に言うと、

  1. ラズパイのピンにケーブルを接続 f:id:kinakomochi-tank:20180519095334p:plain シリアルの赤は電源供給なので使わなくていいらしい

  2. PL2303のドライバ(PL2303_64bit_Installer_1.exe)をダウンロードしてインストール

  3. 一応Fix (PL2303_64bit_Installer.exe) もインストールしておく。訳しておくと

    1. 適当なところに保存してね。アンチウィルスは切っておくといいよ
    2. ダウンロードしたファイルを実行する前にUSBシリアルケーブルは抜いておいてね
    3. ダウンロードしたファイルを実行するよ
    4. デスクトップに"PL2303 Code 10 Fix Shortcut" が出来てるからダブルクリックしてね
    5. USBシリアルケーブルを挿して”Continue”をクリックしてね
    6. 終わったらPCを再起動してね
    7. USBシリアルケーブルを挿し直したら動くようになってるよ!
  4. 念の為ラズパイ側でシリアル接続を有効にしておく

sudo raspi-config
-> 5 Interfacing Options
  -> P6 Serial
    -> はい
  1. TeratermのSetup > Serial > Baud rateを115200にする (デバイスマネージャ側は9600のままでも特に問題なさそう)
# ボーレートの調べ方?
dmesg | grep tty
... console=ttyS0,115200 console=tty1 ...

これでTeratermからシリアル接続できます。これでもうネットワークの設定をトチっても安心です。うまく動かない場合は端末やTeratermを再起動したりボーレートの設定を見直してみましょう。

OS初期設定

やっていることはほぼ参考にさせていただいたサイト「Raspbianのインストールと最強の初期設定」そのままです。ここでは自分のラズパイに行った部分だけ記録を兼ねて書いていきます。

超抜粋版 はじめてのvi チートシート

configファイルを編集する箇所があるので、viなんて触ったこと無いという人向けに書いておきます。Windows気分で触るとひどい目にあうので、今後sudo vi なんとかとかいうコマンドが出てきたら、コマンドモード挿入モードを切り替えて使うんだなということを覚えておきましょう。

マウスホイールをコロコロしたりBSとかDelとか押してファイルを滅茶苦茶にしているそこのみんなー!最低限これだけ使えたら何とかなるよー!

Esc コマンドモードに戻る
↑↓←→ コマンドモードでカーソル位置を移動する(挿入モード時は使わない)
:q 開いているファイルを閉じてviを終了する
:q! 未保存の編集を破棄し、開いているファイルを閉じてviを終了する
:w 編集した内容を保存する。 :wq としても使える
dd カーソルがある行を削除する
x カーソル位置の1文字を削除する
s カーソル位置の文字を上書きして挿入モードになる
i カーソル位置の直前で挿入モードになる
A カーソル位置の直後で挿入モードになる
o カーソルがある行の上に1行足して挿入モードになる
O カーソルがある行の下に1行足して挿入モードになる
Alt+C 選択した文字列をコピー
右クリック (挿入モードで)ペースト

なに、初心者ならnanoの方が良い?それを知らないで結局viしか使わなかったけど何とかなったから大丈vi

怖いからとりあえず閲覧だけしたいんだけど…という場合はsudo less [ファイル名]を使いましょう。抜ける時はqです。

ソフトウェアアップデート

sudo apt-get update && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo apt-get autoclean

自動更新の設定

sudo apt-get install -y unattended-upgrades

失敗したら一つ上のソフトウェアアップデートのコマンドをひとつずつ実行してから再挑戦してください。

sudo vi /etc/apt/apt.conf.d/50unattended-upgrades

>「"o=${distro_id},n=${distro_codename}";」をOrigins-Patternの中に追加する

raspi-config

sudo raspi-configで設定画面に入る

  • Localisation Options
  • Change Locale: ja_JP.UTF-8 > ja_JP.UTF-8
  • Localisation Options->Change Timezone: Asia > Tokyo
  • Change Wi-fi Country: JP
  • Change Keyboard Layout: 一応
  • Advanced Options
  • Memory Split: 16M (最小) GUI、カメラ、ビデオなどを使うなら最大値で256Mまで、
  • Hostname: お好きなものを。

SSHホスト鍵更新

sudo rm -v /etc/ssh/ssh_host*
sudo dpkg-reconfigure openssh-server

パス無しsudoの禁止

sudo vi /etc/sudoers.d/010_pi-nopasswd
#を足してコメントアウトする
#pi ALL=(ALL) NOPASSWD: ALL

デフォルトユーザ名の変更

参考サイト:[Raspbian]ユーザ名変更の個人的に「正しい」と思うやり方

# 作業用の仮ユーザ(tmp)を作成してsudoグループに追加
sudo useradd -M tmp
sudo gpasswd -a tmp sudo
sudo passwd tmp
exit
# tmpでログインしてユーザpiをtaopiに変更
sudo usermod -l taopi pi
sudo usermod -d /home/taopi -m taopi
sudo groupmod -n taopi pi
exit
# taopiでログインして仮ユーザを削除し、パスワードを再設定
sudo userdel tmp
sudo passwd taopi

swapを無効にする

sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile

ここまでできたらとりあえず初期設定は完了です。

それにしてもブログ記事書くのってしんどいですねー。続くかな