RK1 Ubuntu 22.04 64Bit ARM
# │forum
a
Hi everyone! 👋 My name is Abe Hoffman, and I'll be developing the install process for Ubuntu 22.04 LTS (Jammy Jellyfish) for the RK1 compute module. I have been into hardware and software since I was eight and now produce a "discovery" operating system for PayPal's entire compute stack. I'm also a Computer Scientist and have several patents related to operating system installation and software compilation. I have long-term hardware experience with five major manufacturers at the enterprise level and love ARM! I am most familiar with the ASPEED family of BMCs. I also contribute to Amazon's Firecracker for aarch64. I am delighted to be working with the TuringPi team and family (you all)! I want to open the floor to the community and hear what you all would like through the process. My goal is to create a dead simple and enjoyable OS install process for the RK1. Please tell me your thoughts!
d
I've been looking into this and was even about to try to approach this, but my lack of knowledge would make it rather slow. May I ask what's your approach/idea for this? Rockchip delivers a kernel in version 5.10 and there's even a GPU and video output support. There's also an effort to mainline RK3588: https://gitlab.collabora.com/hardware-enablement/rockchip-3588/notes-for-rockchip-3588/-/blob/main/mainline-status.md and while this is a better approach long-term, not everything works yet (like mentioned GPU support or cpufreq). So I thought of maybe a choice for now which kernel to use? Also, with anything you have, feel free to ping or DM me so I can put the image on my RK1 and help with testing.
n
@everyone sorry guys for tagging, but I want to make sure we hear everyone who has something to say and make sure it won't take too long. Please feel free to share your needs and wants. Our main goal is to ensure we are delivering great solution for the community
@abrahamrhoffman maybe you can share your vision for the build?
a
Thanks for the help @nsky !
I'll be sharing the build after a couple local development cycles 👍
@DhanOS (Daniel Kukiela) I think efforts like the
Collabora
repo are awesome! The focus of this release will be on the 5.15 kernel and basic functionality with uboot and the initramfs. Once we have a nice process in place, I would like to collaborate in a more focused way.
d
5.15?
The one from Rockchip os 5.10, unless I'm missing something
a
There are a few other external efforts underway with regards to the 5.15+ kernel. I'll be compiling the kernel, patches, modules and udev space myself to provide for the TuringPi community
d
Are there GPU drivers that can be compiled with 5.15? Or will this mean no desktop mode?
f
Hey Abe. This is going to be cool! I guess I am a minimalist at heart and going to be just popping k8s on the OS - any chance there are any people working on de-Ubuntuising into something more lightweight - or will we be relying on the community for that? Thanks!
a
We're focusing on command line support right now.
Hey @fentonfenton ! Ubuntu 22.04 is the goal at the moment. Do you have a suggestion with regards to another operating system?
@DhanOS (Daniel Kukiela) > feel free to ping or DM me so I can put the image on my RK1 and help with testing Thanks! I will take you up on that : )
f
I guess
k3os
and
dietpi
but other people may have some ideas
d
I don't think I've seen anyone here using
k3os
, but
DietPi
is indeed quite popular
a
big k3os fan 🙂
r
is it still alive? I thought it was kinda abandoned
i
Armbian?
m
k3os was abandonned by rancher a while ago (like 2 years). personnaly i move my cluster to dietpi since then
d
If dtb files need customization a
make menuconfig
type of editor to make changes would be great
f
That might tie in with hoping that raspberry pi style HATs etc could be accessed through the tpi2 gpio pins without having to reinvent the weheel too much
a
That was my thought too, especially since they actually also provide Ubuntu based images
Really what I want is an OS that has maintainable support. I have been burned by things like the PINE64 which had a lotta of not great software support - and which Armbian finally added support for so that made it easier, and its what I use now. Which is why I kinda like the Armbian suggestion, but if its vanilla Ubuntu that's cool too. As long as its easy to continue to update as new Ubuntu's come out (especially the LTS ones)
v
https://www.talos.dev/v1.4/introduction/system-requirements/ , it is the best option for more complex k8s releases and I hope rke2 speed up support to arm
b
@abrahamrhoffman Just a question to verify, When you say Ubuntu 22.04 Support, you are talking about Ubuntu Server right? And not the bloated normal desktop install. I think the focus should be on Ubuntu Server and not the desktop distribution.
f
i took at look and the arm64 server is much more lightweight ca;n't find where i saw that any more. might have made it up. (found it but i was looking at
Raspberry Pi Generic (64-bit ARM) preinstalled server image
from https://cdimage.ubuntu.com/releases/jammy/release/
b
I think the thread name should include this, I think the focus should be first on Ubuntu Server 22.04 LTS 64Bit ARM
d
Desktop is not "bloated" and IMO ideally there were both. They share the same base, though, and even with the server version you can make a desktop and vice-versa.
b
From my point of view I think that most people want to run the server version on their nodes.
d
There is also Node 1 with HDMI output and I think that some people would like to run a desktop version there
b
I understand, to me it makes more sense to take the Server as a base, and for node 1 people can install a Destop environment when wanted, for people who want to use all nodes as server nodes, and prefer no desktop, choosing the server distro makes most sense
d
Or we can have both ¯\_(ツ)_/¯
b
the standard image does include the desktop by default, which is not what you want and need to Node 2-4, so using the server base as the default makes most sense, for node 1 people can just install the desktop
Quote: "The primary difference between Ubuntu Server and desktop is the desktop environment. Ubuntu server doesn't include a graphical user interface, while Ubuntu Desktop does. It's because almost all servers execute headless."
d
Or we can have both ¯\_(ツ)_/¯
b
we have both when you use the server as base and then install the destop environment for node 1
d
We can have both images. I don't understand where do you see a problem
b
Sorry, I was not making myself fully clear, I do not see any problem, I understand have both images would make sense, however, regarding time/resources/effort, it makes more sense to concentrate on the server image first
hope this clears it up
d
The server one is going to be indeed faster but not because of the time or effort of making both, but more because of the GPU drivers and whole graphical subsystem that must be done. I believe the server one is the one that'll be prepared to start.
v
Just work in stages, first core OS layer, then people with time to work with desktop just need only to use a tested core Ubuntu to improve issues with desktop instead to do in one shoot
n
side question but what would the advantages of running Ubuntu on the Rk1 over a CM4 be out of interest?
d
Desktop is not bloat, but desktop with snap is definitely bloated… as a compromise without doubling efforts, have initial setup focus on headless server install, then end with optional instructions to add a desktop gui https://phoenixnap.com/kb/how-to-install-a-gui-on-ubuntu
d
Mostly the speed. RK1 is an octa-core CPU and is roughly 3x faster than CM4. Also RAM - up to 16GB and up to 32Gb in the future
a
Hey @blackphoenixx85 ! Yes, that's correct. I'm working on a light-weight jammy release that is a bare bones server. Users can apt-get to their hearts desire after that 🙂
d
b
Anyway to help? I'm guessing I need my RK1 delivered first 😦
a
Hey @blackphoenixx85 ! Will PM you. Always willing to get support from the community!
f
Would love to help too
a
PM'ing you too
b
There is also this one which is specific to RK3588 https://github.com/edk2-porting/edk2-rk3588
s
@User Hello, I'm a dev that has been porting Ubuntu 22.04 to multiple rk3588 boards and you might find my project of interest. However using the 5.15 kernel does not make sense as it does not have support at all for rk3588, that was introduced in 6.2. Do you have a GitHub repo for the kernel, i would love to see what is going on here. I would recommend using the recently released rkr5.1 kernel from rockchip. As it has full hardware support. https://github.com/Joshua-Riek/ubuntu-rockchip
I also would be happy to assist with development, i'm very familiar with the rk3588 by now. I can get a proper desktop working with GPU support quite easily, just need access to hardware and figure out what is going on with the kernel
b
@abrahamrhoffman Do you have access to the hardware?
@abrahamrhoffman @Spooky I think that we need to talk about the 5.15 kernel versus the 6.2 kernel
s
I would recomended using the bsp 5.10 kernel first. Then work on 6.x kernel and provide both to users. RK3588 is still very much a work in progress in the mainline kernel. Users will find many features not working.
a
Hi @blackphoenixx85 what would you like to talk about with regards to the kernel?
b
Are we going with the 5.x or 6.2 kernel. The RK chip is loaded in 6.2 right?
See the message of @Spooky
a
We're working on the 5.15 kernel. The main reason is that it is considered LTS (Long Term Support) from Cannonical.
s
Is there a repo for this i can checkout? 5.15 seriously does not make sense unless you have a massive 3rd party backporting support for rk3588
a
I'm working on the release and will be happy to share my work once I get a little further along.
b
@abrahamrhoffman do you the hardware? The only thing I can come up with is asking TPI to fast track my order
Im studying really hard on the DTree
s
Is the kernel repo public? I just want to see what is going on
a
Yes, I have all the hardware.
b
@abrahamrhoffman are you part of the community or are you affiliated with TPI
I assume you have other hardware then the TPI RK1
With the same chip of course?
LTS makes sense for a server distro, specifically for people who will be running it for a while
a
I was selected by Turing to work on the Ubuntu 22.04 5.15 kernel release for the RK1. Please see my original post at the top of the thread. Prior to this I was a very early backer for the TP2.
b
Sorry, I missed that
s
Yes, but how is 5.15 being supported on rk3588? Are you backporting patches from 6.x or is a third party at play?
Copy code
A rolling example 

