最終更新: 2018/5
このチュートリアルではFlashAirを再読み込みし、Luaスクリプトやupload.cgiで変更したファイルをOSに認識させる方法を解説します。
FlashAirではLuaスクリプトやupload.cgiを使い、ファイル作成や削除を行うことができます。
その際、PCなどのSDメモリカードホスト側のOSがSDメモリカードの内容をキャッシュしていると、その変更をOSが認識する事が出来ません。 その為、SDメモリカードホスト機器とLuaやCGIから同時に変更を行うとFAT不整合が起きる可能性があります。
SDメモリカードホスト機器から一度抜き、再挿入することでSDメモリカードホスト機器にSDメモリカードの内容を再読み込みさせる事が出来ますが、 遠隔地からFlashAirを操作する場合など、直接FlashAirに触れずに再認識したい場合もあるでしょう。
このチュートリアルでは物理的にFlashAirを刺したまま、再マウントし、OSに再読み込みさせる方法を説明します。 Luaスクリプトやupload.cgiでファイル作成や削除をした後にOSからFlashAir上のファイルを読み書きする際は、 今回説明する方法でOSにカードの内容を再読み込みさせると良いでしょう。
devcon.exe
というツールを使い、リムーバルディスクの再接続を行います。
cd "C:\Program Files (x86)\Windows Kits\10\Tools\x64"
devcon.exe restart <ハードウェアID>
mount 、 umount というコマンドを使用します。また、SDカードを読み込む為にライブラリをインストールします。
sudo yum install exfat-fuse exfat-utils
sudo apt-get install exfat-fuse exfat-utils
sudo fdisk -l
$ sudo fdisk -l (中略) Device Boot Start End Sectors Size Id Type /dev/mmcblkOp1 8192 131971 122880 60M c w95 FAT32 (LBA) /dev/mmcblkOp2 131072 15564799 15433728 7.4G 83 Linux (中略) Device Boot Start End Sectors Size Id Type /dev/sdb1 8192 30228479 30220288 14.4G c w95 FAT32 (LBA)
/dev/sdb1
として認識されています。df
コマンドを実行し、上記で調べたデバイス名があるか確認してください。/dev/sdb1
のデバイスを
/mnt/flashair
にマウントすることとします。sudo mkdir /mnt/flashair
mouont /dev/sdb1 /mnt/flashair
umount /dev/sdb1
mount /dev/sdb1 /mnt/flashair
diskutil というコマンドを使い、デバイスを再接続させます。
diskutil list
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *251.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_APFS Container disk1 250.8 GB disk0s2 /dev/disk1 (synthesized): #: TYPE NAME SIZE IDENTIFIER 0: APFS Container Scheme - +250.8 GB disk1 Physical Store disk0s2 1: APFS Volume Macintosh HD 160.0 GB disk1s1 2: APFS Volume Preboot 21.3 MB disk1s2 3: APFS Volume Recovery 517.8 MB disk1s3 4: APFS Volume VM 3.2 GB disk1s4 /dev/disk2 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.5 GB disk2 1: Windows_FAT_32 NO NAME 15.5 GB disk2s1
disk2s1
として認識されています。diskutil umount <デバイス名>
diskutil mount <デバイス名>