Commit graph

8999 commits

Author SHA1 Message Date
Anton Bambura
d148012b0c
google-oak: disable dhcp (MR 5266) 2024-06-22 00:14:03 +03:00
Anton Bambura
63507230a3
google-kukui: disable dhcp (MR 5266) 2024-06-22 00:14:03 +03:00
Anton Bambura
e7cdce2217
google-gru: disable dhcp (MR 5266) 2024-06-22 00:14:02 +03:00
knuxify
33813c1828
firmware-samsung-lt01: package stock WiFi firmware (MR 5262)
Use stock WiFi firmware instead of the generic linux-firmware-brcm
firmware. The stock firmware is newer and seems to be better suited
for the BCM4334B2 variant used in these tablets.

This fixes timeout errors from the brcmfmac driver and seems to
slightly improve download/upload speeds (by about 1MB/s).
2024-06-21 21:00:31 +03:00
Clayton Craft
c862361087
oem-intel: add i915 DMC fw to initramfs (MR 5237)
Intel >=gen9 GPUs require DMC firmware to support some runtime low power
states, it's loaded when i915 starts so let's make sure it's in the
initramfs.

Also see: https://www.kernel.org/doc/html/latest/gpu/i915.html#dmc-firmware-support

[ci:skip-build] already built successfully in CI
2024-06-21 10:08:50 -07:00
Clayton Craft
2364d0a6f8
device-generic-x86_64: support macbook keyboards in the initramfs (MR 5248)
[ci:skip-build] already built successfully in CI
2024-06-21 10:06:45 -07:00
adamthiede
e8b3544997
device-google-oak: depend on postmarketos-initramfs-minimal (MR 5259) 2024-06-20 18:12:47 -05:00
postmarketOS CI
daba855970
linux-next: update to next-20240620 2024-06-20 18:31:55 +00:00
Oliver Smith
1dfd81dfd0
cross/busybox-static-*: upgrade to 1.36.1-r31 2024-06-20 19:25:45 +02:00
Dylan Van Assche
dfd4a998c8
main/bootmac: upgrade to 0.5.0 (MR 5239)
[ci:skip-build]: already built successfully in CI
2024-06-20 10:07:07 -07:00
Clayton Craft
ba7b4d77da
main/boot-deploy: upgrade to 0.16.2 (MR 5255)
Changelog:

Fixes:
- Validate images/partition sizes before flashing (MR 64)

[ci:skip-build] already built successfully in CI
2024-06-20 09:50:48 -07:00
Caleb Connolly
7a01ded579
linux-next: enable CONFIG_NLS_ASCII (MR 5257)
for vfat boot partition

[ci:skip-build]
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-20 18:43:55 +02:00
Caleb Connolly
0384c8a98d
postmarketos-trailblazer: remove PMOS_NO_OUTPUT_REDIRECT (MR 5257)
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-20 18:32:56 +02:00
Caleb Connolly
7a353219c0
postmarketos-trailblazer: enable more modules in initramfs (MR 5257)
These are needed for the RB2 board to boot from USB.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-20 16:52:25 +02:00
Caleb Connolly
876b72b6d4
postmarketos-trailblazer: sort modules (MR 5257) 2024-06-20 16:51:25 +02:00
Caleb Connolly
89be88b09a
linux-next: add missing python3 dep (MR 5253)
This is now needed to generate headers for drm/msm.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-20 00:23:07 +02:00
Clayton Craft
eb3c299a61
main/postmarketos-initramfs-minimal: update to 2.7.1 (MR 5251)
This updates the minimal initramfs to be at the same version that
postmarketos-initramfs was when it was split off. This should have been
done as a part of !5000.

The changelog from git:

