Jump to content

Allwinner H6


balbes150

Recommended Posts

13 hours ago, hexdump said:

... and be aware that there are quite a few fake tv boxes around (very popular for q+ too) which are sold as 4gb (and in android they even hacked it to look like this), but only have 2gb of memory built in ... so it can be that the box simply only has 2gb in the end ... maybe do an "apt-get install memtester" followed by "memtester 2500M" on the box with your 3072M setting - if it runs through stable you seem to really have 3gb, if it hangs or crashes doing so you most probably only have 2gb

 

good luck and best wishes - hexdump

Hi! memtest 2500 any problem. Only CPU becomes really hot

Link to comment
Share on other sites

found a H6 board , it using axp2402 pmic to control battery  , and use RGB port to connect a LCD like screen ,didn't have HDMI port

 

EDIT:

extract dtb from that board flash firmware img, android default host name is "petrel_ai_p1"

here is the RGB LCD display part from dtb , so a question is , how hard to support this type LCD (not hdmi) ?

 

Spoiler


            lcd0@0 {
                linux,phandle = <0x100>;
                phandle = <0x100>;
                allwinner,pins = "PD0\0PD1\0PD2\0PD3\0PD4\0PD5\0PD6\0PD7\0PD8\0PD9\0PD10\0PD11\0PD12\0PD13\0PD14\0PD15\0PD16\0PD17\0PD19\0PD20\0PD21";
                allwinner,function = "lcd0";
                allwinner,pname = "lcdd0\0lcdd1\0lcdd2\0lcdd3\0lcdd4\0lcdd5\0lcdd6\0lcdd7\0lcdd8\0lcdd9\0lcdd10\0lcdd11\0lcdd12\0lcdd13\0lcdd14\0lcdd15\0lcdd16\0lcdd17\0lcdd19\0lcdd20\0lcdd21";
                allwinner,muxsel = <0x02>;
                allwinner,pull = <0x00>;
                allwinner,drive = <0x01>;
                allwinner,data = <0xffffffff>;
            };

            lcd0@1 {
                linux,phandle = <0x101>;
                phandle = <0x101>;
                allwinner,pins = "PD18";
                allwinner,function = "lcd0";
                allwinner,pname = "lcdd18";
                allwinner,muxsel = <0x02>;
                allwinner,pull = <0x00>;
                allwinner,drive = <0x03>;
                allwinner,data = <0xffffffff>;
            };

            lcd0@2 {
                linux,phandle = <0x102>;
                phandle = <0x102>;
                allwinner,pins = "PD0\0PD1\0PD2\0PD3\0PD4\0PD5\0PD6\0PD7\0PD8\0PD9\0PD10\0PD11\0PD12\0PD13\0PD14\0PD15\0PD16\0PD17\0PD18\0PD19\0PD20\0PD21";
                allwinner,function = "lcd0";
                allwinner,pname = "lcdd0\0lcdd1\0lcdd2\0lcdd3\0lcdd4\0lcdd5\0lcdd6\0lcdd7\0lcdd8\0lcdd9\0lcdd10\0lcdd11\0lcdd12\0lcdd13\0lcdd14\0lcdd15\0lcdd16\0lcdd17\0lcdd18\0lcdd19\0lcdd20\0lcdd21";
                allwinner,muxsel = <0x07>;
                allwinner,pull = <0x00>;
                allwinner,drive = <0xffffffff>;
                allwinner,data = <0xffffffff>;
            };


            hdmi@0 {
                linux,phandle = <0x103>;
                phandle = <0x103>;
                allwinner,pins = "PH8\0PH9\0PH10";
                allwinner,function = "hdmi";
                allwinner,pname = "ddc_scl\0ddc_sda\0cec_io";
                allwinner,muxsel = <0x02>;
                allwinner,pull = <0xffffffff>;
                allwinner,drive = <0x01>;
                allwinner,data = <0xffffffff>;
            };

 

 

        disp@01000000 {
            compatible = "allwinner,sunxi-disp";
            reg = <0x00 0x1000000 0x00 0x1400000 0x00 0x6510000 0x00 0x100 0x00 0x6511000 0x00 0x800 0x00 0x6515000 0x00 0x800>;
            interrupts = <0x00 0x41 0x104 0x00 0x42 0x104>;
            clocks = <0x89 0x8a 0x8b 0x8c>;
            boot_disp = <0x00>;
            fb_base = <0x00>;
            iommus = <0x18 0x00 0x00>;
            status = "okay";
            device_type = "disp";
            disp_init_enable = <0x01>;
            disp_mode = <0x00>;
            screen0_output_type = <0x01>;
            screen0_output_mode = <0x05>;
            screen0_output_format = <0x01>;
            screen0_output_bits = <0x00>;
            screen0_output_eotf = <0x04>;
            screen0_output_cs = <0x101>;
            screen0_output_dvi_hdmi = <0x02>;
            screen0_output_range = <0x02>;
            screen0_output_scan = <0x00>;
            screen0_output_aspect_ratio = <0x08>;
            screen1_output_type = <0x03>;
            screen1_output_mode = <0x02>;
            screen1_output_format = <0x01>;
            screen1_output_bits = <0x00>;
            screen1_output_eotf = <0x04>;
            screen1_output_cs = <0x104>;
            screen1_output_dvi_hdmi = <0x02>;
            screen1_output_range = <0x02>;
            screen1_output_scan = <0x00>;
            screen1_output_aspect_ratio = <0x08>;
            dev0_output_type = <0x01>;
            dev0_output_mode = <0x05>;
            dev0_screen_id = <0x00>;
            dev0_do_hpd = <0x01>;
            dev1_output_type = <0x02>;
            dev1_output_mode = <0x0b>;
            dev1_screen_id = <0x01>;
            dev1_do_hpd = <0x01>;
            dev2_output_type = <0x00>;
            def_output_dev = <0x00>;
            hdmi_mode_check = <0x01>;
            fb0_format = <0x00>;
            fb0_width = <0x500>;
            fb0_height = <0x2d0>;
            fb1_format = <0x00>;
            fb1_width = <0x00>;
            fb1_height = <0x00>;
            disp_para_zone = <0x01>;
        };

        lcd0@01c0c000 {
            compatible = "allwinner,sunxi-lcd0";
            pinctrl-names = "active\0sleep";
            status = "okay";
            device_type = "lcd0";
            lcd_used = <0x01>;
            lcd_driver_name = "default_lcd";
            lcd_backlight = <0x32>;
            lcd_if = <0x00>;
            lcd_x = <0x500>;
            lcd_y = <0x2d0>;
            lcd_width = <0x00>;
            lcd_height = <0x00>;
            lcd_dclk_freq = <0x94>;
            lcd_pwm_used = <0x00>;
            lcd_pwm_ch = <0x00>;
            lcd_pwm_freq = <0xc350>;
            lcd_pwm_pol = <0x01>;
            lcd_pwm_max_limit = <0xff>;
            lcd_hbp = <0x104>;
            lcd_ht = <0x64a>;
            lcd_hspw = <0x28>;
            lcd_vbp = <0x19>;
            lcd_vt = <0x2fe>;
            lcd_vspw = <0x05>;
            lcd_lvds_if = <0x00>;
            lcd_lvds_colordepth = <0x01>;
            lcd_lvds_mode = <0x00>;
            lcd_frm = <0x01>;
            lcd_hv_clk_phase = <0x02>;
            lcd_hv_sync_polarity = <0x00>;
            lcd_gamma_en = <0x00>;
            lcd_bright_curve_en = <0x00>;
            lcd_cmap_en = <0x00>;
            lcd_bl_en;
            lcd_bl_en_power = "none";
            lcd_power = "vcc-lcd-0";
            lcd_fix_power = "vcc-dsi-33";
            pinctrl-0 = <0x100 0x101>;
            lcd_pin_power = "vcc-pd";
            pinctrl-1 = <0x102>;
        };

        lcd1@01c0c001 {
            compatible = "allwinner,sunxi-lcd1";
            pinctrl-names = "active\0sleep";
            status = "okay";
        };

        hdmi@06000000 {
            compatible = "allwinner,sunxi-hdmi";
            reg = <0x00 0x6000000 0x00 0x100000>;
            interrupts = <0x00 0x40 0x00>;
            clocks = <0x8d 0x8e 0x8f 0x90>;
            pinctrl-names = "ddc_active\0ddc_sleep\0cec_active\0cec_sleep";
            pinctrl-1 = <0x92>;
            pinctrl-2 = <0x93>;
            pinctrl-3 = <0x94>;
            status = "okay";
            device_type = "hdmi";
            hdmi_hdcp_enable = <0x00>;
            hdmi_hdcp22_enable = <0x00>;
            hdmi_cts_compatibility = <0x00>;
            hdmi_cec_support = <0x01>;
            hdmi_cec_super_standby = <0x01>;
            hdmi_skip_bootedid = <0x01>;
            pinctrl-0 = <0x103>;
            ddc_en_io_ctrl = <0x00>;
            ddc_io_ctrl = <0x83 0x07 0x02 0x01 0xffffffff 0xffffffff 0x00>;
            power_io_ctrl = <0x00>;
        };

        tv0@01c94000 {
            compatible = "allwinner,sunxi-tv";
            reg = <0x00 0x1e40000 0x00 0x1000>;
            status = "disabled";
            device_type = "tv0";
            dac_src0 = <0x00>;
            dac_type0 = <0x00>;
            interface = <0x01>;
        };

 

