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.
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
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.
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.
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. 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.
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
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-..."
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.
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
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
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>
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
[ci:skip-vercheck] no feature changes
Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
[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.
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
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>
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
- 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
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
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.
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.
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
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
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
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.
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.
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.
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.
- 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
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
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]
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
Remove all KII Pro patches as they got merged into 6.4. Also remove V=1
as it's now unnecessary.
Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
[ci:skip-build]: already built successfully in CI
Note that only the "linux-edge" kernel is used, and it's likely that
this kernel is still missing some functionality. I'd like to avoid using
a downstream/forked kernel if at all possible...
I chose to use gummiboot for now, since it's really simple to configure.
This can be moved to a more "standard" EFI boot mechanism once pmOS
figures that out.
[ci:skip-build]: already built successfully in CI
This sports:
- PM8953 GPIO enablement
- missing properties for motorola-aliIt
- re-generated panels
- Xiaomi Redmi S2/Y2 (xiaomi-ysl) support
- PM8953 thermal zone enablement
- enable modem on Fairphone FP3
[ci:skip-build]: already built successfully in CI
With the new pmbootstrap flasher flash_lk2nd action we should add the
lk2nd package to the device package dependencies. Add it so the flash
works nicely.
[ci:skip-build]: already built successfully in CI
postmarketos-mkinitfs!30 and specifically postmarketos-mkinitfs@6fdc8937,
changes expected hooks location from /etc/postmarketos-mkinitfs/hooks
to /etc/mkinitfs/hooks, and another commit pushed later adds
/usr/share/mkinitfs/hooks to expected directories. This more or less
breaks new pmOS installs done by running pmbootstrap install on edge branch,
which pull current (2023-06-17T16:57+02:00) device-* packages from
https://mirror.postmarketos.org/postmarketos/master.
Many of those packages which included initfs-hook.sh no longer work in that
case, because they had those hooks in old location, which isn't used
by latest postmarketos-mkinitfs.
Rebuilding the affected packages solves the issue.
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Apparently the ath6kl FW can hang at times, so this enables automatic
recovery. This should make wifi on tablets that use ath6kl a little more
reliable.
Otherwise there is a 3 min delay until we can ssh into the device.
Same issue as on samsung-crownlte, where rom4nik investigated and
found the solution [1].
Note that the display does not work for dreamlte and dream2lte at the
moment, the device gets stuck on the pmos boot splash screen. This
issue is tracked in
https://gitlab.com/postmarketOS/pmaports/-/issues/2102.
[1] https://gitlab.com/postmarketOS/pmaports/-/merge_requests/4176
[ci:skip-build] already built successfully in CI
- ath6kl fw is used by some tablets (e.g. baytrail)
- Add support for i2c touchscreens in initramfs, which enables FDE
support for tablets that have i2c touchscreens.
- Drop phosh subpackage / phoc.ini. Forcing 1X scaling is wrong on some
tablets... Phoc/phosh is capable of detecting screen scaling, if it's
wrong on a tablet then a patch should be submitted upstream to fix it.
[ci:skip-build] already built successfully in CI
Some tablets have eMMC, which pmOS can be installed to. These modules
are needed to detect/mount the boot and rootfs partitions.
This also adds i915, which sets up the display and allows the splash
screen / console to work on boot.
This allows the user (upon loading the module) to handle non-native
binaries transparently - after registering the magic number and the
command for handling execution, the programs can be ran as if compiled
for the host architecture. (Similarly how the shebang line allows
the interpreter to be specified for scirpts).
Common use-cases include
* Using qemu user-space emulation to run
x86 binaries on ARM (or the other way around), or simply running
64-bit binaries on 32-bit architectures.
* Allow Java programs to be run transparently.
* Creating cross-architecture chroots (for cross-compilation e.g.)
It doesn't build currently (issue 2146) and also it's not used by any
device package currently (with other ports we support selecting between
mainline and downstream kernel in some cases, but not here).
If it's useful, the build can be fixed and it can be added back in a
future patch.