- main/postmarketos-initramfs: fix stowaway (MR 5206)
- main/msm-fb-refresher: move cleanup from initramfs into msm-fb-refresher (MR 5191)
- main/postmarketos-mkinitfs-hook-debug-shell: Cleanup debug-shell telnet server (MR 5191)
- main/postmarketos-initramfs: Allow packages to define cleanup hooks (MR 5191)
- main/postmarketos-initramfs: update comment on why we mount /boot (MR 5089)
- main/postmarketos-initramfs: add options for charset to mount vfat /boot (MR 5089)
- main/postmarketos-initramfs: add some sane mount options to /boot (MR 5089)
- main/postmarketos-initramfs: stowaway rootfs (MR 4386)
- main/postmarketos-initramfs: add crc32_generic module for F2FS (MR 4973)
- main/postmarketos-initramfs: add USB booting support (MR 4947)
- main/postmarketos-initramfs: fix starting unudhcpd when no UDC configured (MR 4907)
- postmarketos-initramfs: bigger log image size (MR 4880)
- main/postmarketos-initramfs: allow redirect logs to pmsg device (MR 4800)
2024-06-20 00:00:27 +02:00
postmarketOS CI
02ae499d6a
linux-next: update to next-20240619 2024-06-19 21:01:25 +00:00
Caleb Connolly
d934985209
CI: implement scheduled auto-update pipeline (MR 4967)
Introduce support for having CI automatically update packages using
project access tokens and scheduled pipelines.

The pipeline schedule is configured with an additional variable
containing a list of packages to update, the autoupdate-fetch.sh script
then calls a handler for each of these, the handler is expected to check
for an update, make the necessary APKBUILD changes and commit them.

After all packages have been updated, the changes are pushed to pmaports
master using a project access token.

[ci:skip-build] takes too long to build in CI
2024-06-19 22:45:20 +02:00
Caleb Connolly
ca9a26cb0d
testing/device-postmarketos-trailblazer (MR 4967)
trailblazer is a bleeding edge, unstable target for EFI capable ARM64
devices. It runs linux-next and should otherwise be adjusted to support
as many devices as possible.

The goal of trailblazer is to motivate more upstream kernel development by
providing a tighter feedback loop (patches land in -next weeks before they
make it into mainline or stable), as well as encouraging more generic
solutions to the device specific hacks we have in userspace.

On supported devices, trailblazer should reflect the current state of
upstream. It allows users to easily appreciate what feature are
unavailable, and more importantly appreciate when a new feature does get
added upstream.

Due to the instability of linux-next, the plan is to have BPO build
trailblazer images nightly, so if next breaks then the images should
only be broken for a day.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-19 22:43:36 +02:00
Caleb Connolly
18462c566a
testing/linux-next: new aport (MR 4967)
Introduce a linux-next kernel with postmarketOS configs and some
additional device specific configs enabled.

This kernel package will be updated daily to the latest -next tag.
breakages expected. It is designed to be used in tandem with a generic
ARM64 device package to provide a bleeding edge option for those with
EFI capable bootloaders.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-19 22:43:36 +02:00
WeirdTreeThing
2ce4f51210
device-xunlong-orangepi5-plus: new device (MR 5219)
[ci:skip-build]: already built successfully in CI
2024-06-19 22:12:17 +02:00
WeirdTreeThing
51d84dc5bc
linux-postmarketos-rockchip-rk3588: new aport (MR 5219) 2024-06-19 22:12:17 +02:00
jane400
48250d4ad2
main/postmarketos-initramfs*: prohibit installing multiple -initramfs packages (MR 5249)
Thanks to a good hint of Craftyguy, we just have too use versioned
provides.

Closes #2903
[ci:skip-build]: already built successfully in CI
2024-06-19 10:35:30 -07:00
Brian Cole
2e4ef2b276
device-google-kukui: depend on minimal initramfs (MR 5246)
[ci:skip-build]: already built successfully in CI
2024-06-19 08:47:48 -07:00
Clayton Craft
a2d30ae115
main/boot-deploy: upgrade to 0.16.1 (MR 5244)
Fixes:
        - flash_android_bootimg: check validate target partition size before flashing (MR 63)
        - copy target dtb to a temp directory for qcom and sprd dt.img types (MR 57)

Other:
        - ci: add integration test for exynos qcdt (MR 57)
        - ci: switch to unpackbooting from osm0sis (MR 57)

[ci:skip-build] already built successfully in CI
2024-06-18 15:29:38 -07:00
Clayton Craft
5fffa17b06
main/postmarketos-initramfs: explicitly depend on libinput-libs (MR 5242)
pma!5000 added a new implicit dependency on libinput, because it
specified libinput files in the initramfs file hook. mkinitfs considers
it fatal if it cannot find files listed in a file hook.

Later this could be 'optimized' by adding a -libinput subpkg and an
`install_if=libinput-libs` to add this file hook so it's not installed
everywhere... but the size increase isn't too much for UIs.. someone can
do this later.

