Skip to content

Update rpi instructions #415

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

jimmyjones2
Copy link
Contributor

@jimmyjones2 jimmyjones2 commented May 27, 2025

Updated instructions based on my experiments with a Raspberry Pi, following https://kairos.io/blog/2025/03/18/how-i-automated-my-doorbell-with-kairos-and-you-can-too/

  • COS_PERSISTENT didn't exist in the image extracted from quay.io/kairos/opensuse:leap-15.6-standard-arm64-rpi4-v3.3.1-k3sv1.32.1-k3s1, I needed to add the cloud-config into COS_OEM
  • Add instructions for using Auroraboot to generate image

Fixes kairos-io/kairos#3445

Copy link

netlify bot commented May 27, 2025

Deploy Preview for kairos-io ready!

Name Link
🔨 Latest commit a475fa3
🔍 Latest deploy log https://app.netlify.com/projects/kairos-io/deploys/683ab3034f64eb0008dcb6b6
😎 Deploy Preview https://deploy-preview-415--kairos-io.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

* Use COS_OEM
* Add image creation using Auroraboot

Signed-off-by: Jimmy Jones <[email protected]>
@jimmyjones2 jimmyjones2 changed the title Update rpi instructions to use COS_OEM Update rpi instructions May 31, 2025
@Itxaka Itxaka requested a review from a team June 2, 2025 09:18
@mauromorales mauromorales moved this to Under review 🔍 in 🧙Issue tracking board Jun 3, 2025
--platform linux/arm64 -v $PWD/build/:/output \
kairos.docker.scarf.sh/kairos/auroraboot:latest \
--debug --set "disable_http_server=true" --set "disable_netboot=true" \
--set "state_dir=/output" --set "disk.raw=true" \
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't find the disk.raw parameter in the Auroraboot documentation or the source code.
Shouldn't this be disk.efi=true?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

disk.raw was used before and we transitioned to disk.efi but its still possible to set disk.raw and it will transform it automatically for backwards compatibility :) https://github.com/kairos-io/AuroraBoot/blob/69bccf942277af0de137764b812f17adfaaf8762/internal/config/config.go#L101

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +72 to +76
$ OEM=$(blkid -L COS_OEM)
$ mkdir /tmp/oem
$ sudo mount $OEM /tmp/oem
$ sudo cp cloud-config.yaml /tmp/oem/90_custom.yaml
$ sudo umount /tmp/oem
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the cloud-config was referenced already in the AuroraBoot command and backed into the raw image is this still needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently there are two options - auroraboot and using the raw images. I think using the raw images is too hard (kairos-io/kairos#3453) and auroraboot is much better, so would prefer to remove this section entirely

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think what @ElKiwos meant was that if the instructions were followed, this line embeds the config in the image. This step here will be replacing that file, thus it's redundant. Maybe we should explain it a bit. E.g. "if you didn't embed the config in the image, then you can add it here like this" or something like that.

Create `build` directory and add `cloud-config.yaml`, then run:

```bash
docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me this command fails for find the /dev/loop0 device unless I pass this arg too:

--device /dev/loop0

I don't remember having to do this in the past, so although it seems reasonable to have to add this, I assume it's something on my system that made it a requirement now and it's not the case for everybody. If the command works for you as it is, let's keep it without the arg until I figure out what's different on my system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Under review 🔍
Development

Successfully merging this pull request may close these issues.

RPi images since v3.4.0 platform issue with tooling
4 participants