Disable debug options and SMP, and remove support for other platforms.
Unixbench reports a speedup for process creation and syscalls, from
Process Creation 126.0 1043.8 82.8
System Call Overhead 15000.0 235497.3 157.0
to
Process Creation 126.0 1826.7 145.0
System Call Overhead 15000.0 421030.2 280.7
Updated the kernel to the latest version from LineageOS [1] (branch
`cm-14.1`), copied their configuration file and updated it according
to `pmbootstrap kconfig check`. Previous kernel was from `cm-12.1`
branch.
Fixed firmware package. Switched firmware source to
LineageOS/TheMuppets and install only the Wi-Fi firmware, but into the
correct directory. Previously all available firmware was simply copied
into wrong directories.
[1] https://github.com/LineageOS/android_kernel_htc_msm8960
[ci:skip-build] already built successfully in CI
This device runs on linux-postmarketos-rockchip which at the moment of
writing is 5.13.0 with (only) 6 patches applied, so close-to mainline.
I personally use 2 of these devices with postmarketOS installed daily as
my homeserver setup and it has worked really well. It's also a good
target to run Plasma Bigscreen on as a TV setupbox
When kernel variants were renamed in
69cd6ff843
these dtb vars were forgotten, making it impossible to boot a kernel
build with `pmbootstrap build linux-postmarketos-exynos4`, no dtb is
appended to the zImage and we get stuck on samsungs boot logo.
Merged in mainline since 5.9-rc2-next-grate:
- all previously applied patches specific for Tegra and Nexus 7
New features, not merged yet in mainline (only in -next-grate):
- improved power management
- implemented USB OTG
New configuration options
- enable F2FS support (incl. compression), which leads to prolonging
eMMC life
Tested on E1565.
Signed-off-by: David Heidelberg <david@ixit.cz>
There's a generic udev rule to set group ownership of backlights to
'video', but it only runs on the ADD action, which seems to be too
late(?) since the backlight device is never owned by 'video' on boot.
This rule will run on CHANGE too, which might be overkill but seems to
get the job done. It's now possible to set the backlight brightness on
the PBP as a normal user.
Now that CPU scaling is enabled, there is no need to disable the big cluster,
which was hurting performance before by staying at 19.2 MHz. Remove maxcpus=2
from the command line arguments.
[ci:skip-build] Already built successfully on CI
Upgrade to 5.13.0 mainline and disable staging drivers.
Staging drivers are not used by this device and cause
build failures [1].
[1] https://github.com/tobetter/linux/issues/29
[ci:skip-build]: already built successfully in CI
Support the downstream kernel and a close-to-mainline fork. Waveform
data for the eInk display and the Wi-Fi driver are not included yet.
Everything else should work.
The update to Linux v5.13.1 also includes updating the haptics driver
to the latest one posted to the mailing lists, which was renamed to
qcom-spmi-haptics. Rename the udev rule for this driver and update the
driver name in it.
[ci:skip-build] already built successfully in CI
* Add the fusb302 module in initfs for the keyboard and touchpad
* Add cmdline params for improving stability
fw_devlink was switched on by default in kernel 5.13, and is rumored to
have issues.
The others might improve nvme stability.
* Disable wifi powersave
* Clean up modules in the deviceinfo
The ODROID HC2 device must have its boot partition
on a microSD card while the rootfs can be on an external HDD.
Provide a script to transfer the rootfs and update the U-boot script.
[ci:skip-build] already built successfully in CI
- Use common firmware package for Samsung zero devices also for zerofltexx
- Fix Wifi firmware paths
- Fix display colors (in sxmo; weston seemed OK before)
- Fix "alignment fault" error on ALSA sound output by compiler flag.
[ci:skip-build] already built successfully in CI
Now that there is a "unmaintained" category, readd huawei-kiwi
downstream (which got replaced in !1826 (merged)).
[ci:skip-build] already built successfully in CI
Start NetworkManager on boot to autoconfigure network devices plugged
into the USB port as well.
Drop /etc/network/interfaces to allow NetworkManager manage all
interfaces.
[ci:skip-build] already built successfully in CI
Based on Minecrell work at:
https://gitlab.com/Minecrell/pmaports/-/tree/alcatel-idol347-downstream
adapted smb1360 shared patches for idol347 downstream tree,
and added his idol347-like-mainline.patch gist which changes downstream DT
to mimic sane mainline settings for easy battery driver dump comparison.
[ci:ignore-count]
[ci:skip-vercheck] needed for the postmarketos-ui-* packages in this
series
[ci:skip-build] already built ui-* packages in CI, and device pacakges
are just trivial deviceinfo change (manually built some just to verify)
Some msm8916 devices, primarily with two sim slots, require slot
to be selected. Install uim-selection script for all msm8916 devices
with modem enabled.
[ci:skip-build] already built successfully in CI
This adds a very basic openrc runscript that sets the power state on
/dev/nvme0 to level 2, which seems(?) to be the lowest operational power
state based on some cursory internet searching (and querying the nvme
drives I have, Samsung EVO and Pro)
The drive path is hard coded, but could be made configurable later on. I
basically wanted to get something in pmaports quickly, since this power
stuff is a major source of instability for me and probably others too
who add nvme drives to this device.
1 does fit the lock screen better, but 1.2 works better overall.
Some things are tiny with 1. 1.2 fits the lock screen decently and
still provides decently sized user interface elements.
Downstream kernel made by Corellium which enables the iPhone 7 to boot.
This is the continuation of my work for a PostmarketOS port based on
@MartijnBraam kernel and devices packages.
PogoOS by the Checkra1n team is used to boot the Linux kernel. Further
instructions will be available in the PostmarketOS Wiki page.
[ci:skip-build] already built successfully in CI
I sometimes test DB410c via mainline U-Boot, which wants to have the
DTB in the "second" part of the Android boot image. Otherwise it works
fine. Include it there additionally to simplify this.
[ci:skip-build] already built successfully in CI
On top of the firmware we already have, we also need device-specific
modem firmware. Use script from firmware-motorola-potter(credit goes to
Sireesh Kodali). Also imitate the logic in firmware-motorola-potter.
Having RMTFS at runlevel boot makes it start the modem too fast and causes
crashes. Move it to runlevel default with a post-install.
[ci:skip-build] already built successfully in CI
The Huawei Ascend G7 is based on Qualcomm MSM8916 and therefore makes
use of linux-postmarketos-qcom-msm8916 as a close-to-mainline kernel.
Initially supported features:
- USB
- Storage (eMMC, SD card)
- Display
- Touchscreen, Buttons, Vibrator
- Notification LED
- WiFi/Bluetooth
- Accelerometer, Magnetometer, Proximity
- Audio
- NFC
The modem needs more work to work around strange Huawei firmware mess.
Note that the Huawei shipped an outdated firmware version that does
not support booting aarch64 kernels (like used in this device port).
However, the device does not verify firmware signatures so it is
possible to flash firmware from other devices. This is mostly
described in the wiki, but unfortunately it's quite complex.
However, the aarch64 version of linux-postmarketos-qcom-msm8916
receives much more testing so I would like to avoid adding more
armv7 MSM8916 devices unless absolutely necessary.
For pointercal:
Screen dimension 720x1280
Touchscreen dimension (reported by evtest) 1100x1900
720/1100*65536 = ~42896
1280/1900*65536 = ~44151
Offset doesn't seem to be needed.
[ci:skip-build] already built successfully in CI
My engineering prototype 1 Gb pinetab is close to unusable,
so I can't use it to test pmOS. Also, PINE64 is no longer
selling these devices, and the ones that were sent previously
to some developers use different display panel anyway.
Martijn Braam and Dylan Van Assche agreed to maintain it.
[skip ci]
Based on downstream Android 7.0 kernel source from Huawei.
02_fix_undeclared_AUD_INET.patch is from huawei-alice
USB Networking, Touchscreen, USB OTG and Display work in xfce4.
Wifi just needs firmware, audio is broken.
Other parts haven't been tested yet.
The close-to-mainline kernel removed the generic-dsi driver in favor of
normal panel drivers. Also the panel drivers are now built in. Reflect that.
Also reflect the changes of firmware-motorola-ocean in
device-motorola-ocean_nonfree-firmware.
[ci:skip-build] Already built on CI in MR
Workaround for https://source.puri.sm/Librem5/linux-next/-/issues/303.
It seems worth sacrificing some power savings for a modem that won't
disappear, at least until the above issue is fixed.
[ci:skip-build]: already built successfully in CI
Headset jack events emit 2 events: 'Headset Microphone Jack'
and 'Headphone Jack'. These were properly detected before,
but not headphone jack events only: 'Headphone Jack'.
This change allows to detect headphone jack events as well
and act on these events by setting the headphones as
default audio output while keeping the internal
microphone as audio input. For headsets,
the microphone is switched to the headset microphone as well.
- Add SLPI to nonfree_firmware description
- Add touchscreen and fuel gauge modules to the initramfs in preparation for
osk-sdl and charging-sdl (or any new alternative) support
- Add pointercal file for osk-sdl
[ci:skip-vercheck]
Set package dependency "swclock-offset" to "soc-qcom-msm8916" and
"soc-qcom-sdm845".
These SoC's have a read-only real-time clock (RTC). The package
"swclock-offset" keeps an offset between the RTC and the system time.
Port based on an unofficial LineageOS port
from https://www.los-legacy.de/17.1/zerofltexx, using kernel from
https://github.com/Exynos7420/android_kernel_samsung_exynos7420/
What works:
- Kernel boots
- Display and touch input (tested with Weston)
- USB networking
- Wifi
For now only including Wifi drivers, as I wasn't yet able to
successfully test audio and camera subsystems (but I intentionally left
these firmware files commented out in the APKBUILD file).
[ci:skip-build]: already built successfully in CI
Add the missing depends to add the GPU firmware to the initramfs
so that osk-sdl works properly, as well as the haptics driver.
Also make all logs go to UART, this will clean up the splash screen and
let developers with UART access debug the boot process.
[ci:skip-build] This MR was already built on CI
Add the missing depends for our soc package alsa ucm configs. Also add
the missing depends to add the GPU firmware to the initramfs so that
osk-sdl works properly!
Also enable logs and point them to UART, this will clean up the splash
screen and let any developers with UART attached to debug the boot
process.
AsteroidOS uses this config file to determine how the UI should look
(e.g. a round or a square screen), and if some things like Wi-Fi are
supported. Upstream auto generates this config file, but it seems so
simple and small that I think it's better for us to just ship the file
next to the APKBUILD
AsteroidOS uses this config file to determine how the UI should look
(e.g. a round or a square screen), and if some things like Wi-Fi are
supported. Upstream auto generates this config file, but it seems so
simple and small that I think it's better for us to just ship the file
next to the APKBUILD
The PMIC AXP803 sends an interrupt to the A64 CPU when the
battery is critical low. This wakes up the tablet at ~10%
battery level, but UPower wasn't configured to add upon
this interrupt as the action level was way lower.
Therefore, the PMIC performed a hard shutdown when the
battery level dropped further, which may cause data loss.
The PMIC AXP803 sends an interrupt to the A64 CPU when the
battery is critical low. This wakes up the phone at ~10%
battery level, but UPower wasn't configured to add upon
this interrupt as the action level was way lower.
Therefore, the PMIC performed a hard shutdown when the
battery level dropped further, which may cause data loss.
TF201 nvram was updated since previous did not work on some devices.
Added support for TF101, TF300TG and TF300TL.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Gummiboot was dropped from Alpine. Switch to grub, which is what we use
for tablet-x86uefi too.
In contrary to tablet-x86uefi, run the grub-mkimage command directly
inside the device package:
* This avoids creating another confusing grub-x86 like package (looks
like the x86 version of alpine's grub package, as it's the case with
grub-efi-x86, but actually it is just the result of grub-mkimage).
* In contrary to grub-efi-x86, the resulting efi file is not shared
across several devices.
* It's consistent with uboot mkimage commands, which we also run in
device packages.
Related: 398b7aef0b
We used to have it at 40% and just bumped it to 100%. With 100%, I can
hear static noise in the headphones when using the PinePhone (pmOS CE)
in a silent room, even if I turn the volume down in Pulseaudio (e.g.
18%-30% in Phosh). This was not the case when we had it at 40%.
70% seems to be the sweet spot, where no static noise can be heard when
using headphones in a silent room, but where volume can still be turned
up to a very high level if necessary.
Ported succesfully to armv7. Everything that worked on armhf
works on armv7 as well: touch, wifi, usb networking etc.
SWRast (gallium) was not enabled but is needed because the device
does not support 3D acceleration yet.
Upstream changelog:
ca736e844a
Patches rebased, and includes some new fixes:
arm64-dts-imx8mq-librem5.dtsi-adjust-the-usdhc-bus-s.patch
- Being tested by Purism as well, has shown some promise improving GPS
reliability
arm64-dts-imx8mq-disable-SuperSpeed-instances-in-par.patch
- Fixes issue with modem disappearing
This is required for kernels earlier than 4.7 for bwrap to work for
normal users, and therefore for gnome web (epiphany) and flatpak.
[ci:skip-build] [ci:ignore-count]
Upstream changelog:
4e76143d2e
Note, previous wifi driver behavior is not changed. The redpine module
still expects the fw to be in /lib/firmware on boot, and won't use the
fw on the card.. Theoretically this kernel version now supports both
loading fw from rootfs into ram AND using fw burned on the chip, but
since I haven't tested that well yet I'm leaving this as-is.
[ci:skip-build]: already built successfully in CI
uboot-tools is provided by u-boot-tools but sometimes apk still gets
confused. This change prevents errors such as
pine64-pinephone:~$ sudo apk upgrade --verbose
WARNING: Failed to perform initial self-upgrade, continuing with full upgrade.
ERROR: unable to select packages:
uboot-tools (virtual):
provided by: u-boot-tools
required by: device-pine64-pinephone-0.25-r1[uboot-tools]
[ci:ignore-count]
[ci:skip-build]: already built in CI successfully
The AP6359SA is a BCM4359 SDIO-based Wi-Fi/Bluetooth module that PINE64
sells specifically for the ROCKPro64 device. This commit starts a
firmware package to support it specifically, while others can later add
firmware for other modules sold for the device. Also add this package as
a nonfree subpackage dependency in the ROCKPro64 device APKBUILD.
I was unable to find a suitable license for the firmware blobs, so until
we find a suitable repository containing all of the required files by
the module with a license included, or contact the vendor directly,
let's use LibreELEC's repository without a license for now.
[ci:skip-build]: already built successfully in CI
mce is used by both Glacier and Asteroid to do all kind of power
management related stuff, including blanking the display. However,
obviously we don't ever want to blank the display on Qemu
Upstream changelog:
6dcba4b588
The redpine interrupt handler patch has been dropped since it's now
merged in Purism's tree.
[ci:skip-build]: already built successfully in CI
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the boot
partition. This allows the splash screen and osk-sdl to work correctly.
Make needed deviceinfo changes to support osk-sdl, add "quiet" to the
cmdline and bump the package version to 1.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
[ci:skip-vercheck]
Make needed deviceinfo changes to support osk-sdl, add "quiet" to the
cmdline and bump the package version to 1.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Add a subpackage to ensure that GPU firmware is included in initramfs so
that osk-sdl can work.
[ci:skip-vercheck]
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
This device port is unmaintained: The mainline port (xiaomi-wt88047)
is preferred. This is only intended for testing, and was used to validate
the battery/charging driver as one example. Various patches are used
for the downstream kernel that expose helpful information for debugging.
[ci:skip-build]: already built successfully in CI
These are various debugging related patches that I have used over the time
when attempting to get new features working for the mainline kernel.
Given that the downstream kernel is just intended for debugging in this case,
it seems convenient to add them to pmaports so I don't need to go search for
them in case I need them again in the future.
[ci:skip-build] Already built on CI
Resize the partition when using a pre-built image. We didn't notice that
this was missing, because N900 images are new and we only tested from
pmbootstrap install --sdcard, which already uses the full SD card size.
modules-load.conf was completely unused by this package,
not installed anywhere. brcmfmac is loaded automatically anyway.
Sort values in sources= alphabetically
This is needed with the 5.11 kernel. Also adjust the vram & cma sizes
for all msm8974 devices.
The CMA size is 256MB as set in the kernel config.
VRAM is default 16MB although it is set to 192MB with a kernel patch;
but set it manually for all devices to make it possible to remove this
patch in the future - until we have IOMMU working.
still missing:
* audio
* lcd backlight control
* touchscreen driver
* front camera
* accelerometer mount fix (driver seem not to support mount-matrix)
* 3D acceleration
* HDMI support
This allows loading nonfree fw from rootfs (/lib/firmware), to work
around: https://source.puri.sm/Librem5/linux-next/-/issues/290
This change will break wifi unless the nonfree
firmware-siliconlabs-rs9116 package is installed.