As a new user, I am having some difficulties learning to use Genode / SculptOS. I have taken the following steps:
I have prepared a USB key with Genode 25.10 and booted my PC
I have “expanded” the third partition and marked it as “default” (i.e. (GENODE *) *
I have used the “+” to add the “GUI sticks blue backdrop”, “font fs” and the “system shell” as instructed on the website
Questions:
I would like to make a dual bootable PC with GENODE and linux. According to the website, there should be some explanation on the USB key. I have tried USB → GENODE* → “inspect” → then “cd usb-2-2.3”, “cd boot”, and I can see some files, but there is no information about how to make a dual bootable system
When I restart the PC, the “sticks blue backdrop” does not appear, and all the other settings (system shell, etc) seem to have disappeared. I checked the instructions under “Making customizations permanent” on the website, which instructs to “copy” certain files. (1) how does one “copy” these files? I can “edit” the “/config/managed/deploy” file but I cannot find the /< DISK >/config/< VERSION >/deploy. (2) The website states that one can select a “Default” partition, and I think I have done that, but my “customizations” still seem to disappear after a reboot. (3) Do I really need to copy all customization every time?
How can I do something productive with SculptOS? For example, how can I install some terminal, with Bash shell, create some files (maybe Python), and then execute the Python script? How can I add a user? How can I make permanent files? Is there some file browser utility? What if I want to add some utilities, such as “grep” or “find”?
I am reading the website for instructions, but I find everything rather difficult to understand. With 25 years of experience in Linux, I find everything rather un-intuitive.
I think you are referring to this section of the documentation
Should you prefer to set up your machine for dual-booting Linux and Sculpt OS, you can find all information needed for supplementing a Sculpt OS boot entry to your existing boot loader at the /boot directory of the third partition of Sculpt’s disk image.
I believe that the reference is to the /boot/grub/grub.cfg file found on the USB, rather than some hidden documentation. The information there should be what you need to append Genode to your existing Grub menu. e.g. If this was your existing grub.cfg (alpine linux example)
set timeout=1
menuentry "Linux lts" {
linux /boot/vmlinuz-lts modules=loop,squashfs,sd-mod,usb-storage quiet
initrd /boot/initramfs-lts
}
Then you would add the information in Genode’s grub.cfg:
loadfont /boot/font.pf2
set timeout=0
set gfxpayload=auto
menuentry 'Genode on NOVA' {
insmod multiboot2
insmod gzio
multiboot2 /boot/bender intel_hwp_performance
module2 /boot/hypervisor hypervisor iommu_intel iommu_amd logmem
module2 /boot/image.elf.gz image.elf
}
to your bootloader configuration:
set timeout=5 # Set to enough time for you to pick your boot option
menuentry "Linux lts" {
linux /boot/vmlinuz-lts modules=loop,squashfs,sd-mod,usb-storage quiet
initrd /boot/initramfs-lts
}
loadfont /boot/font.pf2
set gfxpayload=auto
menuentry 'Genode on NOVA' {
insmod multiboot2
insmod gzio
multiboot2 /boot/bender intel_hwp_performance
module2 /boot/hypervisor hypervisor iommu_intel iommu_amd logmem
module2 /boot/image.elf.gz image.elf
}
Of course, if you don’t use Grub as your bootloader (or even use one), you can select a partition directly from your EFI menu, if it is supported.
If you wish to dualboot from you regular system disk rather than a USB then you can do so using:
An entire SATA or NVMe device used as a single EXT2 file system
Partition named “GENODE*” on a USB device in a GPT (GUID Partition Table),
Partition named “GENODE*” on a SATA or NVMe storage device in a GPT
If you want to use a partition then you will need to create it beforehand with fdisk etc.
Take a look at here at an example of a Genode dualboot alongside NixOS.
In the inspect terminal: mkdir -p <DISK>/config/<VERSION>, which in your case would be mkdir -p usb-2-2.3/config/25.10/.
Then copy the file from config/managed/deploy: cp config/managed/deploy usb-2-2.3/config/25.10/
The “Default” partition is the one which Sculpt uses to save its downloads, amongst other things. So if you install nano3d for example, then it will be saved to the “Default” storage location under depot/<provider> so you don’t have download the software again on next boot. To preserve “customisations” between boots, you have to manually copy the deploy file to the disk so that Sculpt is able to find and load it on boot.
Once you have copied the file to the disk, then it is of course persistent and will be loaded on boot. However, if you wish to additional customisations then you will have to copy those to the disk as well. The config file system resides in-memory so it is great for trying out customisations before committing them to disk.
You can install a proper bash shell from @jschlatow’s repository + → Add → •https://...genodelabs → • https://...jschlatow → shells → dotfiles fs + unix shell which comes with a selection of coretuils, vim and curl. You can hook this up to manage your system instead of using inspect or system shell.
I don’t think the python interpreter is available on Genode. However, @nfeske has ported an interpreter for seed7 which you can use to build and run seed7 programs.
There is no notion of multiple users in Genode as far as I am aware. You are controlling the system from the Leitzentrale interface as the sole ‘commander’.
From the shell you can simply vim foo and save with :w in vim. You can also download files from the browser e.g. PDFs, images. Obviously, don’t save anything to the ram fs if you want it to persist.
There is the Files menu located at the top of the screen which provides an area for viewing and editing files. You may also use the Falkon web browser to view files the same way you would on a regular system by typing file:/// in the address bar.
Depends what you mean by “add”, as you can “add” pretty much anything if you are willing to port it first of course…
If you mean to just simply install something then you will have to rely on the work of the developers and others to bring said tools to Genode if they are not provided in the repositories.
That may be in fact working against you, as Genode is quite unlike other Unix systems, so it may take some ‘unlearning’ to get a grasp of the system.
I can go “System → Presets → falkon web browser” to use the web browser. I can also go “System → Presets → window manager” which gives a sort of terminal window. But how can I have both windows at the same time? For example, to do the copying of file while reading the instructions?
The falkon web browser does not load if the wired internet connection is not available. Why? Is there a way to use the web browser without an internet connection, for example to use it as a file browser?
About a “user account”: I have the feeling that SculptOS saves the downloaded software on the USB, but everything else seems to disappear (unless you take special actions). So: where can I store files so that they will be available next time? If I download some software with falkon, where does it end up? Can I access it somehow?
I use my PC mainly for programming, mostly modeling and simulation. I also use LaTeX a lot. I would like to try my hand at SculptOS and see if I can make an environment with Python, LaTeX, PDF viewer, things like that. I am fully prepared to download source codes and compilation by myself, but I am not sure (yet) how to do that kind of productive work in SculptOS.
I used the falkon web browser to download a JPG image. I saved the image. The file is:
/ram/2001_YZR500_0WL6.jpg
I can go “Components → ram fs → inspect” and then the terminal lists the file.
I can go “Components → usb → GENODE* → inspect” and then I can see the contents of my usb-2-2.3 partition.
So: how do I copy /ram/2001_YZR500_WL6.jpg to the usb partition? If I “inspect” the “usb-2-2.3 fs”, cannot access /ram, and if I “inspect” “ram fs” I cannot access /rw/usb-2.2.3….
I am sorry for my ignorance, but I find SculpOS borderline impossible to comprehend.
Good news for you on this one. The Inspect window provides a set of *nix-style commands for basic file manipulation, so you can use “ls”, “cp”, “mv”, “rm”, “vim”, etc., in a familiar way. This is currently the main way to get things done.
Looking forward, it is on the product Roadmap to enhance the “Files” view in Leitzentrale with additional features like file copying, etc. Stay tuned!
I feel that to answer this question I need to first give some background:
Custom presets
The presets available in the system menu at the upper-left screen corner correspond to the files present at /config/presets/. Each file is a deploy configuration. You can turn the currently running system into a preset by copying /config/managed/deploy as new file to /config/presets/.
To keep your custom preset available after reboot, follow the pattern described in Section Making customizations permanent by copying the file to /config/25.10/presets/ at your Sculpt partition.
So presets are essentially just deploy configurations that you can load into at will. They are saved setups that you can quickly use to change your system configuration for specific tasks or situations. The built-in presets are mainly useful for SculptOS demos and people who just want to see what the system can do, without having to worry about how components are wired under the hood. They’re great for quick testing, but they’re not the primary way to install and manage applications, since you can only have one active preset at a time.
Launchers, on the other hand, are more flexible. These are located in /config/launchers and allow you to load and unload specific components into your current session. This lets you mix and match a bunch of components without having to go through the stages of clicking through each option if you wanted to remove a component when it is not needed. So you can have a Falkon launcher that, when toggled, removes and creates the Falkon web browser component. Launchers and components can be used together, as seen in some the default presets, to create your own custom preset for example, where you can have a browser, terminal, or whatever you want pre-configured and ready to go. You don’t even need to know any Genode configuration syntax, just copy the /config/managed/deploy of your current setup to /config/presets/<my-custom-preset> and you can switch back to it, preserving your configuration.
You can find more information in the “Runtime management” section of the Sculpt documentation.
Ok, to get back to your question, you need to manually install either the web browser or the shell, since they are not included in a preset together.
If you are using the falkon web browser preset then the window manager preset’s shell can be found in + → Tools → system shell. Conversely, Falkon is located at + → •https://...genodelabs → •https://...cproc → web browsers → falkon qt6-jemalloc.
You will of course need to install some of their requirements such as Mesa 3D → mesa gpu-cpu and + → Options → system clock for falkon qt6-jemalloc and Gui → font fs for system shell.
However, as @jjkarcher mentioned the Inspect window is functionally the same as the system shell component.
I think this assumption is coming from the “Diagnostics” message falkon qt6-jemalloc requires nic router. This does not mean that you have to have internet connection, just that the nic routercomponent is actually running. In the Network tab in the top right corner you can set it to Disconnected if you want to load it without wanting to connect to the network at all.
You can just dump them into your disk or set up a folder structure if you wish e.g. mkdir -p <DISK>/Downloads or <DISK>/home/<name>/foo - whatever you want!
It depends how Falkon is wired. If you chose the falkon web browser preset, then it will use the ram fs to store everything. Useful for a disposable browsing session, but not so much for wanting persistent state. You can copy the file you just downloaded to your disk, or set Falkon to use your disk to store all of its data. This will require to set the downloads location if you choose to manually wire it up.
That sounds great, as I couldn’t get over the fact that there was no scroll-bar when looking at a particularly large file, so I would have to either use arrow keys (slow) or use my mouse-wheel (not good if I want to scroll fast).
Good news for you on this one. The Inspect window provides a set of *nix-style commands for basic file manipulation, so you can use “ls”, “cp”, “mv”, “rm”, “vim”, etc., in a familiar way. This is currently the main way to get things done.
Yes, I was able to open the “inspect” window and use several commands.
My question is: how can I copy a file from “ram fs” to “usb” using keyboard commands. It appears that this is not possible with the settings of the falkon web browser.
I am starting to have some understanding of how SculptOS works.
This is exactly my question: I have the “default preset” for falkon, I downloaded a file, saved it to /ram/downloads but then I could not find out a way to copy from /ram/downloads to /usb-2-2.3/my_favorite_folder.
Reading from your message, the “default preset” of falkon makes it impossible to copy / move files between the ram fs where falkon is running and the /usb-2-2.3 which is on the read/write filesystem.
I will try the Launcher .
I have said if before and I will say it again: I find the entire experience with SculptOS very frustrating (thus far).
You can “Inspect” more than one file system at a time, by toggling the “Inspect” button on them in Leitzentrale. Once you do that, they are available (think “mounted”) in the Inspect window, right at the root level. If you “ls”, you will see them listed along with the system directories. With that, you can use the *nix commands as usual.
Keep in mind, the write buffers for drives are currently only flushed about every 10 seconds or so, so after writing files, please wait a short while before rebooting.
I see! Indeed, I was able to download a file with falkon, and then save it to USB, using “Inspect” on both “usb” and “ram fs” components. I guess it is similar to the mount operation in linux, which can be automated or not, depending on the settings.
As far as the *nix commands are concerned, I see a small set of commands in /bin.
But I still have a question: I can access both/ram and /usb-2-2,3 from the “Inspect” window, but not from the System Shell Terminal. In the Leitzentrale I can see that the system shell omponent is connected to the usb-2-2.3 component; but in the system shell the usb key is available under /rw which is, ah…. “confusing".
Is there a way to “edit” the system shell component so that it can (also) access the /ram and /usb-2-2.3 at the same time? Or do I have to “remove” the current system shell component and create a new one?
Mmmm….. Indeed, if I select Disconnected for the network, falkon does appear. But if I choose Wired and then unplug the network cable, falkon does not show up.
I find it counterintuive that there is a difference between wired-but-not-connected and disconnected. Software, even a web browser, should run even with the network off or connect-but-no-acccess , in my opinion.