Commit graph

8883 commits

Author SHA1 Message Date
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
Pablo Correa Gómez
8a7042faf6
main/postmarketos-base-ui-gnome: replace evince with papers (MR 5234)
papers is now in community in alpine, and is the GTK4
replacement. Current main version (still not available in alpine),
fits phone screens, but makes sense to change it already now.

Relates #1479

[ci:skip-vercheck] changes are in pmb_recommends
[ci:skip-build]: already built successfully in CI
2024-06-17 17:54:18 +02:00
kubntd
d6fa4df277
device-xiaomi-clover: add dependencies for modem, Wi-Fi and GPU (MR 5230)
Depend on msm-firmware-loader, firmware- and soc- packages.
Sort deps alphabetically.

Tidy up deviceinfo:
* add flash_kernel_on_update
* remove unneded things from kernel cmdline
[ci:skip-build]: already built successfully in CI
2024-06-17 09:51:49 +02:00
kubntd
d94c7d1721
firmware-xiaomi-clover: add initial firmware package (MR 5230) 2024-06-17 09:51:49 +02:00
Oliver Smith
0b6530a250
gitlab/issue_template: add EOL date to v23.12 2024-06-16 20:40:46 +02:00
Oliver Smith
33107c541d
channels.cfg: update for v24.06 release 2024-06-16 19:50:32 +02:00
Andreas Kemnade
f3cee8a36e
epson-embt2ws: new device (MR 5210)
Currently it requries the check_code result check in the
vendor uboot to be disabled as explained in the wiki.

Booting directly via reconfigured boot order still
does not work. It hangs somewhere in the kernel.

Firmware for Wifi/BT is not included yet.

It could use the linux-postmarketos-omap kernel in the future,
but there are still some dirty things in there e.g. for sound
which are not suitable for a multi-device kernel.
[ci:skip-build]: already built successfully in CI
2024-06-14 15:11:06 +02:00
Alistair Francis
863760c6ba
linux-purism-librem5: upgrade to 6.6.32 (MR 5231)
Bump to the 6.6.32 release, including updating the config with the
latest changes from Purism.

Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build]: already built successfully in CI
2024-06-14 07:44:05 +02:00
Anton Bambura
432cc88ff9
google-x64cros: add firmware for ASUS Chromebox 3 NC356U (MR 5229)
Fixes WiFi on this device.

[ci:skip-vercheck]: the changes are only for _pmb_recommends
2024-06-13 15:52:09 +02:00
Danct12
c0ad00a6ae pine64-pinetab2: new device (MR 4208)
PineTab 2 is a successor to the original PineTab from PINE64 released
in mid-2023.

The tablet came with DanctNIX's fork of Arch Linux ARM, comes with
K Desktop Environment as the UI and available with 64GB eMMC/4GB RAM
or 128GB eMMC/8GB RAM.
2024-06-12 16:52:05 +00:00
Danct12
8721705c4b firmware-bestechnic-bes2600: new aport (MR 4208)
Bestechnic BES2600 is a WLAN/BT combo chip.
2024-06-12 16:52:05 +00:00
Alexey Minnekhanov
305b5a7783 linux-postmarketos-qcom-sdm660: upgrade to 6.9.3 (MR 4897)
Changelog since 6.7:

General:

* Adreno 5xx preemtion is now disabled due to hangs it causes.
  This makes GPU a lot more cooperative on these platforms.
* Fixed absence of zap-shader region which caused devices with
  GPU enabled to freeze the whole system.
* Fixed ath10k Wi-Fi not connecting to 5Ghz networks.
* Incorporated in-kernel pd-mapper patchset, therefore userspace
  pd-mapper daemon is not required.
* Kernel cmdline from bootloader is no longer ignored completely,
  in other words, not hardcoded. You can now modify cmdline in
  deviceinfo file and changes in that file will not be ignored.

Devices:

* Xiaomi Redmi Note 7 (lavender):
  * split device trees into 2 variants by panel type (Tianma & BOE)
  * GPU + panel support for 2 variants
  * Vibrator support
  * Connectivity: modem, Wi-Fi and bluetooth support.

* Other/all devices:
  * update device trees according to upstream USB stack changes
    (related to USB 3 phy support)
2024-06-12 15:45:04 +00:00
Alexey Minnekhanov
c97eafc5b8 soc-qcom-sdm660: install Adreno GPU quirks script (MR 4897)
Install script into /etc/profile.d with workaround for mesa bugs.
This makes most SDM660 devices usable for general people out of the box.

Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
2024-06-12 15:45:04 +00:00
Barnabás Czémán
22a9cdf7b2 device-xiaomi-lavender: add necessary depedencies for modem, wifi and gpu (MR 4897)
Add msm-firmware-loader, soc-qcom-sdm660-rproc, firmware-xiaomi-lavender
and firmware-qcom-adreno-a530 as dependency. This is necessary to make
Wi-Fi and modem work.
Add support for panel drivers.
2024-06-12 15:45:04 +00:00
Barnabás Czémán
3cd4659a53 firmware-xiaomi-lavender: new aport (MR 4897)
Initial firmware package with firmware for wifi and zap firmware for gpu.
2024-06-12 15:45:04 +00:00
Barnabás Czémán
43133df4ac soc-qcom-sdm660: add rmtfs and qcom-diag to rproc package (MR 4897)
Add rmtfs and qcom-diag and bootmac to rproc package
to make wifi, modem and bluetooth work.
Add swclock-offset as a dependency.
2024-06-12 15:45:04 +00:00
Sicelo A. Mhlongo
5e03ad2817
device-nokia-n900: fix sxmo lock state (MR 5228)
commit 933f2b5703 ("device-nokia-n900: improve sxmo-dwm support [MR 5227]")
accidentally removed sxmo lock state initialization. Restore the lock state
initialization
2024-06-12 16:07:42 +02:00