RaspberryPi
raspbian

[メモ] ちいさな Raspbian Stretch イメージの作成

概要

  • こちら https://github.com/niklasf/build-raspbian-image のスクリプトをそのまま使い、ちいさな Raspbian Stretchイメージを作成。

  • ユーザ/パスワード = root / raspberry

  • Raspberry Pi Zero1.3, Zero W , 3B, 3B+ にて、起動確認

  • よくわからん人は、公式のを使おう。そのスジの方は、buildrootとか使ってるか?!

  • minibianから、新しいのを出してくれないだろうか...

イメージファイル

githubで、(今回はじめて)、LFS使用。制限とかに引っかかったら(?)、消す.

  • (2018/8/23)古くなったので削除: 2018-04-04-raspbian-stretch-mini_mt08.img.bz2  (180MB、展開時1024MB)

    初回起動時、こんな感じ
    root@raspberry:~# uname -a
    Linux raspberry 4.14.32+ #1106 Wed Apr 4 17:54:59 BST 2018 armv6l GNU/Linux
    root@raspberry:~# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/root       888M  522M  305M  64% /
    devtmpfs        213M     0  213M   0% /dev
    tmpfs           217M     0  217M   0% /dev/shm
    tmpfs           217M  7.1M  210M   4% /run
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           217M     0  217M   0% /sys/fs/cgroup
    tmpfs           100M     0  100M   0% /tmp
    /dev/mmcblk0p1   59M   22M   37M  38% /boot
    tmpfs            44M     0   44M   0% /run/user/0
    root@raspberry:~#
    

使用手順

起動前作業

  1. ファイルのダウンロード
  2. いつものツールで、いつも通り、SDカードに焼く
    • Etcherだと、bz2を展開せず、そのまま指定すればよい
  3. できたSDカードをらずぱいに入れて、電源ON

ラズパイでの作業

パーティション拡張

  • とりあえずやらないと、すぐにDiskFull
# fdiskにて、rootパーティション削除、開始位置を同じにして再作成
fdisk /dev/mmcblk0
p
d
2
n
p
2
119141

n
w

# 再起動
reboot

# 再起動後、resize2fs
resize2fs /dev/mmcblk0p2

apt レポジトリの登録

こぴぺ
# キーの登録
apt install -y dirmngr && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 82B129927FA3303E

# 以下、Raspbian Stretchから拝借したものを入れる

cat <<'EOF' > /etc/apt/sources.list
deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
EOF

cat <<'EOF' > /etc/apt/sources.list.d/raspi.list
deb http://archive.raspberrypi.org/debian/ stretch main ui
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ stretch main ui
EOF

# レポジトリ情報更新
apt update

Wifi を使う

  • Zero W, 3Bにて確認.
  • USB WiFiドングルは未確認. (RTL-8xxxとか..)
Wifiのとパスフレーズは適宜
# 必要なパッケージ
apt-get install -y firmware-brcm80211 pi-bluetooth wpasupplicant

# 設定ファイル編集
cat <<EOF >> /etc/network/interfaces
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
EOF

# wpa_supplicant.conf
cat << 'EOF' > /etc/wpa_supplicant/wpa_supplicant.conf
network={
    ssid="Pi3-AP"
    psk="raspberry"
}
EOF

その他設定

  • ホスト名 変更。再起動で有効
    hostname set-hostname NEW-HOST-NAME

    例"rpi-ラズパイのシリアル番号下6桁"
    hostnamectl set-hostname rpi-`cat /proc/cpuinfo | grep Serial | rev | cut -b 1-6 | rev`
    reboot
    
  • ほかの機器から、ホスト名で検索(Avahi, Zeroconf, Bonjour)
    apt install avahi-daemon

  • キーボードレイアウト選択
    apt install console-common
    dpkg-reconfigure console-data #再設定

  • タイムゾーン選択
    dpkg-reconfigure tzdata

  • ロケール選択
    apt install locales && dpkg-reconfigure locales

  • swapを使用(メモリが足りないとき?)

    # パッケージインストール
    apt install dphys-swapfile
    
    # swapサイズ指定.
    vi /etc/dphys-swapfile
    CONF_SWAPSIZE=512
    
    # 有効化
    dphys-swapfile setup   # swapファイル作成
    dphys-swapfile swapon  # 有効化
    
    # 無効化
    dphys-swapfile swapoff   # 無効化
    dphys-swapfile uninstall # swapファイル削除
    
    実行例
    root@rpi-mini:~# free
                  total        used        free      shared  buff/cache   available
    Mem:         949452       32520      851148        7788       65784      860680
    Swap:             0           0           0
    root@rpi-mini:~# dphys-swapfile setup   # swapファイル作成
    want /var/swap=512MByte, checking existing: keeping it
    root@rpi-mini:~# dphys-swapfile swapon  # 有効化
    root@rpi-mini:~# free
                  total        used        free      shared  buff/cache   available
    Mem:         949452       32432      851092        7788       65928      860760
    Swap:        524284           0      524284
    root@rpi-mini:~# # 
    root@rpi-mini:~# # Swapが 524284 
    root@rpi-mini:~# # 
    root@rpi-mini:~# # 
    root@rpi-mini:~# dphys-swapfile swapoff   # 無効化
    root@rpi-mini:~# dphys-swapfile uninstall # swapファイル削除
    root@rpi-mini:~# free
                  total        used        free      shared  buff/cache   available
    Mem:         949452       32368      852180        7788       64904      860832
    Swap:             0           0           0
    root@rpi-mini:~# 
    

イメージ作成作業メモ

  • だいたい80分。

    real    79m41.112s
    user    48m35.280s
    sys     1m30.896s
    
  • ホスト環境:Windows 10 64bit, CPU 2.1GHz HDD.

    • VirtualBox
    • Vagrant debian/stretch64をそのまま使用

      Vagrantfile
      Vagrant.configure("2") do |config|
      config.vm.box = "debian/stretch64"
      end
      
  • 以下を実行

    sudo -s   #rootに
    
    # 必要パッケージ
    apt-get update && apt-get install -y vmdebootstrap binfmt-support qemu-user-static ca-certificates curl binutils git-core kmod
    
    # gitクローン
    cd
    git clone https://github.com/niklasf/build-raspbian-image
    cd build-raspbian-image
    
    # apt-cacher-ngのサーバ指定
    #sed -i -e 's/localhost:3142/apt-cache-server:3142/g'  ./*.sh
    
    time sudo ./bootstrap
    
  • bootstrap.shのオプション変更

    • --size 2000M => --size 1024M

その他

  • これくらいのサイズ(200MB)のものは、どこに置くのがよいのだろうか?
  • TODO: 次回(あるのか?)は...
    • レポジトリの設定を取り込む