パッケージシステムによる追加ソフトウェアの導入 での例の通り、本体のみでもある程度のパッケージの導入が可能です。
セルフ環境での開発もできますが、更新部分を本体RAMの tmpfs 領域に確保する必要がありますので、
パッケージの追加には、
上記それぞれの制限を受けることになります。
といった要望に応えるため、SDカード1)をファイルシステムの拡張領域として用いることができるようになっています。
拡張領域に使用するためのSDカードを準備します。 32GB SDHC規格までのSDカードが利用可能です。
市販されているSDカード(MLC2)のものがほとんどです)でも、試験的な運用には使用することができますが、
開発や実運用に利用する場合は書替寿命の問題がありますので、SLC3)のSDカードで、ウェアレベリング機構に
問題のないデバイスの利用をお勧めします。
※ SLC の SD カードは、弊社でも販売しております。お問い合わせは こちら からお願い致します。
MA-E3xx に、準備したSDカードを “拡張領域” として利用させるため、SDカードに設定ファイルを作成する必要があります。
Windows PCなどにSDカードを挿入し、“devel” というファイルを作成します。
設定はこれだけでOKです。
のいずれかの小さい方の容量のイメージファイルを自動的に作成し、拡張領域として利用します。
といった場合には、後述するマニュアル設定を行う必要があります。
準備したSDカードを、MA-E3xxのSDカードスロットに挿入し、NAND Flashをrootfsとするモードで起動します。
自動的に拡張領域を確保して利用します。
Begin: Running /scripts/init-bottom ... root-overlay: Setting up aufs on /root as root file system MMC Filesystem: vfat detected. 'devel' file found. create loopback image file (1531 [MiB]) ...[ 36.275969] random: nonblocking pool is initialized 1531+0 records in 1531+0 records out done. creating ext4 filesystem on image file...done. [ 123.746246] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
下記の通り、1.5GiB程度 /rw, / に mount されていることがわかります。
root@plum:~# df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 1510304 2484 1491436 1% / udev 503824 4 503820 1% /dev tmpfs 102644 236 102408 1% /run /dev/mtdblock8 55296 55296 0 100% /ro overlay-tmpfs 513212 22608 490604 5% /rw.tmpfs /dev/mmcblk0p1 1960960 1567756 393204 80% /rw.tmpfs/mnt/mmc <-- SDカード全体の80%利用中 /dev/loop0 1510304 2484 1491436 1% /rw <-- 拡張領域 /dev/loop1 1024 1024 0 100% /ro/lib/modules /dev/loop2 21504 21504 0 100% /ro/usr/lib/jvm overlay 1510304 2484 1491436 1% / <---- aufsにより / の上にかぶせてmount中 overlay.log 513212 22608 490604 5% /var/log overlay.kmod 1510304 2484 1491436 1% /lib/modules overlay.jvm 1510304 2484 1491436 1% /usr/lib/jvm ubi0:overlay 40292 116 38116 1% /rw.tmpfs/.overlay none 4 0 4 0% /sys/fs/cgroup none 5120 0 5120 0% /run/lock none 513212 0 513212 0% /run/shm none 102400 0 102400 0% /run/user root@plum:~#
このモードで起動しているときは、『SDカードを利用中』を表すために、“POWER” LEDが 緑+赤 の点灯となります。
“devel” ファイルに作成したいイメージファイルのサイズを KiB 単位で書いておくことで、
イメージファイルのサイズをマニュアルで設定することができます。
サイズを指定する際は、数値だけでなく上の例の通りシェルスクリプトで計算可能な数式での指定も可能です。
この設定ファイルを保存したSDカードを使用した場合、下のとおり 1GiB の拡張領域を作成して利用します。
この方法では、FATファイルシステムのファイルサイズ上限 4GiB までの拡張領域を利用することができます。
SDカードにイメージファイルを作成し、ループバックマウントして利用する方式をとっている関係上、
前述の通りイメージファイルのサイズはベースとなるSDカードのファイルシステムの制限を受けることになります。
4GiB以上の拡張領域を利用する場合、SDカードを ext4 ファイルシステムでフォーマットする必要があります。
作業は MA-E3xx で可能です。手順は下記のとおりとなります。
root@plum:~# fdisk /dev/mmcblk0 Command (m for help): p Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes 221 heads, 20 sectors/track, 3521 cylinders, total 15564800 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 15564799 7778304 b W95 FAT32 Command (m for help): t Selected partition 1 Hex code (type L to list codes): L 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT 1e Hidden W95 FAT1 80 Old Minix Hex code (type L to list codes): 83 Changed system type of partition 1 to 83 (Linux) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks. root@plum:~#
root@plum:~# mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/mmcblk0p1 mke2fs 1.42.8 (20-Jun-2013) Discarding device blocks: done Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 486720 inodes, 1944576 blocks 0 blocks (0.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1992294400 60 block groups 32768 blocks per group, 32768 fragments per group 8112 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done root@plum:~#
root@plum:~# mount /dev/mmcblk0p1 /mnt/sd root@plum:~# df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 513212 120 513092 1% / udev 503824 8 503816 1% /dev tmpfs 102644 244 102400 1% /run /dev/mtdblock8 55296 55296 0 100% /ro overlay-tmpfs 513212 22760 490452 5% /rw.tmpfs overlay-persist 513212 120 513092 1% /rw /dev/loop0 1024 1024 0 100% /ro/lib/modules /dev/loop1 21504 21504 0 100% /ro/usr/lib/jvm overlay 513212 120 513092 1% / overlay.log 513212 22760 490452 5% /var/log overlay.kmod 513212 120 513092 1% /lib/modules overlay.jvm 513212 120 513092 1% /usr/lib/jvm ubi0:overlay 40292 120 38112 1% /rw.tmpfs/.overlay none 4 0 4 0% /sys/fs/cgroup none 5120 0 5120 0% /run/lock none 513212 0 513212 0% /run/shm none 102400 0 102400 0% /run/user /dev/mmcblk0p1 7525000 17088 7491528 1% /mnt/sd <----
4GiB の拡張領域を作成する例です。
root@plum:~# echo "4*1024*1024" > /mnt/sd/devel root@plum:~# cat /mnt/sd/devel 4*1024*1024
root@plum:~# reboot root@plum:~# Broadcast message from root@plum (/dev/pts/0) at 16:11 ... The system is going down for reboot NOW!
再起動後の状態は下記のようになります。
4GiBの拡張領域が作成されていることがわかります。