2018/04/14

RaspberryPi を Read-Only で運用


#####################################

Raspbian Stretch Lite で構築できることを確認しています

#####################################


GitHubに公開されている
Read-only Root-FS with overlayfs for Raspian
というものでRead-Only環境を構築するためのメモ。

ただ、通常の設定では固定IPが使えないという状況。
他にも制限はあるのかもしれない…。


とりあえず、焼いた直後のRaspbianでは使えるようなので一旦公開。
といっても、本家サイトで公開されている手順通りに進めるだけ。

swapの停止

$ sudo systemctl disable dphys-swapfile
$ sudo dphys-swapfile uninstall

パッケージのインストール

$ sudo apt-get install git rsync gawk busybox bindfs

リポジトリのクローンニング

$ sudo git clone https://github.com/josepsanzcamp/root-ro.git

システムのセットアップ

※/var/tmp 配下でファイルが生成されるので、
容量制限アリでtmpfsをマウントしてる場合は解除してから実行するのが吉

$ sudo rsync -va root-ro/etc/initramfs-tools/* /etc/initramfs-tools/
$ sudo mkinitramfs -o /boot/initrd.gz
$ sudo bash -c 'echo initramfs initrd.gz >> /boot/config.txt'

モード切替スクリプト ※動作未検証 要はremountするだけ

$ sudo vi /usr/local/bin/mode-readwrite.sh

#!/bin/bash

if [ $(id -u) -ne 0 ]; then
 echo "Must be run as root."
 echo "Try 'sudo $0'"
 exit 1
fi

# /
mount -o remount,rw /mnt/root-ro
# /boot
mount -o remount,rw /mnt/boot-ro

$ sudo vi /usr/local/bin/mode-readonly.sh

#!/bin/bash

if [ $(id -u) -ne 0 ]; then
 echo "Must be run as root."
 echo "Try 'sudo $0'"
 exit 1
fi

# /
mount -o remount,ro /mnt/root-ro
# /boot
mount -o remount,ro /mnt/boot-ro

$ sudo chmod 755 /usr/local/bin/mode-*.sh

リブート

$ sudo reboot

2018/04/08

RaspberryPi で radikoを録音して Podcastで配信する(改造編)

radicast をちょっと弄ってradikoの無劣化録音できるようにする。

・OSインストール編
・システム構築編
・改造編2(Podcastアイコン対応)

対象のソースは3本
・converter.go
・radiko.go
・server.go

差分は次のとおり。


Build & Install

$ cd go/src/
$ go build github.com/soh335/radicast/
$ sudo cp ./radicast /usr/local/bin/

サービス定義ファイルの修正
$ sudo vi /etc/systemd/system/radicast.service

[Unit]
Description=radicast [recording radiko and serving rss for podcast]
After=network.target

[Service]
Type=simple
Restart=always
User=radicast
ExecStart=/usr/local/bin/radicast
    -config /usr/local/etc/radicast.json
    -host 192.168.0.81
    -output /var/radicast
ExecStop=/bin/kill -WINCH ${MAINPID}

[Install]
WantedBy=multi-user.target
※ExecStart行は1行で記述すること
※bitrate と converter オプションを除外
systemctlに読み込ませる
$ sudo systemctl daemon-reload

再起動してエラー確認
$ sudo reboot

2018/04/07

Raspberry Pi Zero W 構築メモ

Raspberry Pi Zero W (や、3など)で
インストール直後からWi-Fiで接続するための手順メモ

Raspbianを焼いてSDカードを母艦に刺し直したところからスタート

SSH有効化の準備

$ touch /media/******/boot/SSH

Wi-Fi接続情報の設定

$ sudo vi /media/******/boot/wpa_supplicant.conf
平文の場合

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
  ssid="**YourSSID**"
  psk="**YourPassphrase**"
}

平文が気になる場合は「wpa_passphrase」コマンドで暗号化する

$ wpa_passphrase YourSSID YourPassphrase
network={
  ssid="YourSSID"
  #psk="YourPassphrase"
  psk=01afe38da0c3176176b3484f3185ce7f3dc504dc4d51a17a8126f7c0786ced26
}
置き換える

(必要に応じて)固定IPの設定

$ sudo vi /media/******/rootfs/etc/dhcpcd.conf
末尾に追加

interface wlan0
  static ip_address=192.168.0.81/24
  static routers=192.168.0.1
  static domain_name_servers=1.1.1.1 1.0.0.1

これでおk

フォロワー