Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
With only free software, a Mali G31 chip can now run GNOME (collabora.com)
241 points by mfilion on June 8, 2020 | hide | past | favorite | 60 comments


Looks like the new odroid c4 (raspberry pi competitor) has this g31 chip. [0,1]

Might be interesting to try building a cluster with these. [2]

I wonder how much remaining work there is for full upstream support on these AmLogic chips? The problem with arm chips has always been limited upstream distro support.

The Linux-Sunxi folks have been working for years to get the Allwinner stack up to snuff... it’s taken a long time.[3]

Is there any community around the AmLogic and Rockchip stuff as solid and coordinated as the Allwinner folks?

[0] https://www.hardkernel.com/shop/odroid-c4/

[1] https://www.cnx-software.com/2020/04/23/50-odroid-c4-raspber...

[2] https://blog.tjll.net/distributed-homelab-cluster/#network-c...

[3] https://linux-sunxi.org/Linux_mainlining_effort


I remember doing some web development work for HardKernel/ODROID back in ~2010 and I just did it for free (I loved the idea of an "Android Game Boy," plus Chris Pruett at Google recommended it for gaming and game development[1]), and they ended up sending me an ODROID-S out of the blue. I was totally surprised and felt I didn't really deserve it (MSRP was like $200-300 and I was a poor college kid), and I'll never forget the gesture.

HK earned a longtime fan with that move for sure, haha. :)

[1] http://replicaisland.blogspot.com/2010/01/fragmentation-more...


Is there a mailing list or wiki tracking the status of these components and patches for the kernel for HK? Like the one for Sunxi?


If you're interested in HK's kernel patches, you can simply download their repository (`git clone https://github.com/hardkernel/linux.git`), then add the upstream kernel repository (`git remote add upstream git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable`), then fetch it and just compare the tags (e.g. `git cherry -v vX.Y.Z X.Y.Z-A`).



Thanks! This looks like exactly what I was looking for!


See also https://forum.odroid.com/viewtopic.php?f=176&t=33993

Re graphics, #panfrost on freenode


There's a good community for the odroid-c4 with an Ubuntu 20.04 image with linux 5.7 and support for the Mali G31 with Wayland. I got an odroid-c4 with flash emmc storage and Realtek RTL8811AU wifi dongle from ameridroid to avoid this shipping costs from overseas.

https://forum.odroid.com/viewtopic.php?f=202&t=38557


Oof. That’s exactly what I worry about... who is compiling this “Ubuntu”... is it official upstream? What Kernel patches are they carrying?


You could also try https://www.armbian.com/odroid-c4/

While i don't have one, i use Armbian on several other systems, and it tends to be stressless. As long as one doesn't use their noob-friendly software installer scripts, which tend to break something. Anyways, it is essentially Debian, or Ubuntu depending on the image you have choosen.

edit: I'd go one step further even. If it isn't supported by Armbian, I'd avoid it. Because they tend to be first in delivering a cohesive solution like you'd expect from a distro, and not some patched together pile of something which just runs, is rarely or never updated, and won't run the stuff YOU want to run.

Only downside, they lag a bit behind in integrating all that vendor-/boardspecific stuff. But then, who really cares about that when running Debian? :)


I recently used Armbian for a project (my HW is better supported than openwrt which gave up on the board that I use). Documentation is ok, but I found most of the clues at their forums. The IRC channel was also helpful.

And finally the output kernel/image just works.



> Might be interesting to try building a cluster with these.

Anyone who used to read slashdot just got popped back into the late 90s.


:D

yes. a beowulf cluster. these day's it'd be a kubernetes/nomad cluster. doesnt roll off the tongue like it used to.


I wonder if the tests can be used to build an emulation layer that could run those same tests on any hardware. When that emulation layer is trusted, we can use it to cheaply test the build on generic hardware before committing to use actual, less common, real Mali G31 hardware.


I have the Pinebook Pro which is built upon the Rockchip RK3399 SoC incorporating a Mali T860 GPU. The Panfrost open source GPU driver written by the article's author offers support for this GPU, and on Linux Manjaro with KDE/Plasma the GPU-acceleration works, but for some reason I cannot figure out the performance is very low compared to what I've seen on other RK3399 demos running Linux. Anyone got any ideas what could be wrong?


Got a PBP with Manjaro KDE/Plasma as well. Would also be interested in such optimization.


