Hello Philipp,
Hope that your weekend is going well.
I grabbed the latest snapshot and did a complete build of things.
So far, I have been able to also run the hello* and framebuffer
examples from the "make qemu" but the VM-multi and VM-multi-p2p as
well as the L4liux examples seem to boot up but then crash out in
the VM's although I think that the "cons" is still running.
For my project PoC effort, I think that booting up something like
the VM-multi-p2p
along with the framebuffer modules might be a good start if I can
get it to work. Once that is working then maybe the goal would be
to create a new module of something like FreeRDP or similar that
will be running as the main GUI and connect to a web-browser
running in a VM that will get serviced by another VM for the
web-desktop.
I guess that this approach could be reduced by one step if a VM
could run a small Linux version with a web browser directly and
serve it up to the console.
Other capabilities might be to have the cons console multiplexer
be able to actively switch VM's in a graphics mode in much the
same way as having multiple QEMU instances in graphic mode for
that VM, as an idea.
Anyway, have a great weekend,
Lonnie
On 11/7/2024 4:20 AM, Philipp Eppelt
wrote:
Hi
Lonnie,
Am 06.11.24 um 23:02 schrieb Lonnie Cumberland:
Hello Philipp,
Thanks for the information on the paths and ham. I am now
working through things to try and get a better feel on the
general process as it is not yet clear to me but getting better
each day, with the guidance that you have provided me.
Probably like most people, I am generally always initially
interested in seeing as many different examples run when
initially exploring software packages as it gives me an idea as
to the capabilities as well as how it all might be used towards
the projects that I am working on now.
With that in mind, I will explore the "make qemu" examples to
see what it takes to get them to run. I am particularity
interested in GUI applications and things that might use
framebuffers which is why I am very interested in the
"screenshot" on the L4Re website and maybe even replicating some
of them even though those are a bit old now.
Examples with GUI are the framebuffer-example and L4Linux-mag. mag
is a framebuffer multiplexer. mag is not on github, but it is part
of the 2024.08-snapshot at https://l4re.org/download/snapshots/.
In the snapshot its at src/l4/pkg/mag. I haven't worked with mag,
so I can't tell more about it.
You might be able to just copy the pkg/mag directory to the
sources acquired from github, but bear in mind that the github
release is a development state and these might not fit together
anymore (but I just see one commit on top since August, I'm
optimistic).
Unfortunately, I can't tell you more about these screenshots. I
don't know from which setups they were created.
I would really like to see some microhypervisor examples that
perhaps use framebuffers as well, if that is possible, and to
maybe even run something in qemu first, after which then maybe
to boot up a Live ISO on some real hardware to see it work there
as well since my project is towards a very lightweight
microhypervisor which will allow you to Hot-Key between VM
consoles that have GUI's running perhaps.I am thinking that
maybe a PoC that can auto-start 1 VM (with GUI) and then
dynamically be able to start more, after which to be able to
toggle between each VM GUI console with a hotkey. Maybe also be
able to use a hotkey to terminate and destroy a VM am as well,
or something along these lines. My key goals are to have it run
Live (RAMDISK based) and keeping the core microhypervisor
footprint as small as possible.
That's a very nice project. It comes with a learning curve and has
its coding challenges. :-)
Cheers,
Philipp
Until then, I will just continue to explore L4Re more since I
truly think that it is what I have been seeking for a number of
years now, for this project effort to finally get going. >
Best Regards and have a great evening, my friend.
Lonnie
On 11/6/2024 12:29 PM, Philipp Eppelt wrote:
Hi Lonnie,
it works with copying stuff to the assets directory, because
the assets directory path is in the MODULE_SEARCH_PATH aka the
list of paths printed in the error output.
You can configure the MODULE_SEARCH_PATH and also the QEMU
command line via the conf/Makeconf.boot file. Have a look at
https://github.com/kernkonzept/manifest/wiki/LinuxVM#creating-makeconfboot
and
https://github.com/kernkonzept/manifest/wiki/LinuxVM#creating-makeconfboot
So to get fiasco automatically picked up you need to specify
something like
MODULE_SEARCH_PATH += /path/to/fiasco/build/dir
(e.g. line 26 in
https://github.com/kernkonzept/mk/blob/master/conf/Makeconf.boot.example)
The same applies to directories that contain binaries not
found. Just add the directory paths in the same way to the
MODULE_SEARCH_PATH separated by a colon.
The list `make qemu` shows is generated from the entries in
l4/conf/modules.list, so make sure to have all folders
containing the mentioned files in the MODULE_SEARCH_PATH.
(Yes, these paths should be in the MODULE_SEARCH_PATH from the
start, I'll see that this gets more beginner friendly.)
Regarding ham:
Yes, you can use any directory to check out into and there is
no relation to the location of the ham binary. I myself have
the same ~/bin/ham file which links to ~/code/ham/ham and my
folder for the checkout is ~/code/l4/public.
ham init -u ... generated a ~/code/l4/public/.ham and
ham sync generated ~/code/l4/public/{fiasco,l4} folders.
However, note that `ham init` uses the _current directory_ to
place the .ham directory into. `ham sync` than places the
files in parallel to the .ham directory.
Cheers,
Philipp
Am 05.11.24 um 21:41 schrieb Lonnie Cumberland:
Hello Phillip,
Just as a quick follow up, I was able to put fiasco in the
assets path, but also had to copy some configs over from the
examples in src after which I could run some of them to run,
but not many as they were missing some other files as well.
I am particularly interested in running framebuffer examples
with the uvmm and multiple VM's active at once on x64 if at
all possible. Some other microhypervisor examples with
graphics would also be very interesting to see run as well.
Thanks again and have a great day,
Lonnie
On 11/5/2024 3:22 PM, Lonnie Cumberland wrote:
Hello Phillip,
Thanks for getting back to me on these and I have been
able to confirm that the .elf32 bit versions do run in
qemu which is a good step forward and the .efi (x64)
version do not at this time as you mentioned.
regarding the "make qemu" I am able to bring up the list,
but when I select one (actually all of them behave like
this), I get an error:
---------------------------------------------------
Could not find
'fiasco'
within paths
/home/lonnie/build-amd64/assets
/home/lonnie/build-amd64/bin/amd64_gen/l4f
/home/lonnie/build-amd64/bin/amd64_gen/plain
/home/lonnie/build-amd64/lib/amd64_gen/std/l4f
/home/lonnie/build-amd64/lib/amd64_gen/std/plain
make[1]: *** [Makefile:693: qemu] Error 1
make[1]: Leaving directory '/home/lonnie/l4'
make: *** [Makefile:6: do-all-make-goals] Error 2
---------------------------------------------------
My fresh setup is via ham and as per the steps
"https://github.com/kernkonzept/manifest/wiki/BUILDING"
I put ham in my ~/bin/ham and then added it to the PATH so
that it is able to be used.
On a side question regarding ham, I did try to create a
"~/l4re" directory and then did the ham init from within
there thinking that it might put all of the L4Re related
directories under that initial sub-directory, but it did
not and put them under my base home directory. Is there
some cli switch or flag that I can use to have ham put
everything in the l4re sub-directory and build in there
instead. This is not critical, but mostly just to keep all
of the l4re stuff together and in one sub-directory for
good housekeeping, I guess?
Thanks again and have a great day,
Lonie
On 11/5/2024 7:40 AM, Philipp Eppelt wrote:
Hi Lonnie,
welcome to the L4Re learning curve. :-)
Indeed, there seems to be a problem with .efi images.
Thanks for letting us know.
I can boot the .elf32 image though:
l4image -i l4re_vm-basic-pci.elf32 launch
It behaves like shown in the screencast:
https://l4re.org/cast-vm-basic-pci-qemu-x86.html
Since you already have the github version, you can run
the examples from the l4re build directory. `make qemu`
executed in your l4re build directory should show a list
of example entries to run. These examples are the same
as the prebuild images.
Cheers,
Philipp
Am 03.11.24 um 21:52 schrieb Lonnie Cumberland:
Hello All,
I hope that your day is going well.
Recently, I have decided to explore L4Re as a
microhypervisor and capabilities as a possible
minimalist component-based microkernel OS.
I have just set up Ubuntu 23.10 (x64) in an Intel
NUC13 and would am reviewing as much documentation as
I can find as well as am building the core L4Re
according to the Github Wiki just to see how the
process goes.
https://github.com/kernkonzept/manifest/wiki/BUILDING
As I am in the learning curve at the moment, I also
would like to build some examples such as the
"Screenshots" (https://l4re.org/screens.html) and
demos from the Pre-Built section
(https://l4re.org/download/snapshots/pre-built-images/amd64/).
I did try to follow the direction on the pre-built
sections and grabbed the "l4image" and all of the
AMD64 EFI files to try and test, but when I launch
them they just seem to hang and do nothing. I do have
qemu (x64) installed as well, but still nothing seems
to boot.
What I would like to ask the mailinglist members is
where can I get the source code to the "screenshots"
examples as well as the AMD64 "pre-built" examples
noted above so that I cam do a fresh compile to see
them in action?
Any help would be greatly appreciated.
Thanks in advance and have a great day,
Lonnie
_______________________________________________
l4-hackers mailing list --
l4-hackers@os.inf.tu-dresden.de
To unsubscribe send an email to
l4-hackers-leave@os.inf.tu-dresden.de