Commit graph

172 commits

Author SHA1 Message Date
Oliver Smith
d757a36882
main/postmarketos-mkinitfs: fix trigger script (MR 4422)
Adjust the trigger script to only check for the new deviceinfo path. The
purpose of this check is to make sure that a full device package is
installed, and only in that case run mkinitfs. Otherwise, it will fail
because e.g. no kernels may be installed.

With recent changes, /etc/deviceinfo is a part of devicepkg-utils and
only /usr/share/deviceinfo/deviceinfo really indicates that a device
package is installed.

Remove the "exit 0" at the end while at it, it did not do anything since
the script runs with "/bin/sh -e". Add a comment to make this clear.

[ci:skip-build]: already built successfully in CI
2023-09-26 08:31:00 +02:00
Pablo Correa Gómez
7b2208d292
main/postmarketos-mkinitfs: add trigger on deviceinfo directory (MR 4283)
Fixes #2228

In addition, depend on the first boot-deploy that implemented support
for deviceinfo in /usr/share
2023-09-25 09:20:33 +02:00
Clayton Craft
88f6ce6502
main/postmarketos-mkinitfs: upgrade to 2.2.1 (MR 4348)
[ci:skip-build] already built successfully in CI
2023-09-05 11:19:13 -07:00
Clayton Craft
a1ee78900e
main/postmarketos-mkinitfs: only run if deviceinfo exists (MR 4263)
In some situations, like when building a device package with pmb,
deviceinfo may not exist in the rootfs. mkinitfs 2.2's behavior changed
slightly to fail if it can't find a deviceinfo, and this avoids calling
it in those cases.

[ci:skip-build]: Already built successfully in CI
2023-07-20 17:20:11 +02:00
Clayton Craft
94c1e706e6
postmarketos-mkinitfs: upgrade to 2.2 (MR 4190)
Changelog: https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/tags/2.2

[ci:skip-build] already built successfully in CI
2023-07-19 12:27:42 -07:00
Clayton Craft
f403330733
main/postmarketos-mkinitfs: upgrade to 2.1.1 (MR 3949)
Bugfix release, nothing major though. Full changelog:

https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/tags/2.1.1

Note: git was dropped as a makedepends because it's not actually
needed... I forgot that I could just set VERSION at build time. Oops.

[ci:skip-build] already built successfully in CI
2023-03-13 16:01:59 -07:00
Clayton Craft
901d932dba
main/postmarketos-mkinitfs: upgrade to 2.1 (MR 3948)
Full changelog: https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/tags/2.1

The make dependency on "git" is because the makefile derives the app
version from git tag info.

Fixes https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/issues/22
2023-03-12 19:36:38 +01:00
Clayton Craft
4eda07153a
postmarketos-mkinitfs: upgrade to 2.0 (MR 3895)
- Move base files/modules out of package, this package now only provides
  the mkinitfs tool.

- Add all required modules, these were copied over from
  postmarketos-mkinitfs and sorted

- Use new exe name in trigger

- Update triggers to ignore /etc, add /usr/share/mkinitfs. No packages
  should be installing into /etc/mkinitfs/

- Support building/installing docs

- Add vendored deps

- Change trigger path
2023-03-08 21:35:04 -08:00
Clayton Craft
ac9bff857c
main/postmarketos-mkinitfs: trigger on /etc/pmos-mkinitfs/* (MR 3876)
These directories should also trigger a rebuild so that any changes are
reflected in the initramfs.
This will include things like 'files', 'modules' and so on that weren't
previously triggering rebuilds of the initramfs...

[ci:skip-build]: already built successfully in CI
2023-02-19 19:33:32 +01:00
Newbyte
66735f8db9
main/postmarketos-mkinitfs: remove references to charging-sdl (MR 3872)
As it was dropped in the previous commit.

[ci:skip-build]: already built successfully in CI
2023-02-19 14:04:17 +01:00
Caleb Connolly
e97b61b023 main/postmarketos-mkinitfs: switch to pbsplash (MR 2878)
This modifies to the postmarketOS ramdisk init to use the new pbsplash
tool for displaying splash messages, replacing the old fbsplash.

This also moves the show_splash call to run as soon as possible rather
than waiting for mount_subpartitions to run (which can take a while).
2023-02-18 01:40:28 +00:00
Clayton Craft
0e1fe15d24
main/postmarketos-mkinitfs: upgrade to 1.6.1 (MR 3861)
Fixes a bug with library circular dependencies on aports, introduced on
edge today.

[ci:skip-build]: already built successfully in CI
2023-02-10 08:53:42 +01:00
Oliver Smith
e3a9b8c61b
main/postmarketos-mkinitfs: dep: boot-deploy>=0.7 (MR 3825)
Explicitly depend on the version that allowed mounting with UUIDs, so we
can soon set this explicit dependency for devices that now make use of
this feature.

Dependency chain:
  device package
  -> postmarketos-base
    -> postmarketos-mkinitfs
      -> boot-deploy

Related: discussion in MR 3791
2023-01-28 03:13:23 +02:00
Oliver Smith
32fc24cd4a
main/postmarketos-mkinitfs: upgrade to 1.6 (MR 3821)
Add support for hook scripts in initramfs-extra to the shell scripts.

Related: https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/merge_requests/27
2023-01-23 08:44:57 +01:00
Clayton Craft
d27e1bd65d
main/pmos-mkinitfs: run udev after mounting the initramfs-extra (MR 3777)
By positioning this after extracting the initramfs-extra archive, we can
allow udev to exist in the -extra archive and not have any size impact
on the base initramfs archive.

Any hook that needs udev in the initramfs can get that support, provided
that the hook lists udev requirements in the .files config for it.
2023-01-08 11:04:41 -08:00
Anton Bambura
10ff840e85
main/postmarketos-mkinitfs: resize root partition on Chrome OS devices (MR 3726)
[ci:skip-build]: already built successfully in CI
2022-12-14 10:07:39 +01:00
Luca Weiss
f60539ea18
main/postmarketos-mkinitfs: rename usb_rndis_function variable (MR 3669)
The variable describes the configfs function name to use, no matter if
it's rndis, ncm, ecm or any other function. So change the name of the
variable, the string we write to the configuration file and some
comments.
2022-11-27 17:29:37 +01:00
alikates
e38db6e4de
main/postmarketos-mkinitfs: don't use uevent helper (MR 3351)
Instead of using the uevent helper binary, mdev daemon listens for kernel
events using the netlink interface. Then the requirement of enabling
UEVENT_HELPER for pmOS kernels can be dropped, as it's use is discouraged.

From CONFIG_UEVENT_HELPER kernel config help:

> This should not be used today, because usual systems create many events
> at bootup or device discovery in a very short time frame. One forked
> process per event can create so many processes that it creates a high
> system load, or on smaller systems it is known to create out-of-memory
> situations during bootup.

Support for running mdev as a daemon was added in 2019 with commit [1].

From that same commit:

> Adds the -d option to run mdev in daemon mode handling hotplug events
> from the kernel like udev. If the system generates many hotplug events
> this mode of operation will consume less resources than registering
> mdev as hotplug helper or using the uevent applet.

[1] https://git.busybox.net/busybox/commit/?id=498cec202adbf69a7a72af5e204260682d614183
[ci:skip-build]: already built successfully in CI
2022-11-11 08:11:19 +01:00
Clayton Craft
02198dccdd
postmarketos-mkinitfs: upgrade to 1.5.1
Fixes a crash due to the path for kpartx changing in a multipath update
in Alpine Edge.
2022-11-03 12:05:23 -07:00
Anjandev Momi
7270f472e3
treewide: fix tabs, final newline, trailing whitespace (MR 3530) 2022-10-16 16:27:22 +02:00
Clayton Craft
d28d2e4a96
main/postmarketos-mkinitfs: upgrade to 1.5 (MR 3445) 2022-09-27 09:09:15 +02:00
Bobby The Builder
b341018d89
main/posmarketos-mkinitfs: add -f parameter to parted (MR 3355)
[ci:skip-build]: already built successfully in CI
2022-08-15 17:42:39 +02:00
Anton Bambura
feb91937c1
main/postmarketos-mkinitfs: support mounting with UUIDs (MR 3298) 2022-07-24 16:58:55 +02:00
Laar3
fca17c6e08 postmarketos-mkinitfs: add option to disable splash (MR 3305)
Add PMOS_NOSPLASH as a kernel command line option to disable
the splash screen to show the logs on the screen for debugging.

See https://wiki.postmarketos.org/wiki/Initramfs_development
on how to use it.
2022-07-23 17:51:37 +00:00
Richard Acayan
20c7501b50
main/postmarketos-mkinitfs: resize_root_partition: resize dm-* devices (MR 3216)
Prior to this commit, the initramfs was unable to resize the root
partition if it was on a device backed by the device mapper. This commit
fixes that now that it is possible for the root partition to lie on a
device mapper device.
2022-06-16 10:12:07 +02:00
Pablo Correa Gómez
f4783d4c88
main/postmarketos-mkinitfs: provide only a virtual package (MR 3228)
Fixes 02dfe83c4b

The previous `provides="mkinifs=3.6.0"` was a requirement because alpine's
kernels had a minimum dependency in `mkinitfs>=3.6.0` to make sure that
support for compressed modules existed. That requirement is no longer
in place[1], since the dependency is now on the `initramfs-generator`
virtual package. Also, since `initramfs-generator` is a virtual package
and not a real package, versioning it might mess up APK. The documentation
explictly states that virtual packages are those with unversioned provides
and a provider_priority. So to avoid having problems in the future, let's
strictly stick to it.

[1] 4fac61c826
2022-06-14 09:54:04 +02:00
Clayton Craft
c5c0e0f061
main/postmarketos-mkinitfs: add missing ascii nls module (MR 3229)
This is required by fat32, fixes #1555
2022-06-12 10:26:16 -07:00
Clayton Craft
02dfe83c4b
main/postmarketos-mkinitfs: provide initramfs-generator (MR 3219)
Alpine provides a 'initramfs-generator' thing now that the alpine
linux-* depend on explicitly. This sets postmarketos-mkinitfs to be the
preferred provider of that virtual package.

Fixes:
        ERROR: unable to select packages:
          postmarketos-mkinitfs-1.4.1-r5:
            conflicts: mkinitfs-3.6.1-r2[mkinitfs=3.6.0]
            satisfies: postmarketos-base-20-r1[postmarketos-mkinitfs]
                       postmarketos-base-nofde-20-r1[postmarketos-mkinitfs]
                       .pmbootstrap-20220610.215815[postmarketos-mkinitfs]
                       .pmbootstrap-20220610.215815[mkinitfs]
          mkinitfs-3.6.1-r2:
            conflicts: postmarketos-mkinitfs-1.4.1-r5
            satisfies: .pmbootstrap-20220610.215815[mkinitfs]
                       linux-rpi-5.15.45-r1[initramfs-generator]
          .pmbootstrap-20220610.215815:
            masked in: cache
            satisfies: world[.pmbootstrap=20220610.215815]

Also see:
        30d7b88324 (aports) main/mkinitfs: provide initramfs-generator
        4fac61c826 (aports) main/linux-lts: replace mkinitfs with initramfs-generator
2022-06-12 15:33:57 +02:00
Minecrell
16c9892a8f
main/postmarketos-mkinitfs: load file system modules dynamically (MR 3166)
At the moment, mkinitfs loads some file system modules always (ext4),
some dynamically (brtfs) and some not at all (f2fs, vfat), expecting
them to be built-in.

To support generic kernels (e.g. from Alpine) properly, use the
partition type detection for both boot and root partition and always
load the necessary modules before mounting.
2022-06-06 10:11:51 +02:00
Minecrell
a0a0b369d5
main/postmarketos-mkinitfs: include vfat in initfs by default (MR 3166)
An increasing number of devices relies on the vfat file system in the
initfs (e.g. for UEFI boot). Having to add all the modules required for
it to work to deviceinfo_modules_initfs is annoying and inconsistent,
in particular for the additionally chosen "nls" modules. Since we
already bundle several file systems by default, let's just add vfat
as well to simplify this.

Ideally mkinitfs should detect the file systems chosen at install time
in the future and only include the necessary modules, but until then
this just adds a couple of kilobytes to the initramfs.
2022-06-06 10:11:51 +02:00
Minecrell
0b5a4f9a44
main/postmarketos-mkinitfs: include crc32c_generic module by default (MR 3166)
CRC32C is required for ext4 to work, otherwise mounting the ext4 rootfs
fails with "Cannot load crc32c driver.".
2022-06-06 10:11:46 +02:00
Johannes Marbach
aa0f96edb9
main/postmarketos-mkinitfs: Correctly set up udev (MR 3146)
This replaces the previous `udevadm test` hack with a combination of
`udevd`, `udevadm trigger` and `udevadm settle` in order to coldplug all
available devices and make them available for use via libinput / unl0kr.

Relates to: #1411

[ci:skip-build] already built successfully in CI
2022-05-29 12:03:04 -07:00
Richard Acayan
36ff86f895
main/postmarketos-mkinitfs: dynamic partitioning support (MR 3088) 2022-05-12 09:43:57 +02:00
Newbyte
10de8847fd
main/postmarketos-mkinitfs: provide mkinitfs 3.6.0
linux-lts started requiring mkinitfs version 3.6.0 5 days ago as of
writing, and this package only provides mkinitfs 0.0.1, so bump
this to fix installation.

See f2ae372e8b

Closes https://gitlab.com/postmarketOS/pmaports/-/issues/1517
2022-05-04 09:33:23 +02:00
Johannes Marbach
26c2085d81
main/postmarketos-mkinitfs: support unl0kr (MR 2687)
[ci:skip-build] already built successfully in CI
2022-02-03 15:59:13 -08:00
Marian Stramm
0922ff0fdd
main/postmarketos-mkinitfs: basic support for btrfs, upgrade to 1.4.1 (MR 2841)
[ci:skip-build] already built successfully in CI
2022-01-24 21:34:24 -08:00
Clayton Craft
9248465f62
main/postmarketos-mkinitfs: upgrade to 1.3 (MR 2829)
[ci:skip-build]: already built successfully in CI
2022-01-09 10:23:14 +01:00
Clayton Craft
d1a6daca20
main/postmarketos-mkinitfs: replace udhcpd with unudhcpd (MR 2698)
unudhcpd is a lightweight dhcp server that effectively implements static
assignment of a single IP on an interface regardless of client MAC, with
no lease. The end result is that a system connected to a pmOS device via
usb networking should always get an IP, and always get one very quickly.

This adds a new dependency on this dhcp server, and starts it in initfs.

Fixes #1199

[ci:skip-build] already built successfully in CI
2022-01-04 22:22:49 -08:00
Johannes Marbach
955f5cb391
main/postmarketos-mkinitfs: remove modprobe pkgs (MR 2788)
This reverts 5fa1755fba. Bundling
/sbin/modprobe is no longer necessary because Alpine switched back to gz
for LTS kernels with [1].

Relates: !2693
Relates: #1294

[1]: 12243ca822
2021-12-28 00:29:56 +03:00
Johannes Marbach
5fa1755fba
main/postmarketos-mkinitfs: add modprobe subpkgs (MR 2693)
This adds two new subpackages postmarketos-mkinitfs-modprobe-lts and
postmarketos-mkinitfs-modprobe-edge that include /sbin/modprobe in the
initfs when one of the Alpine kernels (linux-lts or linux-edge) are also
installed.

Fixes: #1294

[ci:skip-build] already built successfully in CI
2021-11-22 09:48:39 -08:00
Nikita Travkin
316745a171
main/postmarketos-mkinitfs: Center splash images on the screen (MR 2662)
Alpine patches busybox to support image alignment in [1].
So far we don't need to align the spalshes in postmarketOS as those are
generated per device. However with generic images it becomes impossible
to support multiple resolutions with this approach.
Set the alignment to "Center" in fbsplash config so generic system
images can reuse the splash on multiple resolutions.

[1] - https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/busybox/0008-fbsplash-support-image-and-bar-alignment-and-positio.patch

[ci:skip-build] already built successfully in CI
2021-11-07 19:33:56 -08:00
DolphinChips
df9d656df5
main/postmarketos-mkinitfs: fix showing custom splash after running osk-sdl (MR 2647)
Support for custom "Loading..." splashes was added in MR 1776, but
`unlock_root_partition` function is still hardcoding default "Loading..."
splash. Fix this behaviour by replacing usage of `show_splash` function with
`show_splash_loading`, which accounts for presence of custom splash.

Closes #759
2021-11-01 15:34:39 +05:00
Clayton Craft
931a460c14
main/postmarketos-mkinitfs: upgrade to 1.1.2 (MR 2528) 2021-10-31 10:00:43 +01:00
Jami Kettunen
ea7d9007a4
main/postmarketos-mkinitfs: support more modular kernels (MR 2590)
* xts, libaes & aes are required for root partition FDE unlocking
* evdev is required by osk-sdl for input

[ci:skip-build] already built successfully in CI
2021-10-23 14:03:28 -07:00
Clayton Craft
45e07704df
main/postmarketos-mkinitfs: upgrade to 1.1.1 (MR 2540) 2021-09-21 10:40:54 +02:00
Clayton Craft
5963a970d5
main/postmarketos-mkinitfs: upgrade to 1.1 (MR 2516)
Changelog: https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/tags/1.1

Fixes #1234
2021-09-16 10:38:00 +02:00
Oliver Smith
e048839588
main/postmarketos-mkinitfs: don't rm vmlinuz-* (MR 2501)
Adjust post-upgrade script to not remove vmlinuz-*. This causes problems
with devices using kernels from Alpine, where the kernel is not
installed to /boot/vmlinuz, as it is now the case in postmarketOS, but
e.g. in /boot/vmlinuz-rpi. The intention was to clean up files when
migrating from the old postmarketos-mkinitfs to the new one (>= 1.0.0).
However, the /boot/vmlinuz* files are managed by apk, so they should
already get removed.

Add -v, so it prints a message when removing a file from /boot.
2021-09-08 23:40:13 +02:00
Clayton Craft
667f158e8d
postmarketos-mkinitfs: upgrade to 1.0.2 (MR 2489)
[ci:skip-build] already built successfully in CI
2021-09-05 15:29:59 -07:00
Clayton Craft
1bbb98347d
main/postmarketos-mkinitfs: use new mkinitfs (MR 2426)
This replaces the mkinitfs script with a re-write (in Go). The
re-written mkinitfs will atomically replace the initfs in /boot, check
for free space before doing so, and try to do whatever it can to not
leave the system in an unbootable state by botching the initfs
creation/installation.

pmb:cross-native with go cross compiling doesn't work exactly, it makes
the correct binary, but on Alpine go uses -buildmode=pie which creates a
dynamic thing, and the interpreter is wrong (e.g. it it set to use the
host arch's interpreter, like /lib/ld-musl-x86_64 even though
GOARCH=arm64)

The init.sh script is no longer a template, "initramfs-extra" is used.

Fixes https://gitlab.com/postmarketOS/pmaports/-/issues/1019
fixes https://gitlab.com/postmarketOS/pmaports/-/issues/660
2021-09-03 10:08:34 -07:00
Caleb Connolly
34623c4a0a
postmarketos-mkinitfs: fix charging-sdl for kmsdrm devices (MR 2098)
This fix was pending since before charging-sdl was deprecated and still
provides value should anyone wish to pickup and improve charging-sdl
again.

charging-sdl currently does not check for devices using mesa, even
though it supports it in the same way as osk-sdl. Check for msa support
and set SDL_VIDEODRIVER in that case.

Also fix the font path, as it was reading both keyboard-font and
keyboard-font-size from osk.conf.
2021-09-01 11:41:50 +03:00