X96 Air P4 / EMMC 에 CoreELEC 설치하기
기본적으로 EMMC에 설치하기 위해서는, 현재 부팅이 USB나 EMMC로 부팅된 상태여야합니다.
이 상태를 그대로 EMMC로 옮길 수 있습니다.
이 때, 이미 설치가 되어 있으면 이 현재 부팅을 사용하여 다시 설치하거나, 아니면 전에 백업했던 파일을 통해 설치를 하실 수 있습니다.
EMMC에서 사용하시다가 잘못된다면, SD카드를 하나 하기와 같이 만들어서 SD카드를 꽂고 부팅하신 후, 복구가 가능합니다.
https://blog.djjproject.com/755
일단 정식 지원되는 기기가 아니지만, 정상적으로 작동이 되며, EMMC의 경우 32기가를 내장하고 있어서 충분히 쓸만한 용량을 가지고 있습니다.
바로 설치 진행하겠습니다.
1. ceemmc 툴 사용하여 EMMC에 설치하기
CoreELEC SSH 쉘에 접근하여 하기 명령어를 입력하고 하기를 따르시면 됩니다.
중간에 docker 컨테이너를 중지 시키지 않은 것이 생각이 났으나, 실제로 파일 복사는 looping 되어 처리가 되지 않았습니다. 그냥 바로 사용하셔도 무방합니다.
############################################## # CoreELEC # # https://coreelec.org # ############################################## CoreELEC (official): 19.2-Matrix_rc3 (Amlogic-ng.arm) # 하기 명령어를 입력합니다. CoreELEC:~ # ceemmc -vx Starting CoreELEC eMMC installation tool... System is not supported: sm1_s905x3_4g_1gbit! There is NO official support by Team CoreELEC if you continue to run this tool! # 지원되지 않는 플랫폼이라고 나옵니다. y 를 눌러 넘어갑니다. Continue? [y]: y eMMC size: 0x000747c00000 [32GB] Original partition table: [mmcblk0p01] bootloader offset 0x000000000000, size 0x000000400000 [4 MB], unkn [mmcblk0p02] reserved offset 0x000002400000, size 0x000004000000 [64 MB], unkn [mmcblk0p03] cache offset 0x000006c00000, size 0x000046000000 [1120 MB], cache [mmcblk0p04] env offset 0x00004d400000, size 0x000000800000 [8 MB], unkn [mmcblk0p05] logo offset 0x00004e400000, size 0x000000800000 [8 MB], code [mmcblk0p06] recovery offset 0x00004f400000, size 0x000001800000 [24 MB], code [mmcblk0p07] misc offset 0x000051400000, size 0x000000800000 [8 MB], code [mmcblk0p08] dtbo offset 0x000052400000, size 0x000000800000 [8 MB], code [mmcblk0p09] cri_data offset 0x000053400000, size 0x000000800000 [8 MB], cache [mmcblk0p10] param offset 0x000054400000, size 0x000001000000 [16 MB], cache [mmcblk0p11] boot offset 0x000055c00000, size 0x000001000000 [16 MB], code [mmcblk0p12] rsv offset 0x000057400000, size 0x000001000000 [16 MB], code [mmcblk0p13] metadata offset 0x000058c00000, size 0x000001000000 [16 MB], code [mmcblk0p14] vbmeta offset 0x00005a400000, size 0x000000200000 [2 MB], code [mmcblk0p15] tee offset 0x00005ae00000, size 0x000002000000 [32 MB], code [mmcblk0p16] vendor offset 0x00005d600000, size 0x000046000000 [1120 MB], code [mmcblk0p17] odm offset 0x0000a3e00000, size 0x000008000000 [128 MB], code [mmcblk0p18] system offset 0x0000ac600000, size 0x000050000000 [1280 MB], code [mmcblk0p19] product offset 0x0000fce00000, size 0x000008000000 [128 MB], code [mmcblk0p20] data offset 0x000105600000, size 0x000642600000 [25638 MB], data No CoreELEC installation found on eMMC # 듀얼 부팅 모드를 선택하는 것입니다. 현재 상태를 이용할 수도 있고, 백업파일을 사용하여 복구도 가능합니다. Install in dual boot mode, CoreELEC and Android on eMMC Use CoreELEC data from [1] current used SD or USB device [2] existing backup on current used SD or USB device # 싱글부팅 모드를 선택하는 것입니다. 현재 상태를 이용할 수도 있고... 상기와 마찬가지입니다. # 저는 안드로이드가 필요없음으로 하기 3번을 택하여 설치를 진행하였습니다. Install in single boot mode, only CoreELEC on eMMC Use CoreELEC data from [3] current used SD or USB device [4] existing backup on current used SD or USB device Please choose one option? [1/2/3/4]: 3 Free space of 'partition CE_FLASH': 512MB Warning: Could not find 'dto' partition! Free space of 'partition CE_STORAGE': 29208MB # 진짜 간단한 모양새로 파티션 테이블이 구성됩니다. New partition table: [mmcblk0p01] bootloader offset 0x000000000000, size 0x000000400000 [4 MB], unkn [mmcblk0p02] env offset 0x000000400000, size 0x000000800000 [8 MB], unkn [mmcblk0p03] misc offset 0x000000c00000, size 0x000000800000 [8 MB], code [mmcblk0p04] logo offset 0x000001400000, size 0x000000800000 [8 MB], code [mmcblk0p05] dtbo offset 0x000001c00000, size 0x000000800000 [8 MB], code [mmcblk0p06] reserved offset 0x000002400000, size 0x000004000000 [64 MB], unkn [mmcblk0p07] CE_FLASH offset 0x000006400000, size 0x000020000000 [512 MB], data [mmcblk0p08] CE_STORAGE offset 0x000026400000, size 0x000721800000 [29208 MB], data # 전체 사이즈 정보가 나옵니다. 하기에 복사 작업에서 퍼센트가 맞지 않는 부분이 있습니다. # 이 용량 베이스로 얼마나 남았는지 추측이 가능합니다. Used space of '/flash': 230MB Used space of '/storage': 4869MB There is enough free space on eMMC for installation! # 마지막으로 인스톨 하기 전에 설치를 할런지 물어봅니다. Install CoreELEC on eMMC. Continue? [y]: y Moved 'env' from offset 0x00004d400000, size 0x000000800000 to offset 0x000000400000 Moved 'misc' from offset 0x000051400000, size 0x000000800000 to offset 0x000000c00000 Moved 'logo' from offset 0x00004e400000, size 0x000000800000 to offset 0x000001400000 Moved 'dtbo' from offset 0x000052400000, size 0x000000800000 to offset 0x000001c00000 Starting to format the new 'CE_STORAGE' partition... mke2fs 1.45.6 (20-Mar-2020) Discarding device blocks: done Creating filesystem with 7477248 4k blocks and 1872304 inodes Filesystem UUID: 18fe1d43-d66c-490a-a188-58a3bb36cd22 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done Starting to format the new 'CE_FLASH' partition... mkfs.fat 4.1 (2017-01-24) Stopping Kodi before start of copy process! Starting copying of data to the eMMC! Please do NOT interrupt this progress till it's finished! # 데이터 복사가 시작됩니다. Copy all data from '/flash' to '/media/CE_FLASH' 230.82M 100% 27.79MB/s 0:00:07 (xfr#69, to-chk=0/73) Synchronize data on disk with memory, please wait... Copy all data from '/storage' to '/media/CE_STORAGE/coreelec_storage' 4.87G 99% 10.07MB/s 0:07:41 (xfr#253966, to-chk=0/301854) Synchronize data on disk with memory, please wait... Start Kodi again to have a user interface! Success! # 완료 되었으며, 이제 SD카드를 뽑고 부팅하면 자동으로 CoreELEC로 부팅하게 됩니다. You can now power off the device, remove the used boot media (SD or USB) and power on again to boot the device from eMMC! CoreELEC:~ # |
2. SD카드 제거 후, 재부팅하기
일단은 SD카드인 상태의 파티션 구조는 하기와 같습니다.
CoreELEC:~ # df -h Filesystem Size Used Available Use% Mounted on devtmpfs 1.9G 4.0K 1.9G 0% /dev tmpfs 766.4M 10.8M 755.6M 1% /run /dev/mmcblk1p1 511.7M 220.4M 291.3M 43% /flash /dev/loop0 199.0M 199.0M 0 100% / /dev/mmcblk1p2 57.1G 2.2G 54.9G 4% /storage tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup tmpfs 1.9G 2.3M 1.9G 0% /var tmpfs 1.9G 0 1.9G 0% /tmp /dev/sda1 109.5G 18.7G 85.2G 18% /var/media/sda1-usb-CT120BX1_00SSD1_ overlay 57.1G 2.2G 54.9G 4% /storage/.kodi/userdata/addon_data/service.system.docker/docker/overlay2/e81effd4e3d19c60c38267a86e062970303456564df8a17b5d7fa2824b3a7da9/merged overlay 57.1G 2.2G 54.9G 4% /storage/.kodi/userdata/addon_data/service.system.docker/docker/overlay2/682322f11870e5c4334a3d9397488d4d236d84c53d1e45f72d27c18dadee6ed0/merged overlay 57.1G 2.2G 54.9G 4% /storage/.kodi/userdata/addon_data/service.system.docker/docker/overlay2/d07f4e1652d70dfdada4465274eb61ad73293470cd09457648215c212ae282da/merged |
이후, SD카드를 제거하고 부팅하였을 경우 하기와 같습니다.
CoreELEC:~ # df -h Filesystem Size Used Available Use% Mounted on devtmpfs 1.9G 4.0K 1.9G 0% /dev tmpfs 766.4M 10.8M 755.6M 1% /run /dev/CE_FLASH 511.0M 220.3M 290.7M 43% /flash /dev/loop0 199.0M 199.0M 0 100% / /dev/CE_STORAGE 27.9G 5.3G 22.6G 19% /storage tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup tmpfs 1.9G 2.3M 1.9G 0% /var tmpfs 1.9G 0 1.9G 0% /tmp /dev/sda1 109.5G 18.7G 85.2G 18% /var/media/sda1-usb-CT120BX1_00SSD1_ overlay 27.9G 5.3G 22.6G 19% /storage/.kodi/userdata/addon_data/service.system.docker/docker/overlay2/e81effd4e3d19c60c38267a86e062970303456564df8a17b5d7fa2824b3a7da9/merged overlay 27.9G 5.3G 22.6G 19% /storage/.kodi/userdata/addon_data/service.system.docker/docker/overlay2/d07f4e1652d70dfdada4465274eb61ad73293470cd09457648215c212ae282da/merged overlay 27.9G 5.3G 22.6G 19% /storage/.kodi/userdata/addon_data/service.system.docker/docker/overlay2/682322f11870e5c4334a3d9397488d4d236d84c53d1e45f72d27c18dadee6ed0/merged |
매우 정상으로 마이그레이션이 되었습니다.
현재 SD카드가 아니라서 속도가 매우 빠르네요. 패키지 설치 속도나 짜잘 짜잘한 파일들 복사 속도가 많이 괜찮습니다.
3. 번외편, 현재 EMMC 모드 확인하기
일단은 이게 조금 이전부터 궁금했었습니다. 바로 한번 확인해보겠습니다.
CoreELEC:/sys/kernel/debug/emmc # cat ios clock: 200000000 Hz actual clock: 199999997 Hz vdd: 21 (3.3 ~ 3.4 V) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 2 (on) bus width: 3 (8 bits) timing spec: 9 (mmc HS200) signal voltage: 1 (1.80 V) driver type: 0 (driver type B) |
HS200으로 나오네요. CoreELEC 설정에 HS400을 쓸 수 있으면 쓰는 모드가 있어서 활성화 해보고 다시 찍어보았습니다.
CoreELEC:~ # cat /sys/kernel/debug/emmc/ios clock: 200000000 Hz actual clock: 199999997 Hz vdd: 21 (3.3 ~ 3.4 V) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 2 (on) bus width: 3 (8 bits) timing spec: 10 (mmc HS400) signal voltage: 1 (1.80 V) driver type: 0 (driver type B) |
오 조금 더 빠르게 사용할 수 있게 되었습니다.
실제로 빨라지는건 제한이 있겠지만, HS200 모드 보다 BUS클락이 높기 때문에 (실제로는 클럭은 같고 더블 데이타 레이트입니다.) 속도 향상에 대한 부분은 있다고 보셔도 됩니다.
간단하게 여기서 마치겠습니다.
감사합니다.