Link to comment
Share on other sites

On 3/4/2021 at 6:04 PM, MBB said:

I am pleased to report the 20210303 images (I tested Focal) work great (copying to EMMC using standard Armbian method) on the T95 Mini box.  FYI, this is my favorite TV box as it is small, has a nice enclosure and good thermal properties (CPU usually around 50-55 degrees).  And it is available < $20 (USD) on Alibaba in small quantities.

 

@MBB, @balbes150:

This is my favorite TV box for me too, but I haven’t even been able to boot from these images.(https://users.armbian.com/balbes150/aw-h6-tv). Please write me, that what are you doing besides writing these to an SD card?
Thanks!

Edited by paradigman
Link to comment
Share on other sites

It took me half a day, while I figured out that I used wrong tool for the SD write. The booting from SD card now is fine, but two problem still:
1. Can't  install to EMMC. The nand-sata-install script shown "Done", but it don't doing partitioning and copy processes.
2. The audio out don't work both HDMI and AV output (3.5 jack).
The device is the T95 mini.
Somebody please, help with these my problems if you can! 

Link to comment
Share on other sites

For the nand-sata-install issue, please provide more details.  What options are presented and what did you choose?  Maybe share some screenshots?  You'll likely get more help if you provide more detail. 

 

You might have one that has NAND not EMMC, in which case you won't be able to install to flash.  You can open it and upload a photo of the board.

 

For the AV output, I don't believe this is supported (?)  I have noticed that HDMI sound works on some sites (eg, youtube videos), but not others.  But I really know nothing about audio so won't be able to help with this.

 

As noted in several places, these boxes are best used as small servers.  I don't usually run a GUI at all.  And WiFi also doesn't work, but WiFi dongles do (I use a $7 TP-Link dongle when I need it, which works well.)

Link to comment
Share on other sites

Unfortunately, you have NAND not EMMC flash so can't flash the OS to the board.  EMMC would have a chip mounted in the empty socket above the flash you have (lower right corner of the board).  That is the biggest problem when buying these things is you don't know what they populate and it can vary from order to order unless you specify (and they understand what you are asking).  I have a couple sources that have been reliable.  I am not sure where you are, but in the US on Amazon, this source "EasyTone" seems to always  use EMMC (and they confirmed this as well).  https://www.amazon.com/Android-Quad-Core-Decoding-T95MINI-Internet/dp/B07XCPRSXR.  On Alibaba, use "Shenzhen Reeshine" (ask for Richard Cheng).  He is very helpful and honest and understands what you mean if you say "must use EMMC not NAND".

Link to comment
Share on other sites

Hi balbes150

 

Thanks for the great work so far!

I've deployed the actual image and the Panfrost video acceleration does not work. Turned on the glamor acceleration, glmark2 works. Libva and mesa in place, still vainfo complains about missing sun4i-drm driver.

dmesg shows that something is there, but not sure how to make it work with VA.

Any plans to add it soon?

Thanks.

Link to comment
Share on other sites

14.04.2021 в 01:37, Vasy сказал:

I've deployed the actual image and the Panfrost video acceleration does not work. Turned on the glamor acceleration, glmark2 works. Libva and mesa in place, still vainfo complains about missing sun4i-drm driver.

dmesg shows that something is there, but not sure how to make it work with VA.

Any plans to add it soon?

In the official DEB repositories, there are old versions, if you need acceleration-use LE or build everything yourself manually.

Link to comment
Share on other sites

HI,

Sorry for my poor english.

I have installed armbian image on a sdcard  (Armbian_21.05.0-trunk_Aw-h6-tv_focal_current_5.10.27_xfce_desktop.img.xz). I used tanix t6 dtb but the screen is black after starting the box.

Here is the model of the tv box with allwinner h6 soc :

box.png.bc6bc205022138260448e6cfe043c9d6.png

When i connect my pc with usb wire, i'm able to connect it with adb. And i see that the board in the android box is configured with sun50iw6p1.

In the balbes150 repositories this configuration don't exists.

But i can find the dts files in github : https://github.com/Allwinner-Homlet/H6-BSP4.9-linux

There are 4 dts files :

sun50iw6p1-soc.dts

sun50iw6p1.dtsi

sun50iw6p1-clk.dtsi

sun50iw6p1-pinctrl.dtsi

 

The sun50iw6p1.dtsi file includes :

arm-gic.h

gpio.h

 

The arm-gic.h file includes :

irq.h

 

Is there a way with device-tree-compiler to build the dtb file to integrate in the armbian installation ?

If it is possible, how can i do ?

 

Bests regards.

 

PS : I joint the differents files :

sun50iw6p1-soc.dts

sun50iw6p1.dtsi

sun50iw6p1-clk.dtsi

sun50iw6p1-pinctrl.dtsi

arm-gic.h

gpio.h

irq.h

Link to comment
Share on other sites

@balbes150 I have a sunvell q+ 4gb/32gb (AW-H6) box with me. I'm trying to install the Armbian_21.05.0-trunk_Aw-h6-tv_focal_current_5.10.28_xfce_desktop.img file. I've flashed it to an SD card and on the first boot it freezes on the armbian boot screen. This is after the automatic root login. Any pointers?

 

1. I've flashed this image to an SD card using Rufus

2. Plugged in the SD card with the box powered off and turned it on to boot.

 

Are there any extra steps I need to follow to get it to work?

Link to comment
Share on other sites

Hello,

 

I have a bunch of Allwinner H6 boxes branded as "MX10Pro 6K" (pic easily searchable in google), which seem to be a derivative of Tanix. What's more complicated that I have'em of two different hardware revisions (don't really know what the vendor revision tag is, but they look slightly different and work radically different). So, say I have 1 box of older "A" revision and 10 of more recent "B". I run them with sun50i-h6-tanix-tx6.dtb profile on latest Armbian_21.05.0-trunk_Aw-h6-tv_buster_current_5.10.27
 image. The "A" revision works just fine, but "B" one has only one of 4 USB ports working.

 

Any chance I can make the other 3 work ? What info should I provide to diagnose why they don't work ?

 

Thanks.

Link to comment
Share on other sites

@drookie Welcome to the world of impossible to support tv boxes.  As you mention the hardware of these two otherwise similarly labeled tv boxes is different.  /The dtb file is what provides the mapping from the hardware to the linux kernel.  So what you really need are two different dtb files for the two different boxes.  But without the support of the tv box manufacturer providing the necessary information on their hardware it is very difficult to figure out the correct dtb for a box (let alone a hundred different boxes from different manufacturers all with slight differences in their hardware).  There isn't really anyone currently involved in this project that has the skills/time/desire to work on this nearly impossible problem.  This is why the TV Box FAQ item (https://forum.armbian.com/topic/16976-status-of-armbian-on-tv-boxes-please-read-first) says to set your expectations low.  It sounds like you do have a mostly functioning box so consider yourself better than many.  We could always use more contributors around here.  If you have the skills and time, you could learn a lot by trying to research and update the dtb for your hardware and contribute back to the community your work.

 

Link to comment
Share on other sites

Hi balbes150

 

First, apologies for bombarding you with questions in this post but as you know this forum limits new posters to one post per day and I've amassed a lot of questions of the last few days. Thanks v.much for working on this very cool distro!

 

I have tried various versions of your latest H6 images (such as Armbian_21.02.0-trunk_Aw-h6-tv_hirsute_current_5.10.9_xfce_desktop.img and Armbian_21.02.0-trunk_Aw-h6-tv_focal_current_5.10.9.img) but they all fail to boot on my T95 Max with a kernel panic / null pointer deref when it comes to running /init:

 

https://photos.app.goo.gl/TUxc1VUtjpG2EKzw7

 

Note that I can successfully boot the older generic arm64 image ( Armbian_20.10_Arm-64_focal_current_5.9.0_desktop.img ) and I can also boot the previous H6 images such as Armbian_20.07_Aw-h6-tv_focal_current_5.7.7.img on this T95 Max.

 

The main feature that I'm saying I'm having probs with under the images that I can get to boot is with HDMI hot plug detection. I get an image via HDMI when I boot up but if I disconnect and reconnect HDMI I don't get a picture until I power cycle. The newest kernel I've been able to boot is 5.9 so hopefully HDMI is fixed in newer kernels. Is anyone else experiencing this issue?

 

I am unable to install the mate desktop (sudo apt install mate-desktop-environment) under any of the ubuntu images due to a package conflict. Under the focal images, the error reports ubuntu-mate-default-settings_20.04.3_arm64.deb attempts to overwrite the file /usr/lib/chromium-browser/master_preferences which is contained within linux-focal-root-current-arm-64. To me this seems like a packaging error as chromium prefs shouldn't be included in the non-desktop images, chromium being an X app. I have successfully installed MATE under the Debian buster image but I'd prefer to use Ubuntu.

 

I am hoping to get mpv working with hardware video acceleration but this requires a few out of tree patches to the kernel, which I doubt you will have applied to your kernel, but maybe I'm wrong? I'm told these patches only work with Linux 5.10.x:

 

https://github.com/LibreELEC/LibreELEC.tv/tree/master/projects/Allwinner/patches/linux

 

I'm told we need all the patches that have media in their name plus patch 31. ffmpeg 4.3.2 requires this patch:

 

https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch

 

and then mpv needs this patch:

 

https://github.com/Kwiboo/mpv/commit/91f2b090eef12f48cf1d9e9157e5eefe6a60be6a

 

I'll be able to package ffmpeg and mpv, if I can get them to build. I've not tried applying any of these patches yet nor rebuilding a H6 kernel. Note that mpv will only work with GPU accelerated decoding with these patches when run from the framebuffer console, not from within X unfortnately but I can work with that. I'm going to create a simple dialog-based TUI for using mpv if we get it working to make browsing for videos easier.

 

I opened my T95 Max and took this pic. Is it using NAND or eMMC?

 

https://photos.app.goo.gl/TDasK9Li84uScLtUA

 

In another thread I was asking about fan recommendations as I thought it was overheating. It wasn't but it would've been thermal throttling. I have ordered an adjustable USB fan for about £10 that should help with that.


I think that's about it for tonight! :D

 

Thanks!

 

 

 

 

Link to comment
Share on other sites

Do your latest images use this patch to enable the emmc for the tanix-tx6 dtb? It's not been mainlined yet:

 

https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/devices/H6/patches/linux/0008-arm64-dts-allwinner-h6-tanix-tx6-enable-emmc.patch

 

EDIT

 

As someone who prefers to use the MATE desktop (mainly because of its more mature HiDPI support compared to XFCE) the Armbian_20.10_Arm-64_bullseye_current_5.9.0_desktop.img image currently works best for me as I can easily get MATE installed with the panfrost driver.

 

Last night I got the IR receiver working under Armbian but not with the remote included with the T95 Max, using another remote control. I have not been able to get the included remote to work under neither Android nor Armbian.

Link to comment
Share on other sites

Are the build scripts for building H6 Armbian images available anywhere or is there any documentation for this?

 

I've just had a quick look at building Armbian and looked through the list of boards but I don't see anything that approximates an AW H6 TV box. There seems to be a general target for AW A20 boards and I can see a few OrangePi H6 boards but no tanex-tx6 / general purpose AW H6 TV box or whatever.

Link to comment
Share on other sites

On 2/27/2021 at 4:18 PM, balbes150 said:

update 20210227. Added a download link.

 

https://users.armbian.com/balbes150/

hi @balbes150

i have h616 t95 max with me, 
downloaded the images from your link and flashed with balenaetcher, device is not booting.
it boots into tv box without sd card i see led light saying `boot` but with sdcard i see nothing, ami following right way can you help me fix it.

thanks.

Link to comment
Share on other sites

32 minutes ago, geekinlinux said:

i have h616 t95 max with me, 
downloaded the images from your link and flashed with balenaetcher, device is not booting.
it boots into tv box without sd card i see led light saying `boot` but with sdcard i see nothing, ami following right way can you help me fix it.

thanks.

This thread is for the allwinner H6 cpu.  Your box as you mention has the H616 cpu.  Different CPU requires different builds.  There is no armbian working build for h616 cpu as of now.  Some work is happening on it, but it is likely a year out from being supported.

Link to comment
Share on other sites

On 4/14/2021 at 12:30 AM, paradigman said:

Ok I see. Here is the board of the 2/16GB T95 Mini:


board_1.thumb.jpg.0e3879990fc5db84dd8dd856ac76b901.jpg

 

And the available steps when I run the "nand_sata_install" script:


step_1.thumb.jpg.11fccfe69ded0f8dd7d2896f001e6544.jpg

 

step_2.thumb.jpg.6bae9775132f96b1667731547272df29.jpg

 

step_3.thumb.jpg.ba5081a000231c0a6a9611ebb24ffffc.jpg

@paradigman my board looks similar to this one , i was trying to establish serial connection,  didn't see any pins on my board (neither this board). can let me know how did you do.

Link to comment
Share on other sites

Hi, can anyone advise which DTB works for the T95 mini (Allwinner H6) in the all-in-one image, and the kernel parameters required? It does not boot on the Tanix TX6 DTB. Using the Debian Buster image.

Link to comment
Share on other sites

On 5/10/2021 at 3:43 PM, geekinlinux said:

 my board looks similar to this one , i was trying to establish serial connection,  didn't see any pins on my board (neither this board). can let me know how did you do.

I didn't establish serial connection, I don't would like working with these on very low level. I'm just download an image from Balbes150 images for H6 and I wrote out this to an SD card. That's all what I'm known about this, because I'm a noob in the world of the armbian.

Link to comment
Share on other sites

I have bought some H6(and similar soc) devices, but found few only SBC and common tv box can get good mainline support.

post some DT(BSP 3.10) I collected from these devices, just for reference.

hope this devices can get better hardware support with mainline

 

 

sun50iw3p1-uranus_t1-.dts sun50iw6_petrel_ai_p1.dts sun50iw6_petrel_p1.dts sun50iw9.dts

Edited by chalesY
add more detail instruction
Link to comment
Share on other sites

Hi,

I use the "hexdump" u-boot-sunxi-with-spl-h6-noname.bin file and the balbe's 150 Armbian_20.10_Arm-64_bullseye_current_5.9.0_desktop.img.xz image with my H6 tvbox and all works fine. I use the sun50i-h6-tanix-tx6.dtb. The wifi, hdmi video and sound are working but the amount of ram memory is only 3gb (2gb + 1gb for the swap). My box have a 4gb ram ?!!

box.png.bc6bc205022138260448e6cfe043c9d6.png

But the Armbian_21.05.0-trunk_Aw-h6-tv_focal_current_5.10.27_xfce_desktop.img.xz don't works.

I try to compile the u-boot and the spl.bin file don't works. What options do i choose for this compilation ?

I have choose plat = sun50i_h6 for arm-trusted-firmware, and tanix_tx6_defconfig with crust to obtain scp, and tanix_tx6_defconfig with u-boot.

 

Can Hexdump explain to me what is wrong ?

 

Can someone explain to me how to transfer the os from sd card to tvbox memory flash ? There is no nand-sata-install option in the armbian-config menu.

 

Thank.

u-boot-sunxi-with-spl-h6-noname.bin

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines