Jump to content

Armbian for H313 X96-Q LPDDR3 TV-Box


Recommended Posts

image.thumb.png.b67bc3ce92d97b4af0b7215092cf30d3.png

Currently working on a build for this device. It boots and is about 90% functional on 6.6 and 6.7 Kernel


https://github.com/sicXnull/armbian-build/tree/X96Q-TVBOX-LPDDR3

Working
- Desktop
- Ethernet
- Wifi

Not working

-
DTS could use some work. Right now it does not detect internal EMMC so installing to EMMC is not an option. 
- Likely other things i've missed. 

I've uploaded two images to my git. 

Full w/Mate Desktop
Minimal/Server

Feel free to compile this yourself if you don't trust my images, it's encouraged. Changes are on the X96Q-TVBOX-LPDDR3 Branch

Full W/Desktop

./compile.sh build BOARD=x96q-tvbox BRANCH=current BUILD_DESKTOP=yes BUILD_MINIMAL=no EXPERT=yes KERNEL_CONFIGURE=no KERNEL_GIT=shallow RELEASE=bookworm


Minimal/Server

./compile.sh build BOARD=x96q-tvbox BRANCH=current BUILD_DESKTOP=no BUILD_MINIMAL=yes EXPERT=yes KERNEL_CONFIGURE=no KERNEL_GIT=shallow RELEASE=bookworm



 

Link to comment
Share on other sites

How can I install this image on device? I recorded the image on an SD card, inserted it into the device, pressed the button in the AV input and turned on the power. The X96q splash screen appeared, quickly disappeared and nothing else happens.
photo_2024-08-25_18-58-35.thumb.jpg.3e109ecf7f54334eaba99bc82466d8bd.jpg

Link to comment
Share on other sites

Posted (edited)
Quote

How can I install this image on device? I recorded the image on an SD card, inserted it into the device, pressed the button in the AV input and turned on the power. The X96q splash screen appeared, quickly disappeared and nothing else happens.


Power off unit. Burn to SD card, insert SD card, power on.  You don't need to press the button in the AV port

Your board looks different and has a different ramchip. I'm assuming it's not the LPDDR3 version but i could be wrong. 

IMG_9290.thumb.jpg.aa86a9c21f1dd89924d5d56fe69ee793.jpg

Edited by sicxnull
Link to comment
Share on other sites

Just tested your build and it working good. When I compiled with cinnamon there was a problem with cinnamon panels. 

I have noticed two problem only for now:

 - one of the usb ports don't work for me ( the one farther from sd card slot)

 - i have display flickering on 4k resolution, if lower resolution is selected no problem 

Link to comment
Share on other sites

Hello sicxnull,

 

I've been following your topic since the beginning as I bought the same Android STB and have also been trying to run it on Linux since August 14th !

 

With termux on the stock android there seems to be 2Gb of RAM, but on your Armbian “Minimal/Server” build I'm getting down to 914Mb.

 

On stock Android :

                total        used        free      shared     buffers
Mem:             1.9G        907M        1.0G        6.4M        524K
-/+ buffers/cache:           906M        1.0G
Swap:            1.4G        138M        1.3G


On your Armbian Build :

image.thumb.png.5d739a89ca0c8a294a413a32d1980a8a.png



Any clues about this gap?
Is it because RAM is shared with graphics?

cya~

Link to comment
Share on other sites

Posted (edited)
10 hours ago, bladyle said:

Just tested your build and it working good. When I compiled with cinnamon there was a problem with cinnamon panels. 

I have noticed two problem only for now:

 - one of the usb ports don't work for me ( the one farther from sd card slot)

 - i have display flickering on 4k resolution, if lower resolution is selected no problem 


Confirmed on my end too, only 1 of the USB ports work. Ill take a look at the dts

I honestly only tested on 1080p monitor, so the 4k thing never came up for me, ill see what i can find out. 

I'm no pro with building DTB's, and it's my hope others can contribute to this box and make it perfect, but i'll continue to learn and contribute as time goes on. 

 

 

5 hours ago, Ciremya_ said:

Hello sicxnull,

 

I've been following your topic since the beginning as I bought the same Android STB and have also been trying to run it on Linux since August 14th !

 

With termux on the stock android there seems to be 2Gb of RAM, but on your Armbian “Minimal/Server” build I'm getting down to 914Mb.

 

On stock Android :

                total        used        free      shared     buffers
Mem:             1.9G        907M        1.0G        6.4M        524K
-/+ buffers/cache:           906M        1.0G
Swap:            1.4G        138M        1.3G


On your Armbian Build :

image.thumb.png.5d739a89ca0c8a294a413a32d1980a8a.png



Any clues about this gap?
Is it because RAM is shared with graphics?

cya~


Odd, i just fired up bookworm w/cinnamon. I will upload 24.11 6.6.44 to my repo or you can compile it yourself from the main armbian repo

image.png.dd2f751c812a2bf072956f003be01662.png

Edited by sicxnull
Link to comment
Share on other sites

Hi sicxnull

I was looking at your DTS.. why is ehci0 and ohci0 disabled?

 

