Macと書籍と考えと Mac, Book, Thinking and more,,,

【技術メモ】Raspberry Pi 〜[01]土台環境構築編〜


 IoTでも注目されているRaspberry Pi。色々なものを作ってみよう!ということで、主に自分のメモ用に残す体験記シリーズです。(2019/03/22更新)

■ 当ページの「はじめに」


 本当の初歩のお話(Raspberry Piって何?とか)OSインストールの詳細な内容は割愛です。詳細なサイトがたくさんありますのでそちらをご参照くださいませ。
 基本的な設定やハマり全般に関するメモです。
 SSHで操作しますので、X Windowまわりについてはほぼ触れていません。
 (なお、当ページは随時更新していきます。ページ下部の「履歴」を参照ください。)

■ 00. 目次


 01. 動作確認環境
 02. MicroSDにデータをセットアップ
 03. Raspbianのインストール
 04. SSHで接続する準備
 11. 電源周りの操作
 12. パッケージ、ファームウェアなどのバージョン管理
 13. プロセス管理
 21. パッケージいろいろインストール
 22. コマンドのエイリアス設定(bash)
 23. cronの設定
 24. NASとの接続
 71. GPIO周りの制御
 99. トラブルメモ(全般)

■ 01. 動作確認環境


 本体:Raspberry Pi 3 Model B+ / Raspberry Pi ZERO WH
 OSRaspbian 9.6

■ 02. MicroSDにデータをセットアップ


 ・NoobsWebからダウンロード
  https://www.raspberrypi.org/downloads/noobs/

 ・MicroSDにコピー(新しいMicroSDの場合)
  MicroSDカードのフォーマットはMS-DOS(FAT)とすること。Macの場合は、ディスクユーティティでMS-DOSでフォーマットすればOK
  ダウンロードして解凍したフォルダ直下のファイルを全てコピー。
  ※32GBSDカードまでFATでいけるはず。

 ・MicroSDにコピー(RaspberryPiで使っていたものを再利用、の場合)
  パーティションが切られているため、専用のアプリでのフォーマットが必要です。
  SDメモリカード フォーマッター

■ 03. Raspbianのインストール


 詳細は割愛、ポイントだけ。(ディスプレイとマウス、キーボードを接続して作業。)
 ・WiFiの設定を先に実施。
 ・日本語を選択。
 ・その後、OSRaspbianを選択してインストール。

■ 04. SSHで接続する準備


 ・IPアドレスの設定
  IPで接続にいきますので、固定IPを割り振ります。

 

 # 編集ファイルは /etc/dhcpcd.conf
 sudo vi /etc/dhcpcd.conf

 # IPアドレスを設定
 # サブネットマスクはIPアドレスの後ろに/で記載すればOK
 SSID xxxxxx
 static ip_address=192.168.0.100/24
 static routers=192.168.0.1
 static domain_name_servers=192.168.0.1
 static domain_search=192.168.0.1
 noipv6

 # 設定したIPアドレスの確認
 ip a
 ifconfig
 


 ・SSHを有効化
 

 sudo raspi-config

 # Interfacing Opitions > SSH > はい
 # で設定
 


 これで、SSH経由でRaspberry Piを操作できるようになりました。

■ 11. 電源周りの操作


 

 # 再起動(方法1)
 sudo reboot

 # 再起動(方法2)
 sudo shutdown -r now

 # シャットダウン
 sudo shutdown -h now
 


■ 12. パッケージ、ファームウェアなどのバージョン管理


 

- OS、ファームウェア操作


 

 # OSのバージョン確認
 cat /etc/debian_version
 lsb_release -a
 uname -a

 # OSのディストリビューションを最新化
 sudo apt-get dist-upgrade

 # Raspberry Piのファームウェア直近化
 sudo rpi-update
 


 

- パッケージ操作


 

 # パッケージリストを最新化
 sudo apt-get update

 # パッケージをアップデート
 sudo apt-get upgrade
 


■ 13. プロセス管理


 

 # 稼働中プロセスの確認(デーモンも含む)
 ps ax
 # 数が多いので、絞り込みはパイプでつないで処理を
 ps ax | grep xxx

 # プロセスの強制終了
 # 上記で確認した PID TTYの数字を指定して強制終了
 sudo kill -9 xxx
 # ) PID TTY 12345
 sudo kill -9 12345
 


■ 21. パッケージいろいろインストール


 

 # ※インストール必須ではないです。
 sudo apt-get install vim
 


■ 22. コマンドのエイリアス設定(bash)


 エイリアスがないと面倒で操作していられないので、自分がよく使うものを設定。

 

 # 記述先は ~/.bashrc
 vi ~/.bashrc

 # エイリアスを記述。=の間に半角スペースは入れないように。
 alias ll='ls -l'
 alias lla='ls -la'

 # 即時反映
 source ~/.bashrc
 


■ 23. cronの設定


 