> libinput-libs-1.26.0-r0 installed size:
> 476 KiB

This fixes a missing dependency problem where a UI (e.g. "none") doesn't
normally depend on libinput, and mkinitfs would fail because these files
were missing.
2024-06-18 14:23:29 -07:00
Stefan Hansson
b0d8f91a79
device-samsung-t0lte: depend on minimal initramfs (MR 5241)
This device probably has a small boot partition where the big initramfs
won't fit, so use this.

[ci:skip-build]: already built successfully in CI
2024-06-18 22:39:55 +02:00
Stefan Hansson
1f5f37a2d0
device-samsung-t03g: depend on minimal initramfs (MR 5241)
This device probably has a small boot partition where the big initramfs
won't fit, so use this.
2024-06-18 22:39:55 +02:00
Stefan Hansson
f290379828
device-samsung-p4note: depend on minimal initramfs (MR 5241)
This device has a small boot partition (8 MB). The big initramfs
won't fit.
2024-06-18 22:39:55 +02:00
Stefan Hansson
ce48786034
device-samsung-m3: depend on minimal initramfs (MR 5241)
This device probably has a small boot partition where the big initramfs
won't fit, so use this.
2024-06-18 22:39:55 +02:00
Stefan Hansson
8ccbb8a864
device-samsung-lt01: depend on minimal initramfs (MR 5241)
This device probably has a small boot partition where the big initramfs
won't fit, so use this.
2024-06-18 22:39:55 +02:00
Stefan Hansson
ed5b11da90
device-samsung-i9100: depend on minimal initramfs (MR 5241)
This device probably has a small boot partition where the big initramfs
won't fit, so use this.
2024-06-18 22:39:55 +02:00
Stefan Hansson
68af03bdf5
device-samsung-m0: depend on minimal initramfs (MR 5241)
This device has a small boot partition (8 MB). The big initramfs
won't fit.
2024-06-18 22:39:53 +02:00
Stefan Hansson
8cae59f47c
device-samsung-m0-downstream: depend on minimal initramfs (MR 5241)
This device has a small boot partition (8 MB). The big initramfs
won't fit.
2024-06-18 22:39:47 +02:00
Stefan Hansson
a1c6fec44b
device-samsung-lt01wifi-downstream: depend on minimal initramfs (MR 5241)
This device probably has a small boot partition where the big initramfs
won't fit, so use this. And also reformat depends.
2024-06-18 22:11:30 +02:00
Caleb Connolly
7c98127746
postmarketos-initramfs: switch to udev and kmod (MR 5000)
mdev is slow and missing features, it also requires that we load all the
modules that we include at once making the boot process slower.

udev is required for unl0kr (and buffyboard), it can also load modules
on demand (and asynchronously). Making the boot process considerably
faster on devices, especially for generic images where we have lots of
drivers for different display panels in the initramfs.

Additionally, import full fat modprobe from the kmod package, this is
required to support compressed modules.

This brings us more in line with other distros and generally improves
compatibility.

If devices use broken kernel modules which don't correctly define
modalias', these drivers may not be loaded by udev. This should be fixed
by defining the missing modalias statements in the driver.

This also runs udev earlier in the init, so that display drivers are
loaded before the splash in case they are needed.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2024-06-18 12:35:05 -07:00
Clayton Craft
54ef5cdf15
device-*: depend on initramfs-minimal for devices with small boot (MR 5000)
[ci:ignore-count]
2024-06-18 12:35:05 -07:00
Caleb Connolly
dd28314ba2
postmarketos-initramfs: debug-shell 3.0 (MR 5000)
This incorprates the debug-shell functionality directly into the
initramfs, so it's no longer necessary to build and boot a custom
initramfs in order to debug your device.

Additionally, the behaviour of the debug-shell is entirely reworked, It
now creates an ACM serial gadget which can be accessed via any normal
terminal emulator (picocom, minicom, etc; or PuTTY on windows). Rather
than just invoking sh, the debug-shell now creates a respawning getty on
both the new virtual console and the active console (this will either be
the UART console or tty0/1).

It is necessary to spawn these shells via getty since the logging rework
means we can no longer assume that stdin/out/err reference a TTY.

In addition to the above, it is now possible to trigger a log dump by
holding volume up during boot. This can be useful for helping users
debug their devices if the issue doesn't result in a failure that can be
detected in the initramfs.

