naotake_ito
2021年12月16日 14時37分
お世話になります。伊藤と申します。
現在、Armadillo-640をSDブートで動かしたいと考えております。
開発者サイトの「SDブートの活用」を参考に、ブート用SDを作る
ことはできたのですが、電源ブチ切り等の対策のために、さらに
SDを書込禁止(OverlayFS有効)にしたいと考えております。
そこで、SDブート時に下記のコマンド
=> setenv optargs overlay => saveenv
を実行したのですが。OverlayFSが有効になりませんでした。
試しに、eMMCブートに戻して同じことをやると、ちゃんと
OverlayFSが有効になります。ちなみに、有効/無効の判断は、
下記のコマンドを実行して確かめました。
root@armadillo:~# du / -a | sort -rn | head -100 du: cannot access '/proc/586/task/586/fd/3': No such file or directory du: cannot access '/proc/586/task/586/fdinfo/3': No such file or directory du: cannot access '/proc/586/fd/4': No such file or directory du: cannot access '/proc/586/fdinfo/4': No such file or directory 2744618 / 1384680 /overlay 1322832 /overlay/system 603852 /usr 589532 /overlay/system/usr 584872 /var 584852 /overlay/system/var 409812 /var/log 409752 /overlay/system/var/log . . .
上記の結果はeMMCブート環境についての結果ですが、同じことを
SDブート環境でやると、1384680 /overlayや1322832 /overlay/system
などの記述が見つかりませんでした。
他にもなにか操作が必要なのでしょうか?
ご教示ください。
よろしくお願い致します。
コメント
naotake_ito
お世話になります。伊藤です
> 石垣です。
>
> > を実行したのですが。OverlayFSが有効になりませんでした。
>
> 使用しているLinuxカーネルバージョンとu-bootのバージョンを教えて頂いてもよろしいでしょうか。
> Linuxカーネルのバージョンは以下のコマンドで確認できます。
>
> [armadillo ~]# uname -a >
> u-bootのバージョンは保守モード起動時に確認することができます。
> U-Boot 2018.03-at9のように表示されます。
>
> また、sdブート時の以下のコマンドの結果についても教えて頂いてもよろしいでしょうか。
>
> [armadillo ~]# df -T > [armadillo ~]# cat /proc/cmdline >
まず、Linuxカーネルバージョンは次のとおりです。
root@armadillo:~# uname -a Linux armadillo 4.14-at39 #1 Thu Nov 25 13:40:34 JST 2021 armv7l GNU/Linux
次に、u-bootのバージョンは次の通りです。
U-Boot 2018.03-at10 (Nov 24 2021 - 17:31:46 +0900)
あと、dfとcatコマンドの実行結果は次のとおりです。
root@armadillo:~# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on udev devtmpfs 10240 0 10240 0% /dev tmpfs tmpfs 102072 2816 99256 3% /run /dev/mmcblk1p2 ext4 15118256 1082064 13248508 8% / tmpfs tmpfs 255172 0 255172 0% /dev/shm tmpfs tmpfs 5120 0 5120 0% /run/lock tmpfs tmpfs 255172 0 255172 0% /sys/fs/cgroup /dev/mmcblk0gp0 squashfs 128 128 0 100% /opt/license tmpfs tmpfs 51032 0 51032 0% /run/user/0 /dev/sda1 vfat 15149072 19248 15129824 1% /mnt
root@armadillo:~# cat /proc/cmdline root=/dev/mmcblk1p2 rootwait
以上となります。よろしくお願い致します。
at_shiita.ishigaki
石垣です。
説明が不足しておりました。
SDブートかつOverlayFSを有効にした状態で下記コマンドを実行してください。
[armadillo ~]# df -T [armadillo ~]# cat /proc/cmdline
SDブートを用いて長期的な運用を行うこと自体の話となりますが、
当社ではSDブートは開発時の利用を想定しており、長期的な運用を推奨しておりません。
SDカードの故障を当社ではサポートすることができないためです。
ですので、運用時はSDブートではなく、eMMCを使用することを推奨します。
eMMCからではなく、SDブートを行う理由は何かありますでしょうか。
naotake_ito
お世話になります。伊藤です
返答が遅くなり申し訳ありません。
> 石垣です。
> 説明が不足しておりました。
> **SDブートかつOverlayFSを有効にした状態**で下記コマンドを実行してください。
>
>
> [armadillo ~]# df -T > [armadillo ~]# cat /proc/cmdline >
>
> SDブートを用いて長期的な運用を行うこと自体の話となりますが、
> 当社ではSDブートは開発時の利用を想定しており、長期的な運用を推奨しておりません。
> SDカードの故障を当社ではサポートすることができないためです。
> ですので、運用時はSDブートではなく、eMMCを使用することを推奨します。
>
> eMMCからではなく、SDブートを行う理由は何かありますでしょうか。
まず、OVerlayFSを再度有効に設定した後の一連の結果は次のとおりです。
U-Boot 2018.03-at10 (Nov 24 2021 - 17:31:46 +0900) CPU: Freescale i.MX6ULL rev1.0 at 396 MHz Reset cause: POR I2C: ready DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... OK In: serial Out: serial Err: serial PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11 Net: FEC => setenv optargs overlay => saveenv Saving Environment to MMC... Writing to MMC(0)... OK => boot . . . root@armadillo:~# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on udev devtmpfs 10240 0 10240 0% /dev tmpfs tmpfs 102072 2820 99252 3% /run /dev/mmcblk1p2 ext4 15118256 1013456 13317116 8% / tmpfs tmpfs 255172 0 255172 0% /dev/shm tmpfs tmpfs 5120 0 5120 0% /run/lock tmpfs tmpfs 255172 0 255172 0% /sys/fs/cgroup /dev/mmcblk0gp0 squashfs 128 128 0 100% /opt/license tmpfs tmpfs 51032 0 51032 0% /run/user/0 /dev/sda1 vfat 15149072 19248 15129824 1% /mnt root@armadillo:~# cat /proc/cmdline root=/dev/mmcblk1p2 rootwait
また、SDブートにしたい理由ですが、2つあります。
① 量産時に、ストレージの複製を作るのが楽で簡単になるから。(eMMCの環境設定だけは必要ですが・・・)
② 仮にハードがつぶれた場合、修理時に、元のSDカードを新しいハードに差し替えるだけで交換が済むから。(新しいハードのeMMCの環境設定済みが前提)
また、私の所属するメーカーでは、従来からマイコン基板は脱着可能なROMで動かすのが主流であり、保守体制もそれに合わせた形で定着しているため、
できるだけ従来の修理方法に合わせたいから。
以上です。もちろん、SDカード自体がつぶれた時は、その複製をこちらで作成し、供給する予定です。
よろしくお願い致します。
at_shiita.ishigaki
石垣です。
> root@armadillo:~# cat /proc/cmdline > root=/dev/mmcblk1p2 rootwait
kernelのブートパラメータにoverlayが渡されていないようです。
u-bootで以下のコマンドを実行した結果を添付して頂けますでしょうか。
=> printenv
> ① 量産時に、ストレージの複製を作るのが楽で簡単になるから。(eMMCの環境設定だけは必要ですが・・・)
当社では出荷時にROMイメージを書き込むサービスを行っています。
https://armadillo.atmark-techno.com/services/customize/bto
よろしければご検討下さい。
naotake_ito
お世話になります。伊藤です
> 石垣です。
>
>
> > root@armadillo:~# cat /proc/cmdline > > root=/dev/mmcblk1p2 rootwait >
>
> kernelのブートパラメータにoverlayが渡されていないようです。
> u-bootで以下のコマンドを実行した結果を添付して頂けますでしょうか。
>
> => printenv >
>
> > ① 量産時に、ストレージの複製を作るのが楽で簡単になるから。(eMMCの環境設定だけは必要ですが・・・)
>
> 当社では出荷時にROMイメージを書き込むサービスを行っています。
> https://armadillo.atmark-techno.com/services/customize/bto
> よろしければご検討下さい。
printenvの実行結果は次の通りです。
U-Boot 2018.03-at10 (Nov 24 2021 - 17:31:46 +0900) CPU: Freescale i.MX6ULL rev1.0 at 396 MHz Reset cause: POR I2C: ready DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... OK In: serial Out: serial Err: serial PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11 Net: FEC => printenv baudrate=115200 bootargs=root=/dev/mmcblk1p2 rootwait bootcmd=fatload mmc 1:1 ${loadaddr} /uImage; fatload mmc 1:1 0x83000000 /a640.dtb; bootm ${loadaddr} - 0x83000000; bootdelay=0 enable_pf3000_lpm=no ethact=FEC ethaddr=00:11:0c:2a:07:bc fdt_file=a640.dtb loadaddr=0x82000000 mmcdev=1 optargs=overlay setup_bootcmd_usb=setenv bootcmd run setup_usbargs\\; usb start\\; ext4load usb 0:2 \\${loadaddr} /boot/uImage\\; ext4load usb 0:2 0x83000000 /boot/a640.dtb\\; usb stop\\; bootm \\${loadaddr} - 0x83000000\\; setup_mmcargs=setenv bootargs root=/dev/mmcblk0p2 rootwait ${optargs}; setup_usbargs=setenv bootargs root=/dev/sda2 rootwait rw ${optargs}; stderr=serial stdin=serial stdout=serial stop_nr3225sa_alarm=no; tftpboot=tftpboot uImage; tftpboot 0x83000000 a640.dtb; bootm ${loadaddr} - 0x83000000; usbboot=run setup_bootcmd_usb; boot; Environment size: 881/524284 bytes
あと余談ですが、今回のSDブート環境ですが、開発者サイトを参考にしながら構築しましたが、
カーネルイメージとデバイスツリーは、SDカードの第一パーティション(FAT32)に配置してあります。
よって、eMMCの環境設定の際、サイトの説明では
=> setenv bootcmd ext4load mmc 1:2 \${loadaddr} /boot/uImage\; ext4load mmc 1:2 0x83000000 /boot/a640.dtb\; bootm \${loadaddr} - 0x83000000\;
となっていて、この設定だとうまくいかなかったため、
=> setenv bootcmd fatload mmc 1:1 \${loadaddr} /uImage\; fatload mmc 1:1 0x83000000 /a640.dtb\; bootm \${loadaddr} - 0x83000000\;
と変更して設定しました。一応これでちゃんと動いておりますが、これが悪さをしている可能性は
ありますでしょうか?(余計なことかもしれませんが・・・)
ROMイメージ書込みサービスについては、今後検討させていただきます。
以上です。よろしくお願い致します。
at_shiita.ishigaki
石垣です。
> と変更して設定しました。一応これでちゃんと動いておりますが、これが悪さをしている可能性は
> ありますでしょうか?(余計なことかもしれませんが・・・)
過去のマニュアルやサイトを参考にしている可能性があります。
下記URLに最新のマニュアルがありますので、こちらを参考にしてください。
https://armadillo.atmark-techno.com/resources/documents/armadillo-640/m…
最新のマニュアルのSDブートの章を参考にしつつ、もう一度SDブートを実施して頂きますでしょうか。
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
そのうえで、OVerlayFSを有効にし、動作を確認して頂けますでしょうか。
naotake_ito
お世話になります。伊藤です
> 石垣です。
>
> > と変更して設定しました。一応これでちゃんと動いておりますが、これが悪さをしている可能性は
> > ありますでしょうか?(余計なことかもしれませんが・・・)
>
> 過去のマニュアルやサイトを参考にしている可能性があります。
> 下記URLに最新のマニュアルがありますので、こちらを参考にしてください。
> https://armadillo.atmark-techno.com/resources/documents/armadillo-640/m…
>
> 最新のマニュアルのSDブートの章を参考にしつつ、もう一度SDブートを実施して頂きますでしょうか。
> https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
> そのうえで、OVerlayFSを有効にし、動作を確認して頂けますでしょうか。
最新のマニュアルに従い、uImageとa640.dtbを第二パーティション(Debianルートファイルシステム)の
/bootに再配置し、eMMCの環境設定をやり直してみました。今までご指示いただいたコマンドの実行結果は
以下のとおりです。なんとなく成功した感じですが、心配なので一応ご確認ください。
df -T コマンドの結果
root@armadillo:~# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on udev devtmpfs 10240 0 10240 0% /dev tmpfs tmpfs 102072 1544 100528 2% /run /dev/mmcblk1p2 ext4 15118256 1084884 13245688 8% /overlay/system none tmpfs 262144 18284 243860 7% /overlay/ramdisk overlay overlay 262144 18284 243860 7% / tmpfs tmpfs 255172 0 255172 0% /dev/shm tmpfs tmpfs 5120 0 5120 0% /run/lock tmpfs tmpfs 255172 0 255172 0% /sys/fs/cgroup /dev/mmcblk0gp0 squashfs 128 128 0 100% /opt/license /dev/sda1 vfat 15149072 19248 15129824 1% /mnt tmpfs tmpfs 51032 0 51032 0% /run/user/0
cat /proc/cmdline コマンドの結果
root@armadillo:~# cat /proc/cmdline root=/dev/mmcblk1p2 rootwait overlay
printenv コマンドの結果
U-Boot 2018.03-at10 (Nov 24 2021 - 17:31:46 +0900) CPU: Freescale i.MX6ULL rev1.0 at 396 MHz Reset cause: POR I2C: ready DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... OK In: serial Out: serial Err: serial PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11 Net: FEC => printenv baudrate=115200 bootargs=root=/dev/mmcblk1p2 rootwait bootcmd=run setup_mmcargs; ext4load mmc 1:2 ${loadaddr} /boot/uImage; ext4load mmc 1:2 0x83000000 /boot/a640.dtb; bootm ${loadaddr} - 0x83000000; bootdelay=0 enable_pf3000_lpm=no ethact=FEC ethaddr=00:11:0c:2a:07:bc fdt_file=a640.dtb loadaddr=0x82000000 mmcdev=1 optargs=overlay setup_bootcmd_usb=setenv bootcmd run setup_usbargs\\; usb start\\; ext4load usb 0:2 \\${loadaddr} /boot/uImage\\; ext4load usb 0:2 0x83000000 /boot/a640.dtb\\; usb stop\\; bootm \\${loadaddr} - 0x83000000\\; setup_mmcargs=setenv bootargs root=/dev/mmcblk1p2 rootwait ${optargs}; setup_usbargs=setenv bootargs root=/dev/sda2 rootwait rw ${optargs}; stderr=serial stdin=serial stdout=serial stop_nr3225sa_alarm=no; tftpboot=tftpboot uImage; tftpboot 0x83000000 a640.dtb; bootm ${loadaddr} - 0x83000000; usbboot=run setup_bootcmd_usb; boot; Environment size: 912/524284 bytes
一応、du / -a | sort -rn | head -100 コマンドの結果も載せておきます。
root@armadillo:~# du / -a | sort -rn | head -100 du: cannot access '/proc/694/task/694/fd/3': No such file or directory du: cannot access '/proc/694/task/694/fdinfo/3': No such file or directory du: cannot access '/proc/694/fd/4': No such file or directory du: cannot access '/proc/694/fdinfo/4': No such file or directory 2114558 / 1049892 /overlay 1029564 /overlay/system 609492 /usr 595168 /overlay/system/usr 384516 /var 384480 /overlay/system/var 306360 /usr/lib 296760 /overlay/system/usr/lib 241184 /usr/share 241184 /overlay/system/usr/share 176352 /var/cache 176352 /overlay/system/var/cache 171632 /var/cache/apt 171632 /overlay/system/var/cache/apt 154684 /usr/lib/arm-linux-gnueabihf 145084 /overlay/system/usr/lib/arm-linux-gnueabihf 120804 /overlay/system/var/lib 120780 /var/lib 118456 /var/cache/apt/archives 118456 /overlay/system/var/cache/apt/archives 106052 /overlay/system/var/lib/apt 106048 /var/lib/apt 106020 /var/lib/apt/lists 106020 /overlay/system/var/lib/apt/lists 86892 /var/log 86824 /overlay/system/var/log 69304 /usr/lib/python3.5 69304 /overlay/system/usr/lib/python3.5 67880 /usr/share/locale 67880 /overlay/system/usr/share/locale 46800 /usr/lib/gcc 46800 /overlay/system/usr/lib/gcc 46796 /usr/lib/gcc/arm-linux-gnueabihf 46796 /overlay/system/usr/lib/gcc/arm-linux-gnueabihf 46792 /usr/lib/gcc/arm-linux-gnueabihf/6 46792 /overlay/system/usr/lib/gcc/arm-linux-gnueabihf/6 45428 /usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf 45428 /overlay/system/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf 44648 /usr/share/doc 44648 /overlay/system/usr/share/doc 36896 /var/lib/apt/lists/ftp.jp.debian.org_debian_dists_stretch_main_binary-armhf_Packages 36896 /overlay/system/var/lib/apt/lists/ftp.jp.debian.org_debian_dists_stretch_main_binary-armhf_Packages 36704 /usr/bin 36172 /var/cache/apt/archives/libpython3.5-dev_3.5.3-1+deb9u5_armhf.deb 36172 /overlay/system/var/cache/apt/archives/libpython3.5-dev_3.5.3-1+deb9u5_armhf.deb 33992 /var/log/syslog.1 33992 /overlay/system/var/log/syslog.1 33864 /var/log/daemon.log.1 33864 /overlay/system/var/log/daemon.log.1 33640 /usr/share/keyrings 33640 /overlay/system/usr/share/keyrings 32940 /var/lib/apt/lists/ftp.jp.debian.org_debian_dists_stretch_main_source_Sources 32940 /overlay/system/var/lib/apt/lists/ftp.jp.debian.org_debian_dists_stretch_main_source_Sources 31980 /overlay/system/usr/bin 31256 /usr/lib/arm-linux-gnueabihf/libLLVM-3.9.so.1 31256 /overlay/system/usr/lib/arm-linux-gnueabihf/libLLVM-3.9.so.1 29560 /overlay/system/lib 29560 /lib 29464 /usr/share/keyrings/debian-keyring.gpg 29464 /overlay/system/usr/share/keyrings/debian-keyring.gpg 26596 /var/cache/apt/pkgcache.bin 26596 /overlay/system/var/cache/apt/pkgcache.bin 26576 /var/cache/apt/srcpkgcache.bin 26576 /overlay/system/var/cache/apt/srcpkgcache.bin 25800 /var/lib/apt/lists/ftp.jp.debian.org_debian_dists_stretch_main_i18n_Translation-en 25800 /overlay/system/var/lib/apt/lists/ftp.jp.debian.org_debian_dists_stretch_main_i18n_Translation-en 25076 /usr/lib/arm-linux-gnueabihf/libicudata.so.57.1 25076 /overlay/system/usr/lib/arm-linux-gnueabihf/libicudata.so.57.1 22728 /usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf/libpython3.5m-pic.a 22728 /overlay/system/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf/libpython3.5m-pic.a 22524 /usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf/libpython3.5m.a 22524 /overlay/system/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf/libpython3.5m.a 20328 /overlay/ramdisk/upper 20328 /overlay/ramdisk 20208 /usr/include 20208 /overlay/system/usr/include 20000 /usr/share/perl 20000 /overlay/system/usr/share/perl 19996 /usr/share/perl/5.24.1 19996 /overlay/system/usr/share/perl/5.24.1 19248 /mnt 18272 /overlay/ramdisk/upper/var 18240 /overlay/ramdisk/upper/var/log 16480 /usr/share/man 16480 /overlay/system/usr/share/man 14248 /overlay/system/lib/udev 14248 /lib/udev 13784 /overlay/system/var/lib/dpkg 13780 /var/lib/dpkg 13096 /usr/lib/arm-linux-gnueabihf/perl 13096 /overlay/system/usr/lib/arm-linux-gnueabihf/perl 13032 /usr/lib/arm-linux-gnueabihf/perl/5.24.1 13032 /overlay/system/usr/lib/arm-linux-gnueabihf/perl/5.24.1 12808 /usr/lib/gcc/arm-linux-gnueabihf/6/cc1plus 12808 /overlay/system/usr/lib/gcc/arm-linux-gnueabihf/6/cc1plus 12804 /var/lib/dpkg/info 12804 /overlay/system/var/lib/dpkg/info 12336 /usr/lib/python3 12336 /overlay/system/usr/lib/python3
以上となります。よろしくお願い致します。
at_akihito.irie
naotake_ito
at_shiita.ishigaki
2021年12月17日 10時45分
石垣です。
> を実行したのですが。OverlayFSが有効になりませんでした。
使用しているLinuxカーネルバージョンとu-bootのバージョンを教えて頂いてもよろしいでしょうか。
Linuxカーネルのバージョンは以下のコマンドで確認できます。
u-bootのバージョンは保守モード起動時に確認することができます。
U-Boot 2018.03-at9のように表示されます。
また、sdブート時の以下のコマンドの結果についても教えて頂いてもよろしいでしょうか。