Great work, although I fail to see any mention regarding post OpenGL ES 2.0 support, given that G31 goes all the way up to ES 3.2, Vulkan and OpenCL 2.0.

https://developer.arm.com/ip-products/graphics-and-multimedi...

It seems that OpenGL ES 2.0s support is the end goal.


GL ES 3.0 support is already being worked on: https://www.collabora.com/news-and-blog/blog/2020/02/27/expe...


Thanks, the blog wasn't fully clear on that.


I'm having trouble finding what devices this chipset made it into other than https://www.cnx-software.com/2020/02/27/allwinner-h616-tv-bo...


The Mali G31 is used in some pretty cool ultra cheap devices. Getting good mainline support for this GPU is really cool because of these ones :)

The Mali G31 is used in the Amlogic S905X{2,3,4} SoCs. You can buy a "TV box" with a quadcore Cortex A53/A55, gigabit ethernet, 4GBs of RAM and 32GB of eMMC storage for $30-50 delivered. Think of them as Raspberry Pis with included storage, case and power supply, preassembled. I wouldn't recommend them over a Raspberry Pi right now - getting a non-embedded GNU/Linux distro running on them properly is not easy - but these developments can change that. Right now it's probably better to spend some extra money on the Odroid C4 with the same chip and some accessories, because of the better community support.

The Mali G31 is also the GPU used in the Rockchip RK3326 in the Odroid Go Advance, a $60ish open source tinkering gaming handheld kit from Hardkernel. The first Chinese clone of this device was released for this with the same chip, so there's some indication the RK3326 will become a standard platform for retro emulation hardware. Pretty old MIPS chips were the standard for that until this year still, because the hardware follows software support.


According to Wikipedia[0], devices with the following SoCs have it:

Rockchip RK3326

AmLogic S905Y2, S905X2, S905D2, S905X3

Allwinner H616

[0]: https://en.wikipedia.org/wiki/Mali_(GPU)#Variants


