Dear Genodians,
I start by mentioning that I am Jean-Adrien from Gapfruit. Sorry for the confusion
I may create. I mailed you on my behalf today, with my private email address, to avoid
interfering with any Gapfruit matter.
I take your email, Norman, as an opportunity to share my enthusiasm about Genode. I may not
have a significant contribution to make to the roadmap. But I would like to share some
of my interests and motivation. This year I want to spend more time on contributions
that can benefit the community.
First, I will fix issues I have with my test machine to run Sculpt fully featured. Currently,
networking via Wifi is not possible. Other difficulties may come after improving connectivity
support.
Next, I want to put effort into proposing 1) when I have finished with the 22.11 update
integration and other work-related priorities.
Then during my spare time, I would like to join efforts on support for Xen or Virt. Layer
for Qube, adjusting myself to ongoing plans, if any exist?
Following the "Roadmap 2023" discussion and after having a recent look at "Futur Challenges" [1]
on the website, it is with lots of excitement that I found many subjects very close to my
interests. Here are the topics:
1. Character device drivers as VFS plugins
I proposed, some time ago [2], an SPI driver. The commits never made it to the staging branch
because of the interfacing / "quality". Over time, at Gapfruit, we gained experience using the SPI bus,
but only with TPMs. We recently refactored it into a VFS plugin for easier interfacing with libraries
such as WolfTPM and TPM TSS. I believe BUS drivers such as I2C and SPI could be unified behind a standard
"character device" VFS plugin interface. Can that benefit the community? I can put some effort into
improving and contributing those commits.
2. Genode as virtualization layer for Qubes OS
I am a daily user of Qube OS. Sculpt is an attractive alternative! Trying it out as a daily OS is part of my plans.
I have little knowledge of the Qube OS internals, only that they use Xen as a hypervisor. I was surprised to
find out about the hypervisor abstraction layer they created. It is a game changer for using Genode to
build a virtualization layer.
It brings so many questions to my mind.
First, does full support for a hypervisor such as Xen need to find its way to Genode? Or is base-nova already a viable candidate?
Are all necessary building blocks for AppVM message passing present within Genode?
Which approach would you privilege first for investigation?
If Xen, support for Genode in a Dom0 scenario first?
Or, as an AppVM first, focussing on Qube RPC mechanism support? (I am aware of Xen DomU support, but I do not have all details in mind)
Currently, those questions might be off-topic. Overall, it seems a significant challenge.
3. Xen as "Kernel" for Genode
My ultimate goal here would be to have a pure minimal Genode-based OS in Dom0 for only managing guests' VM.
Last summer, by curiosity related to 2), I started investigating necessary changes to the build system for building Xen as a port
and generating a boot image using Xen with a Genode base-hw minimal scenario as Dom0. I was able to set up
the port, successfully building Xen and booting it, but with a minimal Linux as Dom0 instead of a chosen
Genode scenario "run/log," e.g.
I still need to reach my goal. The real work only begins now. My primary technical motivation was working on
low-level mechanisms to manage DomU(s) and enable RPC from one DomU to the other. I lost interest over time because I needed
to be more confident in its relevance and missed lots of knowledge.
At that time, I was unaware of the work of Julian Stecklina. I would be interested in looking into it! Is it
publicly available?
-----
Side note about the AMD Radeon drivers, my x86_64 test machine is an HP Elitebook 849 G2 equipped with an
AMD Radeon R7 M260X. If some workforce is needed, I would also be happy to test and provide feedback!
Another topic I was very interested in is initiatives like Spunky [3]. I am not making it a point as this is not
to take as seriously as the others. With the gain of popularity from languages like, e.g. Rust. Is there any
plan or similar initiative in that regard?
I would be up to start one as a pet project. I am interested in trying this out with the Zig programming
language [4]. My motivation for such a language comes from a Youtuber I appreciate [5]. He made an interesting
video on memory safety within different languages [6]. I do not have any strong opinion on "C++ vs any other lang" topics.
If you have other languages in mind, please let me know!
Finally, thank you all for your supportive, kind and professional attitude! Since I started working with the Genode
OS Framework, it has always been a pleasure to read from and interact with any of you. I am relatively junior to OS development.
Thanks to my co-workers and following daily discussions on this mailing list, I learned a lot!
[1] https://genode.org/about/challenges
[2] https://github.com/genodelabs/genode/pull/4187
[3] https://genodians.org/m-stein/2019-05-09-spunky-1
[4] https://github.com/ziglang/zig
[5] https://www.youtube.com/@contextfree
[6] https://www.youtube.com/watch?v=qeiRGbYCD-0
Cheers,
Jean-Adrien
Hi!
I am using u-boot to init graphics. U-boot uses edid, so I am reading
the graphic chip to find out the screen mode.
This works just fine in 1080p. But if I use my 4k monitor I get an
unhandled exception.
Is 4K a general problem?
Michael
Dear Genode Community,
hereby, I'd like to kick off our yearly brainstorming about Genode's
road map for the upcoming year. Please feel invited to chime in, sharing
your personal observations and plans. By mid of January, I will update
Genode's official road map, trying to weave one reasonable plan out of
our individual interests.
Let me start with my personal reflection of the past year and the topics
that I find tempting for 2023.
Review of the past year
-----------------------
My Genode year revolved all around the PinePhone, which was an extremely
challenging and rewarding experience.
Driven by the vision of a Genode-based smartphone, I had to tackle
topics ranging from the schematics of the device, over plenty of
peripheral drivers, up to the user-interface level. Along the way, I
found myself entrenched in a staggering variety of topics. To name a
few: A custom Forth interpreter for our firmware for the PinePhone's
system-control processor, programmed in OpenRISC assembler. Implementing
a low-complexity AT-protocol stack talking to the modem, enabling voice
telephony and mobile-data connectivity. Coming up with a suitable
user-interface concept for the mobile variant of Sculpt OS, and
implementing it. The exploration and implementation of power-management
features like voltage and frequency scaling. Reducing the time from cold
start to the user interface to only 5 seconds. Getting the application
performance up to an acceptable level, grabbing all straws in reach.
This was of course not a one-man show but a team effort. I found myself
very happy being strongly supported by Christian, Sebastian, Josef, and
Stefan who played huge roles in wrestling with the hardware and
ultimately enabling scenarios like media playback in the Morph browser
on the PinePhone.
The result makes me immensely proud. Moreover, we haven't just managed
to get it to work, but we gained detailed guidance documentation [1] as
a collateral effect. The main motivation behind my laborious writing
effort was to lower the barrier of entry for others who wish to port
Genode to further mobile platforms in the future. Let's see how this
plays out.
[1] https://genode.org/documentation/genode-platforms-22-05.pdf
Interests for 2023
------------------
Personally, there are four main interests, I'd like to focus on now.
1. Completing the support for the PinePhone
Genode on the PinePhone evidently works now. But I want to make it rock!
I'm eager to implement a prolonged standby mode that will allow me to
leave the phone unplugged for a week while staying receptive for calls.
I want to make the installation and use of custom software an easy and
enjoyable experience. Finally, by integrating privacy-protecting
functions like the file vault or WireGuard VPN support, the mobile
version of Sculpt OS will give me the assurance I'm seeking for my
personal mobile companion device.
At the beginning of February, I'm going to present the current state at
FOSDEM's "FOSS on Mobile" Devroom [2] and will invite the community for
a field test. By May, I want to reach a state where we can offer a ready
to use image for PinePhone for a broader user base.
[2] https://fosdem.org/2023/schedule/event/genode_on_the_pinephone/
2. Moving existing applications to Sculpt OS
With Goa [3], we already have a nice starting point for bridging the gap
between existing software and Genode. I want to elevate Goa from a
personal project to an official Genode project. One particular ambition
is the use of Goa for re-targeting existing mobile apps to the mobile
version of Sculpt OS (e.g., using the APIs of Sailfish or Ubuntu touch
UI). I'm thinking of an Open-Street-Map client and a messenger as
particular examples. Should we manage to achieve a frictionless way to
bringing existing apps to Sculpt OS, we may have a chance of spawning a
broader active community.
[3] https://github.com/nfeske/goa
3. Improved support for Intel GEN12
This month, I swapped out my trusty Lenovo x260 by a GEN12 Frame.work
laptop as Genode development machine. It is a very nice laptop. Still,
there are quite a few rough edges that need attention. The fan can get
very noisy, which we can presumably fix by better driver support for CPU
power and temperature settings. I know that Alexander has already done
promising exploratory work, which I'd love to replicate and finally make
it a regular feature. Closely related, I'm missing the battery-state
applet on the new machine, and the of the PS/2-emulated touchpad is,
well, an interim solution at best. I ultimately long for a proper
touchpad driver with support for common gestures.
4. Distillation of Genode's base mechanisms
Whereas the first three points address practical concerns, I also want
to turn my attention to the framework architecture. During the past two
years, I discovered several ways for simplifying the base system,
slimming down the framework API, and lowering Genode's footprint. Think
of my ambition to reduce the reliance on the C++ exception mechanism,
consolidating core's PD and CPU services into one, streamlining the
signalling mechanism, or re-implementing the page-fault handling across
the various kernels. There is a lot of potential, which will ultimately
open up new optimization opportunities. I restrained myself from
exploring those ideas to retain my focus on the PinePhone. But they want
out. The second half of 2023 would be a good time.
What about you?
---------------
Even though I hope that the thoughts above resonate with you, I'm pretty
sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
What directions are you most excited about?
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
Cheers
Norman
--
Dr.-Ing. Norman Feske
Genode Labs
https://www.genode-labs.com · https://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
I recently got a used ThinkPad just for genode. Over the holiday
break, I managed to follow Schlatow's article[1] far enough to get
dual boot working, but I'm struggling with vbox6. I think I need to
get a better working knowledge of VirtualBox before I try it on genode
again.
[1] https://genodians.org/jschlatow/2021-04-23-start-existing-linux-from-sculpt
Before I forgot it all, I wrote myself some notes[2]. Then I added
some context for a wider audience in preparation for a possible "show
and tell" for my colleagues at Agoric.com:
Toward capabilities all the way down with Genode on a Thinkpad
[2] https://www.madmode.com/2023/genode-thinkpad-dual-boot.html
I'd appreciate any feedback on the item.
One thing I discovered while tinkering was a "Taking a look at
Genode/Sculpt (21.03b)" video on YouTube:
[3] https://www.youtube.com/watch?v=2PpIf6n4AV4
I don't normally use videos to learn stuff, but I'm starting to
realize that it's because the gaps in my knowledge that I'm trying to
fill are typically small enough that when I find a short article on
the topic, I have the relevant background assumed in the article. But
when I first started playing with Genode, I had a LOT to catch up on.
That's why I was hoping for a screencast
[4] https://github.com/genodelabs/genode/issues/1000#issuecomment-161410556
The particular YouTube video above[3] only covers material that I'm
already familiar with.
But if anyone could point me at a screencast or video of setting up a
virtual machine, I would very much appreciate it.
Again, I should probably study up on using VirtualBox in general. I'm
sure there are plenty of videos about that. But I suppose it can't
hurt to ask for one about vbox6 on genode :)
--
Dan Connolly
http://www.madmode.com/
what can I do? , i can’t scroll down the screen
Need to set other configurations in menu to set up VM(vbox) from genode repo , those configurations are many , more than just a themeWM or nano3d test menu , I am stuck mid way
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows
Hello
I have managed to build unicorn and to some extent it works..
http://micken.se/pix/genode_unicorn.jpg
The little piece of arm code has been emulated , put 0x1234 into R0.
But as you can see there are a whole lot of issues.
Is it possible to use Genode api inside a libc app? I hope so.
Michael
Ok thank you, I will try bison 2 method first , another question, what can I do when i can’t scroll down the screen
Sculpt menu is on to set up VM(vbox) from genode repo , those configuration are many more than just a themeWM or nano3d test menu , I am stuck mid way
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows