Jump to content

Repurpose a TV Box Allwinner H313 (similar to H96 Max) to boot secure image


Recommended Posts

Posted

Newbie on Armbian.

 

I have an Allwinner H313 (confirmed) box that I want to to use as a basic Samba server.

 

 CPU:Allwinner H313Quad Core ARM Cortex A53 
 GPU:Mali-G31 OPenGL ES3.2
 Memory:2GB
 Flash:16GB
 OS:Android 10.0

 

The actual firmware is a secure image and, no matter what procedure I do, I can't  load any other image but

the secure one.

 

Debugging shows that 'fastbootd' has the "secure" flag set.

 

My intention is to create a  basic secure arm64 Debian image but I am having a hard time in doing so.

 

Any ideas (specific Wiki, procedures) on how to create the secure image or "reset" the "secure" flag will be very appreciated.

 

Thanks in advance. 

Posted

On a first analysis, I noticed that the git already has a very similar option that I need (H313):

~/build/patch/u-boot/u-boot-sunxi/board_x96q$

   arm64-sun50i-h313-add-x96q-lpddr3-defconfig.patch
   sunsi-add-h616-internal-eth-phy-support.patch

 

so I am stuck on how to proceed because the example has H616 parameters.

 

Help will be appreciated.

 

 

Posted (edited)

@Sergioclr the H313, H616, H618, and IK316 are essentially the same SoC family. To successfully boot an image, you must match the correct AXP chip (the Power Management IC) and the specific DRAM version used on your board.

 

Essentially, any thread discussing the H616/H618 (excluding older H3/H5/H6 chips) will contain relevant information for these SoCs.

 

 

PMIC Information:

http://linux-sunxi.org/AXP_PMICs

 

DRAM Types:

3: DDR3

4: DDR4

7: LPDDR3

8: LPDDR4

 

You can try flashing various boot images until one successfully initializes your hardware. (If your box is secure-boot enabled, you will need to add the secure-boot modifications posted above.)

https://github.com/NickAlilovic/build/releases/tag/20250306

 

Alternatively, for a more precise approach:

Extract your Device Tree (DTS).

Identify the specific AXP chip located on your board. 

Connect a USB-to-UART TTL device to the RX, TX, and GND pins on your board to monitor the boot sequence.

 

https://forum.armbian.com/topic/29794-how-to-install-armbian-in-h618/#findComment-232411

https://forum.armbian.com/topic/29794-how-to-install-armbian-in-h618/page/4/#findComment-187672

https://forum.armbian.com/topic/29794-how-to-install-armbian-in-h618/page/23/#findComment-218660

https://linux-sunxi.org/UART

 

Decompile your Device Tree Blob (DTB😞
dtc -I dtb -O dts -o source.dts source.dtb

 

For a visual reference of a board using these specific chips, check out this hardware breakdown.

http://nskhuman.ru/allwinner/krugh618.php?np=3

 

Edited by Nick A
Posted

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.4
 

Compile phase failed due to missing package (ntpdate)

 

Short log:

[🌱] Configuration prepared for BOARD build [ x98h.csc ]
[] Repeat Build Options (early) [ ./compile.sh build BOARD=x98h BRANCH=edge BUILD_DESKTOP=no BUILD_MINIMAL=no KERNEL_CONFIGURE=no RELEASE=trixie ]
[🌱] Checked directory OK for mount options [ /home/*****/build/.tmp ('main temporary dir') ]
[🌱] Preparing [ host ]
[🌱] Python2 not available on host release 'trixie' [ ancient u-boot versions might/will fail to build ]
[🌱] Updating apt host-side for installing host-side packages [ 50 packages ]
[🌱] Installing host-side packages [ binfmt-support bison libc6-dev make dpkg-dev gcc ccache device-tree-compiler dwarves flex imagemagick jq libbison-dev libelf-dev libfdt-dev libfile-fcntllock-perl libmpc-dev libfl-dev lz4 libncurses-dev libssl-dev libusb-1.0-0-dev ntpdate patchutils pkg-config pv qemu-user-static arch-test swig u-boot-tools uuid-dev zlib1g-dev expect colorized-logs zip pigz pbzip2 lzop gdisk aria2 axel parallel rdfind libpython3-dev libffi-dev libgnutls28-dev gcc-aarch64-linux-gnu libc6-amd64-cross gcc-arm-linux-gnueabi gcc-or1k-elf ]
[🔨]   E: Package 'ntpdate' has no installation candidate
[💥] error! [ Failed to install host packages; make sure you have a sane sources.list.  ]
[💥] Cleaning up [ please wait for cleanups to finish ]
[🌿] ANSI log file built; inspect it by running: [ less -RS output/logs/log-build-dd186c47-e7eb-49f8-8d38-836915cf0aec.log.ans ]
[🌱] Share log manually: [ use one of the commands below (or add SHARE_LOG=yes next time!) ]

 

Note

ntpdate has a more recent version: ntpsec-ntpdate 

 

Should I try to compile in a Debian 12 computer? I am afraid of messing with 'sources.list'. 

 

Thanks in advance.
 

Posted

@Sergioclr

Requirements for self hosted

x86_64 / aarch64 machine

 

at least 2GB of memory and ~35GB of disk space for VM, container or bare metal installation

 

Armbian / Ubuntu Jammy 22.04.x for native building or any Docker capable Linux for containerised

 

Windows 10/11 with WSL2 subsystem running Ubuntu Jammy 22.04.x

 

Superuser rights (configured sudo or root access).

 

Make sure your system is up-to-date! Outdated Docker binaries, for example, can cause trouble.

 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines