컴퓨터.전자기기

X96 Air P4 / EMMC 에 CoreELEC 설치하기

ㅋㅋ잠자 2021. 8. 12. 21:07
반응형

기본적으로 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클락이 높기 때문에 (실제로는 클럭은 같고 더블 데이타 레이트입니다.) 속도 향상에 대한 부분은 있다고 보셔도 됩니다.

 

간단하게 여기서 마치겠습니다.

 

감사합니다.

반응형