it's in the amlogic s905 series of cpu's, which are a very common cpu for androidtv boxes (i.e. what Tivo's new Stream 4K uses).


The biggest thing here is that G31 uses the Bifrost architecture. With the core architecture working, that opens up the G51 and G71 as well (and maybe G52, G72, and G76 2nd gen Bifrost in the future).


Odroid c4 has it.


There seem to be quite a few generic STB devices with the Allwinner H616 or Amlogic S905 on Amazon


Remember that this work applies generically to Mali chips using the Bifrost architecture.


My ASUS Chromebook C201PA has it (pretty sure).


Could open source graphics drivers become a better option than proprietary?


As others have mentioned, on Linux they already are outside of Nvidia. As for whether proprietary on Windows/Mac is better than free on Linux, I'm not sure how you'd test but I'm also curious.


They are already the better option for Intel and AMD.


Re: AMD, my experience has been that one needs a very recent kernel (5.4+) for a good experience on Navi. Even with that, I'm getting some interesting errors in dmesg on a 5600 XT under Pop!_OS. I knew I'd be unstable on this system for a while when I built it, so for now it's relegated to gaming and web browsing, with any "real" work occurring on my increasingly aging but rock solid Core 2 Quad workstation.


>AMD, my experience has been that one needs a very recent kernel (5.4+) for a good experience on Navi.

I think needing a kernel released after the video card is a fairly reasonable demand.


5.4 was released in November 2019, while Navi with the 5x00 series was released in July 2019, so that's actually 2 release cycles or so of the kernel before hitting stable support. For comparison, Intel already has Gen12 graphics support in place across the entire software stack despite the fact Tiger Lake/Xe are not available until later this year (Mesa support for Gen12 was merged in Oct 2019!) AMD is just comparatively not as good about this, frankly, and I say that as someone who has the luxury to (and often does) run -rc kernels for latest hardware. This is not only true of their graphics cards, but to some extent their CPUs as well.

They need to get their software support up earlier. I get that there are issues like supply chains, OEM firmware, and all that jazz, but they aren't amateurs flying by the seat of their pants here, they're capable of doing this. If I had to guess I'd say it's simply because AMD's software department seems stretched pretty thin, where as the competitors have enormous software teams. Hopefully they can fix that.


>5.4 was released in November 2019, while Navi with the 5x00 series was released in July 2019

Their specific card was released in January 2020, and the only problems they list are some strange dmesg entries. They may be lagging a bit compared to Intel, I am not following closely enough to note, but is Intel even offering competitive GPUs?


>Is Intel even offering competitive GPUs?

Not yet, but they supposedly are supposed to start soon. I'm pretty happy with that, more competition is good for everyone.


I agree completely! Unfortunately that means either running a very recent distro release, a rolling distro, or upgrading the kernel on a stable distro like Slackware or Debian, currently at 4.4.x and 4.19.x respectively. I chose to run a recent distro release (Pop!_OS 20.04), with the caveat that overall stability is not up to par with traditionally stable distros like those mentioned above. My C2Q workstation runs Slackware 14.2 and, as mentioned before, is rock solid. It has an AMD FirePro "Turks" era card, and it's doing quite well with the open source driver.


Ubuntu LTS releases have an official "Hardware Enablement" kernel which is reasonably up to date. On 18.04 LTS, its currently using Kernel 5.3. New Desktop installs default to this updated stack.

https://wiki.ubuntu.com/Kernel/LTSEnablementStack


That's good to know, thanks. I had a lot of bugs with Ubuntu 20.04 that weren't present in Pop, so I stuck with the latter.

My goal is to reach stability with Slackware (probably when 15.0 is out) or Void (currently buggy on that build). I prefer KDE Plasma to Gnome, but System76's customizations really make it useful for now.


Requiring new kernels for hardware support is a permanent problem with the way linux is developed. Ubuntu was supposed to "solve" this with it's hardware support layer( basically backporting drivers) but I don't know how well that works.

Fwiw with an older amd gpu that got mainline support years after it's release I found that Fedora was a good balance for getting the new patches without breaking everything.


Depends on the GPU.

Some of them still have better support on Windows, while older ones were left behind with open source drivers reboot.


Could be, but it will require some heavy investment from the FOSS community first.

In general, drivers written by vendors have poor quality (tons of legacy code + the usual enterprise shenanigans) but benefit from having access to all documents and all silicon erratas.

If the community can get past that, I firmly believe that adding a couple of thousand fresh eyes will eventually lead to significantly improved performance.


edit on reflection, my information is both based on vague memories and outdated, I shouldn't have made this post.


??? I don't believe this was the case for RADV. AMD was dragging their feet on providing an open source Vulkan driver so the community created one in record time.


I do remember reading they were dragging their feet on releasing some newer documents but I also thought their team had primarily moved to the open source driver. I may be wrong, I'm a complete outsider who hasn't been paying attention for a year or two.


They have moved to the open source driver for openGL. Vulcan was delayed for long enough that a RedHat employee built a driver and mainlined it( using the documentation provided for the openGL driver). Eventually AMD ended up supporting that driver instead of open sourcing the proprietary one that was part of their proprietary stack.


Note that ARM, Nvidia and AMD consider newer architecture as trade secrets and make it really hard to access to certain information.

Some of the current open drivers are really watered down.


Are we talking about performance or user experience?


User experience seems given if it gets included in mainline


They are your only option. The only other "drivers" are never updated binary blobs, maybe from the vendor that sold you the hardware, possibly extracted from some years old Android firmware image.


This is awesome work! Kudos to the folks making this happen.

But at the same time, so sad the open source community have to spend their efforts on this while vendors could have made this happen at beginning. (I know there could be commercial/business/IP reasons, that's exactly why feel sad, feel like it is not a problem that can be eventually solved at all).


I’m not sure which is it more about, the drivers getting so good, or GNOME being so bad it needs a decent graphics stack with 3d acceleration just to draw some application windows.


Why doesn't ARM understand that having a free graphics stack provides tons of business value for embedded systems?


Because they are getting big bucks from embedded vendors anyway.

Also all embedded FOSS OSes use non-copyleft licenses (RTOS, Zephyr, NutX, mbed,...), Linux hardly matters to most of them.

And the few that actually use it, aren't contributing to upstream anyway.


Is there any non-NVIDIA GPU or motherboard that can run Wayland at 5K?

4K would be less than ideal for me but even that would better than crappy NVIDIA drivers.


Almost any gpu. I run gnome on wayland with 4k just fine at the max refresh rate of my monitor on 5 year old intel graphics. It's not even a slight stretch.


is that 60hz?


yes


Any amd or intel gpu that supports 5k on it's hardware should be fine.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: