boot2container issueshttps://gitlab.freedesktop.org/mupuf/boot2container/-/issues2023-06-16T08:03:07Zhttps://gitlab.freedesktop.org/mupuf/boot2container/-/issues/57[Question] ISO Installation?2023-06-16T08:03:07ZGrabbenD[Question] ISO Installation?Is it actually possible to run boot2container on bare metal as the host distro?
How would you create a ISO in that case?Is it actually possible to run boot2container on bare metal as the host distro?
How would you create a ISO in that case?https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/56Figure out why the x86_64 initrd got so big!2023-06-16T08:04:11ZMartin RoukalaFigure out why the x86_64 initrd got so big!The amd64 build went from 18.4 to 21.6MB between version v0.9.9 and v0.9.10! Let's try to figure out what happened, and remedy the problem :)The amd64 build went from 18.4 to 21.6MB between version v0.9.9 and v0.9.10! Let's try to figure out what happened, and remedy the problem :)v0.9.11https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/55Linux: ship the dtb files alongside the kernel2023-06-16T08:04:11ZMartin RoukalaLinux: ship the dtb files alongside the kernelOn device-tree-based platforms, it is quite important to have the DTBs files generated when compiling the kernel.
Let's make sure to ship these in a tarball alongside the kernel.On device-tree-based platforms, it is quite important to have the DTBs files generated when compiling the kernel.
Let's make sure to ship these in a tarball alongside the kernel.v0.9.11https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/54Add support for auto-loading modules2023-06-16T08:05:07ZMartin RoukalaAdd support for auto-loading modulesAs of !114, it is possible to manually load modules at boot time. This is however a little annoying as we may not know what modules we need to load, so let's add support for auto-loading modules based on the devices modalias.
We can use...As of !114, it is possible to manually load modules at boot time. This is however a little annoying as we may not know what modules we need to load, so let's add support for auto-loading modules based on the devices modalias.
We can use https://github.com/bensallen/modscan as a base, but I would really like to add this capability directly to u-root so that others may improve on it. Finally, I really think we should add support for hotplugging, as containers can't easily modprobe modules (unless someone decides to add `-v /lib/modules` to their podman cmdline!v1.0https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/53u-root: modules_load does not honor `modules.devname`2023-06-16T08:05:08ZMartin Roukalau-root: modules_load does not honor `modules.devname`Without this feature, the following modules may not work:
```
fuse fuse c10:229
cuse cuse c10:203
btrfs btrfs-control c10:234
loop loop-control c10:237
tun net/tun c10:200
ppp_generic ppp c108:0
uinput uinput c10:223
dm_mod mapper/contr...Without this feature, the following modules may not work:
```
fuse fuse c10:229
cuse cuse c10:203
btrfs btrfs-control c10:234
loop loop-control c10:237
tun net/tun c10:200
ppp_generic ppp c108:0
uinput uinput c10:223
dm_mod mapper/control c10:236
uhid uhid c10:239
vfio vfio/vfio c10:196
userio userio c10:240
hci_vhci vhci c10:137
vhost_net vhost-net c10:238
vhost_vsock vhost-vsock c10:241
snd_timer snd/timer c116:33
snd_seq snd/seq c116:1
rfkill rfkill c10:242
```
See https://stackoverflow.com/questions/73044468/which-kernel-function-does-on-demand-module-loading-triggered-by-accessing-a-non for more information.https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/52linux/config: add a wireless config2023-06-16T08:03:09ZMartin Roukalalinux/config: add a wireless configI would like to start playing with wifi adapters in valve-infra, and it would be nice if the `full` kernels could come with the common wireless interfaces.
Additionally, it would also be good to enable `mac80211_hwsim`, for testing purp...I would like to start playing with wifi adapters in valve-infra, and it would be nice if the `full` kernels could come with the common wireless interfaces.
Additionally, it would also be good to enable `mac80211_hwsim`, for testing purposes.v0.9.10https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/51podman: output logs regularly while pulling containers2023-06-16T08:05:06ZMartin Roukalapodman: output logs regularly while pulling containersWhen pulling big containers, it may take minutes for podman to output anything. This can be problematic as it becomes difficult to know if the machine is still doing anything or if it crashed.
While we don't want to flood the logs, I wo...When pulling big containers, it may take minutes for podman to output anything. This can be problematic as it becomes difficult to know if the machine is still doing anything or if it crashed.
While we don't want to flood the logs, I would suggest that having one line every 30 seconds saying what's the download percentage and how many layers got downloaded would strike the right balance between flooding the logs and wondering if the machine is still running.v0.9.11https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/50initscript: repeat the "It's now safe to turn off your computer" message2023-06-16T08:09:06ZMartin Roukalainitscript: repeat the "It's now safe to turn off your computer" messageIn the unfortunate event that the serial output would get corrupted for this message, we may miss that the machine should be turned off.
By repeating the message every second or so, it would increase the likeliness for the message to be...In the unfortunate event that the serial output would get corrupted for this message, we may miss that the machine should be turned off.
By repeating the message every second or so, it would increase the likeliness for the message to be received intact.https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/49Suggestion: b2c udhcpc could use DHCP option host-name2023-06-16T08:03:08ZTomi SarvelaSuggestion: b2c udhcpc could use DHCP option host-nameDHCPD protocol has option host-name which should provide client hostname.
This option is currently ignored by most DHCP clients (as ISC DHCPD documents say),
but it could work as an alternative for b2c.hostnameDHCPD protocol has option host-name which should provide client hostname.
This option is currently ignored by most DHCP clients (as ISC DHCPD documents say),
but it could work as an alternative for b2c.hostnamehttps://gitlab.freedesktop.org/mupuf/boot2container/-/issues/48b2c initrd uses only the first console= commandline parameter2023-06-16T08:06:07ZTomi Sarvelab2c initrd uses only the first console= commandline parameterSome hosts in our environment has pretty standard double-console setup:
`console=ttyS0,115200 console=tty0`
Linux boot dmesg is visible on both, boot2console uses only the first in order.
To remove this ambiguity, b2c should log to both...Some hosts in our environment has pretty standard double-console setup:
`console=ttyS0,115200 console=tty0`
Linux boot dmesg is visible on both, boot2console uses only the first in order.
To remove this ambiguity, b2c should log to both the consoles (preferred), or maybe have its own b2c.config to set it to specific one.https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/47b2c.load: allow specifying an image tag2023-06-16T08:09:07ZMartin Roukalab2c.load: allow specifying an image tagThe container image's full name may not be obvious when loading it:
* Podman does not specify how it will generate the image, since it is meant to be compatible with docker which did not specify it either
* We may have been given a ta...The container image's full name may not be obvious when loading it:
* Podman does not specify how it will generate the image, since it is meant to be compatible with docker which did not specify it either
* We may have been given a tarball we never imported ourselves
* ...
As a workaround for this, we may want to allow `b2c.load` to specify a tag that should be given to the container that got loaded. Here is the proposed interface: `b2c.load=$filename,tag=myimage:version`
Unfortunately, podman removed the ability to tag an image on load. We can achieve this by running podman tag ourselves, but this means b2c will need to parse the name of the image from podman's output (don't forget to add an integration test for this so that changes in the output don't silently break this feature).
Anyway, I spent way too long looking into the history of docker/podman's load command and it seems like a bit of a shitshow. I recommend https://github.com/containers/podman/issues/7387 if you want to learn more, as it is linked to by a lot of places!https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/46ARM: Investigate booting our kernels using barebox2023-06-16T08:09:05ZMartin RoukalaARM: Investigate booting our kernels using bareboxIf you read my views on [arm64 bootloaders](https://gitlab.freedesktop.org/mupuf/boot2container/-/wikis/devices/arm64/bootloaders), you will see how bonkers the boot process on this platform is: not by design, but because most people see...If you read my views on [arm64 bootloaders](https://gitlab.freedesktop.org/mupuf/boot2container/-/wikis/devices/arm64/bootloaders), you will see how bonkers the boot process on this platform is: not by design, but because most people seem to only care about their little board.
Anyway, barebox seem to have done away with the fixed segments, which makes me hopeful it may be able to run our kernel unmodified: https://cateee.net/lkddb/web-lkddb/EFI_ZBOOT.html
This would not allow netbooting over the internet, since only iPXE seem to have HTTPS support, but it would work great for integrating my SBCs in my test farm.https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/45mcli: the mirror command may add /storage in the volume it is mirroring2023-06-16T08:06:08ZMartin Roukalamcli: the mirror command may add /storage in the volume it is mirroringIn some (all?) cases, the mcli mirror command ends up adding the path to the volume inside the volume itself.
This is likely due to my mcli patch being imperfect, so let's fix that before the next release :)In some (all?) cases, the mcli mirror command ends up adding the path to the volume inside the volume itself.
This is likely due to my mcli patch being imperfect, so let's fix that before the next release :)v1.0Martin RoukalaMartin Roukalahttps://gitlab.freedesktop.org/mupuf/boot2container/-/issues/44vm2c: fix up and finalize the interface2023-06-16T08:06:09ZMartin Roukalavm2c: fix up and finalize the interfaceVm2c has the potential of making a one-cmdline setup for boot2container, which sounds pretty good. Before advertising it, let's finalize the interface!
One potential issue is that it is already being in use in the kernel, so let's try n...Vm2c has the potential of making a one-cmdline setup for boot2container, which sounds pretty good. Before advertising it, let's finalize the interface!
One potential issue is that it is already being in use in the kernel, so let's try not to break the interface needlessly.v1.0https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/43CI: Bring more arm64 testing (vm2c, integration)2023-06-16T08:03:10ZMartin RoukalaCI: Bring more arm64 testing (vm2c, integration)Currently, integration testing is limited to running on amd64. Now that we can finally run boot2container on real boards, we may want to add proper integration testing for it!
This will require refactoring `.gitlab-ci.yml` to:
* [ ] f...Currently, integration testing is limited to running on amd64. Now that we can finally run boot2container on real boards, we may want to add proper integration testing for it!
This will require refactoring `.gitlab-ci.yml` to:
* [ ] fix running integration tests on arm64
* [ ] separate the architectures from the tests
* [ ] simplify the path of artifacts (why do we have the branch name in there?)
* [ ] reduce the amount of artifacts downloaded (not needed for unit tests and one of the vm2c jobs)
And probably more ;)v0.9.11https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/42vm2c: make sure we are not running an outdated initramfs2023-06-16T08:06:10ZMartin Roukalavm2c: make sure we are not running an outdated initramfsSome people or CI jobs may update vm2c but fail to upgrade their kernel/initramfs, which may lead to vm2c generating an invalid command line for boot2container.
I suggest we try detecting the version of boot2container in vm2c by adding ...Some people or CI jobs may update vm2c but fail to upgrade their kernel/initramfs, which may lead to vm2c generating an invalid command line for boot2container.
I suggest we try detecting the version of boot2container in vm2c by adding the necessary code to perform the equivalent of `bsdtar -Oxf out/initramfs.linux_amd64.cpio.xz etc/b2c.version`, and warn if the version is older than the the latest released version.
We may also use this feature to prevent running if we know we are not compatible anymore with this version.v1.0https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/41Boot2container should check that the current kernel used is compatible with t...2023-06-16T08:05:07ZMartin RoukalaBoot2container should check that the current kernel used is compatible with the wanted featuresIt may be appreciated by users to get a warning if the kernel is older than what boot2container requires.
This is not a problem right now, but if we start shipping new features that require an updated kernel, we will want to have the se...It may be appreciated by users to get a warning if the kernel is older than what boot2container requires.
This is not a problem right now, but if we start shipping new features that require an updated kernel, we will want to have the setup in place to make it easy for users to know that there will be some issues.v1.0https://gitlab.freedesktop.org/mupuf/boot2container/-/issues/40Command line: display a warning when deprecated options are used2023-06-16T08:15:16ZMartin RoukalaCommand line: display a warning when deprecated options are usedhttps://gitlab.freedesktop.org/mupuf/boot2container/-/issues/39vm2c: detect deprecation warning for released initramfs2023-06-16T08:07:08ZBenjamin Tissoiresvm2c: detect deprecation warning for released initramfsThe following discussion from !96 should be addressed:
- [ ] @bentiss started a [discussion](https://gitlab.freedesktop.org/mupuf/boot2container/-/merge_requests/96#note_1732052):
> I appreciate the gesture, but this will not work...The following discussion from !96 should be addressed:
- [ ] @bentiss started a [discussion](https://gitlab.freedesktop.org/mupuf/boot2container/-/merge_requests/96#note_1732052):
> I appreciate the gesture, but this will not work forward IMO. The problem I have is that I was lazy and thought that it would be simpler to not have to upgrade the kernel while having https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git/commit/?h=for-next&id=507806e9fdf09774d390c5f22893ba4d87ce40d5
>
> But doing a simple revert here is more error prone as we will likely forget to include that patch in the next release.
>
> The other reason I wanted to use the master branch, not the latest release was because I wanted to benefit from the latest developments without having to patch the kernel.
Probably not the best explanation ever because I was lacking context:
- b2c had an API deprecation where `b2c.container` is replaced with `b2c.run`
- we need to be notified that there is a deprecation in initramfs to let the users know what the deprecation is
- a job could monitor for deprecations in releases, and then let the developers know it's time to solve ithttps://gitlab.freedesktop.org/mupuf/boot2container/-/issues/38cache device: take over unpartitioned space2023-06-16T08:04:10ZMartin Roukalacache device: take over unpartitioned spaceNow that we can use boot2container on single board computers, we probably want to make it easy to use it there!
Single board computers usually require the bootloader and the OS to be on the same boot media (SD card, eMMC, USB stick, ......Now that we can use boot2container on single board computers, we probably want to make it easy to use it there!
Single board computers usually require the bootloader and the OS to be on the same boot media (SD card, eMMC, USB stick, ...), so the current automatic partitioning will end up erasing the SD card... thus preventing future boots from happening :D
I would thus recommend we ship basic bootloaders that could be `dd`'ed onto an sdcard (regardless of its size), then at the first boot, b2c would add a new partition in the empty space and use that as the cache storage.v0.9.11