-
Notifications
You must be signed in to change notification settings - Fork 58
rpardini's May'24 fix batch: slim for 2Gb RAM devices #225
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
Conversation
f4439f5 to
a9f8b2f
Compare
|
Can't for the life of me figure out why some build checks are failing with |
Hey @rpardini , yeah these are runner-specific. I think related to concurrency on a single runner. I'm investigating. For the moment a re-run should resolve them. I re-ran the failed ones and all passed except |
…rkflow commands - see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-notice-message - introduces `notice` level, which is just like `info` but brighter and goes to GHA - also: curb warning about USE_KERNEL_ID down to info Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
… bump ORAS to 1.2.0-rc.1 (from beta.1) - otherwise can't build those "kernels" on arm64-only & qemu+binfmt-deprived hosts Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…mat tar` output and its filelist - useful during development for: - debugging esoteric issue with file permissions - checking the space usage distribution, so we can slim down where needed Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…rectory - quite esoteric, but it seems LinuxKit uses the kernel.tar's root entry as its own entry - if that is missing, then the final product rootfs will have root dir with very strange permissions Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…RAM) - Armbian kernels are meant for general-purpose initrd's, and including all modules is overkill - this allows to boot on 2Gb RAM machines (tmpfs allows only up to 50% RAM) Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…mbols, stripping prebuilts, and removing unneeded bins - strip golang binaries (both during build with ldflags and prebuilt ones with 'strip'/binutils) - don't ship apk caches - we won't use docker-buildx nor docker-compose bins, which are huge; remove them - remove stray 'hook-bootkit' binary from source directory (leftover from ?) Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- complements a68b629 - create /dev devices with 243 major and 0/1 minor - add to securetty Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- those will most likely fail to boot on 2Gb RAM machines - initramfs will by default use tmpfs (which defaults to 50% ram), not ramfs Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
A bit of bad luck: since we're re-running failed jobs, we're subject to upstream changes in between reruns. In this case, Armbian released a new version, but our "Kernel" job had already run successfully, while the Hook that uses it didn't. The same would happen to I'll push again to force a full rebuild. |
a9f8b2f to
c5024da
Compare
Worked! Thanks @jacobweinstock |
|
Tested both arm64 and amd64 I've tested the When hitting the root tmpfs 50% limit (which is around 1Gb - <some_overhead>), the in-memory rootfs is left half-populated, and stuff that is added last to the cpio by LinuxKit (eg: This led me down wild chases over permissions, The key to finding this was the very sneaky kernel message |
oh very interesting. nice find! |
|
btw, the reduction in size is quite nice! looks like over 25% or so! great work! |
build: common: better logging & emit notice/warn/error also to GHA workflow commands
noticelevel, which is just likeinfobut brighter and goes to GHAkernel: armbian: fix: use ORAS binary appropriate to the (host) arch; bump ORAS to 1.2.0-rc.1 (from beta.1)
build: introduce
OUTPUT_TARBALL_FILELIST=yesto include LK's--format taroutput and its filelistkernel: armbian: ensure kernel.tar contains entry for the / (root) directory
kernel: armbian: don't flood output with tar's verbose option
kernel: armbian: remove some heavy kernel modules (so it fits in 2Gb RAM)
images: slim down golang binaries, by building without DWARF/debug symbols, stripping prebuilts, and removing unneeded bins
hook: add handling for ttyAML0/1 (used on Amlogic SoCs)
build: introduce check for initramfs size > 900Mb and warn/notice