With these changes, the console-shell and debug-shell hook packages are
reduced to only adding the additional tools/features. console-shell is
still required for fbkeyboard, and debug-shell for the setup_usb_storage
tool.

Co-Developed-by: Clayton Craft <craftyguy@postmarketos.org>
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
f66238f045
postmarketos-initramfs: handle empty hooks dir (MR 5000)
For some reason globbing doesn't work properly for empty directories,
adjust the check in run_hooks to ensure the directory both exists and
contains something, otherwise we get an error about
"/hooks-cleanup/*.sh" not existing.

/ # mkdir blah
/ # for x in blah/*; do echo $x; done
blah/*
/ # touch blah/beep
/ # for x in blah/*; do echo $x; done
blah/beep

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
5a27482c20
postmarketos-initramfs: depend on mdevd (MR 5000)
I somehow hit a case where this wasn't installed and
/lib/mdev/persistent-storage wasn't available. Let's just explicitly
depend on mdevd...

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
51cde04a4b
main/iskey: new aport (MR 5000)
iskey is a tiny tool that reports if any of the given keys are pressed.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
118a30935e
postmarketos-initramfs: mount subpartitions after hooks (MR 5000)
This step is the most likely to go wrong or have issues, and it has side
effects which can make it difficult to run multiple times on one boot.
Move it to after hooks so that e.g. when dropping to a debug shell, we
land before the first call.

This also makes booting to hooks a faster in many cases.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:05 -07:00
Caleb Connolly
5dcb7aab62
postmarketos-initramfs: use dd to allocate logs image (MR 5000)
fallocate seems to cause some strange behaviour where the logs.img file
is treated like it's empty. Given it's small and in a ramdisk let's just
create it with dd instead.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
709768214c
postmarketos-initramfs: check if UDC is configured before clearing (MR 5000)
This fixes the annoying "sh: write error" and "Couldn't write to clear
UDC" messages that happen on every single boot.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
75613d9f69
postmarketos-initramfs: make CONFIGFS global (MR 5000)
This variable is being used in more places, just make it global.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
95b22138c4
postmarketos-initramfs: log to kernel ringbuffer (MR 5000)
Rework logging to always log the initramfs output to the kernel
ringbuffer and deprecate PMOS_NO_OUTPUT_REDIRECT in favour of following
the kernel loglevel.

I know it seems silly to use syslogd for this, but it's necessary to
buffer writes to /dev/kmsg per-line if we want to correctly set the log
level, and "tee" does not do this (it will write multiple lines at once,
resulting in "<14>" prints in the ringbuffer). The main advantage to
this is that we won't have kernel logs cut in half by initramfs logs
anymore, everything will be nicely line buffered!

The previous logging solution of multiple "tail" commands would actually
fail to log up to the last few lines before a crash due to how tail
works (it polls the file and buffers lines).

I attempted something like this before, but I stopped after running into
ratelimiting issues. These are now resolved by configuring the
printk_devkmsg sysctl.

Dropping PMOS_NO_OUTPUT_REDIRECT:

The general motivations behind PMOS_NO_OUTPUT_REDIRECT was to avoid
cluttering up the console with initramfs logs when they aren't wanted;
this is now handled instead by the kernels logging facility. We log to
the ringbuffer at LOGLEVEL_INFO, so if "quiet" is specified on the
cmdline (or the loglevel is otherwise set above info) then initramfs
logs will also not be shown.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:35:04 -07:00
Caleb Connolly
6c799ac4f6
postmarketos-initramfs: fork -minimal variant (MR 5000)
We plan to make a lot of changes to the initramfs which will require
incresaing the size. There are some devices that have literally no free
space for this, so make a -minimal initramfs fork that can continue to
support those while we update the regular initramfs.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-18 12:34:59 -07:00
Eisenbahnfan
e2bf43b9e1
samsung-n2awifi: new device (MR 5233)
[ci:skip-build]: already built successfully in CI
2024-06-17 15:37:54 -07:00
Clayton Craft
cc4c164c58
device-purism-librem5: remove craftyguy as maintainer (MR 5223)
I'm not able to give this device the attention it deserves.

This also removes me from maintaining fw and kernel packages used by the
L5, and adds the current L5 maintainers to those packages.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2024-06-17 14:20:57 -07:00