BeagleV Ahead development links

I got a few questions at the Linux Plumbers Conference about various BeagleV Ahead development resources so I thought it would be good type it in a forum post:

Official documentation

Git repositories

All the repositories for hardware and software are under:

T-Head vendor kernel

T-Head only officially supports v5.10 (see below for community upstreaming efforts):

We use their kernel for our Yocto and Ubuntu images in order to have full hardware support.

T-Head Yocto-based SDK

Repo for building xuantie-yocto which is T-Head’s Yocto-based SDK:

Note: T-Head uses the term Xuantie as a “codename” for their RISC-V cores like the C910 in the BeagleV-Ahead’s TH1520 SoC. Thus the T-Head support for the C910 core and TH1520 SoC will often use the term ‘xuantie’. For those interested, the codename Xuantie refers to a ”heavy sword made from dark iron”.


@RobertCNelson created the xuantie-ubuntu repo for building Ubuntu images using the toolchain and kernel from the T-Head SDK:


Yocto image

BeagleV-Ahead Yocto 2023-06-10

Ubuntu image

BeagleV-Ahead Ubuntu 2023-07-05

CI builds

We also have CI builds of both Yocto and Ubuntu for users that want the latest (untested) images:

Linux kernel mainline upstreaming

My mmc patch series has been applied by Ulf for 6.8:

This allows the BeagleV-Ahead to boot from the eMMC.

Jisheng Zheng is a very active upstream Linux developer that has been working a lot on the TH1520. Jisheng has patches in review for Ethernet, USB, PWM, and few more

I recently agreed with Jisheng to take on the clock driver because the previous person working on it stopped responding.

Mainline branch

If you want to see the various th1520 patches on top of mainline, then a developer who uses the nicks Revy and Rabenda keeps a branch here:



  • There is a beaglev channel on IRC but it is not very active. My nick is drewfustini. I use irccloud so I am always connected. I will eventually see any mentions and respond.



  • BeagleV category on our Discourse-based forum (though I guess you already know that :slight_smile: )

Hardware oddities

USB cable for flashing images

  • One thing you may notice is that the board has a superspeed USB 3.0 micro B connector. If you don’t have a USB 3.0 superspeed micro B cable (like from an old USB 3.0 hard drive), then you can still use a normal USB 2.0 micro B cable.
  • I found that USB 2.0 is still fast enough for me when flashing the eMMC and it did not feel painful. The slimmer USB 2.0 cable is also easier for my desk setup than the thicker and harder to wrangle USB 3.0 cable.
  • You probably only need USB 3.0 superspeed for flashing if you are constantly flashing large images like Ubuntu for testing (like our wonderful @RobertCNelson does).

USB-to-UART converters for console

  • The voltage translation circuitry for the console UART has some issues. This results in not all USB to UART adapters working. I successfully use an inexpensive CP2102-based adapter that works.
  • If your converter does not work, then one idea from @royfranz is to try to shorten the length of the cabling. Of course, this would only work for USB-to-UART breakout boards where the user has to provide the wiring and not the molded USB to UART cables where the length is fixed.


Do any of the above address the slow video driver when running Ubuntu?

That’s an issue with the Vendor’s 5.10.x based kernel, and the un-optimized ubuntu 23.04 stack.

To fix this, one would need to run ubuntu 23.04 on real hardware, and trace all the slow-downs… However as of this date, 23.04 is really done, 23.10 is also done, but development of 24.04 is on-going. So if you trace the current 24.04 xorg stack, you could help push speeds up’s to ubuntu’s software team.

secondly, the 5.10.x vendor kernel also expects 0.7.1 vector, and all the external kernel modules etc to be built with that… (and then the user-space 0.7.1 blobs)… Today we don’t have an answer for this in debian or ubuntu. But some developers are started looking at this for newer gcc versions… Still won’t help 23.04.

Which leads to final question, vendor 5.10.x or mainline.

Personally i’m focusing my time on helping with mainline, which as of this date doesn’t have video.


Thank for the explanation Robert!

Is there anything a non kernel person like me can do to help?