- cron設定


 定期的に同じ処理をさせるにはcronを使うのが楽です。

 

 # 処理内容を編集
 # -u を省略すると、編集するユーザの権限での実行となる
 crontab -e

 # 実行したい繰り返しタイミング、起動コマンドを記述します。
 # 「分」「時」「日」「月」「曜日」「実行コマンド」の順に記述します。

 # ) 10分おきに $HOMEにある run.sh を実行したい場合
 */10 * * * * ~/run.sh
 # ) 19時に $HOMEにある run.sh を実行したい場合
 * 19 * * * ~/run.sh

 # 登録した内容の確認
 crontab -l

 # 登録した内容を削除
 crontab -r
 


 

 # 適用するために cron サービス再起動
 sudo /etc/init.d/cron restart
 


 

- cronのログを出力するには


 ログ管理機能のrsyslogを利用します。

 

 # ログ出力設定の変更
 sudo vi /etc/rsyslog.conf

 # cron.* の出力部分のコメントを外します。(デフォルトでは出力しないようになっているみたいです。)
 


 

 # rsyslogを再起動、念のためcronも再起動
 sudo /etc/init.d/rsyslog restart
 sudo /etc/init.d/cron restart
 


■ 24. NASと接続


 SMBサービスが起動しているNASへの接続方法です。
 下記は手動での接続です。
 マウントするディレクトリを先に構築しておき、そこにNASを接続するイメージです。

 

 # マウントポイントを作成(初回のみ)
 mkdir /mnt/xxx

 # マウント
 sudo mount -t cifs //xxx.xxx.xxx.xxx/path /mnt/xxx -o user=xxx

 # 書き込みもできるようにマウント
 # CIFS接続だとrootで接続されてしまい、sudo しないと書き込みできなくなってしまう
 # 以下のようにuidgidを指定してやると書き込みもできるようになる
 # 現在ログイン中ユーザのuidgid id とたたくと確認できる
 sudo mount -t cifs //xxx.xxx.xxx.xxx/path /mnt/xxx -o user=xxx,uid=1000,gid=1000

 # アンマウント
 sudo umount /mnt/xxx
 


■ 71. GPIO周りの制御


 Raspberry Piの特徴でもある、GPIO
 その、GPIO周りの制御方法です。

 

 # GPIOの状態を確認
 # 出力結果の左側が基盤側、右側が外側です
 gpio readall

 # GPIOのモードを変更(ピンごとのIN/OUTを変更)
 # gpio -g mode [ピン番号] [in/out]
 # [ピン番号]は、gpio readall で確認できる「BCM」の番号
 # BCM3番を「out」に変更したい場合
 gpio -g mode 3 out
 



■ 99. トラブルメモ(全般)


 

- 容量があふれた!!【解決】


 現象:
  パッケージをインストールしていたら、ディスクが100%になりあふれてしまいました。
  Raspberry Piは余っているSDカードを流用することも多いため、小さなSDカードを無理くりつかうことも多いです。

  ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
  /dev/root 5585732 5357152 0 100% /

 対処:
  消せるものを消す、しかないのですが。。各種コマンドです。

 

 # ディスク容量を確認
 df -h

 # 指定したディレクトリの容量を確認
 # ) ルート直下
 du -sh /*
 


 

 # 不要なパッケージを削除
 # ※自分の備忘です。必要なものまで削除しないようにご注意ください。
 sudo apt-get purge wolfram-engine
 sudo apt-get purge sonic-pi
 sudo apt-get purge scratch
 sudo apt-get remove --purge libreoffice*

 # 消した後のゴミ掃除
 sudo apt-get clean
 sudo apt-get autoremove
 




 

- 画面がチカチカする【未解決】


 現象:
  Raspberry Pi ZERO WHWiFiONにすると何故かディスプレイがちらつく。(画面がついて、消えて、ついて、消えてを繰り返す。)

 原因:
  不明。
  SSHで操作する、かつ別用途用の本番機として購入したZERO WHHDMIの相性の問題かな?とも思いましたが、WiFi自体は安定していて切れることはないので、とりあえず放置です。



■ 履歴


2018/12/24
新規作成
2019/01/05 FAT
32GB制約を追記
2019/02/24 GPIO
周りの制御を追記
2019/03/22
マウント時に書き込みもできるようオプションを追記
2019/03/22
13.プロセス管理」を追記

■ 【技術メモ】Raspberry Piシリーズ


 ・【技術メモ】Raspberry Pi [01]土台環境構築編〜当ページ
 ・【技術メモ】Raspberry Pi [02]電子ペーパー+Netatmoで温湿CO2計パネルを作成
 ・【技術メモ】Raspberry Pi [03]お帰りなさいカメラ〜作成中

■ 他の記事


>> Next
 ・【技術メモ】Raspberry Pi [02]電子ペーパー+Netatmoで温湿CO2計パネルを作成
<< Back
 ・脱!コントロールセンター!!「ショートカットApp」がツカエル
 ・macOS Mojave(10.14)にバージョンアップ!ざっと稼働確認
 ・iPhone XS Maxへの移行!!大きいことはいいことだ(移行手順付き)
 ・Xperia Ear Duo(XEA20)がフリーズ?
 ・回転するバンカーリング?ダメだこりゃ・・・

Top 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009
Mac 書籍と 考えと iPhone 障害対応と