This adds a new subpackage that installs dependencies and configures the
smartcard reader on the librem 5. Some setup is required before this
will work (e.g. upgrading reader firmware), the L5 wiki page will have
this information.
The pcsc init script was forked into this package to allow for powering
on the reader *before* the service started. Doing this in a separate
init script would have caused the reader to power on regardless of
whether the pcsc service was set to start, which is not desirable since
it should *only* be powered on when pcsc is starting
Purism has changed the kernel name they used, so that's reflected in the
apkbuild.
This kernel includes patches for renaming the audio device, and requires
a corresponding upgrade to the device package to bring in the new ucm2
config changes for that.
There is already samsung-a3ulte in community, and the devices actually
share the same kernel, device tree, and basically everything except
firmware. We just need separate firmware packages because Samsung uses
different secure boot certificates on a3lte and a3ulte.
They also share the same wiki page which suggests installation using
the pre-built images now, so having pre-built images only for
samsung-a3ulte is quite confusing for users.
The situation is similar as for samsung-a5ulte and samsung-a5lte
which also are both in community already.
According to Purism, the imx8mq-librem5.dtb alias is going away soon,
and we should be using the -r2 dtb. The -r2 dtb (which represents
Birch/Chestnut L5 variants) is most compatible, it'll boot on later
variants. dtbs for later L5 devices won't work on older devices.
- Upgrade librem5-base to v33
- Include the haptic vibration driver in initfs for supporting osk-sdl's
haptic feedback feature
- remove gps udev rule in pmaports in favor of using rule from
librem5-base
- install modem audio udev rule from librem5-base
- add openrc service for putting device into 'ship mode' on shutdown
(prevents battery from slowly draining)
- include Evergreen/r4 dtb in /boot
- Fix audio with port of ucm config to ucm2 (patch submitted upstream
here: https://source.puri.sm/Librem5/librem5-base/-/merge_requests/214)
The modprobe.conf is not necessary on those devices because they already
load the panel module using deviceinfo_modules_initfs. Let's skip the
modprobe.conf in that case so we don't need to add all panels in two places.
Upstream changelog:
868f3eb852
Suspend is also disabled in the kconfig, since it is not
supported/working on this device
[ci:skip-build]: already built successfully in CI
After pulseaudio 14.0 was released, audio on the pinephone was broken.
This applies the relevant config from here to fix it:
c23f92aa46
[ci:skip-build]: already built successfully in CI
New upstream ALSA/PulseAudio release, new UCM regressions - of course!
Introduce some new hacks to make the ALSA UCM configurations work again.
This fixes weird "Combination of Speaker,Primary Microphone" outputs
appearing in the PulseAudio mixer.
And while we're at it, some minor improvements/additions:
- Default to Speaker/PrimaryMic instead of Headphones/Headset
I believe this is just a workaround until headphones detection
works properly.
- Add UCM configurations for oppo-a51f and lenovo-a6010
Upstream keeps making breaking changes in patch releases.
Let's fork alsa-ucm-conf entirely for now instead of just patching
in some files to ensure that these files don't break every few months.
This fixes audio on MSM8916 devices when not using the modem.
This subpackage was removed when a proper fix for suspend was merged,
however apk doesn't know to purge this subpackage, so the old elogind
hook workaround stuck around. This workaround could probably be removed
once we're sure all folks on edge have installed this upgraded package
with the 'provides'...
- re-enable console suspend, which seems to be broken with elogind when
suspending (kernel gets hung up indefinitely in vt_waitactive)
- add a suspend hook to work around the musb driver not allowing the
device to suspend
Based on my testing, this option seems to prevent suspending via
elogind (using `loginctl suspend`). When console suspend is disabled,
the kernel gets hung up in the call to vt_waitactive, and elogind times
out trying to suspend.
This new version:
- Upgrades device config from upstream to v25
- Fixes a problem using modesetting driver on Xorg (lightdm
was broken because it now uses Xorg)
- Override GDK to use GLES (change from upstream Purism)
Actually the display has been working in initramfs since MR 1261
(device-bq-paella: enable display and touchscreen on boot).
We should make it explicit in deviceinfo.
This Patch is needed, because in the kernel the audio from the cpu to the headset gets turned around. We need to turn this around again.
Please revert this if there is a fixed kernel.
This adds a Finnish/Swedish key map for the Nokia n900.
The same keymap is used for Finnish and Swedish.
This makes the keyboard work in the console. To fix the
XkbLayout other changes are needed to pmbootstrap.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Alpine's abuild is soon going to complain if an APKBUILD has more than
one "Maintainer:" listed. Work around it by renaming the additional
maintainers to "Co-Maintainer:". While at it, move the devicepkg reference
link to the top in device-xiaomi-santoni for consistency.
In postmarketOS, we require at least two maintainers for devices in
main, therefore it does not make sense to drop additional maintainers
from the file.
In Alpine, this change was made because pkgs.alpinelinux.org apparently
can't handle more than one maintainer. I looked into it, and it would
require a database change to add it there, so it does not seem worth the
effort. I also thought about extending abuild to add an environment
variable to skip the check, but then the package would not build with
plain abuild without using the env var.
Related: dd4cd9d606
[ci:skip-build] [ci:skip-vercheck]
Package got renamed and "provides" wasn't added, so right now
`apk upgrade -a` with firmware-rtl8723bt installed results in
`ERROR: firmware-pine64-rtl8723bt-0_git20181104-r0: trying to overwrite lib/firmware/rtl_bt/rtl8723bs_config-pine64.bin owned by firmware-rtl8723bt-0_git20181104-r0.`
Add `replaces="firmware-rtl8723bt"` so `apk` prefers this package.
[ci:skip-build]: already built successfully in CI
Right now we have all firmware packages under firmware/*.
This is problematic for mainly two reasons:
- It's not immediately clear which firmware packages we need to keep
when forking a new stable branch. (Where we delete testing devices
at the moment...) We might end up deleting firmware packages that
are actually used by one of the devices in community.
- When backporting devices to the stable we cannot just cherry-pick
the commit that moved the device to community (since it does not
contain the firmware package). Instead we need to cherry-pick
earlier commits as well, which may touch a lot of deleted files
in the testing directory.
Let's make this consistent by also placing the firmware packages in
the device/* directory. We already have the common firmware- prefix
to distinguish them from device/kernel packages, which are already
both under the device/* directory.
For most firmware packages we use a vendor- prefix to make it clear
who has provided the firmware. The firmware-rtl8723bt package is only
used for Pine64 devices and actually contains configs that are specific
to Pine64 hardware (e.g. rtl8723bs_config-pine64.bin).
Let's rename it to firmware-pine64-rtl8723bt to make this more clear.
Also cleanup the APKBUILD a bit and provide the LICENSE file in a -doc
subpackage so we can legally redistribute that firmware.
Newer Qualcomm SoCs (e.g. SDM845. MSM8953) seem to use a different
method to talk to the modem. There are no longer separate rpmsg/SMD
channels for QMI messags, instead the modem is also available through QRTR.
On these newer SoCs, installing msm-modem-mainline is pointless,
because the created /dev/modem device will not actually allow
communicating with the modem. However, you still need the part from
the base package (msm-modem), which installs+enables rmtfs.
To avoid confusion, rename the msm-modem-mainline subpackage to
msm-modem-rpmsg. Install only "msm-modem" on SDM845 because that
likely does not allow communication with the modem through RPMSG
anyway.
This upgrades the librem5-base config used to v21:
- better headphone support/detection
- enable runtime PM for usb/SD interface
This also removes the modemmanager subpackage, the udev rule that was
installed by that package is now in modemmanager in Alpine.
This upgrade includes:
1) enabling fb in deviceinfo: This was previously disabled for
debugging purposes, but can be re-enabled now so we get the
awesome postmarketOS splash screen!
2) fixing GPS, kinda: the device has changed, so this fixes the gpsd
config to use the correct device, and includes a udev rule to
make sure the device is owned by a group that gpsd can use
3) usbnet working with configfs
4) disables getty on /dev/ttyGS0, this was usb serial but isn't
configured now that this uses configfs
5) uses Mesa from Alpine, instead of mesa-git in pmaports. Upstream
Mesa has support for the vivante gpu, and no longer need to rely
on mesa master branch for support.
6) fix pulseaudio detection of profiles
7) update the librem5-base version used, includes a udev rule to
configure DDR freq governor as 'powersave' (reduces power, and
how much heat this thing puts out)
fixes#524fixes#526
Newer versions of alsa-lib now require a top-level ALSA UCM
configuration (/usr/share/alsa/ucm2/ucm.conf):
ALSA lib parser.c:2159:(load_toplevel_config) Unable to find the top-level configuration file '/usr/share/alsa/ucm2/ucm.conf'.
ALSA lib main.c:983:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
alsaucm: error failed to open sound card hw:0: No such file or directory
The upstream ALSA UCM configurations are provided by Alpine's
"alsa-ucm-conf" package, so make sure to install it additionally.
bq-paella has an external speaker amplifier connected to the right
channel of the headphones output. Add an extra UCM configuration
to handle this properly.
I cannot test on most of them (at the moment), but I was involved
in porting all of them so I could "guess" certain changes at least.
[ci:skip-vercheck]: just moved and some maintainers
a5lte and a5ulte are almost identical hardware-wise, the separate
package is mainly necessary because they use different firmware
signatures.
Alexey Min agreed to do some testing occasionally :)
At the moment we have Contributor: lines on some packages (but not all of them),
but often they don't represent the actual contributors to the package very well.
E.g. when we added them retroactively to the device packages we only added
the initial contributor (which isn't necessarily the person
who made most of the work for a device...)
The Git history is the most representative source for figuring out
who contributed to a package, so there is no reason to duplicate that
into the APKBUILD.
[skip ci]: way too many packages