-
Posts
493 -
Joined
-
Last visited
Content Type
Forums
Store
Crowdfunding
Applications
Events
Raffles
Community Map
Everything posted by Nick A
-
TX95 Max - Allwinner H618 Quadcore Cortex - A53
Nick A replied to Mark Waples's topic in Allwinner CPU Boxes
I haven't seen any mainline linux drivers for SV6256P chip. -
TX95 Max - Allwinner H618 Quadcore Cortex - A53
Nick A replied to Mark Waples's topic in Allwinner CPU Boxes
Wifi: I don't see anything in your dmesg that helps. You need to open your box and take a picture of the wifi chip. HDMI audio: I think you need to switch the pulseaudio output device. It's probably set to your AV port right now. IR remote: sudo apt update ; sudo apt upgrade -y Yes it will break the custom kernel. You need to block kernel updates with the armbian config tool. You should read this thread. You'll find a lot of infomation here. https://forum.armbian.com/topic/29794-how-to-install-armbian-in-h618/page/18/ -
TX95 Max - Allwinner H618 Quadcore Cortex - A53
Nick A replied to Mark Waples's topic in Allwinner CPU Boxes
To get wifi working we need to figure out which wifi chip your box has. The kernel might have already detected your wifi chip but you need to install the proper firmware. Can you post a copy of your dmesg. -
TX95 Max - Allwinner H618 Quadcore Cortex - A53
Nick A replied to Mark Waples's topic in Allwinner CPU Boxes
Hi Mark, Try this image. First extract the image. Then use balenaEtcher software to write the image onto your SD card. A toothpick can be used to trigger FEL mode on an TX95 Max by pressing the FEL button on the PCB with the non-conductive tool. The FEL button is located inside the 3.5 mm headphone socket. To trigger FEL mode, press the button while the device is booting. https://etcher.balena.io/#download-etcher https://github.com/NickAlilovic/build/releases/download/20241125/Armbian-20241125-unofficial_24.11.0-trunk_Transpeed-8k618-t_bookworm_edge_6.10.10_xfce_desktop.tar.gz -
The official armbian build hasn't patched HDMI in kernel's 6.10 and above. It's a 1000 lines of source that needs to be edited to apply cleanly. Not sure if there are other patches needed. kernel 6.7 was the last kernel version to use the patch. https://github.com/armbian/build/blob/main/patch/kernel/archive/sunxi-6.7/patches.armbian/drivers-hack-for-h616-hdmi-video-output.patch Most of the patches I use are from warpme's miniarch kernel build. I had to remove a few megous patches so warpme's patches would apply cleanly.
-
Cannot run ARMbian on my tv box (TX10 PRO)
Nick A replied to erebus041's topic in Allwinner CPU Boxes
The usb ttl device will show you where your box stops booting using debug messages. Access to the serial console on ARM devices is even more important than on the PC. Even if you do not intend to do much U-Boot or kernel work, access to the serial console will be a life-saver when anything goes wrong. The UART pins are clearly marked with RX, TX, GND on three easy to solder pins on the PCB. This is where you connect your usb ttl device. You are adding a serial port. Remember, your RX and TX pins are crossed over. RX on your device is connected to TX on your PCB. Also, TX on your device is connected to RX on your PCB. GND on your device is connected to GND on your PCB. Every Allwinner SoC has a (BROM). You can't delete this. When your box boots up it executes the BROM which then checks the buttons for FEL mode. The BROM first checks SD-card boot availability, then NAND. The BROM will try to load the SPL (secondary program loader) from U-Boot in each of these devices, which in turn loads the kernel. There is a FEL button on the PCB (behind the AV socket), it can be reached by a non-conductive tool like a toothpick through the AV socket. Alternatively, enter FEL mode with the fel-sdboot.sunxi image written to an SD card. A non-standard USB A-to-A cable can be used to connect using FEL. https://linux-sunxi.org/FEL https://linux-sunxi.org/FEL/USBBoot https://linux-sunxi.org/UART https://github.com/linux-sunxi/sunxi-tools Your board might have secure boot enabled. Could be the reason why your board doesn't boot. Should be an easy fix. Just need to generate any RSA key and change the u-boot image type to TOC0. Most Allwinner sunxi SoCs have separate boot ROMs in non-secure and secure mode. The "non-secure" or "normal" boot ROM (NBROM) uses the existing sunxi_egon image type. The secure boot ROM (SBROM) uses a completely different image type, known as TOC0. Most secure-boot enabled devices do not burn the VENDOR_ID eFUSE, you can use any RSA key. https://linux-sunxi.org/TOC0 -
Cannot run ARMbian on my tv box (TX10 PRO)
Nick A replied to erebus041's topic in Allwinner CPU Boxes
You should install Serial console then post your logs here -
How to get Wifi working on Draco H3 TV stick
Nick A replied to Karthik T's topic in Allwinner CPU Boxes
If you are sure Banana Pi M2 + has the same wifi chip as yours then it should work. Can post your dmesg. -
How to get Wifi working on Draco H3 TV stick
Nick A replied to Karthik T's topic in Allwinner CPU Boxes
Maybe you are missing the drivers for your wifi. You can find the firmware in your original Android backup. Not sure if this has been patched already. You may need this. https://patchwork.kernel.org/project/linux-wireless/patch/20210509233010.2477973-1-mike.rudenko@gmail.com/#24164605 -
Is it possible to play videos with Kodi on Orange Pi 3 LTS ?
Nick A replied to gop3k's topic in Allwinner sunxi
Hi Jernej. I have some questions about allwinner H6 and h616 HW decoding. I searched around and found out the H6 SOC's have a second VPU that uses the hantro-vpu decoder for VP9. video-codec-g2@1c00000 { compatible = "allwinner,sun50i-h6-vpu-g2"; reg = <0x01c00000 0x1000>; interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>; clock-names = "bus", "mod"; resets = <&ccu RST_BUS_VP9>; iommus = <&iommu 5>; }; I couldn't find these CLK_BUS_VP9 and CLK_VP9 clocks in the H616/618 manuals. I guess allwinner took away this secondary vpu? Do we need to patch cedrus to include VP9 support? Trying to get HW decoding to work on chromium. -
I think only the H6 SoC has a second VPU. This second VPU uses the hantro-vpu decoder for VP9. So this should work on H6.
-
I was looking at the v4l2 patches for chromium. I think we can apply this to cedrus. First, we apply these two patches. https://github.com/armbian/build/blob/f55a87d469b0634f72bc857f773a52a466f66292/patch/kernel/archive/rockchip64-6.6/media-0001-dma-mapping-let-dma_alloc_noncontiguous-allow-DMA_AT.patch https://github.com/armbian/build/blob/f55a87d469b0634f72bc857f773a52a466f66292/patch/kernel/archive/rockchip64-6.6/media-0002-Enable-non-coherent-dst-bufs-for-Hantro-V4L2-driver.patch For the last patch we replace it with our own by editing /drivers/staging/media/sunxi/cedrus/cedrus_video.c and adding "dst_vq->allow_cache_hints = 1;". You will see it at the very bottom of the cedrus_video.c file. https://github.com/armbian/build/blob/f55a87d469b0634f72bc857f773a52a466f66292/patch/kernel/archive/rockchip64-6.6/media-0003-Enable-non-coherent-dst-bufs-for-Rkvdec-V4L2-driver.patch From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: amazingfate <liujianfeng1994@gmail.com> Date: Fri, 3 Nov 2023 18:07:24 +0800 Subject: Enable non-coherent dst bufs for Rkvdec V4L2 driver --- drivers/staging/media/rkvdec/rkvdec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c index 84a41792cb4b..b35f7e1b8a20 100644 --- a/drivers/staging/media/rkvdec/rkvdec.c +++ b/drivers/staging/media/rkvdec/rkvdec.c @@ -755,6 +755,7 @@ static int rkvdec_queue_init(void *priv, dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; dst_vq->lock = &rkvdec->vdev_lock; dst_vq->dev = rkvdec->v4l2_dev.dev; + dst_vq->allow_cache_hints = 1; return vb2_queue_init(dst_vq); } -- Armbian https://github.com/torvalds/linux/blob/master/drivers/staging/media/sunxi/cedrus/cedrus_video.c dst_vq->dev = ctx->dev->dev; dst_vq->allow_cache_hints = 1; return vb2_queue_init(dst_vq); } https://github.com/armbian/build/pull/5883 Then we have to create our own udev rules. SUBSYSTEM=="video4linux", ATTR{name}=="rockchip,rk3568-vpu-dec", SYMLINK+="video-dec%n" SUBSYSTEM=="media", ATTR{model}=="hantro-vpu", SYMLINK+="media-dec%n" This is from H6 dtsi... I think we need to add this to the h616 dtsi to get the hantro-vpu module to load. https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi video-codec-g2@1c00000 { compatible = "allwinner,sun50i-h6-vpu-g2"; reg = <0x01c00000 0x1000>; interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>; clock-names = "bus", "mod"; resets = <&ccu RST_BUS_VP9>; iommus = <&iommu 5>; }; if you see something like this in your dmesg then we are on right track. https://forum.banana-pi.org/t/bpi-r2-pro-ubuntu-vpu-support-decode-and-encode/13776/16 We might need to use ubuntu's version of chromium? Not sure if the debian version is patched for v4l2. https://github.com/saiarcot895/chromium-ubuntu-build/issues/65
-
Yes, you need it.
-
Javad, Have you patched your u-boot? You need these three patch files. https://github.com/NickAlilovhttps://github.com/NickAlilovic/build/blob/v20241125/patch/u-boot/u-boot-sunxi/106-Add-int-phy-eth-H313-h616-with-AC300.patch https://github.com/NickAlilovic/build/blob/v20241125/patch/u-boot/u-boot-sunxi/106-Add-int-phy-eth-H313-h616-with-AC300.patch https://github.com/NickAlilovic/build/blob/v20241125/patch/u-boot/u-boot-sunxi/dts-Transpeed-8K618-T-Enable-Ethernet.patch For your custom Kernel you need https://github.com/NickAlilovic/build/blob/v20241125/patch/kernel/archive/sunxi-6.10/patches.armbian/arm64-dts-allwinner-h618-add-Transpeed-8K618-T-support.patch The last two patches adds this to your u-boot and kernel DTS. aliases { ethernet0 = &emac1; ethernet1 = &sdio_wifi; serial0 = &uart0; }; &emac1 { pinctrl-names = "default"; pinctrl-0 = <&rmii_pins>; phy-mode = "rmii"; phy-handle = <&rmii_phy>; phy-supply = <®_aldo1>; allwinner,rx-delay-ps = <3100>; allwinner,tx-delay-ps = <700>; status = "okay"; }; &mdio1 { rmii_phy: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0>; }; }; You already have the EPHY 200 patched in your kernel. You have to edit your kernel config to enable it. # # MII PHY device drivers # CONFIG_AC200_PHY=m # # Multifunction device drivers # CONFIG_MFD_AC200=m # # PHY Subsystem # CONFIG_AC200_PHY_CTL=m
-
Reinaldo if you want to modify the android kernel visit the XDA forums. Android uses an old linux kernel with Board Support Package (BSP) provided by Allwinner. Armbian build uses the mainline linux kernel with patches. No support from Allwinner. Just a few hackers that reversed engineered and back port sources from the BSP kernel.
-
Remember you have a custom kernel. You need to block kernel updates with the armbian config tool.
-
@UnhealthyTweak that's the thing about these TVBoxs.. It's community supported. Unless someone has the same box as yours and releases the image. You might be waiting forever. I have a transpeed 8K618-T and even this box has more than one wifi/bluetooth chip. Usually it's a broadcom wifi chip and only needs firmware changes. Some boxes need a patch to include the firmware like broadcom 43342. Your box has a different wifi chip. https://github.com/LYU4662/t95zplus-h618-build/tree/master/userpatches/kernel/archive/sunxi-6.7 Try this image.. if it doesn't work it might be the GPIO # that's different. You would need to extract your gpio # from the orignal android DTS.
-
aw869a chip uses the aic8800 firmware. The drivers are old but have been ported to newer kernel. You can find patches here. https://github.com/LYU4662/t95zplus-h618-build/tree/master/userpatches/kernel/archive/sunxi-6.7 For internal storage not working, You need to extract your dts and find the correct gpio settings. USB2 probably needs to be enable in the DTS. IR not working. There are posts a few pages back that enables IR.
-
If you are just editing a dts there's a way to compile a new dtb and replace the one in your sdcard. https://stackoverflow.com/questions/21670967/how-to-compile-dts-linux-device-tree-source-files-to-dtb If you are editing more than a dts. You can compile the Armbian kernel with all the patches applied. Go into the cache folder and edit the kernel sources. Then compile the kernel manually. When done replace your kernel binary and modules in your SD card.
-
when i create my patches they are nothing like the ones that Nick provided me. (patches to add tanix-tx6s-axp313.dts to uboot and kernel) If you can post your patches... I can tell you where you went wrong. I use xfce desktop. To get line out working I have to manually switch it in the pulse audio settings menu. I don't use KERNEL_GIT=shallow option. Not sure if you are having issues using this option. I would avoid it for now. bluetooth and video acceleration is still a work in progress. For bluetooth try these instructions from afiftyp For video acceleration using v4l2 Video acceleration in chromium (It looks like we need to add "allow_cache_hints = 1;" to the pitfrost driver. Not sure what else needs changes.) https://github.com/armbian/build/pull/5883 https://github.com/armbian/build/commit/f55a87d469b0634f72bc857f773a52a466f66292 https://github.com/amazingfate/chromium-libv4l2-patches https://github.com/saiarcot895/chromium-ubuntu-build/issues/65 I haven't had time to test these patches.
-
It's there. You just need to remove the "+". I used this shell script command. Editing it by hand would take forever. This removes the first character on each line. sed 's/^.\{1\}//' 152-add-tanix-tx6s-defconfig.patch > output.patch /dts/upstream/src/arm64/allwinner/sun50i-h616-tanix-tx6s.dts // SPDX-License-Identifier: (GPL-2.0+ or MIT) /* * Copyright (C) 2021 Arm Ltd. */ /dts-v1/; #include "sun50i-h616.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/leds/common.h> / { model = "Tanix TX6s"; compatible = "tanix,tx6s", "allwinner,sun50i-h616"; aliases { mmc0 = &mmc0; mmc1 = &mmc1; mmc2 = &mmc2; ethernet0 = &emac1; serial0 = &uart0; }; chosen { stdout-path = "serial0:115200n8"; }; reg_vcc5v: vcc5v { /* board wide 5V supply directly from the DC input */ compatible = "regulator-fixed"; regulator-name = "vcc-5v"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; }; }; &ehci0 { status = "okay"; }; &ehci2 { status = "okay"; }; &ir { status = "okay"; }; &emac1 { pinctrl-names = "default"; pinctrl-0 = <&rmii_pins>; phy-mode = "rmii"; phy-handle = <&rmii_phy>; phy-supply = <®_aldo1>; allwinner,rx-delay-ps = <3100>; allwinner,tx-delay-ps = <700>; status = "okay"; }; &mdio1 { rmii_phy: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; }; }; &r_i2c { status = "okay"; axp305_1: pmic@36 { compatible = "x-powers,axp305", "x-powers,axp805", "x-powers,axp806"; reg = <0x36>; /* dummy interrupt to appease the driver for now */ interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; interrupt-controller; #interrupt-cells = <1>; }; }; &mmc0 { vmmc-supply = <®_dcdce>; //cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>; /* PI16 */ broken-cd; bus-width = <4>; status = "okay"; }; &mmc1 { vmmc-supply = <®_dcdce>; broken-cd; bus-width = <4>; status = "okay"; }; &mmc2 { vmmc-supply = <®_dcdce>; bus-width = <8>; non-removable; cap-mmc-hw-reset; status = "okay"; }; &ohci0 { status = "okay"; }; &ohci2 { status = "okay"; }; &r_rsb { status = "okay"; axp305: pmic@745 { compatible = "x-powers,axp305", "x-powers,axp805", "x-powers,axp806"; interrupt-controller; #interrupt-cells = <1>; reg = <0x745>; x-powers,self-working-mode; vina-supply = <®_vcc5v>; vinb-supply = <®_vcc5v>; vinc-supply = <®_vcc5v>; vind-supply = <®_vcc5v>; vine-supply = <®_vcc5v>; aldoin-supply = <®_vcc5v>; bldoin-supply = <®_vcc5v>; cldoin-supply = <®_vcc5v>; regulators { reg_aldo1: aldo1 { regulator-always-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-sys"; }; reg_aldo2: aldo2 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc3v3-ext"; status = "disabled"; }; reg_aldo3: aldo3 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc3v3-ext2"; status = "disabled"; }; reg_bldo1: bldo1 { regulator-always-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vcc1v8"; }; reg_bldo2: bldo2 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vcc1v8-2"; status = "disabled"; }; bldo3 { /* unused */ }; bldo4 { /* unused */ }; cldo1 { regulator-min-microvolt = <2500000>; regulator-max-microvolt = <2500000>; regulator-name = "vcc2v5"; }; cldo2 { /* unused */ }; cldo3 { /* unused */ }; reg_dcdca: dcdca { regulator-always-on; regulator-min-microvolt = <810000>; regulator-max-microvolt = <1080000>; regulator-name = "vdd-cpu"; }; reg_dcdcc: dcdcc { regulator-always-on; regulator-min-microvolt = <810000>; regulator-max-microvolt = <1080000>; regulator-name = "vdd-gpu-sys"; }; reg_dcdcd: dcdcd { regulator-always-on; regulator-min-microvolt = <1360000>; regulator-max-microvolt = <1360000>; regulator-name = "vdd-dram"; }; reg_dcdce: dcdce { regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-eth-mmc"; }; sw { /* unused */ }; }; }; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_ph_pins>; status = "okay"; }; &usbotg { dr_mode = "host"; /* USB A type receptable */ status = "okay"; }; &usbphy { status = "okay"; }; /configs/tanix_tx6s_defconfig CONFIG_ARM=y CONFIG_ARCH_SUNXI=y CONFIG_DEFAULT_DEVICE_TREE="allwinner/sun50i-h616-tanix-tx6s" CONFIG_SPL=y CONFIG_SUNXI_DRAM_H616_DDR3_1333=y CONFIG_DRAM_CLK=648 CONFIG_DRAM_ODT_EN=y CONFIG_DRAM_SUN50I_H616_UNKNOWN_FEATURE=y CONFIG_DRAM_SUN50I_H616_BIT_DELAY_COMPENSATION=y CONFIG_DRAM_SUN50I_H616_READ_CALIBRATION=y CONFIG_DRAM_SUN50I_H616_DX_ODT=0x03030303 CONFIG_DRAM_SUN50I_H616_DX_DRI=0x0e0e0e0e CONFIG_DRAM_SUN50I_H616_CA_DRI=0x00001c12 CONFIG_DRAM_SUN50I_H616_ODT_EN=0x00000001 CONFIG_DRAM_SUN50I_H616_TPR0=0xc0000c05 CONFIG_DRAM_SUN50I_H616_TPR2=0x00000000 CONFIG_DRAM_SUN50I_H616_TPR10=0x2f0007 CONFIG_DRAM_SUN50I_H616_TPR11=0xffffdddd CONFIG_DRAM_SUN50I_H616_TPR12=0xfedf7557 CONFIG_MACH_SUN50I_H616=y CONFIG_R_I2C_ENABLE=y CONFIG_SPL_I2C=y CONFIG_SPL_I2C_SUPPORT=y CONFIG_SPL_SYS_I2C_LEGACY=y CONFIG_SYS_I2C_MVTWSI=y CONFIG_SYS_I2C_SLAVE=0x7f CONFIG_SYS_I2C_SPEED=100000 CONFIG_PHY_REALTEK=y CONFIG_SUN8I_EMAC=y CONFIG_I2C3_ENABLE=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x40 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
-
Try this MiniArch image.. if it boots then you can copy over the dts from MiniArch to Armbian. https://github.com/warpme/miniarch/releases/download/v20241118/MiniArch-20240715-6.12.0-board-h616.tanix_tx6s-SD-Image.img.xz U-boot: https://github.com/warpme/minimyth2/blob/master/script/bootloaders/u-boot-h616/files/152-add-tanix-tx6s-defconfig.patch https://github.com/warpme/minimyth2/blob/master/script/bootloaders/u-boot-h616/files/157-add-tanix_tx6s_kingston_lpddr3_defconfig.patch Kernel: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.11/files/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch
-
There's a fix for the thermal sensor error. I'll add this to 6.10 kernel. [ 23.775976] platform 5070400.thermal-sensor: deferred probe pending: platform: wait for supplier https://github.com/armbian/build/blob/9e6ef2c3d560ee48edd3a5a47fce070277c2a5d2/patch/kernel/archive/sunxi-6.11/Fix-broken-allwinner-sram-dependency-on-h616-h618.patch You can find the latest 6.10 kernel release with thermal fixes here https://github.com/NickAlilovic/build/releases/tag/20241125
-
What you are referring as "android" dts is nothing more than a device tree wrote for a very old Linux kernel (probably 3.10 or 3.14). As long as things change during time, so the device tree specifications become more standardized and well-defined. Device trees for old kernels (3.10 is very old nowadyas) are very messy and generally harder to read and understand.
-
If someone has the time maybe we can enable v4l2 support in chromium like the rockchip has.. https://github.com/armbian/build/pull/5883 https://github.com/armbian/build/commit/f55a87d469b0634f72bc857f773a52a466f66292 https://github.com/amazingfate/chromium-libv4l2-patches https://github.com/saiarcot895/chromium-ubuntu-build/issues/65
