Commit Graph
8830 Commits
Author SHA1 Message Date
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
Stefan Hansson 05925f194a samsung-skomer: remove phoc scale config (MR 5221)
Phoc now defaults to 1,25 as scale on skomer, which while not perfect,
is good enough and lets the device be unlocked. As such, let's remove
this configuration file and encourage improvements upstream instead.

See https://gitlab.com/postmarketOS/pmaports/-/merge_requests/4541
2024-06-12 21:39:41 +09:00
Sicelo A. Mhlongo f888ffee55 device-nokia-n900: fix packaging for upower (MR 5227)
170189393b (device-nokia-n900: add upower support and config (MR 4397) added
an upower config, but did not provide a subpackage to actually install it on
device. Add the needed subpackage.

[ci:skip-build]: already built successfully in CI
2024-06-12 10:30:30 +02:00
Sicelo A. Mhlongo 933f2b5703 device-nokia-n900: improve sxmo-dwm support (MR 5227)
(1) the deviceprofile differs from upstream 1.16.3 in the following respects:

  (a) -export SXMO_NO_KEYBOARD=1 - allow use of the virtual keyboard

  (b) +export SXMO_DMENU_LANDSCAPE_LINES="10"
      +export SXMO_DMENU_PORTRAIT_LINES="6" - these two adjust the size of the
         displayed dmenu menu.

    * NB: All foregoing changes are already merged in sxmo-utils master.

  (c) +export SXMO_TOUCHSCREEN_ID="TSC2005 touchscreen" - allows sxmo to
         reliably toggle touch screen's enabled status

    * The foregoing change is awaiting acceptance by upstream.

(2) The start hook differs from upstream 1.16.3 by the removal of the line that
      starts conky. That program pegs N900 CPU usage at 100% all the time. This
      change is not upstreamable, at least not for the time being
2024-06-12 10:25:59 +02:00