Dynamically set kernel version in /boot/firmware/config.txt #52

Open
opened 2021-12-17 18:14:21 +00:00 by notplants · 1 comment
Owner

Just ran into the issue again where Debian periodically releases new kernel versions, and then the i2c conf file that we copy over to /boot/firmware/config.txt becomes out of date -- this mismatch results in a black screen on bootup (not great). Fortunately I remember this bug from before, so it was relatively easy to fix again, but still its a ticking timebomb in the release flow. Since you run the same code twice, for image building, and get an error later on, simply because time has passed and the way qemu fetches debian in the image building script gets a debian version with a later kernel version.

My idea to fix this in a more robust way is to change this line (line 147:

cmd(&["cp", &conf("config.txt_i2c"), "/boot/firmware/config.txt"])?;
), instead of copying the file... it should look up the kernel version from the disc, and then copy config.txt_i2c with a templating or sed command, which replaces the hardcoded kernel version with the actual kernel version.

So that we don't need occasional pull requests like this https://git.coopcloud.tech/PeachCloud/peach-workspace/pulls/50/files, to fix the image building process and get rid of the black screen.

cc @glyph

Just ran into the issue again where Debian periodically releases new kernel versions, and then the i2c conf file that we copy over to /boot/firmware/config.txt becomes out of date -- this mismatch results in a black screen on bootup (not great). Fortunately I remember this bug from before, so it was relatively easy to fix again, but still its a ticking timebomb in the release flow. Since you run the same code twice, for image building, and get an error later on, simply because time has passed and the way qemu fetches debian in the image building script gets a debian version with a later kernel version. My idea to fix this in a more robust way is to change this line (line 147: https://git.coopcloud.tech/PeachCloud/peach-workspace/src/commit/1c26cb70faec549d587b94504f6387867fa6f4b2/peach-config/src/setup_peach.rs#L147), instead of copying the file... it should look up the kernel version from the disc, and then copy config.txt_i2c with a templating or sed command, which replaces the hardcoded kernel version with the actual kernel version. So that we don't need occasional pull requests like this https://git.coopcloud.tech/PeachCloud/peach-workspace/pulls/50/files, to fix the image building process and get rid of the black screen. cc @glyph
Author
Owner

Alternatively, maybe there is also a way to use qemu-debootstrap to specify which version of buster to get, so that the kernel version is hardcoded there.

We could also do both of these things, for extra solidity, and avoid the ground changing beneath us unintentionally.

Alternatively, maybe there is also a way to use qemu-debootstrap to specify which version of buster to get, so that the kernel version is hardcoded there. We could also do both of these things, for extra solidity, and avoid the ground changing beneath us unintentionally.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: PeachCloud/peach-workspace#52
No description provided.