현재 질문: 장치 트리 파일을 얻기 위해 arm 펌웨어 파일을 디컴파일하는 방법은 무엇입니까?

현재 질문: 장치 트리 파일을 얻기 위해 arm 펌웨어 파일을 디컴파일하는 방법은 무엇입니까?

Android TV 상자에서 libreelec을 플래시하려고 하는데 libreelec 토스터에 넣을 수 있는 이미지가 없습니다. RPi에서 이것은 매우 간단합니다. 여기서는 뭔가를 컴파일해야 한다고 생각하는데 실제로 답이 없습니다. S802를 기반으로 한 이전 Box의 이미지가 있는데(lakka 버전만 발견(?)) S812용 libreelec이 있더라도 zip/tar에서 누가 "컴파일"했는지 알 수 없습니다. 실제 USB-SD 생성기 이미지에 넣습니다. 보기보다 쉬울 수도 있으니 힌트를 주세요!

시작 질문: S812 기반 보드에서 Libreelec을 플래시/컴파일하는 방법을 아는 사람이 있습니까?

현재 질문: 내 마더보드에 다른 운영 체제를 설치하는 데 필요한 장치 트리 파일을 얻기 위해 arm 펌웨어 파일을 어떻게 디컴파일합니까?

바라보다:

토스터에:https://libreelec.tv/2016/08/usb-sd-creator/

이전 상자에 대한 lakka/libreelec 빌드(.img):http://le.builds.lakka.tv/S802.M8.arm/

libreelec은 amlinux.ru에서 구축되었습니다(예: S812 기반 상자용). https://mega.nz/#F!W0Qk2JIQ!P1iyw7dFFHvubkIUZ-i1lA!3ohmxIaJ


1. S812 기반 마더보드용 libreelec 빌드에서 토스터 이미지 파일을 생성하는 방법은 무엇입니까?

가능한 해결책:

다음 페이지에는 Amlogic 보드(S805 S905 S905X S912(SD 및 USB))용 Linux 버전이 포함되어 있습니다.

바라보다:http://freaktab.com/forum/tv-player-support/amlogic-based-tv-players/606133-linux-images-for-s805-s905-s905x-s912-sd-and-usb


2. 그러면 amlogic 보드의 요구에 맞는 부팅 가능한 sd 카드를 어떻게 작성할 수 있습니까(imagetoaster를 사용할 수 없는 것 같습니다).

가능한 해결책:

이 페이지는 약간 도움이 되었습니다. 최신 버전에는 Android 및 Linux 측을 사용하기 위해 멀티 부팅을 활성화하는 데 필요한 모든 파일이 포함되어 있으므로 추출된 이미지(.xz -> .img)를 SD 카드의 dd를 통해 복사하면 됩니다. (나중에 설명하겠습니다).

나는 많은 사람들이 훌륭한 xz 압축 형식에 익숙하지 않다는 것을 알고 있기 때문에 이 두 가지를 게시하고 있습니다. 필요에 맞는 이미지를 다운로드하고 Unix 계열 시스템에서 루트로 실행하여 CuBox-i를 부팅하는 데 사용되는 MicroSD 카드에 덤프합니다. MicroSD 카드가 /dev/sdd로 나타난다고 가정합니다.

# dd if=cubox-i.img of=/dev/sdd

바라보다:https://people.debian.org/~gwolf/


3.다음 지침에 따라 TV 상자에서 Linux를 플래싱했습니다.

1.) Android를 실행하는 TV 박스에서 준비된 카드를 TV 박스의 SD 슬롯에 삽입하거나 USB 카드 리더기를 사용하십시오. 참고: 나는 무슨 일이 일어나고 있는지 볼 수 있도록 활성 LED가 있는 카드 리더를 사용하는 것을 좋아합니다. 처음 부팅하는 데 몇 분이 걸릴 수 있지만 LED가 깜박이면 안심할 수 있습니다.

2.) Android/설정/기기 정보/시스템/업데이트로 이동합니다. 참고: 앱 서랍에 업데이트된 앱과 백업 앱이 있을 수 있습니다. - 업데이트 및 백업 응용 프로그램의 UpdateLocale 섹션에서 선택을 클릭하고 aml_autoscript.zip을 선택한 다음 업데이트를 클릭합니다. 참고: "데이터 지우기" 및 "미디어 지우기"를 선택하지 마십시오. 명확히 하려면 다음 옵션을 사용하지 마세요.

3.) TV 상자가 여러 번 재부팅됩니다. 결국 초기 로그인 프롬프트가 표시됩니다. 초기 로그인 자격 증명은 다양한 이미지에 대한 로그인 정보를 보려면 여기를 참조하세요.

새로운 비밀번호를 선택하라는 메시지가 표시됩니다. 그렇게 하세요. 새로운 사용자 및 P/W를 생성하라는 메시지가 표시됩니다.

상자가 재부팅되어 약간 느리지만 결국 데스크탑으로 이동하게 됩니다. 카드의 여유 공간이 확장되지 않으면 gparted(설치가 필요할 수 있음)를 사용하여 Ext 파티션을 확장하여 카드를 채웁니다.