&ehci0 {

+ status = "disabled";

 

+&ohci0 {

+ status = "disabled";

+};

 

For your internel emmc you probably have to set the correct gpio. Check your original android DTS see if it's setting PF6 or another gpio PI16.

 

cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */

cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>;    /* PI16 */

 

Also,  if you install to emmc you might need this u-boot patch to boot armbian. Not sure if the H313/H616 has the same emmc boot problems as H618.

https://github.com/NickAlilovic/build/blob/main/patch/u-boot/u-boot-sunxi/107-sunxi_mmc-dec-f_max-to-12MHz-to-get-emmc-reliable.patch

Edited by Nick A
Link to comment
Share on other sites

On 9/1/2024 at 4:29 PM, Nick A said:

Hi sicxnull

I was looking at your DTS.. why is ehci0 and ohci0 disabled?

 

&ehci0 {

+ status = "disabled";

 

+&ohci0 {

+ status = "disabled";

+};


Honestly, i took the dtb from a OPi Zero3 (i think) so that was likely disabled by default. i believe enabling will fix the USB issue listed above (will test and fix if so). Still learning here when it comes to customizing the DTS.
 

 

On 9/1/2024 at 4:29 PM, Nick A said:

For your internel emmc you probably have to set the correct gpio. Check your original android DTS see if it's setting PF6 or another gpio PI16.

 

cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */

cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>;    /* PI16 */


I will check this out, along with your other recommendations. Much appreciated! I opened this thread for feedback like this so the box can be 100% sometime in the future. 

 

Edited by sicxnull
Link to comment
Share on other sites

I understand that the device tries to boot from SD card if it sees one over the internal flash? The internal flash stays intact in that case?

 

Is there a way to determine which X96-Q version one has without opening it up? Maybe though an adb shell?

Link to comment
Share on other sites

 

4 hours ago, jschwart said:

I understand that the device tries to boot from SD card if it sees one over the internal flash? The internal flash stays intact in that case?

 

Yes it will boot from SD card first

 

 

4 hours ago, jschwart said:

Is there a way to determine which X96-Q version one has without opening it up? Maybe though an adb shell?


Easiest way os to just pop the cover off on the bottom, it's just held on by some clips and look at the board. 

Link to comment
Share on other sites

Link to comment
Share on other sites

Been doing some digging the last few days and see that Miniarch has a fantastic setup for X96-q LPDDR3 so i ended up switching over to those DTS files with minimal changes needed

USB and EMMC both work now. No Wifi on edge, but will look into that further. 

Installing to EMMC will break it, will look into this. 

https://github.com/armbian/build/pull/7276

Will upload some builds to my fork. 
 

Edited by sicxnull
Link to comment
Share on other sites

Quote

Been doing some digging the last few days and see that Miniarch has a fantastic setup for X96-q LPDDR3 so i ended up switching over to those DTS files with minimal changes needed

USB and EMMC both work now. No Wifi on edge, but will look into that further. 

Sound good. Will wait to upload some builds to test them although i need wifi so need stable kernel I guess.

Link to comment
Share on other sites

23 часа назад, sicxnull сказал:

Installing to EMMC will break it, will look into this. 

https://github.com/armbian/build/pull/7276

You are incorrectly adding patches to the build system.
Patches should be extracted using the "git format-patch" command and should contain small explanations of what and for what reason these changes were made.

You should not add the patch somewhere in the middle of the series list.
This can lead to subsequent patches being applied incorrectly and becoming inapplicable.
As a result, we get a compilation error at best, or incorrectly compiled code at worst.

Link to comment
Share on other sites

1 час назад, sicxnull сказал:
3 часа назад, Nick A сказал:

Do you have any info on what the problem might be? 


yes, any feedback you have @going would be great. This board is like 95% ready to go at this point. solving EMMC boot would be huge 

 

CONFIG_SUPPORT_EMMC_BOOT=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x40
CONFIG_MMC_SUNXI_SLOT_EXTRA=2

This should be present in the default configuration for the device.

And please post the UART output if possible.
If that's not possible, then I won't be able to help.

Link to comment
Share on other sites

18 часов назад, Nick A сказал:

This patch is bad.
It changes the general code and has an impact on other devices.
Armbian cannot afford such behavior.

 

I apologize for the short remark.

Most likely, the TV set-top box already has a boot code in eMMC on the boot0 partition.
This prevents the Armbian code, which is located on the first main section, from running.

Link to comment
Share on other sites

34 minutes ago, going said:

You are incorrectly adding patches to the build system.
Patches should be extracted using the "git format-patch" command and should contain small explanations of what and for what reason these changes were made.

You should not add the patch somewhere in the middle of the series list.
This can lead to subsequent patches being applied incorrectly and becoming inapplicable.
As a result, we get a compilation error at best, or incorrectly compiled code at worst.


okay. thanks for the feedback. 

Link to comment
Share on other sites

19 minutes ago, going said:

Most likely, the TV set-top box already has a boot code in eMMC on the boot0 partition.
This prevents the Armbian code, which is located on the first main section, from running.


Nope. Miniarch installs to EMMC fine. 

Either way, i'll figure it out. 

Link to comment
Share on other sites

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