SWupdateを使ってみる(整理2)
結局まだ試行錯誤になっているが、段々と形になってきた。気がする。
ルートパーティションの拡張
ルートパーティションの拡張を、raspiなどを参考にして、初回起動時にいい感じに実施するようにしたい。
https://github.com/Squonk42/buildroot-licheepi-zero-old/wiki/Fresh-image-–-Expand-the-root-partition-and-filesystem
http://nahitafu.cocolog-nifty.com/nahitafu/2019/08/post-2df6c8.html
cat S01resize2fs_once
#!/bin/sh
function get_current_root_device
{
for i in `cat /proc/cmdline`; do
if [ ${i:0:5} = "root=" ]; then
CURRENT_ROOT="${i:5}"
# /dev/mmcblk0p3
fi
done
}
case "$1" in
start)
echo "Starting resize2fs_once"
get_current_root_device
resize2fs $CURRENT_ROOT &&
rm /etc/init.d/S01resize2fs_once
;;
*)
echo "Usage: $0 start" >&2
exit 3
;;
esac
これをex_licheepizerodock/board/rootfs-overlay/etc/init.d/に保存した
usb0のネットワークインターフェースを起動時に有効にする
起動時に固定IPでusb0を有効にしておきたい
cat interfaces
auto lo
iface lo inet loopback
auto usb0
iface usb0 inet static
address 192.168.100.1
netmask 255.255.255.0
これをex_licheepizerodock/board/rootfs-overlay/etc/network/に保存した
dhcpサーバーを有効にする
どうしようか悩んだけど、usb刺すたびにPC側でIPアドレスの設定をするのも大変だし
なぜか、毎回違うインターフェースとして認識されるみたいだし。
MACアドレスが毎回ランダムで生成されているみたいだからか。。
このあたりは、まだ興味の対象外なので、hdcpサーバーを入れてしまって楽をしようと思う。
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
BR2_PACKAGE_DHCP
BR2_PACKAGE_DHCP_SERVER
また、設定ファイルとして
cat dhcpd.conf
option subnet-mask 255.255.255.0;
option routers 192.168.100.1;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.250;
}
をex_licheepizerodock/board/rootfs-overlay/etc/dhcp/に保存した
これで、PCとusbつなぐとネットワークが有効化されるようになった
$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=0.246 ms
avahi
まだ、ちゃんと試していないけど、avahiを入れると、host名でアクセスできたり
はたまた、dhcpサーバー建てなくてもローカルリンクアドレスで通信できるようになるみたい。
avahi
IPv4LL network address configuration daemon
mDNS/DNS-SD daemon
libdns_sd compatibility (Bonjour)
IPv4LLがローカルリンクアドレス
mDNSが「host名.local」でのアクセスを可能にする
うーん。どうしようかな。
今は、こういう仕組みがあるという理解だけしておこう。
swupdateのwebサーバーを自動起動させる
init.dにスタートアップはすでにあったので、それを参考に修正する。
/etc/init.d/S80swupdate
にて
/usr/lib/swupdate/swupdate.sh
が呼び出されて、その中で
/etc/swupdate/conf.d and /usr/lib/swupdate/conf.d/
内のファイルを読み込んでいる
なので、/etc/swupdate/conf.d/swupdate.confみたいなファイルを用意しておく
mkdir /swutmp
export TMPDIR=/swutmp
SWUPDATE_ARGS="-p 'reboot'"
SWUPDATE_WEBSERVER_ARGS="--document-root /var/www/swupdate"
これで、起動時からswupdateのwebサービスが動いている
もしも、自動起動させたくないときは、S80swupdateを削除or空ファイルで上書いてしまおうかな。
0 件のコメント:
コメントを投稿