To better understand the concept of rolling, let’s look at the following example. Let’s say you are running Ubuntu 22.04 LTS. The GA kernel that comes with this release is version 5.15. However, you have a new piece of hardware that was released in early April 2023 and you need the latest device driver support in order for it to work properly on your Ubuntu system.

Instead of upgrading to the next LTS release, which won’t be available until 2024, you can choose to install the 6.2 HWE kernel package, which is released with Lunar Lobster 23.04. Once 6.2 comes to its end of life, you can then continue to roll kernels by installing the HWE kernel which is yet to be selected for the 23.10 release. 6 months after that, in April 2024, the next Ubuntu LTS release, 24.04, will be available. And that’s it. You’ve made it to the next GA kernel, and you can choose whether to upgrade to the next 24.04 LTS release or run just its GA kernel with your older beloved 22.04 LTS.

This way, you would have ensured that you always have the latest hardware and software support on your Ubuntu system, without sacrificing stability or compatibility with your existing applications and software.
Sorry one sec 🙂 on another call
s
I see, so this means 6.2 is being used not 5.15?
a
Okay, all done with my call. Hey, so it looks like you're interested in ensuring mainstream support for Linux releases on the TPi2 right? I'm on the same page. Support for RK3588 + dev board modules is just coming into the 6.2+ kernel, as you mentioned. However, we have the ability today to use the 5.15 kernel and custom compile the modules we need to get things up, stable and working. The reason I posted the above is that I wanted to point out the proper migration pattern is exactly what you mentioned: move into a mainline kernel with full support. Unfortunately, we don't have that today, we have partial releases for some boards. So we're in this strange place between fully supported mainline and "roll our own" support for the board. The goal is to get a working release out to the community as quickly as possible, with a runway toward mainline! We'd love it if everyone got a working stable OS in their hands now with a stable upgrade pattern in the future. Hope that makes sense!
s
My confusion is with the 5.15 kernel as it does not support the rk3588. I have not seen any rk3588 boards running on it. Did you receive some BSP from rockchip that uses 5.15??
a
Yep, Rockchip's latest developer SDK contains support for Ubuntu 22.04 5.15
s
Is this something you could share? Getting anything from rockchip is a hassle haha
a
No kidding, just syncing the repos took a week. I'm just the bug bounty guy, you'd have to reach out to the core Turing team about that. However, I am sure once this is ready they'd be interested in sharing with the community.
s
Understood, I have only seen 5.10 from rockchip and nothing about 5.15. But this does seem interesting. Any chance you could dm contact info to someone on the Turing team I may be able to reach out to?
a
Apologies for being so pedantic, but is seems as an outsider the best I can suggest is checking in other threads or going through the main contact page.
s
No worries I understand! I just have not found any contact information on the Turing website
a
s
Thanks haha, I missed that!
Btw is the 5.15 bsp kernel a weird android fork like 5.10?
d
As for the RK3588 support in the kernel version of 6.2, it's still not great: https://gitlab.collabora.com/hardware-enablement/rockchip-3588/notes-for-rockchip-3588/-/blob/main/mainline-status.md - many features are missing there like GPU and display controller, M.2 or
cpufreq
(which is rather important), and some things that are already done(-ish) won't be available before the future kernel releases like 6.5. I'm not sure how much the current kernel version, 6.2, will be usable here.
I'm not sure what's magic about kernel 5.10, but Nvidia is using the same version in the Orin module firmware.
s
There is a 5.10 bsp from rockchip that has full hardware enablement. That is the only benefit.
d
Yeah, I know that (I was looking into making the image for RK1 before Abe and I have the sources from Rockchip). I just found it interesting that the Nvidia Jetson Orin modules are using the same kernel version.
s
That is strange indeed
j
just a wish: please include cloud-init
a
How so? Curious about your use case. What features of cloud-init are you interested in?
j
If my SBC bootstrap procedure would be: 1. flash image 2. boot 3. during boot happens cloud-init, in case we get a meta data server running on the BMC, the SBC in each slot could be continuing bootstrapping itself, instead of other steps. This would make the turing pi more "cloudish" Alternativly you could do a manual Ansible deployment or similiar on the freshly writen node. But this is a mnaula step. Cloud-init would allow more automation.
This is also discussed in https://github.com/turing-machines/BMC-Firmware/issues/73 and https://github.com/turing-machines/BMC-Firmware/issues/58 . It would be a first step in using the SBCs in the turing Pi2 for automatically bootstrapping itself into a k8s-cluster. An adapted Cluster API provider is still missing as discussed in the latter issue.
j
Would make creation of a golden image for the RK1 more feasible. They can dynamically configure themselves using just a few config files provided by the metadata server or various data sources external to the rk1
Most distros support it now too
Ubuntu’s autoinstall process (subiquity) uses cloud-init under the hood and you can hook into it
I’ve been playing with this recently and have some example here if it is helpful. https://github.com/johnrichter/datadog-examples/tree/main/testing/vms/images
s
Btw @DhanOS (Daniel Kukiela) and @abrahamrhoffman have you guys verified the BSP kernel you have is 5.15 LTS? The rockchip kernels I have seen are based off android which would not make it an LTS kernel.
a
Thanks for explaining @j0ju! Sounds interesting. I'll keep it in mind.
b
Would it be possible to turn off the auto bootstrapping? In case somebody does not want a k8 cluster?
j
you mean after already bootstrapped? or if you do not want cloud-init to happen on boot. Both is possible.
b
I think cloud-init should be after boot. And after bootstrap.
We need to make sure we do not provide too much of a forced template. We must not take too much assumptions on what people need and want.
a
s
Any ETA on the source code becoming public?
t
@abrahamrhoffman any updates on Ubuntu 22.04 for the RK1? We're closing in on the estimated FCS date.
s
Tossing in my 2, or 3 or maybe even 4 cents here. I'm not sure on the feasibility of everything, but I'm significantly more in favor of: - vanilla upstream support (I have bad luck with buggy vendor BSPs) - ... which hopefully also supports the GPU for encode/decode. I had hoped migrate my linux iso library to av1 and use the rk1's hardware decode to transcode if necessary. See https://github.com/hbiyik/FFmpeg - pure Debian support. I suspect many others, like myself, are hoping to run Proxmox on these bad boys and Proxmox is built to run on top of Debian and Debian only, rip @abrahamrhoffman @DhanOS (Daniel Kukiela) I'd love to help test when my RK1s arrive. I should be one of the first. Any update on a repo where this is being developed? DMs are open!
p
Hi Abe - Would love to see 'simple' to follow documentation too, that is also 'complete', and works out of the box, A car sitting in the driveway isn't fun. I'd rather drive it, and then tinker with improving it. That's what works best for my students too.
DietPi is likely more popular, as it was the version used in the directions. As a new TP user, it's easier to follow the directions, then try new things. I'd like to see something different. k3os or others. Why just have one option???
Thanks - I did hear that too. But isn't there anything else other than DietPi???
Abe - these kinds of things are really helpful. I wonder if TP can put many of these things on their documentation site. Sort of an appendix of topics. Just a toc and links to each topic. There is so much I learn from the board, but it's time consuming to 'go back' and then when you need information, it's not so simple to find it again! 😉 Might make answering the same questions also easier for help support. 🙂
v
Talos it is a nice k8s distro talos.dev support many boards and x64 and arm
a
Is there a place to download the Ubuntu image for rk1s?
t
This is the GitHub repository: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/tag/v1.30 You'll see the Turing Machines RK1 on the list of supported products. @User has been making contributions there.
d
Will be set shortly. The release is not going to be the image in teh version linked above
I mean the download is ready, the docs are going to be set soon
This is not the official way, nor this image is the one to use for now
t
Ah, okay. This was the place @Spooky referred to.
b
@DhanOS (Daniel Kukiela) if this is not thr place where do we get the image?
d
The official releases are going to be put here: https://firmware.turingpi.com/turing-rk1/
You can get the image from Josh's GitHub, but currently newest release do not include DisplayPort fix, for example
For this and other reasons we want to share our official firmware download channel
b
Thanks, will the server image be ready soon?
d
The server image is there
b
Got it, btw do you mean the images from josh's github do not include the display fix?
d
In the future, we'll also have a mainline kernel version
b
Nice
d
Correct, they do not
b
Thanks
d
They will, with the next release, but currently they do not
d
Team - Thanks for all you have done to get an image setup. I have 3x RK1s running the 1.3 build added to my docker swarm. Happy to do any testing if needed.
s
I'd prefer Fedora, tbh, now that it installs and boots natively on Raspberry Pi's already. Any chance of also supporting that? Also I'd LOVE to have a real ASPEED BMC instead of the Allwinner chip that's there now, in future versions of the Turing Pi line. There's so muc hse can do with e.g. the OpenBMC and other software if we had a supported BMC chip!
d
We do not have plans on creating Fedora image, but I believe someone from the community will do that at some point. A real ASPEED BMC is an ARM CPU running Linux, right? Not any different from what the BMC here is doing.
Also BMC on TPi2 has way different features due to specific of TPi2 that controls 4 nodes but does not integrate with any of them, unlike "standard" BMCs that are closely integrated with the platformon the motheboard level
TPi2 is not a motherboard, it does not contain node systems, nodes thems selve has own systems and do not expose them in a way the BMC could interact with them
j
Correct, and some with default passwords, so don't ever expose BMCs to the wide internet
d
Some of my favorite pen tests were discovering BMCs exposed to the internet.
s
this has to be a meme....
j
an ex colleague of mine filed that default password thingy as issue to a major BIOS vendor, and the got tons of shit via their lawyers eg. NDAs, but in fact default passwords are a major risk, even the ransom ware gangs out there are aware of this "cheap compute" nowadays
i
K3os is definitely a nice to have and a use case of mine.
d
I thought that k3os is dead? https://github.com/rancher/k3os/issues/846
d
Do we know if all iptables kernel modules (including filter) are enabled on ubuntu-22.04.3-preinstalled-server-arm64-turing-rk1_v1.30-dphotfix.img
Looks like almost everything for rk3588 is supported upstream as of 6.7rc1?
s
There is still a lot missing, but the primary components are working well. But HDMI and GPU support are still very much a work in progress. There is a new Linux 6.1.25 BSP from Rockchip coming out shortly. I have the RK1 booting on it, but requires some work still.
b
Great I'll try that kernel with talos as well
v
Does it working in talos , best k8s distro
c
been using MicroK8s with no issues
I did wonder tho, is it recommended or not to do updates to the OS Distro? started seeing available updates didnt know if this s recommended or not 1 update can be applied immediately. To see these additional updates run: apt list --upgradable Enable ESM Apps to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status ubuntu@turing-node-2:~$ apt list --upgradable Listing... Done kpartx/jammy-updates 0.8.8-1ubuntu1.22.04.4 arm64 [upgradable from: 0.8.8-1ubuntu1.22.04.3] linux-headers-5.10.160-rockchip/jammy 5.10.160-24 arm64 [upgradable from: 5.10.160-22] linux-image-5.10.160-rockchip/jammy 5.10.160-24 arm64 [upgradable from: 5.10.160-22] linux-libc-dev/jammy-updates 5.15.0-91.101 arm64 [upgradable from: 5.15.0-89.99] multipath-tools/jammy-updates 0.8.8-1ubuntu1.22.04.4 arm64 [upgradable from: 0.8.8-1ubuntu1.22.04.3] python3-update-manager/jammy-updates 1:22.04.17 all [upgradable from: 1:22.04.10] update-manager-core/jammy-updates 1:22.04.17 all [upgradable from: 1:22.04.10]
s
Oh go ahead and update, it will be fine. Had to push out a fix for the RTC - It would fail to initialize correctly due to a missing clock frequency in the device tree
b
Not yet
v
Keep updated!
b
Is does now 🙂
91 Views