Ako skontrolovať eMMC pod Linuxom

17.10.2022 | 11:10 | redhawk1975 | redhawk1975

Čoraz častejšie je v notebookoch, hlavne tých v nižšej cenovej hladine, používanie eMMC rovnako ako v mobilných telefónoch

eMMC - embedded Multi-Media Card, je štandard pre úložisko, je menej zložitý ako SSD, ale nedosahuje jeho parametre. Takmer každý SSD disk je rýchlejší, ale eMMC úložiská sú lacnejšie.

eMMC sú o dosť pomalšie, aj keď sa často píše, že ide o rýchle úložisko. 

Jedným z hlavných problémov ale je získanie informácií o eMMC. Na rozdiel od SSD a HDD bežne, napríklad za pomoci HardInfo alebo inxi / smxi, nie je schopné zobraziť podrobnejšie informácie. 
Mne sa osvedčil pistore.

Základné informácie je možné získať z inxi pri použití parametru Dxxx.

mx@gnawty:~
$ inxi -Dxxx
Drives:    Local Storage: total: 14.68 GiB used: 6.18 GiB (42.1%) 
           ID-1: /dev/mmcblk0 vendor: Hynix model: HAG2e size: 14.68 GiB type: SSD 
           serial: 0x04afd0d4 rev: 0x7 scheme: GPT 
mx@gnawty:~
$ 

Ide o základné informácie, pre porovnanie informácia o SSD:

mx@acer:~
$ inxi -Dxxx
Drives:    Local Storage: total: 163.45 GiB used: 16.44 GiB (10.1%) 
           ID-1: /dev/sda vendor: Kingston model: SMS151S324G size: 22.37 GiB speed: 6.0 Gb/s 
           type: SSD serial: 50026B7235052A0E rev: 00.7 temp: 31 C scheme: MBR 
           ID-2: /dev/sdb vendor: Kingston model: SV300S37A120G size: 111.79 GiB speed: 6.0 Gb/s 
           type: SSD serial: 50026B723B012668 rev: BBF0 temp: 29 C scheme: MBR 
           ID-3: /dev/sdc type: USB vendor: Silicon Power model: UFD 2.0 32G size: 29.3 GiB 
           type: N/A serial: 1402665401200310 rev: 1100 scheme: MBR 
mx@acer:~

Pre zistenie podrobnejších informácií nie je nutné inštalovať žiadne ďaľšie utility, v kerneli sú ovládače a na informácie stačia utility v každej distribúcií. Najmä df, dd, lsblk, fdisk a dmesg

Podrobnejšie informácie sú napríklad cez príkaz dmesg

mx@gnawty:~
$ sudo dmesg | grep mmc
[    2.738029] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA
[    2.740088] mmc1: SDHCI controller on ACPI [80860F16:00] using ADMA
[    2.885743] mmc0: new HS200 MMC card at address 0001
[    2.886337] mmcblk0: mmc0:0001 HAG2e\x05 14.7 GiB 
[    2.886863] mmcblk0boot0: mmc0:0001 HAG2e\x05 partition 1 4.00 MiB
[    2.887368] mmcblk0boot1: mmc0:0001 HAG2e\x05 partition 2 4.00 MiB
[    2.887598] mmcblk0rpmb: mmc0:0001 HAG2e\x05 partition 3 4.00 MiB, chardev (240:0)
[    2.889762]  mmcblk0: p1 p2 p3
[    5.239929] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    9.301115] Adding 1070076k swap on /dev/mmcblk0p3.  Priority:-2 extents:1 across:1070076k SSFS
[    9.323477] EXT4-fs (mmcblk0p2): re-mounted. Opts: discard
[   10.065159] FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

Ako vidieť oproti inxi sú zobrazené informácie aj o partíciách a o radiči /-och

Osobne na základnú identifikáciu používam df.

mx@gnawty:~
$ sudo df
df: /root/.cache/doc: Operácia nie je povolená
Súborový systém 1K-bloky    Použ Dostupné Pou% Pripojený na
udev              941552       0   941552   0% /dev
tmpfs             195356    2732   192624   2% /run
/dev/mmcblk0p2  13473072 6418004  6348868  51% /
tmpfs               5120       8     5112   1% /run/lock
tmpfs             604720   46232   558488   8% /dev/shm
/dev/mmcblk0p1    523248    9720   513528   2% /boot/efi
cgroup                12       0       12   0% /sys/fs/cgroup
tmpfs             195352      16   195336   1% /run/user/1000
mx@gnawty:~
$ 

Základný test robím cez dd

mx@gnawty:~
$ sudo dd if=/dev/urandom of=/test oflag=direct
[sudo] heslo pre používateľa mx: 
81920+0 záznamov prečítaných
81920+0 záznamov zapísaných
335544320 bytes (336 MB, 320 MiB) copied, 8,62525 s, 37,6 MB/s
​mx@gnawty:~
$ 

Pre zložitejšie testovanie používam pibenchmark  pôvodne vyvýjaný pre Raspberry Pi. Na ich súhrnnej stránke je možné dohľadať rôzne disky (aj eMMC) a porovnať si výsledky.
pistore test používa aj mnou vyššie uvedený dd test, ale tu urobí viac a komplexnejších testov.

Inštalácia a spúšťanie je úplne jednoduché:

wget https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh
chmod +x Storage.sh
sudo ./Storage.sh /<cesta k skriptu>/

Test SSD Kingston SV300S37A120G dáva výsledok 16706 bodov a eMMC 2404.

Výpis z testu pistore eMMC Hynix HAG2e 16GB v Chromebooku GNAWTY (Acer CB3-111), ako vidieť používa inxi, dd a pár ďaľších utilít.

mx@gnawty:~
$ sudo ./Storage.sh
[sudo] heslo pre používateľa mx: 
Trimming and syncing drives ...
/boot/efi: 495,5 MiB (519585792 bytes) trimmed on /dev/mmcblk0p1
/: 0 B (0 bytes) trimmed on /dev/mmcblk0p2
Wrong DMI structures count: 12 announced, only 10 decoded.
Wrong DMI structures count: 12 announced, only 10 decoded.
Board information: Manufacturer: GOOGLE - Model: Gnawty - Architecture: x86_64 - OS: Debian GNU/Linux 11 (bullseye)
Fetching required components ...
Wrong DMI structures count: 12 announced, only 10 decoded.
Wrong DMI structures count: 12 announced, only 10 decoded.
Clock speeds: CPU: Unknown - Core: 
System rootfs drive (/) has been detected as /dev/mmcblk0p2 (mmcblk0p2)
Starting INXI hardware identification...
System:
  Host: gnawty Kernel: 4.19.0-256-antix.1-amd64-smp arch: x86_64 bits: 64
    compiler: gcc v: 10.2.1 Desktop: Xfce v: 4.16.0 Distro: MX-21.2.1_x64
    Wildflower August 28 2022 base: Debian GNU/Linux 11 (bullseye)
Machine:
  Type: Laptop System: GOOGLE product: Gnawty v: 1.0 serial: 123456789
  Mobo: GOOGLE model: Gnawty v: 1.0 serial: 123456789 UEFI: coreboot
    v: MrChromebox date: 02/04/2018
Battery:
  ID-1: BAT0 charge: 27.7 Wh (93.0%) condition: 29.8/36.7 Wh (81.3%)
    volts: 12.7 min: 11.4 model: LGC AC14B18 status: N/A
CPU:
  Info: dual core model: Intel Celeron N2840 bits: 64 type: MCP
    arch: Silvermont rev: 8 cache: L1: 112 KiB L2: 1024 KiB
  Speed (MHz): avg: 1402 high: 2301 min/max: 500/2582 cores: 1: 2301 2: 503
    bogomips: 8663
  Flags: ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Atom Processor Z36xxx/Z37xxx Series Graphics & Display
    driver: i915 v: kernel bus-ID: 00:02.0
  Device-2: Sunplus Innovation HD WebCam type: USB driver: uvcvideo
    bus-ID: 1-3:2
  Display: server: X.Org v: 1.20.11 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: i965 gpu: i915 resolution: 1366x768~60Hz
  OpenGL: renderer: Mesa DRI Intel HD Graphics (BYT) v: 4.2 Mesa 20.3.5
    direct render: Yes
Network:
  Device-1: Intel Wireless 7265 driver: iwlwifi v: kernel bus-ID: 01:00.0
  IF: wlan0 state: up mac: 7c:b0:c2:b0:ff:95
  Device-2: Intel Bluetooth wireless interface type: USB driver: btusb
    bus-ID: 1-4:3
Drives:
  Local Storage: total: 14.68 GiB used: 6.47 GiB (44.1%)
  ID-1: /dev/mmcblk0 vendor: Hynix model: HAG2e size: 14.68 GiB
  Message: No optical or floppy data found.
Partition:
  ID-1: / size: 12.85 GiB used: 6.31 GiB (49.1%) fs: ext4 dev: /dev/mmcblk0p2
  ID-2: /boot/efi size: 511 MiB used: 9.5 MiB (1.9%) fs: vfat
    dev: /dev/mmcblk0p1
  ID-3: swap-1 size: 1.02 GiB used: 161.2 MiB (15.4%) fs: swap
    dev: /dev/mmcblk0p3
Info:
  Processes: 284 Uptime: 2h 24m Memory: 1.86 GiB used: 620.8 MiB (32.5%)
  Init: SysVinit runlevel: 5 Compilers: gcc: N/A Packages: 1974
  Shell: Storage.sh inxi: 3.3.22
Running additional hardware identification tests...
Additional hardware identification tests completed.
Starting MMC/SD identification...
MMC Detected.  Identifying...
cat: /sys/block/mmcblk0/device/emmc_total_size: Adresár alebo súbor neexistuje
MMC Type: eMMC v4 (Embedded) - Manufacturer: SK Hynix - Model:  - Size: 13.2G
Running HDParm tests ...
/dev/mmcblk0p2:
 Timing O_DIRECT cached reads:   274 MB in  2.00 seconds = 137.04 MB/sec
 Timing O_DIRECT disk reads: 364 MB in  3.01 seconds = 121.07 MB/sec
HDParm: 121.07 MB/s - HDParmCached: 137.04 MB/s
Running dd tests ...
81920+0 záznamov prečítaných
81920+0 záznamov zapísaných
335544320 bytes (336 MB, 320 MiB) copied, 8,62525 s, 38,9 MB/s
DD Write Speed: 38.9 MB/s
Running fio write test ...
Running fio read test ...
FIO results - 4k RandWrite: 3002 IOPS (12011 KB/s) - 4k RandRead: 6404 IOPS (25616 KB/s)
Running iozone test ...
Iozone: Performance Test of File I/O
        Version $Revision: 3.489 $
Compiled for 64 bit mode.
Build: linux-AMD64 
Run began: Mon Oct 17 10:50:54 2022
Auto Mode
Include fsync in write timing
O_DIRECT feature enabled
File size set to 81920 kB
Record Size 4 kB
Command line used: iozone -a -e -I -i 0 -i 1 -i 2 -s 80M -r 4k
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
           81920       4    10252    12388    13207    12950    12357     7292                                                                
iozone test complete.
RandRead: 12357 - RandWrite: 7292 - Read: 13207 - Write: 10252
Enter a description of your storage and setup (Example: Kingston A400 SSD on Pi 4 using StarTech SATA to USB adapter)
Description: emmcHAG2e
(Optional) Enter alias to use on benchmark results.  Leave blank for completely anonymous.
Alias (leave blank for Anonymous): 
Result submitted successfully and will appear live on https://pibenchmarks.com within a couple of minutes.
     Category                  Test                      Result     
HDParm                    Disk Read                 121.07 MB/s              
HDParm                    Cached Disk Read          137.04 MB/s              
DD                        Disk Write                38.9 MB/s                
FIO                       4k random read            6404 IOPS (25616 KB/s)   
FIO                       4k random write           3002 IOPS (12011 KB/s)   
IOZone                    4k read                   13207 KB/s               
IOZone                    4k write                  10252 KB/s               
IOZone                    4k random read            12357 KB/s               
IOZone                    4k random write           7292 KB/s                
                          Score: 2412                                        
Compare with previous benchmark results at:
https://pibenchmarks.com/
mx@gnawty:~
$