Heute ist ja meine Lieferung aus dem fernen Osten angekommen
Darunter war auch eine 32 GB eMMC Karte. Dann wollen wir mal schauen wie das so funktioniert.
System
rock64@rockpro64:~$ uname -a
Linux rockpro64 4.4.132-1072-rockchip-ayufan-ga1d27dba5a2e #1 SMP Sat Jul 21 20:18:03 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
fdisk -l
rock64@rockpro64:~$ sudo fdisk -l
[sudo] password for rock64:
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mtdblock0: 4 MiB, 4161536 bytes, 8128 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 /dev/mtdblock1: 32 KiB, 32768 bytes, 64 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 /dev/mtdblock2: 256 KiB, 262144 bytes, 512 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 /dev/mmcblk1: 28.9 GiB, 31037849600 bytes, 60620800 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
Disklabel type: dos
Disk identifier: 0x6f20736b
Device Boot Start End Sectors Size Id Type
/dev/mmcblk1p1 778135908 1919645538 1141509631 544.3G 72 unknown
/dev/mmcblk1p2 168689522 2104717761 1936028240 923.2G 65 Novell Netware 386
/dev/mmcblk1p3 1869881465 3805909656 1936028192 923.2G 79 unknown
/dev/mmcblk1p4 2885681152 2885736650 55499 27.1M d unknown
Partition table entries are not in disk order.
Disk /dev/mmcblk1boot1: 4 MiB, 4194304 bytes, 8192 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 /dev/mmcblk1boot0: 4 MiB, 4194304 bytes, 8192 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 /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 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
Disklabel type: gpt
Disk identifier: 2934CDA1-05F4-468A-AC81-718F9FD97DB0
Device Start End Sectors Size Type
/dev/mmcblk0p1 64 8063 8000 3.9M Linux filesystem
/dev/mmcblk0p2 8064 8191 128 64K Linux filesystem
/dev/mmcblk0p3 8192 16383 8192 4M Linux filesystem
/dev/mmcblk0p4 16384 24575 8192 4M Linux filesystem
/dev/mmcblk0p5 24576 32767 8192 4M Linux filesystem
/dev/mmcblk0p6 32768 262143 229376 112M Microsoft basic data
/dev/mmcblk0p7 262144 31116254 30854111 14.7G Linux filesystem
Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 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
Disklabel type: dos
Disk identifier: 0x17830656
Device Boot Start End Sectors Size Id Type
/dev/sda1 65535 468862127 468796593 223.6G 83 Linux
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb9aa5cfb
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1953525167 1953523120 931.5G 83 Linux
Disk /dev/zram0: 166 MiB, 173989888 bytes, 42478 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram1: 166 MiB, 173989888 bytes, 42478 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram2: 166 MiB, 173989888 bytes, 42478 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram3: 166 MiB, 173989888 bytes, 42478 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram4: 166 MiB, 173989888 bytes, 42478 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram5: 166 MiB, 173989888 bytes, 42478 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Mal was kürzen, die SD-Karte
Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 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
Disklabel type: gpt
Disk identifier: 2934CDA1-05F4-468A-AC81-718F9FD97DB0
Device Start End Sectors Size Type
/dev/mmcblk0p1 64 8063 8000 3.9M Linux filesystem
/dev/mmcblk0p2 8064 8191 128 64K Linux filesystem
/dev/mmcblk0p3 8192 16383 8192 4M Linux filesystem
/dev/mmcblk0p4 16384 24575 8192 4M Linux filesystem
/dev/mmcblk0p5 24576 32767 8192 4M Linux filesystem
/dev/mmcblk0p6 32768 262143 229376 112M Microsoft basic data
/dev/mmcblk0p7 262144 31116254 30854111 14.7G Linux filesystem
Die eMMC Karte
Disk /dev/mmcblk1: 28.9 GiB, 31037849600 bytes, 60620800 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
Disklabel type: dos
Disk identifier: 0x6f20736b
Device Boot Start End Sectors Size Id Type
/dev/mmcblk1p1 778135908 1919645538 1141509631 544.3G 72 unknown
/dev/mmcblk1p2 168689522 2104717761 1936028240 923.2G 65 Novell Netware 386
/dev/mmcblk1p3 1869881465 3805909656 1936028192 923.2G 79 unknown
/dev/mmcblk1p4 2885681152 2885736650 55499 27.1M d unknown
Partition table entries are not in disk order.
Disk /dev/mmcblk1boot1: 4 MiB, 4194304 bytes, 8192 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 /dev/mmcblk1boot0: 4 MiB, 4194304 bytes, 8192 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
System kopieren
rock64@rockpro64:/usr/local/sbin$ sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1
31116288+0 records in
31116288+0 records out
15931539456 bytes (16 GB, 15 GiB) copied, 1784.49 s, 8.9 MB/s
Das Ganze dauert etwas, also ruhig mal Kaffee trinken oder was anderes
rock64@rockpro64:~$ sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M
3798+1 records in
3798+1 records out
15931539456 bytes (16 GB, 15 GiB) copied, 486.644 s, 32.7 MB/s
Dank eines Tipps aus dem Forum, ich hatte bs=4M nicht angehangen, geht es jetzt deutlich schneller! Thank you! Dauert jetzt bei mir nur noch ca. 10 Minuten. Damit kann man leben
Speedtest
rock64@rockpro64:~$ sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 43.7304 s, 98.2 MB/s
Das Ganze noch mit iozone
rock64@rockpro64:~$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Iozone: Performance Test of File I/O
Version $Revision: 3.429 $
Compiled for 64 bit mode.
Build: linux
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
Vangel Bojaxhi, Ben England, Vikentsi Lapa.
Run began: Wed Jul 25 16:28:19 2018
Include fsync in write timing
O_DIRECT feature enabled
Auto Mode
File size set to 102400 kB
Record Size 4 kB
Record Size 16 kB
Record Size 512 kB
Record Size 1024 kB
Record Size 16384 kB
Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Output is in kBytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 kBytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 3640 4406 8138 8161 8221 3806
102400 16 15447 18884 32456 32616 32407 18112
102400 512 86681 90801 104477 104538 105025 90173
102400 1024 91425 94894 107187 107413 106724 88925
102400 16384 93649 95187 115293 115418 115404 95819
iozone test complete.
Resizing
Nach dieser Aktion ist die Partition Nr.7 kleiner als die eMMC-Karte groß ist. Die eMMC-Karte hat 32 GB, die SD-Karte hatte 16GB. dd kopiert ja stumpf 1:1 alles rüber. Was machen? Kamil hat unter /usr/local/sbin ein paar Scripte liegen. Darunter resize_rootfs.sh Dieses Script ist dafür da, die Partition Nr.7 auf die maximale Größe des Gerätes zu vergrößern. Genau das was ich brauche
rock64@rockpro64:/usr/local/sbin$ sudo ./resize_rootfs.sh
[sudo] password for rock64:
Resizing /dev/mmcblk1 (sd/emmc -- /dev/mmcblk1p7)...
+ sgdisk -e /dev/mmcblk1
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
+ echo ,+,,,
+ sfdisk /dev/mmcblk1 -N7 --force
Checking that no-one is using this disk right now ... FAILED
This disk is currently in use - repartitioning is probably a bad idea.
Umount all file systems, and swapoff all swap partitions on this disk.
Use the --no-reread flag to suppress this check.
Disk /dev/mmcblk1: 28.9 GiB, 31037849600 bytes, 60620800 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
Disklabel type: gpt
Disk identifier: 2934CDA1-05F4-468A-AC81-718F9FD97DB0
Old situation:
Device Start End Sectors Size Type
/dev/mmcblk1p1 64 8063 8000 3.9M Linux filesystem
/dev/mmcblk1p2 8064 8191 128 64K Linux filesystem
/dev/mmcblk1p3 8192 16383 8192 4M Linux filesystem
/dev/mmcblk1p4 16384 24575 8192 4M Linux filesystem
/dev/mmcblk1p5 24576 32767 8192 4M Linux filesystem
/dev/mmcblk1p6 32768 262143 229376 112M Microsoft basic data
/dev/mmcblk1p7 262144 31116254 30854111 14.7G Linux filesystem
/dev/mmcblk1p7:
New situation:
Disklabel type: gpt
Disk identifier: 2934CDA1-05F4-468A-AC81-718F9FD97DB0
Device Start End Sectors Size Type
/dev/mmcblk1p1 64 8063 8000 3.9M Linux filesystem
/dev/mmcblk1p2 8064 8191 128 64K Linux filesystem
/dev/mmcblk1p3 8192 16383 8192 4M Linux filesystem
/dev/mmcblk1p4 16384 24575 8192 4M Linux filesystem
/dev/mmcblk1p5 24576 32767 8192 4M Linux filesystem
/dev/mmcblk1p6 32768 262143 229376 112M Microsoft basic data
/dev/mmcblk1p7 262144 60619709 60357566 28.8G Linux filesystem
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Syncing disks.
+ partprobe /dev/mmcblk1
+ resize2fs /dev/mmcblk1p7
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/mmcblk1p7 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/mmcblk1p7 is now 7544695 (4k) blocks long.
Neustarten, danach hat die Partition 29GB
rock64@rockpro64:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 992M 0 992M 0% /dev
tmpfs 200M 488K 199M 1% /run
/dev/mmcblk1p7 29G 1.3G 26G 5% /
tmpfs 996M 0 996M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 996M 0 996M 0% /sys/fs/cgroup
/dev/mmcblk1p6 112M 4.0K 112M 1% /boot/efi
tmpfs 200M 0 200M 0% /run/user/1000
Fazit
Die eMMC-Karte auf einem ROCKPro64 scheint ja ganz gut nutzbar zu sein. Ist aber noch zu früh für ein endgültiges Fazit. Was mir jetzt schon auffällt, wenn man oft sie Images ausprobiert, ist eine SD-Karte unschlagbar. Einfach zu handeln. Wenn eine Version aber mal relativ fix ist, kann man auch eine eMMC Karte nehmen.
Ich will SPI
Update
Wenn ich eine 32GB SD-Karte nehme klappt es nicht, bekomme dann eine Fehlermeldung. Nehmt eine SD-Karte die etwas kleiner ist als das eMMC-Modul. Bsp.: 16GB SD-Karte - 32GB eMMC-Modul