gnome-calendar is unavailable on riscv64, so support for that arch is
dropped until someone is able to resolve that. IMHO this is an ok
trade-off since I don't think many folks are running gnome desktop on
riscv64 (yet?) and gnome-calendar is probably useful for more folks to
have by default.
These apps are useful to have on the full GNOME desktop too, and this
removes the need to duplicate package lists across UI meta packages that
depend on the base gnome UI package.
Since audio over DisplayPort (over USB-C) is supported in the kernel,
add a UCM config to complete support.
To be clear, this might not work out of the box yet, I hope it'll start
working better when another audio route (speaker or microphone) is
working from kernel side.
[ci:skip-build]: Already built successfully in CI.
Since the GPU is supported since a while enable
deviceinfo_gpu_accelerated to let pmbootstrap show UIs like phosh.
Also with modem working with patched tqftpserv, we need the
msm-modem-uim-selection dependency, so add that as well.
In mainline Linux these paths will be used, move the firmware packaging
there. By doing this we drop downstream support. Support could be
restored by adding some symlinks in a downstream-specific package if
required.
We also start squashing the firmware into .mbn format with pil-squasher.
For now we keep the files in _wififiles in their old location, I'm not
sure yet where they need to go since I didn't have wcnss working on
mainline yet.
The configfs gadget can provide the actual interface name, which may not be
the default "usb0" since another gadget driver might have claimed "usb0".
This code is based on the `start_unudhcpd` function in `init_functions.sh`
[ci:skip-build] already built successfully in CI
Before this change the script assumed that the device has only one UDC.
However it is possible for a device to have multiple UDCs, in which case
the deviceinfo is the appropriate place to specify which one should be used.
This change adds an optional deviceinfo variable `deviceinfo_usb_network_udc`
to specify the UDC that should be used.
Also, before this change the script assumed the USB network interface name is
"usb0". But other gadget drivers like `g_cdc` can claim USB interfaces
before the initramfs script gets around to creating one for USB networking,
so the interface might be "usb1" or something else. The configfs gadget itself
can provide the actual interface name, so this change makes the script
use that.
Required for getting mobile data up, otherwise ModemManager fails to
connect with:
Status | connected: no
| connection error name: org.freedesktop.ModemManager1.Error.MobileEquipment.Unknown
| connection error message: failed to create net link for device: failed to add link for device: Could not allocate link: Failed to add link with mux id 1: Netlink message with transaction 27 failed
[ci:skip-build]: already built successfully in CI
Required for getting mobile data up, otherwise ModemManager fails to
connect with:
Status | connected: no
| connection error name: org.freedesktop.ModemManager1.Error.MobileEquipment.Unknown
| connection error message: failed to create net link for device: failed to add link for device: Could not allocate link: Failed to add link with mux id 1: Netlink message with transaction 27 failed
In many cases, when fw is installed in /lib/firmware, some of it ends up
in the initramfs. In those situations, mkinitfs should run so that the
initramfs gets the latest fw. This will result in mkinitfs possibly
running in cases where it doesn't matter (i.e. device has fw in
/lib/firmware but none is used in the initramfs), but I think the
trade-off is worth it.
This also breaks the triggers= line into multiple lines so that it's
easier to review/maintain. We can't prepend whitespace on these lines
since the apkbuild parser expects dirs to be separated by ":"
Previously, the modem firmware would be loaded from the modem partition
using this firmware loader. As of the 6.5.4 SDM670 kernel upgrade, the
firmware is installed and loaded from the firmware package. Drop the
dependency on the msm-firmware-loader, which is now unused.
We do not want this going forward as we will be changing the wallpaper
on a bi-yearly basis and we do not want to have perform shotgun surgery
every time we do so.
[ci:skip-build]: already built successfully in CI
Krane doesn't have a headphone jack, which caused audio server issues
for me. Add a check to only enable the headphone and headset mic device
on non-Krane boards. Also improve the formatting and remove
ChromeOS-specifc options.
[ci:skip-build]: already built successfully in CI
I was building a branch archive previously, which meant that rebuilding
would fail if someone pushed to the branch upstream (the archive
checksum would change)... so I've reverted back to building from a
specific commit for now.
pkgrel was increased because this commit includes a couple of
audio-related patches that weren't included in the previous packaging of
the 6.7 branch.
[ci:skip-build] Already build-tested on Gitlab CI
Similarly to how it was done for xiaomi-beyllium with varying
display panels, add kernel variant for clover-plus.
Mi Pad 4 Plus is very very similar to regular Mi Pad 4,
but it has different panel and different touchscreen.
Therefore it uses different device tree in kernel - and it
is the only changed line in deviceinfo file.
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
[ci:skip-build]: Already built successfully in CI.
In order to make it work properly, the fcc unlock script from MM should
also be enabled... This info will be added to the device's wiki page for
now since upstream MM discourages distros from enabling these unlock
scripts by default...
fixes https://gitlab.com/postmarketOS/pmaports/-/issues/2489
[ci:skip-build]: Already built successfully in CI.
The fbdev backend was removed with Weston 10 which has been out for a
good while now. As such, it doesn't matter whether Xwayland works or not
since Weston won't work at all --- the DRM backend, which is what would
get used instead of fbdev with this removed, won't work on downstream
kernels like the one used by this device.
[ci:ignore-count]
[ci:skip-build]: Already built successfully in CI.
The fbdev backend was removed with Weston 10 which has been out for a
good while now. As such, it doesn't matter whether Xwayland works or not
since Weston won't work at all --- the DRM backend, which is what would
get used instead of fbdev with this removed, won't work on downstream
kernels like the one used by this device.
There is no dri-backend.so. I don't know if this ever existed. May have
been a typo where the author meant to type drm-backend.so. The DRM
backend should be the default anyway, so just remove it instead of
fixing what may have been a typo.
The fbdev backend was removed with Weston 10 which has been out for a
good while now. This device should be able to use the DRM backend
anyway given that it uses the A64 SoC which also e.g. the PinePhone
uses.
Additionally, the comment about Xwayland being broken contradicts the
actual configuration file where Xwayland actually is being enabled
(xwayland=true), so this shouldn't be causing any regressions even if it
actually is broken.
The fbdev backend was removed with Weston 10 which has been out for a
good while now. As such, Weston won't work with the downstream port
anyway which is likely where Xwayland supposedly was broken. As such,
remove this unnecessary configuration file.
We did set these variables, so it is possible to flash boot and root
partitions separately for booting with stock partition table. This
is useful for U-Boot as secondary bootloader. But it's not good for
U-Boot as primary bootloader because the resulting images have boot
and root partitions separated, so users have to create partitions
themselves and this is very confusing.
I'm suggesting to disable it in favor of doing U-Boot as primary
bootloader, this may be harder for users, but it needs to be done
only once, and this way is more fancy and is supported on more
devices than secondary bootloader.
If someone still wants to use this port with U-Boot as secondary
bootloader they can do "pmbootstrap install --split" and
"pmbootstrap export" to get 2 separate partitions to flash.
[ci:skip-build]: Already built successfully in CI.
bcm4330 has 2 wifi sdio firmwares, one with IEEE 802.11а support
and one without. One without was missing which caused some
devices to have wireless network issues.
Additionally Oyua specific bluetooth firmware was found and it
is included as well.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
[ci:skip-build]: Already built successfully in CI.
Fixes#2349. Patches refreshed because some didn't apply when I built
directly from local repo and tried to import them with "git am".
Known issue: NetworkManager fails to assign IP to usb0, I had to
assign it manually to use USB networking.
In the mainline ds2482 onewire kernel driver, active_pullup defaults to
1 which is setting the APU register. This caused the connection to the
ds2784_battery slave to be unstable and flaky. In the AOSP manta project
this flag is set to 0 as well.
This is a device-specific package. The only device that depends on
this, device-nokia-n900, is in community, so let's move it there too.
[ci:skip-build]: already built successfully in CI
This is a device-specific package. No need to keep it in main where it
gets included in stable releases unnecessarily. The only device that
depends on this, device-inet-a33, is in testing, so let's move it there
too.
Also start squashing the .mdt files into .mbn and provide compatibility
symlinks so old kernels that look for .mdt still find it.
Also move the zap firmware into a device-specific subdirectory.
Symlinks for venus are skipped since that one's not used in any
production branch yet for sm7225.
[ci:skip-build]: Already built successfully in CI.
Dependencies:
- Add dependency "xfce4-screensaver" to provide virtual keyboard at screen
unlock. As a dependency because several settings need to be implemented to
integrate it well in LXQt.
- Add dependency "setxkbmap" to make keyboard layout settings work
- Add dependency "upower" to make battery icon in panel work
Recommends:
- Add recommend "pulseaudio" to make sound work
- Add recommend "adwaita-icon-theme" because that's used by xfce4-screensaver
- Remove recommend "pavucontrol" because there is already "pavucontrol-qt"
Sources:
- Add autostart desktop file for xfce4-screensaver
- Add autostart desktop file to override lxqt-xscreensaver-autostart
- Modify autostart desktop file for onboard, a startup delay mitigates
an issue with the onboard panel icon not showing up at the first boot
- Modify lxqt-tablet.sh to include custom XDG_DATA_DIRS
- Add application desktop file to override xfce4-screensaver-preferences,
adding it to the menu
- Add application desktop file to override xscreensaver-settings, removing it
from the menu
- Change install location of "lxqt-tablet" repository configs from
/etc/skel/.config to /etc/xdg/lxqt-tablet. That way they are handled as
distribution-specific configs and are separated from the user configs in
~/.config.
- Upgrade to version 0.3 of "lxqt-tablet" repository:
- Change theme to "Dark" to fix panel look
- Increase panel size
- Change wallpaper mode to "zoom" to avoid deforming the picture
- Disable global single click to not interfere with PCManFM
- Add terminal and file manager launchers to panel
- Rename openbox xml file to apply the configs
- Set lock command to xfce4-screensaver
- Add xfconf files to configure xfce4-screensaver
- Clean up configs by removing default values
[ci:skip-build]: Already built successfully in CI.
These cmdline params are not needed because the issues they worked
around were fixed in 6.7 or in this kernel branch we are using.
Additional modules are included in the initramfs since they may not be
builtin in the future, and not having them loaded in the initfs can break booting
kconfig changes:
- Most are due to running 'pmb kconfig migrate'
- Enable USB_F_FS
- Build ath11k as a module + enable debug, to help with debugging
pma#2361
- Enable support for BT BR/EDR stuff (like HFP)
- Enable CRYPTO_MD4 for EAP_MSCHAPv2
This uses oem-specific packages for configuring Intel and AMD systems,
and installs them all by default for new images using pmbootstrap's
pmb_recommends feature.
The intention is to provide pre-built images with support for Intel and
AMD already enabled/configured, and users can remove an unwanted set of
packages (e.g., `apk del device-generic-x86_64-intel` when on an AMD
system) if they want to.
Upgrading existing systems should work, in that I haven't observed any
apk conflicts with it. But you do need to manually install the new
oem-specific package if you need it (e.g. `oem-intel`)
fixes https://gitlab.com/postmarketOS/pmaports/-/issues/2484
The panel driver has been renmaed in the kernel sources to be in line
with what's going to be upstreamed.
[ci:skip-build]: Already built successfully in CI.
Currently, when postmarketOS fails to boot up, retrieving any
information necessary to root cause the issue is non-trivial, requiring
building a custom initramfs with debug-shell enabled and then manually
copying out data.
Let's improve the situation by exporting logs automatically on boot
failure. This is safer than just exposing a root shell but still
provides a whole lot of useful info that should make duplicating and
triaging issues much easier for developers.
This commit implements the functionality and includes some generally
useful data. We then generate a README and expose files for each command/log
as well as an archive that can be easily attached to a GitLab issue.
To help with triaging, also record the version of the postmarketos-initramfs
package and hash the init.sh and init_functions.sh files.
For testing purposes, you can trigger the log recovery mode on-time by
creating an empty file named ".pmos_export_logs" in the /boot partition.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Always write logs to the ramdisk, adjust setup_log() to spawn "tail" to
pipe the log to the console device when PMOS_NO_OUTPUT_REDIRECT is set.
This is necessary to ensure that the initramfs logs can be extracted on
a failed boot.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
In preparation of new sdm660-mainline kernel release all
downstream ports will become irrelevant.
If needed, downstream port can still be chosen as
'xiaomi-lavender-downstream' during pmbootstrap init.
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
[ci:skip-build]: already built successfully in CI
non-free firmware not (yet?) submitted to linux-firmware, this is pulled
directly from the latest versions distributed by lenovo, instead of some
probably outdated repo distributed by random folks.
The bt firmware here fixes an issue where the bt range on the 21bx is
extremely poor (like ~1 meter or less)
linux3.4-ARM-8933-1-replace-Sun-Solaris-style-flag-on-section-xz-supplementation.patch
contains an addition that was not part of
linux3.4-ARM-8933-1-replace-Sun-Solaris-style-flag-on-section.patch
simply because error did not occur with the config I tested with.
[ci:skip-build]: already built successfully in CI
This device package is intended to replace the tablet-x*uefi device
packages. It was made by basically merging config from those two
packages.
One important change (besides the name, covered later) is that it
replaces grub-efi with sd-boot for these devices.
The pkgver is starting at '8' to get ahead of the packages this is meant
to replace.
Because package names, especially for device packages(!), is important,
here's a long explanation of why the name is "device-generic-x86_64":
"uefi" was excluded from the device package name, because it should (in
theory at least...) be able to simultaneously support EFI and non-EFI
boot in 1 device package. The device-qemu-amd64 package kiiiinda does
this already and could be a useful example for how to do that, though in
this situation we'd need to support syslinux for legacy boot instead of
what qemu does (bypass installed bootloader and directly boot the
kernel). In other words, the packages this one is meant to replace only
support EFI boot, they currently don't support legacy boot. So IF we
need to support legacy boot in the future and IF there's no way to
support both in one package, THEN we can consider changing the name of
this one or calling the other "-legacy" or something.
"x86_64" instead of "amd64" (like the device-qemu-amd64 device package),
because "x86_64" is what Alpine uses to refer to this arch, and it
doesn't have a hw vendor name baked into it.
"tablet" was dropped from the name, because there are many other x86_64 devices
out there that people might want to install pmOS. For example, it might be
confusing if you want to install pmOS on an x86_64 toaster but best
pmOS image for it is named "device-tablet-..."
* Check for space indentation instead of tabs
* Check that an entry actually exists
* Check that a directory ends in a slash, otherwise GitLab seems to
ignore it
This was enabled in the "default" runlevel during upgrades, which is an
error, since it depends on bootmisc, which is in "boot" runlevel
Fixes#2473
[ci:skip-build]: Already built successfully in CI.
This replaces the outdated blobs extracted from Android vendor partitions with more recent firmware provided in the linux-firmware-brcm package.
[ci:skip-build]: Already built successfully in CI.
Add the Portugese/Spanish keymap. Similarly to the Finnish/Swedish
keymap, it's compatible with both Portugese and Spanish keyboards.
Also, modify x11-keymap so that the Portugese/Spanish map will use
Alt+Shift to enter an underscore in the F key and a backslash in the C
key, which was done to avoid redundancy with the "Ñ" key.
Signed-off-by: Lux Aliaga <lux@nixgoat.me
[ci:skip-build] already built successfully in CI
And enable it by default, since it's a sensible thing to do.
This makes the bootmisc config file unnecessary, since it was only
used before to make sure that /tmp was wiped on every boot.
Mounting /tmp as a tmpfs will be skipped if:
* The user or maintainer configured deviceinfo_tmp_as_tmpfs_size=0
* If they didn't but the device has less than 2GB of RAM
* And in any case, if it is already mounted, to respect users that
might have it in /etc/fstab
The options for mounting /tmp has been copied from my local debian
tmp.mount service. The only real difference is that we are mounting it
after /etc/fstab, and they do so before.
Fixes#2233
Notification daemon; provides nice HUD for volume control and allows
Blueman to normally send notifications instead of opening separate
windows (which can get very annoying for frequently-reconnecting
devices).
Start squashing all the .mdt files into .mbn and install those. Keep
installing compatibility symlinks so old and new kernel versions can
work with the firmware - the kernel detects the correct format anyways.
[ci:skip-build] already built successfully in CI
Currently, the build fails with the following error message:
arch/arm/mm/proc-v7.S: Assembler messages:
arch/arm/mm/proc-v7.S:346: Error: junk at end of line, first unrecognized character is `#'
make[1]: *** [scripts/Makefile.build:343: arch/arm/mm/proc-v7.o] Error 1
make: *** [Makefile:952: arch/arm/mm] Error 2
This is because in binutils package, starting with version 2.41, stopped
supporting Sun/Solaris style flags on section directive.
To fix that, use a patch that replaces this with the GNU style flags,
partly backported from mainline.
Fixes: https://gitlab.com/postmarketOS/pmaports/-/issues/2355
Manual config changes:
* DRM_MSM=m (there's a race condition, genpd_power_off_unused needs to
turn off mdss_gdsc before the display driver inits, otherwise screen
stays black)
[ci:skip-build]: already built successfully in CI
For some reason we don't have dtb subdirectories.
Tested locally to pass pmbootstrap install and checked /boot for dtbs
[ci:skip-build]: already built successfully in CI
There are three changes from the config source "xfce4-phone":
- Move whiskermenu settings to xfconf (required by an upstream change)
- Hide tooltips by workaround (opacity and font size)
- Increase double-click distance tolerance
And one change in postmarketOS files:
- Enable mouse key buttons on onboard keyboard by default (eases
right-clicking)
[ci:skip-build]: Already built successfully in CI.
hexagonrpcd is necessary to provide access to the filesystem for the SDSP.
Also, OP6T accelerometer is mounted differently than the screen, adjust
it with a mount matrix. This way, screen rotations follow the actual
screen rotation by the user.
hexagonrpcd is necessary to provide access to the filesystem for the SDSP.
Also, OP6 accelerometer is mounted differently than the screen, adjust
it with a mount matrix. This way, screen rotations follow the actual
screen rotation by the user.
SHIFT6mq accelerometer is mounted differently than the screen,
adjust it with a mount matrix. This way, screen rotations follow
the actual screen rotation by the user.
Remove the gtk tweaks, they break the UI now, presumably because I've
added proper notch config for FP4 to the gmobile project.
Also we can remove the phoc.ini since nowadays phosh can properly scale
itself based on the screen information and doesn't need this static
config anymore.
[ci:skip-build]: already built successfully in CI
This allows GNOME Settings to display our wallpapers. And most
remarkably, it allows people to switch back to the original wallpaper
if they ever happen to change it.
[ci:skip-build]: already built successfully in CI
This device port uses U-Boot as a basic bootloader. Users should install
U-Boot and reinstall pmOS to the U-Boot version of port (this one).
Thus an upgrade from old installations that depend on old vendor bootloader
is not implemented.
Instruction how to install U-Boot can be found on dedicated page of
pmOS wiki.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Logging is important, we want our users to have logging, so make sure we
enable the new logbookd service on existing installation.
We check that we're upgrading from a postmarketos-base version that
predates logbookd and only enable the service in this case. This way we
won't enable it again for folks who disabled it manually.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
[ci:skip-vercheck]
Use logbookd to replace the busybox in-memory logger. The default
configuration of logbookd still logs in-memory but writes out the log on
shutdown or manual trigger.
The logread command is also replaced by a drop-in replacement for the
busybox tool.
In order to get stable WiFi and Bluetooth MAC addresses, install the
bootmac service by default.
Also as noted in other device package reviews, qbootctl-openrc should be
a dependency so the post-install/post-upgrade script will definitely
have the openrc service available.
[ci:skip-build]: already built successfully in CI
Also disable some drivers and subsystems in the kernel configuration
that are generally unused on the platform, according to the
corresponding patch in the kernel repository.
[ci:skip-build]: already built successfully in CI
Drop all the non-sdm845 DTBs. This saves about 12MiB
of space in /boot
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
[ci:skip-build]: already built successfully in CI
The post-upgrade script in pmos-base isn't symlinked to the post-install
script, so zram-init wasn't being enabled on systems that upgraded to
the pmos-base version that intro'd this feature. I think this should
have been enabled by default on upgraded systems. There's a deviceinfo
toggle for it, so users who won't want to use this can set that var to
disable it, in that case having the service enabled is basically a
no-op.
Update by Oliver: add a comment to mention the deviceinfo variable
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck] no feature changes
Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
[ci:skip-build]: already built successfully in CI
This was a fallout from the /usr/share relocation, only found and
reported now by z3ntu. If the device package happened to be installed
later, then the link would point to the wrong location.
Fixes 1d748a93dd
Allows things like podman/docker to work out of the box.
I looked at /etc/init.d/cgroups, and having this service enabled isn't a
problem if the kernel doesn't have cgroup support... in that situation,
the service script just simply exits (success).
[ci:skip-build] already built successfully in CI
Manual config changes:
* Enable SYSCON_REBOOT_MODE
* Enable LEDS_QCOM_LPG (not yet used but initial driver support present)
[ci:skip-build]: Already built successfully in CI.
For some reason kernel does not print anything to ttySAC3 even with
console=/dev/ttySAC3. If earlycon is specified it prints the early
stuff though.
Add ttySAC3 in both places anyways since that should be the correct
uart.
The riscv64 builder in Alpine is currently stuck, let's disable the
package for riscv64 temporarily so bpo isn't stuck on it for master. I
doubt anybody is using it on riscv64 currently.
[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
EFI booting with systemd-boot requires building the kernel with ZBOOT -
the EFI decompressor stub. However, this breaks the old Android booting.
Detect when ZBOOT is enabled and install both vmlinuz.efi as well as the
old gzipped kernel image.
To help make this upgrade more seamless, continue to support building
the kernel with ZBOOT disabled and just print a warning.
Disable module stripping - we compress them anyway and a recent kernel
change seems to have caused some bug here.
This is a packaging change that doesn't require rebuilding the kernel.
[ci:skip-vercheck]
Something seems to have gone wrong in our rebuild and sync of pulseaudio
with alpine upstream. And user feedback points that building armv7 devices
with LTO is actually broken in our builders. In alpine, they enabled lto
in pulseaudio very long ago (f46174365b219fe431890df3df7e7dc488c9451e 08-09-22)
and nobody as complained so far. Since it's not really a phone-specific package,
one would hope that more people upstream would have noticed if it were broken
there. Since nobody has, we assume this is a downstream problem, and just
unconditionally disable lto in our build. We hope this will be just a temporary
workaround, until the patches that prompted the fork are no longer needed, and
we can simply use upstream pulseaudio, that shouldn't be broken.
Fixes#2368
[ci:skip-build] already built successfully in CI
As described in [0] let's switch away from RNDIS and use NCM instead.
Since we cannot force all kernels to switch at the same time, let's keep
a fallback to RNDIS in the setup function.
We can also remove usb_f_rndis from modprobe as the module gets loaded
automatically when needed, but instead we need to load libcomposite
manually so that $configfs/usb_gadget gets created.
[0] https://gitlab.com/postmarketOS/pmaports/-/issues/1797
[ci:skip-build] already built successfully in CI
With recent gcc versions we get errors like:
/linux/arch/arm/mm/proc-v7.S: Assembler messages:
/linux/arch/arm/mm/proc-v7.S:425: Error: junk at end of line, first unrecognized character is `#'
Seen on at least two samsung kernels based on 3.4 and 3.10. Fix issue
by backporting (part of) commit found in mainline.
Linux 6.7-rc1 looks for the venus (video) firmware in
qcom/venus-1.8/venus.mbn instead of qcom/venus-1.8/venus.mdt.
Let's install it in both places with a symlink so that the firmware
packages work for both older and newer Linux versions.
[ci:ignore-count]: lots of packages
[ci:skip-build] already built successfully in CI
Swap maintainer and co-maintainer (David is not active now and requested
it himself). Also update email addresses.
Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
The mainline port has almost reached full feature parity with the
downstream port. Default to mainline in new installations, but keep
downstream around as it'll still be needed for bringing up the currently
missing features.
GPS on milletwifi is via the "modem", which doesn't have any cell model
support, but is similar. This starts the modem remoteproc to support
GPS output.
[ci:skip-vercheck]
[ci:skip-build]: Already built successfully in CI
Firmware drivers will load too early, before msm-firmware-loader, so they
won't load the necessary firmware. Instead, mark them as modules so they load
later in the boot process, when the firmware is available.
BINFMT_MISC for running qemu on this system, and HIDRAW is used for some
USB devices. ETHERNET lets me use usb NICs, since this device does not
have a rj45 port/onboard NIC.
[ci:skip-build] already built successfully in CI
And don't bother disabling the gpsd service given how unlikely it is
that someone is doing something serious with this device, let alone
having it in the first place. Plus, it's in testing.
[ci:skip-build] already built successfully in CI
This is no longer necessary as geoclue now can talk to ModemManager
directly for GPS information. It also presents a security risk due to
how gpsd works. As such, remove it.
Closes https://gitlab.com/postmarketOS/pmaports/-/issues/2340
- librem5-base upgraded to v64: some tweaks to shipmode stuff, but
otherwise nothing interesting for us
- actually install the mm-broadmobi-port-types udev rule
- add udev rule + service for enabling bluetooth for Sparklan WiFi
adapters (fixes#2043)
pkgver was also updated to reflect that this is packaged from the latest
in git as of now. I probably should have done that from the start
(instead of ending up at the arbitrary '0.3'.)
- Update to Linux v6.6
- Lots of cleanup and upstreaming, more than 40 commits upstreamed
for 6.7
Device changes:
- Add KTD2026 LED driver, used by bq-paella, bq-piccolo and
acer-a1-724
- bq-piccolo: Set proximity near level to fix detection in
iio-sensor-proxy
New devices:
- Vivo Y21L
- eMMC, SD card, USB, Buttons, WiFi/BT
- Sensors (Accelerometer, Magnetometer, Light)
- No display yet
[ci:skip-build]: already built successfully in CI
Since mkinitfs / boot-deploy install sd-boot in the ESP, it makes sense
to always trigger mkinitfs when sd-boot is upgraded so that we always
boot with the latest supported version.
[ci:skip-build]: already built successfully in CI
This shows the OS version (from /etc/os-release), e.g. "edge", on the splash
screen. os-release is a tiny text file, adding it to the initramfs doesn't seem
too bad, and having this information on the splash screen can be helpful.
Note that this uses "VERSION" and not "PRETTY_NAME" from the os-release file,
since the splash already shows "postmarketOS" (and the pretty name includes
that too), it seemed redundant and took up valuable display space.
[ci:skip-build]: already built successfully in CI
Add a subpackage that sets the pmOS wallpaper, instead of always setting
the wallpaper that was added for giving GNOME Shell on Mobile a better
contrast.
Add a test for CI that:
* ensures unl0kr runs for 10 seconds without crashing
* ensures that it doesn't print any errors
This sure isn't an "ideal" test, but it at least validates that the
framebuffer interface doesn't die horribly...
With a little more effort we should be able to run unl0kr and then pull
the framebuffer and check it against some known good unl0kr screenshot.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
bootrr is a simple shell script tool for validating that a given board
has booted correctly. It checks that all expected drivers are loaded.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Add a basic test that runs qrtr-lookup and ensures that at least one QMI
service is available. This is mostly a proof of concept and can be
extended in the future.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Enable using the postmarketOS initramfs for boot-testing devices, in
this scenario we don't care about some components like the splash, mdev,
or subpartitions, instead we want to run full udev (to load all devices)
and then run hooks. The ci hook will deadloop after running tests.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Add a helper to generate a post-install script for device pmtest
subpackages. This script configures the console and enables logging in
the initramfs for images running in CI.
[ci:ignore-count]
This package provides a helper for writing a pmtest subpackage, as well
as being a place to write generic tests that aren't specific to a device
(e.g. a suspend test).
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
[ci:ignore-count]
Add a new initramfs hook for running tests in a CI environment.
This hook automatically runs any scripts from /usr/libexec/ci-tests.
Tests should be installed as a subpackage of some other package (e.g.
qrtr) with an install_if clause to install them when this hook is
installed.
This allows platform specific packages like device packages to define
tests that will automatically be installed and executed when building
the initramfs for that device. See
device/community/device-oneplus-enchilada for an example.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
systemd-boot is used for EFI boot (when using "pmbootstrap qemu --efi"),
legacy boot (seabios) is still supported as well (pmb/qemu boots the
kernel directly).
[ci:skip-build] already built successfully in CI
msm-firmware-loader path is valid only on booted phones, which won't exist
in pmbootstrap chroot, but results in no such file or directory errors.
Drop 30-gpu-firmware.files to workaround temporarily. Besides it's
preferred to be put in firmware packages.
[ci:skip-build]: already built successfully in CI
Samsung Manta is now supported by linux-posmarketos-exynos5.
Update device-samsung-manta to use it, and move downstream kernel and
device to unmaintained.
Also adds a script and networkmanager configuration to autoconfigure
WiFi MAC address from /proc/cmdline.
Signed-off-by: Alexandre Marquet <tb@a-marquet.fr>
WiFi firmware for brcm43241b0 is in linux-firmware, but not the calibration (bcmdhd.cal).
Mainline driver need bcmdhd.cal to be renamed brcmfmac43241b0-sdio.samsung,nexus10-manta.txt.
Mainline Bluetooth driver needs BCM.samsung,nexus10-manta.hcd.
Signed-off-by: Alexandre Marquet <tb@a-marquet.fr>
Explicitly pull in the blkid package (we already added it to
00-initramfs-base.files), and replace uses of busybox findfs. Full fat
blkid supports PARTLABEL (so the /dev/disk/by-partlabel symlinks will
work consistently now), and has some nice optimisations that make the
lookup times a lot faster than busybox findfs.
[ci:skip-build]: already built successfully in CI
The "pmos_[br]oot(_uuid)?" kernel cmdline args can be used to specify
how to mount the root and boot partitions. During a previous rework, the
behaviour of these was made inconsistent (becoming dependent on the
order they were specified on the cmdline).
Undo the previous "optimisation" by splitting them back out into two
FOR loops, where the _uuid variants take precedence.
Postmarketos-base-downstream provides a lightdm config file needed
for GUI to be brought up when using an x11 based UI.
[ci:ignore-count]
[ci:skip-build]: Already built successfully in CI
All devices that use downstream kernels should depend on this package.
We will to start with use it to fix so that lightdm+x11 work again
when using downstream kernels.
See also https://gitlab.com/postmarketOS/pmaports/-/issues/2102.
- Add SM5708 modules to initfs for the following devices, to unlock FDE
with USB OTG keyboards and fix USB networking.
- Configure getty using deviceinfo_getty variable.
- Add USB ID 04e8:6860 to deviceinfo
[ci:skip-build]: already built successfully in CI
Some firmware packages has only a WCNSS config file, which is decoded
from base64 uploaded to Pastebin, and there is nothing to unpack.
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
The only new thing in this version is the addition of a deprecation warning
when osk-sdl is installed in the initramfs.
Also see: https://gitlab.com/postmarketOS/pmaports/-/issues/2319
[ci:skip-build]: already built successfully in CI
Upstream boot-deploy (me, lol) removed generate_gummiboot,
and now generate_systemd_boot is used to configure both gummiboot and
systemd boot.
[ci:skip-build]: already built successfully in CI
EFI bootloader from systemd, with hacks to build it on Alpine/pmOS.
Cross compilation (using a meson cross file) is used for building
32-bit version on x86_64, for systems that have a 32-bit EFI. Everything
else assumes that the EFI arch matches the CPU arch.
Besides supporting all the archs we need, another major goal was to
minimize the number of changes to systemd's build system required to
build only the bootloader, so that maintaining/rebasing isn't *too*
painful...
I am adding this to the "main" category, because I don't think there's a
way to add it to Alpine. It requires cross compiling to x86 on x86_64
(to support 32-bit EFI on this arch), and Alpine doesn't support this.
It requires stuff in pmaports/cross.
--- Research notes ---
I started looking at all of this because I wanted to come up with a
single way to boot Linux via EFI, that supports all (or as many as possible)
devices in pmaports. I looked at quite a few different options, and have
some notes below about my observations and conclusions for each.
Of everything I looked at, systemd-boot was the clear winner that met
the most requirements ("pro" below) with the fewest downsides ("con"
below).
Using a Unified Kernel Image (UKI) was a close second place, however
systemd-boot can also support booting UKI images quite easily (while
also giving us more flexibility to boot other things easily too), so I
think it wins over UKI.
The capitalization (or lack thereof) of the "pro" and "con" markers
below is significant: "PRO" / "CON" are major pros or cons for each
point (e.g. a major downside that blocks using the option), and
"pro"/"con" are minor (e.g. a downside that I'm willing to overlook.)
---- Requirements ----
- Arch support:
- x86_64
- x86 (nice to have, but not sure if necessary...)
- armv7
- aarch64
- riscv64
- EFI support:
- support 32-bit EFI on x86_64 CPU (includes being able to build
32-bit .efi app on x86_64)
- Easy to configure
- Easy to maintain
- Any changes to the bootloader required to get it working in
pmOS
- Config for it
---- Evaluated options ----
------ grub ------
- (PRO) can target all required archs
- (CON) grub can't be installed in pmb chroot, it calls grub-install and
that fails due to something missing in /dev. Maybe this could be worked
around in pmb?
- (CON) grub-mkimage exe is integrated in grub package, grub-efi depends on
grub
- don't want to install all of grub just for 1 exe and/or the EFI modules
- downsides of installing all of grub is that I think it can mislead
users into thinking we use grub the "normal way". this might cause them
to have the wrong expectations and break pmOS boot on their
system
- have POC "fixing" this
- I'm not sure upstream Alpine will like this, it's ugly
- (CON) grub x86 EFI support for x86_64 is currently in pmaports, that's
pretty ugly.
- IMHO forking grub (or grub components) for this purpose signals
to me that grub is the wrong tool for this job
------- kernel's efistub -------
- (PRO) already included in the kernel, nothing else required
- (pro) initrd and dtb can be passed in the kernel cmdline...
however....
- (CON) kernel cmdline can only be set at compile time
- (con) not all kernels may have EFISTUB set?
- (con) can't do measured/secure boot
- (con) requires a fairly recent kernel on aarch w/ efi_zboot support
enabled since we compress the kernel
------- UKI -------
- (PRO) very simple, 1 file thing
- (PRO) supports adding dtb, setting kernel cmdline and so on
- (pro) can do measured/secure boot
- (CON) requires an EFI stub loader
- can't find a stub loader that meets all requirements (other than
the one from systemd-boot...)
- (con) requires efi-mkuki or dealing with objcopy directly (eww)
- (con) requires a fairly recent kernel on aarch w/ efi_zboot support
------- limine -------
- (PRO) easy to install/configure, already have boot-deploy and pmaports
patches
- (PRO) can be cross compiled easily
- evidence is in aports
- ...but I couldn't reproduce building aarch64 and riscv64 on x86_64
- (pro) can do measured/secure boot (I think?)
- (CON) doesn't target all required archs
- can't do "linux boot" on aarch64, only "chainload"
- what about using chainload everywhere?
- requires using efistub in kernel
- what about dtb= and upstream recommendation to not use it except for
debug?
- no kernel compression support on aarch64
- see efi-stub.txt kernel doc
- (CON) vendors libgcc to support cross compilation
- probably not a good idea to trust binaries produced in microsoft
github's CI for some random project
------- stubbyboot -------
- (PRO) a straight forward stub loader
- (pro) can do measured/secure boot
- (CON) doesn't target all required archs
- (CON) cross compiling doesn't work.
- gcc can't do 32-bit on x86_64 Alpine...
- gnu-efi-dev needs to be fixed to package both 32-bit and 64-bit on x86_64...
- have patch in ~/src/aports that kinda does it.. but needs to be
fixed/finished
- maybe limine-efi works with it?
- tried, but fails due to missing efilib.h in limine-efi
------- systemd-stub -------
- (PRO) another straight forward stub loader
- (PRO) many (many) people using it, as part of systemd-boot
- (pro) can do measured/secure boot
- (con) requires a fairly recent kernel on aarch w/ efi_zboot support
enabled since we compress the kernel
- (con) doesn't target all required archs
- but does claim to support most... missing armv7.. maybe it
works?
- (con) will end up maintaining some downstream patch to build it
- hopefully the patch (if I can even make a working one!) is not too
complex!
- (CON) can't be built outside of systemd's silly large build system.
- UPDATE: largely resolved this in pmaports
- was able to build for native arch!
- can't build 32-bit on x86_64, no gcc multilib support in Alpine...
Couldn't get clang to work properly, but maybe it can somehow...
- https://github.com/mintsuki/libgcc-binaries ? NO! (don't want
bootloader binaries that depend on code compiled by microsoft /
github...)
------- DIY stub / bootloader -----
- (PRO) **might** target all required archs and other meet
requirements
- (CON) lots of time required to learn, design, do, debug, test
- (CON) lots of time required to learn, design, do, debug, test
- (CON) lots of time required to learn, design, do, debug, test
- (CON) (get the hint yet???)
- (CON) written in C, probably (there's a rust EFI lib, lol...)
[ci:skip-build]: Already built successfully in CI
Backported from our development branch:
- SPI flash for chromebooks;
- support for samsung-manta (see !4406 for status);
- fix performance of video decoder which drastically reduces lag when streaming games.
[ci:skip-build]: already built successfully in CI
Adjust to change in Alpine that moved rockchip to single image:
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/51827
Fix for:
ERROR: The following firmware binary does not exist in the rootfs_pine64-rockpro64 chroot: /usr/share/u-boot/rockpro64-rk3399/idbloader.img
[ci:skip-build]: already built successfully in CI
As with the firmware commit, no effort is done to keep firmware packages
working with downstream kernel.
[ci:skip-build]: already built successfully in CI
Package adsp, modem and wifi firmware for mainline. Compatibility with
downstream firmware is not kept on purpose, if somebody wants this,
please make some subpackage for it!
Tested on the V0.2 variant of the hardware which comes with some U-Boot
build preinstalled. I don't know if this will be the case for the final
version that will be shipped to customers, but the announecment would
imply so given that it says the device "incorporates a advanced [sic]
BIOS compatible with UEFI".
[ci:skip-build]: already built successfully in CI
This includes the "Alta" and "Solitude" boards, the latter of which I
also introduce a device package for in a later patch. It should be easy
to introduce support for the former, but I don't have the hardware to
test that on.
The two new patches have been merged and will be included in Linux 6.7
as I understand.
Using versions before 1.53.0 leads to various problems, from Alpine
v3.18 not appearing as supported, to some timezone file conflicts that
were fixed long ago. Bump the version to force users to use at least
that version.
Due to symlinks from linux-firmware-ath10k apk is now pulling in
linux-firmware-qcom which already provides a630_sqe.fw.
Since this file is not device/vendor-specific we can really use the file
from linux-firmware and not provide our own. For the record,
a619_gmu.bin also shouldn't be device-specific but currently
linux-firmware doesn't provide that one.
Also just pulling linux-firmware-qcom for this tiny file is pretty space
inefficient but due to the symlink dependency mentioned above, just
removing this file for now from the firmware package removes the file
conflict reported by apk:
ERROR: linux-firmware-qcom-20230919-r1: trying to overwrite lib/firmware/qcom/a630_sqe.fw owned by firmware-fairphone-fp4-adreno-20230215-r1.
[luca: update commit message to reflect dependency situation, update
packaging code a bit]
For some reason this isn't building, and it's blocking bpo + gitlab CI.
Let's revert it until someone had time to debug. In the meantime the
"upstream compat" monitoring check will fail.
This reverts commit 7608d18533.
[ci:skip-vercheck]
I cannot maintain this device because I do not have it, but it is
similar to the Pixel 3a, which I can maintain.
Move the kernel into a subpackage in case support for a different panel
(the Tianma NT37700F panel) is added.
[ci:skip-build]: already built successfully in CI
* Add kernel modules for display to modules-initfs
* Add GPU firmware and dependency for Vulkan
* Add qbootctl to mark the current A/B slot as successful
* Add bootmac to set the Bluetooth MAC address on boot
[ci:skip-build]: already built successfully in CI
Kconfig changes:
* Enable PWM_CLK and INPUT_PWM_VIBRA instead of INPUT_CLK_VIBRATOR for
Nexus 5
* Disable unused clock drivers
* Disable MEDIA_SUPPORT - currently unused
* Enable LEDS_TRIGGER_PATTERN for feedbackd
* Disable all of NET_VENDOR_* (which is Ethernet devices)
[ci:skip-build]: already built successfully in CI
It utilize msm-firmware-loader for minimize device specific firmware package.
It add necessary modules to initramfs for fix fde.
modem package has been removed in favor of soc-qcom-msm8953-modem.
30-gpu-firmware-files has been removed.
[ci:skip-build]: already built successfully in CI
It utilize msm-firmware-loader for minimize device specific firmware package.
It add necessary modules to initramfs for fix fde.
modem package has been removed in favor of soc-qcom-msm8953-modem.
30-gpu-firmware-files has been removed.
Depend on soc-qcom-msm8953-modem and initramfs.
Add necessary modules to initfs for fix touchscreen under fde.
[ci:skip-build]: already built successfully in CI
It add necessary modules to intramfs for fix fde.
modem package has been removed in favor of soc-qcom-msm8953-modem.
30-gpu-firmware-files has been removed in favor of
soc-qcom-msm8953-initramfs.
[ci:skip-build] already built successfully in CI
It utilize msm-firmware-loader for minimize device specific firmware package.
It add necessary modules to intramfs for fix fde.
modem package has been removed in favor of soc-qcom-msm8953-modem.
30-gpu-firmware-files has been removed.
It utilize msm-firmware-loader for minimize device specific firmware package.
It add necessary modules to initramfs for fix fde.
modem package has been removed in favor of soc-qcom-msm8953-modem.
pointercal, fb.modes, 30-gpu-firmware-files has been removed.
Utilize msm-firmware-loader for minimize device specific
firmware package.
Add necessary modules to initramfs for fix fde.
Use soc-qcom-msm8953-modem and soc-qcom-msm8953-initramfs as a dependency.
ERROR: the source file 'WCNSS_qcom_wlan_nv.bin' has different checksums in the following files:
- device/testing/firmware-samsung-j5/APKBUILD: 742ee81d034116cf1ecdfae5f75495e6b10ce5be0c2a999b6c8a2c161b1da8b48d6810d5405edb8c829b96fdf75e45a565c74963c76d1bca4aaedf28572fa91f
...
Fix this by setting a different target filename in the package you modified:
https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#source
[ci:skip-build]: already built successfully in CI
Now that the modem firmware is installed in the referenced location, the
firmware patch is not needed, so remove that as well.
Also backport a fix for the Pixel 3a XL so a kernel upgrade isn't needed
for that.
Fixes broken fde as reported in https://gitlab.com/postmarketOS/pmaports/-/issues/2314.
Both Tianma and EBBG variant use the upstream touchscreen drivers in 6.5.
Add them to the initramfs as it was missed when upgrading to 6.5 kernel release.
[ci:skip-build] already built successfully in CI
htc-memul needs a special build with a different scratch address set. So
generalize the build function so we can make multiple builds with
parameters without duplicating too much code.
Provide common board-2.bin file, extended from linux-firmware.
This file will be temporarily provided and dropped once all devices
are added to upstream linux-firmware's board-2.bin file.
Provide common board-2.bin file, extended from linux-firmware.
This file will be temporarily provided and dropped once all devices
are added to upstream linux-firmware's board-2.bin file.
Provide common board-2.bin file, extended from linux-firmware.
This file will be temporarily provided and dropped once all devices
are added to upstream linux-firmware's board-2.bin file.
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
Previously, every device package would package its own /etc/deviceinfo
file, generating a conflict with every other device package. In a
previous commit we have moved the path to /usr/share/deviceinfo, but
we still want to install a sample "/etc/deviceinfo" file to guide
users on how to use the new features. This has the additional benefit
that there is only one of those files in the whole distro. However,
there is no dependency ordering between the device packages and
devicepkg-utils, so there's no warranty of which will be installed
first. Therefore, to avoid a conflict on most likely every user
upgrade, we use postmarketos-mvcfg.
In the process, add some tests and do some renaming on the existing ones, and
remove the workaround for #2228, will be solved appropriately in a follow-up
commit.
Fixes#1836
Without qcom,board-id and qcom,msm-id we need to use header version 2,
otherwise the device doesn't boot.
[ci:skip-build]: Already built successfully in CI
Add rt5033 modules to initfs for the following devices, to unlock FDE with
USB OTG keyboards:
- Samsung Galaxy Ace 4
- Samsung Galaxy Core Prime
- Samsung Galaxy Grand Prime
- Samsung Galaxy S4 Mini Value Edition
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Add rt5033 modules to initfs for the following devices, to unlock FDE with
USB OTG keyboards:
- Samsung Galaxy A3/A5/A7
- Samsung Galaxy E7
- Samsung Galaxy Grand Max
The x86 devicetree patch is included in latest upstream version, which
is already packaged in alpine.
[ci:skip-build]: already built successfully in CI
- Add support for upower, in order to enable automatic shutdown when battery is
critically low
- Set UPower PercentageLow threshold to 10% so it triggers even when fuel gauge
is not calibrated (see estimations provided in 4b54fc7f83:
"linux-postmarketos-omap: add N900 battery capacity estimation")
The port 7236 for TCP is registered with IANA by the
Wi-Fi Alliance for use for the Wi-Fi Display Protocol,
a.k.a. Miracast.
To establish the connection, the local DHCP server has to
be allowed to respond to requests on peer-to-peer Wi-Fi
networks.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
[ci:skip-build]: already built successfully in CI
The display panel for these devices was upstreamed and now uses a
different name. Update it so the display is loaded properly.
[ci:skip-build]: already built successfully in CI
Provide a rough battery capacity estimation for the bq27200 fuel gauge inside
Nokia N900. This is useful when the fuel gauge is out of calibration and a
learning cycle cannot take place due to broken USB/charging port on the device.
[ci:skip-build]: Already built successfully in CI
motorola-surnia also supports the inx panel as of Linux 6.3, add it to
the initfs so the display can be initialized early.
There is no tianma panel for surnia (only for harpia) so drop that.
It's not clear why it was there in the first place.
[ci:skip-build]: Already built successfully in CI
With the udev rule in that package feedbackd can start using the
vibration motor for haptics.
Also we can remove the direct swclock-offset dependency since the soc
package depends on that also.
[ci:skip-build]: already built successfully in CI
It seems like the driver name has changed *again* in 6.5.x kernels, so
let's just have both drivers in the initramfs to help with migrating
between newer/older kernels and any future flip/flopping of drivers.
This is a bit of a hack... it works because missing modules are not
fatal for mkinitfs. The reason why they aren't fatal is that whether or
not it's builtin is somewhat arbitrary... there's an open issue[1] for
mkinitfs to make this smarter, i.e. throw an error if the .ko doesn't
exist AND it's not builtin for the *installed* kernel.
When that's implemented then this patch would likely result in mkinitfs
failing on this device because one of those drivers may not be installed
or builtin. I don't have time to implement this in mkinitfs, so adding
this crude workaround of just including both seemed like a reasonable
thing to do since the 6.5 kernel will break fde on this device (this has
happened before).
[ci:skip-build]: already built successfully in CI
`url` and `pkgdesc` do affect the resulting package and as such
`pkgver` should be incremented, but it wasn't.
Fixes 0dfb1219f8
[ci:skip-build]: already built successfully in CI
Some change (I think some tools switching from the coreutils to busybox
versions?) subtly broke debug-shell behaviour. Try to fix it.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
[ci:skip-build]: already built successfully in CI
Hides this error when FDE is *not* enabled, and ultimately skips the
block of logic for detecting the luks partition:
/init: line 437: cryptsetup: not found
This error has confused some users in the past, who were reporting
issues with the initramfs.
There's probably a minor speedup on non-FDE systems as well from
bailing early.
If a file exists in the initramfs at runtime, cpio won't overwrite it
by default when extracting the initramfs-extra archive. This adds the -u
option to cpio, to overwrite any existing files in the destination.
This is meant to fix issues where the -extra archive has an app that is
meant to replace a busybox app, busybox --install creates it in the
initramfs and gzip will skip it since it's newer than what is in the
archive.
With full-fat mdev supporting by-partlabel lookups, there is a small
delay during startup. As mdev and dynamic partitions aren't actually
needed for the framebuffer device, move show_splash earlier.
Furthermore, slightly rework setup_framebuffer to not dump the verbose
message about waiting for the framebuffer unless the framebuffer isn't
found.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
This removes the possibility that multiple resize root partition methods
could be invoked. I'm not sure how likely this is in practice, but it
seems like we should avoid the possiblity altogether.
This also adds some more helpful printing to stdout when the partition
resize is skipped / not done.
findfs might produce a block device path like /dev/dm-3, these can
change across boots and devices. Make things more readable and
consistent by mapping from the /dev/dm-* path to the equivalent
/dev/mapper/xyz path. Combined with invoking kpartx from a
/dev/disk/by-partlabel/abc symlink, this results in the final block
device having a name like /dev/mapper/userdata2 on an Android device.
Whilst this is just nicer to work with, this will be especially useful for
the upcoming ondev2 postmarketOS installer to make device-specific
configuration and detection easier.
Save the root/boot partition paths once found, and optimise a few loops.
Additionally, fall-back to other search methods when the pmos_boot or
pmos_uuid_boot cmdline args are set but fail.
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
Drop in mdev.conf and the /lib/mdev/persistent-storage script, these
cause /dev/disk/by-* to be populated in the ramdisk, making it
possible to do look up partition by-label and by-partlabel for free,
compared to findfs which can take some time.
As a first optimisation based on this, check for some partitions using
these paths and prioritise them when looking for subpartitions. Drop the
first find_boot_partition call as it doesn't really save time over the
call in the while loop.
The mdev config also handles setting up /dev/null, /dev/random, etc, so
these don't have to be done manually.
These files aren't owned by mkinitfs, or used to configure mkinitfs, so
I think it makes sense that they belong in a dir specific to this
package instead of cluttering up mkinitfs's config dirs.
Mount /dev (and /run) in initramfs so util-linux switch_root can move
the mounts over to the new sysroot before changing root.
BusyBox switch_root doesn't even attempt to move anything so use
util-linux's switch_root for this.
Explicitly disable tests too...
While a lot of Phosh development still happens on and for the Librem 5
we (thankfully) have lots of users and contributors using other devices.
Update the description to reflect that.
Ideally we'd emphasize that this is GNOME technology based and uses
wlroots but let's not make the description too long.
Instead of Purism's generic home page point the URL to phosh.mobi which
has some more details. An alternative URL would be
https://puri.sm/pureos/phosh/ but that points to a page that is a
currently a bit dated.
[ci:skip-vercheck]
[ci:skip-build] already built successfully in CI
Wrap rustc commands with sccache when building native build scripts.
More interesting will be using sscache for compiling for the target
architecture, but sccache currently refuses to cache with --sysroot.
This can be optimized further later on, get some initial support for
sccache in here first.
While at it, tweak the -vV logic to also support -V, start using semver
with this and add myself as maintainer of the package.
[ci:skip-build]: already built successfully in CI
* Don't use "cargo install", as it leads to building a second time.
* Make the build very verbose, as this package is mainly used to debug
and develop the crossdirect scripts for rust.
A welcoming application. It can be extended with custom pages which
we'll do later for a pmOS specific page, but for now it at least tells
the user a bit about Plasma
[ci:skip-vercheck]
Add an initial port for the Fairphone 5 smartphone. This includes
firmware and close-to-mainline kernel package.
[ci:skip-build]: Already built successfully in CI
Fix a bug where find_dtb() would fail if find encounters any errors,
even if it correctly found the dtb.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
With IPA active, the device hangs shortly after booting into the rootfs
(the initramfs shell is fine as far as I can tell). Blacklisting it
works around this for now.
This is a regression, and did not happen when the device originally was
introduced.
[ci:skip-build]: already built successfully in CI
With IPA active, the device hangs shortly after booting into the rootfs
(the initramfs shell is fine as far as I can tell). Blacklisting it
works around this for now.
This is a regression, and did not happen when the device originally was
introduced.
In some cases, the dispatcher script fails if unudhcpd is already running.
Forcefully killing unudhcpd resolves the issue.
Fixes#2267.
Tested-by: Sicelo A. Mhlongo <absicsz@gmail.com>
[ci:skip-build]: already built successfully in CI
With the recent changes in commit 80fff9242, it's possible that the
client IP address is customized. Use the same code as in
init_functions.sh to get the this potentially customized IP address to
use for the nbd-client.
[ci:skip-build]: already built successfully in CI
With the recent changes in commit 80fff9242, there's no longer an $IP
variable we can use. Use the same code as in init_functions.sh to get
the potentially customized IP address to use for telnet.
See previous commit for rationale.
[ci:skip-vercheck]: No need to increment pkgrel when only changing
_pmb_recommends.
[ci:skip-build]: already built successfully in CI
Loupe is the new image viewer for GNOME. It also works better on phones
than Eye of GNOME and does not require any gschema overrides to fit the
narrow screens of phones.
This configures shellcheck in CI to ignore the use of the 'local'. Using
'local' to support variable scoping can prevent a lot of nasty bugs in
shell scripts.
Ash supports 'local', even though it's not a POSIX sh thing. It's used
extensively in our init.sh script, and many Alpine scripts use it.
This allows use of some USB peripherals that
utilize the CP210X serial chip.
This includes not only mere UART-to-USB adapters,
but also some devices like GPS, Zigbee dongles,
etc.
[ci:skip-build]: Already built successfully in CI
- add keyboard driver to initramfs (twl4030_keypad & matrix_keymap)
- order modules in alphabetical order
[ci:skip-build]: Already built successfully in CI
Fix shutdown regression introduced with 3e737241ba ("linux-postmarketos-omap:
N900: disable twl off idle features"). After that commit, shutdown never
completes.
[ci:skip-build]: Already built successfully in CI
Disable twl pmic off-idle configuration for Nokia N900. An ugly patch to do
this was lost during the migration from linux-nokia-n900 to the shared omap
kernel.
Fixes#2161
[ci:skip-build]: Already built successfully in CI
Switch to urxvt terminal in order to provide a scrollable terminal. Scrolling
is convoluted in st [1], especially when used on a mobile device.
Scrolling is a basic need, e.g. to page through `dmesg` output.
[1] https://git.suckless.org/st/file/FAQ.html#l21
So that old installations that run setup-timezone without "-i" do not
need to execute manual steps to get sensible timezone configurations.
See https://gitlab.com/postmarketOS/pmaports/-/issues/2168 for more context
Fixes#2168
[ci:skip-build]: already built successfully in CI
Save a few CPU cycles by dropping conky. Additionally, the existing config has
not been working for a long time now, and no one missed it.
For completeness, it was no longer displaying on the desktop. Manually starting
it showed:
```
conky: X Error: type 0 Display b5e73620 XID 1302 serial 97 error_code 10 request_code 2 minor_code 0 other Display: b5e73620
```
There are instructions [1] to resolve/workaround it, but we clearly do not have
a pressing need for conky to begin with.
[1] https://github.com/brndnmtthws/conky/issues/1443#issuecomment-1557793718
[ci:skip-build]: already built successfully in CI
Since the modules are going to be installed into the initfs, it makes
sense to use a more verbose naming for the file. Otherwise there's the
risk of getting confused with other type of module files that exist in
device packages.
Fixes 65be0d7e81
GR5 is for international markets, and it's also kiwi.
The existing pmaports, lk2nd and kernel works can be used directly
without problems.
There is nothing different found yet. The 2 phones seem to be identical
except that GR5 is not branded as Honor series and it has no Honor logo
on the chassis.
The OMAP 3430 in the Nokia N900 is a uniprocessor SoC, so disable SMP via
kernel command line. This appears to alleviate the ongoing kernel crashes
affecting the Nokia N900 in pmOS.
[ci:skip-build]: already built successfully in CI
Updated the kernel to version 6.4.7 and added fixes for the speaker on
xiaomi-daisy and xiaomi-tissot.
Also changed the aport to use tags instead of commit hashes.
Added CONFIG_GPIO_SYSFS, this is required for nokia-modem module
GPIO_SYSFS depends on EXPERT which in turn sets DEBUG*
[ci:skip-build]: already built successfully in CI
The Pixel 3a uses the SDM845 SoC package but now needs UCM
configuration. Add a fork of it (unless the configuration can be added
to the SDM845 repository).
The ADSP needs this firmware, otherwise audio bringup will fail. It
wasn't added with initial ADSP support, so add it now.
Also remove execute permissions from the installed firmware.
Add a cargo wrapper which appends a --target argument to the command
line. This makes cargo pass the --target argument to rustc for crates
being built for the target architecture, even if the target is the same
as the host. It will omit the --target argument for build scripts and
crates used in macros.
Check for this --target argument in the rustc wrapper and adjust the
library paths depending on its presence. The fallback that runs rustc
under qemu is no longer needed because macros are now built for the
native architecture and can be loaded into the native compiler without
any problems.
Also check if the arguments passed to rustc are "-vV". If this is the
case, we still need to fall back to the target rustc because the native
rustc will return the wrong architecture. If the wrong host architecture
is passed to a build script, it might try to look for a cross-compiler
or do something else that doesn't work.
[ci:skip-build]: already built successfully in CI
the 6.3 kernel for this device added edt-ft5x06, but it was dropped when
upgraded to 6.4, so this reverts back to the focaltech driver so that
the touchscreen will work again in the initramfs
[ci:skip-build] already built successfully in CI
I forgot to change this before merging. Commit remains the same, so
package itself shouldn't change. Thus:
[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
- specify offset to embed the u-boot
- change partitions where to flash the kernel and rootfs
- add dependency on mainline u-boot that supports extlinux.conf boot records
[ci:skip-build] already built successfully in CI
This old package had a pre-deinstall script to remove the necessary Sxmo
daemons. We move those daemon management to the -dwm and -sway dedicated
postmarketos packages.
The problem is that apk can eventually install/upgrade the -dwm or -sway
package before removing sxmo-common. This cause a deactivation of the
daemons.
To prevent this, we add back an empty sxmo-common to take place of the
old one. This one does not contain the deinstall scripts. We will
remove this in two stable release.
Since linux 6.4.0 the SDM845 kernel uses compressed kernel modules, we
need to kmod version of modprobe to handle loading these, so depend on
it.
[ci:skip-build] already built
after almost 3 years, I got my device not starting any UI, even console
figured out that framebuffer console activation fixed it
also enabled external storage, so i can install pmOS on sdcard, without fastboot 800 MB restrictions. nice
[ci:skip-build]: already built successfully in CI
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
ODROID HC2 boards are out-of-use by the maintainer.
Move to testing and remove maintainer.
[ci:skip-build] already built successfully in CI
[ci:skip-vercheck]
1. Move all configs from /etc/NetworkManager/conf.d to
/usr/lib/NetworkManager/conf.d since the latter is more appropriate for
distribution-provided config files. In particular this means apk will
update them when the package file is changed rather than creating
`.apk-new` files. If a user wants to override such a file, they can create
a file with the same name under /etc/NetworkManager/conf.d
2. Move all dispatcher scripts from /etc/NetworkManager/dispatcher.d to
/usr/lib/NetworkManager/dispatcher.d for the same reason.
3. Rename all configs to have a "50-" prefix so that users can add their own
"99-" overrides with a guarantee that they'll be processed after
distribution-provided configs.
4. Rename dispatcher scripts to have a "50-" prefix instead of "85-" and "99-"
since they're distribution-provided files.
5. Move 50-tethering.conf from the base-ui package to
the base-ui-networkmanager package.
There are also some device packages that put config files without a numeric
prefix in /etc/NetworkManager/conf.d . This MR doesn't change those.
[ci:skip-build] already built successfully in CI
Configure NetworkManager to randomize the MAC address during WLAN scans
and of WLAN and Ethernet ifaces per connection. This reduces the
possible tracking that might occur based on MAC addresses with WiFi
hotspots. This matches the behavior of Android: it uses a random MAC
address during a WLAN scan and a random one per connection.
[ci:skip-build]: already built successfully in CI
Make it possible to load modules from the file installed by devicepkg-dev,
that will be there when extra modules are needed. This is coded in a
backwards-compatible way, so that it can be independent of the main modules
MR.
The code changes create a new function which takes a list of modules
and possibly a file (that should contain a list of modules too). The
idea is to be able to support also loading modules for initramfs-extra
in the future, and having a similar file would be more convenient than
extracting all the modules each time. In addition, the "[ -d /lib/modules]"
check has been removed. If there's no modules directory, as all
modules might be built-in, modprobe will fail, but that will not be
fatal. This will most likely only exclusively happen in some android
downstream kernel, so it should not be a big concern.
Since we've now finally removed telnetd from the main initramfs but we
still need telnetd for the debug-shell, add it to the files for that
hook.
Also make sure the list of files is sorted.
This appears to be an ancient leftover from the telnet-based FDE
unlocking mechanism that has been present many many years ago.
But since this was removed a while ago, it's time to also finally remove
telnetd from the initramfs.
When rebuilding this package it seems the checksum doesn't match
anymore because the repository was moved to a different name and
therefore github changes the resulting tarball. Update the URLs in the
APKBUILD to follow this redirect.
[ci:skip-vercheck] # just APKBUILD style changes for some packages
[ci:skip-build]: already built successfully in CI
Nvidia Tegra devices have APX mode which allows to flash/debrick
a device even with broken bootloader. It also allows to sideload
bootloader which is useful when porting a new bootloader.
Some devices have a key combination to enter this mode, some devices
don't have one. This hook alters two Tegra PMC registers which
causes device to enter APX mode. It works on the most devices
including some of those that don't have a key combination for APX.
Usage:
pmbootstrap initfs hook_add apx
pmbootstrap flasher boot
[ci:skip-build]: already built successfully in CI
The ovos package is now available in Alpine for aarch64 too. Enabling
the package for aarch64 again fixes the currently failing bpo images for
master:pine64-rockpro64:plasma-bigscreen.
[ci:skip-vercheck]: modifying arches only
[ci:skip-build]: already built successfully in CI
* modem-related modules seem partly responsible for recent l3 firewall
timeouts and kernel crashes.
* rx51-battery can be used to get battery design capacity, but not required
for general running of the system blacklist other
* modules that can impact power consumption on the N900
Completely disabling the modules in kernel config is unnecessary, since they
are all useful for some users
[ci:skip-build]: already built successfully in CI
The N900 volume keys were configured to produce F7 and F8 in Maemo Fremantle.
Set them to normal volume keys to restore expected behavior
[ci:skip-build]: Already built successfully in CI
From f0f2cad36cd4796426ce1c25a6cec7c70a56741e Mon Sep 17 00:00:00 2001
From 430c701a3cefbe09a9c7c8a2f5bbe957f9b2ecb2 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Thu, 30 Jun 2022 16:44:51 +0000
Subject: [PATCH 29/33] libstdc++: do not throw exceptions for non-C locales on
Subject: [PATCH 29/35] libstdc++: do not throw exceptions for non-C locales on
musl targets
---
Loaded 100 of 2072 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.