
私は2つの競争dhcpクライアントconnmanとsystemd-networkdと一緒にyocto(自動車グレードLinux:Halibut 8.0)で構築されたOSを含む組み込みシステムを持っています。
sa8155:~# systemctl --type=service
connman.service loaded active running Connection service
systemd-networkd.service loaded active running Network Service
connmanを無効にしたいのですが、試してみると、次のような奇妙なエラーが発生します。
sa8155:~# systemctl disable connman.service
Failed to disable unit: File /etc/systemd/system/multi-user.target.wants/connman.service: Read-only file system
私は根です。それで、なぜこのファイルを削除できないのかわかりません。
sa8155:~# ls -l /etc/systemd/system/multi-user.target.wants/connman.service
lrwxrwxrwx 1 root root 35 Nov 27 2019 /etc/systemd/system/multi-user.target.wants/connman.service -> /lib/systemd/system/connman.service
sa8155:~#
理由を知っている人はいますか?
このサービスを無効にする正しい方法は何ですか?
異常に多数のファイルシステムがあるようです。
sa8155:~# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/root ext4 1.4G 504M 812M 39% /
devtmpfs devtmpfs 291M 0 291M 0% /dev
tmpfs tmpfs 443M 0 443M 0% /dev/shm
tmpfs tmpfs 443M 18M 425M 4% /run
tmpfs tmpfs 443M 0 443M 0% /sys/fs/cgroup
tmpfs tmpfs 443M 18M 425M 4% /etc/machine-id
/dev/sde4 vfat 180M 53M 128M 30% /firmware
/dev/sde5 vfat 64M 512K 64M 1% /bluetooth
/dev/sde9 ext4 59M 21M 38M 36% /dsp
/dev/sda2 ext4 122M 12M 108M 10% /var
/dev/sda2 ext4 122M 12M 108M 10% /etc/bluetooth
/dev/sda2 ext4 122M 12M 108M 10% /persist
/dev/sda2 ext4 122M 12M 108M 10% /etc/build.prop
/dev/sda2 ext4 122M 12M 108M 10% /etc/usb
/dev/sda2 ext4 122M 12M 108M 10% /etc/misc/wifi
/dev/sda2 ext4 122M 12M 108M 10% /etc/smack/accesses.d
/dev/sda2 ext4 122M 12M 108M 10% /etc/adb_devid
tmpfs tmpfs 443M 416K 442M 1% /var/volatile
tmpfs tmpfs 443M 416K 442M 1% /persist/volatile
/dev/sda8 ext4 108G 6.4G 101G 6% /data
/dev/sda8 ext4 108G 6.4G 101G 6% /home
tmpfs tmpfs 755M 4.0K 755M 1% /run/user/0
/dev/sda8 ext4 108G 6.4G 101G 6% /home/root/adas/dev
/dev/sda8 ext4 108G 6.4G 101G 6% /data/root/adas/dev
sa8155:~#
答え1
組み込みシステムでは、/
ファイルシステムが読み取り専用でマウントされることがあります。これは通常、複数の書き込みがパフォーマンスを低下させ、寿命が優先するストレージタイプであるためです。
この特定の問題に対する一時的な解決策は、ファイルシステムをに再マウントし、必要なrw
変更を実行してから再び「ro」に再マウントすることです。永続ストレージがまだ変更されていない可能性があるため、これは一時的になる可能性があります。
時には、画像が変更を永続的にする方法を提供します。たとえば、起動中に読み取られる永続ストアの設定ファイルに書き込む方法です(あなたの場合は最初に見ていますが、/persist
画像ドキュメント(利用可能な場合)も参照)。
これが実際に互換性のないサービスのセットである場合、正しい解決策は必要なサービスのみを有効にして基本イメージを回復し、デバイスを再フラッシュすることです。