이러한 단계는 실제보다 더 복잡해 보입니다. 한 번 수행하면 두 번째에는 이 가이드가 필요하지 않을 것입니다.

바라보다:http://freaktab.com/forum/tv-player-support/amlogic-based-tv-players/s905/tronsmart-ac/firmware-roms-tools-at/565449-running-linux-from-sd-card- 또는 balbes150 방법 및 파일을 사용하는 USB 플래시 드라이브

결과:

3.3항에 관해서. ) 지금까지 "업데이트"를 초기화한 후 유일한 결과는 재부팅할 때마다 HDMI 신호 손실이 발생하는 것 같습니다. 그래서 HDMI 케이블을 다시 연결합니다... 이제 본 것 중 최고의 블루 스크린(블루 스크린)이 나타납니다. 안드로이드 시대인 것 같아요...).


4. SD 카드에 적용하려면 내 기기의 실제 펌웨어에서 소위 .dtb 파일을 추출해야 하는 것 같습니다...

.dtb 파일에 대한 개요 사이트를 아는 사람이 있으면 게시해 주세요.

바라보다:http://www.cnx-software.com/2014/05/12/how-to-extract-a-device-tree-file-from-android-firmware-files/

결과:

완벽한 리눅스 버그

치명적인 오류: Blob의 매직 넘버가 올바르지 않습니다.

    user@user-x:~/Downloads$ unrar x -r ./M8N-M8S_Amlogic_11152015.rar

unrar 0.0.1  Copyright (C) 2004  Ben Asselstine, Jeroen Dekkers


Extracting from /home/user/Downloads/M8N-M8S_Amlogic_11152015.rar

Extracting  n200C-ota-20151103.zip                                    OK        
Extracting  recovery.img                                              OK        
Extracting  u-boot.bin                                                OK        
Extracting  aml_autoscript                                            OK        
Extracting  factory_update_param.aml                                  OK        
Extracting  readme.txt                                                OK        
All OK
user@user-x:~/Downloads$ split_bootimg.pl recovery.img
Page size: 2048 (0x00000800)
Kernel size: 6065155 (0x005c8c03)
Ramdisk size: 2057152 (0x001f63c0)
Second size: 180224 (0x0002c000)
Board name: 
Command line: 
Writing recovery.img-kernel ... complete.
Writing recovery.img-ramdisk.gz ... complete.
Writing recovery.img-second.gz ... complete.
user@user-x:~/Downloads$ dtc -I dtb recovery.img-second.gz -O dts -o meson8_tm8.dtd
FATAL ERROR: Blob has incorrect magic number
user@user-x:~/Downloads$ dtc -I dtb recovery.img-second.gz -O dts -o bla.dtd
FATAL ERROR: Blob has incorrect magic number
user@user-x:~/Downloads$ 

답변1

재고 복구 파티션을 얻는 것부터 시작하세요.

PC에서 스톡 이미지를 다운로드하고 압축을 풉니다. 그런 다음 펌웨어.img 파일의 압축을 풉니다.암로직 언패커그리고 파일을 찾아보세요recovery.PARTITION

또는

Android 기기 터미널, twrp 또는 adb 등에서 다음을 입력하세요.

dd if=/dev/block/recovery of=recovery.PARTITION

지금 환승복원.파티션파일을 termux 홈 폴더 또는 Linux 홈 폴더에 복사합니다. 이 파일에는 DTB 파일이 포함되어 있으므로 이제 추출만 하면 됩니다. 설치했다고 가정하면git, python, perl, wget 등termux에.

#Install binwalk
git clone https://github.com/ReFirmLabs/binwalk.git
cd binwalk
python setup.py install
cd ..; rm -Rf binwalk

#Get split_bootimg.pl script
wget https://gist.githubusercontent.com/jberkel/1087743/raw/45046f87176dfacdc22af4290f89a0d2e0df1dbb/split_bootimg.pl
chmod +x split_bootimg.pl

#Split recovery.PARTITION
./split_bootimg.pl recovery.PARTITION

#Unpack recovery.PARTITION-second.gz
gunzip recovery.PARTITION-second.gz

#Get offset of embedded DTB in recovery.PARTITION-second by searching for bytes D00DFEED
DTBOFFSET=$(binwalk -R "\xD0\x0D\xFE\xED" recovery.PARTITION-second | awk 'NR > 3 { print $1}' | head -n 1)
#Get length of DTB in recovery.PARTITION-second this is next 4 bytes after D00DFEED
DTBLEN=$((16#$(dd if=recovery.PARTITION-second bs=1 skip=$(($DTBOFFSET + 4)) count=4 status=none | od -tx1 | head -n 1 | cut -d ' ' -f 2- | sed 's/ //g' )))
#Now extract and create dtb file
dd if=recovery.PARTITION-second of=mybox.dtb bs=1 skip=$DTBOFFSET count=$DTBLEN

관련 정보