Kernel file names will be generic (/boot/vmlinuz).
Release path still has the 'flavor' in it so that pmbootstrap can still
get a reference to which kernel package is installed
This replaces the mkinitfs script with a re-write (in Go). The
re-written mkinitfs will atomically replace the initfs in /boot, check
for free space before doing so, and try to do whatever it can to not
leave the system in an unbootable state by botching the initfs
creation/installation.
pmb:cross-native with go cross compiling doesn't work exactly, it makes
the correct binary, but on Alpine go uses -buildmode=pie which creates a
dynamic thing, and the interpreter is wrong (e.g. it it set to use the
host arch's interpreter, like /lib/ld-musl-x86_64 even though
GOARCH=arm64)
The init.sh script is no longer a template, "initramfs-extra" is used.
Fixes https://gitlab.com/postmarketOS/pmaports/-/issues/1019
fixes https://gitlab.com/postmarketOS/pmaports/-/issues/660
This tool is used by the new mkinitfs to finalize/install boot files.
It's based on the old mkinitfs_functions.sh, but includes some
improvements like verifying free space in target directory, and trying
to atomically mv files.
This fix was pending since before charging-sdl was deprecated and still
provides value should anyone wish to pickup and improve charging-sdl
again.
charging-sdl currently does not check for devices using mesa, even
though it supports it in the same way as osk-sdl. Check for msa support
and set SDL_VIDEODRIVER in that case.
Also fix the font path, as it was reading both keyboard-font and
keyboard-font-size from osk.conf.
Installing "onboard" onscreen keyboard and enabling autostart.
Option "Don't auto-show while external keyboards are connected" is
activated.
[ci:skip-build] already built successfully in CI
Changes:
- Kernel side support for ModemManager
- Picked upcoming patch series for 5.15 + fixes, theoretically
improving GPU perf
- Updated patch series from lists
- Enabled options needed to support WayDroid (network stuff maybe still
missing???)
- Fixes venus fw paths, firmware packages need to updated to support it
but this will enable HW video decoding!
- Cleanup the defconfigs
- Rebase on v5.14-rc7
- Upstreamed more patches
- Enable Jack detection kctls for msm8916 devices
- Probably many other things I forgot :)
Device changes:
- gt5 family:
- Added fuel-gauge support
- Added sensors (Accelerometer, Light)
- gt510 - wifi variant reworked to use multiple common layers
- gt510lte - Added support for LTE variant
- gt58 - New device
- gt58lte - Support for LTE variant
- Feature parity with gt510
- wingtech-wt88047 (Xioami Redmi 2):
- Add additional boe-nt35521s panel driver
- longcheer-l8150: Fix Jack detection
Disable the hostname management feature of NetworkManager. This isn't
useful for the postmarketOS use case, where we set one hostname in
/etc/hostname via pmbootstrap and want it to be used. (It makes more
sense for normal PCs, which may just have the hostname 'localhost' at
the end of the installation and then not be unique in the network.)
NetworkManager is supposed to only change the hostname if it is set to
localhost, however this detection does not work properly in
postmarketOS. I've skimmed through sources of elogind, NetworkManager
and OpenRC a bit and found that in OpenRC the definitive location to put
the hostname is /etc/hostname. The other path, /etc/conf.d/hostname, is
just a fallback. Experiments show that setting something in
/etc/conf.d/hostname does prevent NM from setting a hostname offered by
the DHCP server, but it's not clear to my why this happens. I suspect
elogind + dbus. Disabling this feature we don't need anyway seems like a
good approach to me without wasting too much time here.
Previously it was assumed that with the counter and the sleep 0.1 the
process would take about 10 seconds to complete. On newer devices with
tens or even hundreds of partitions going through all partitions already
takes a significant amount of time, so change the logic to measure the
time elapsed instead.
This fixes DNS when a system is connected to a pmOS device as a hotspot.
The rule is in the default set of firewall rules, instead of a
subpackage.. I think this is OK. I don't believe anything should be
listening on port 53 except when the hotspot is running...
This directory is specified by the XDG Base Directory specification
(https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html).
Quoting:
> User-specific executable files may be stored in $HOME/.local/bin.
> Distributions should ensure this directory shows up in the UNIX $PATH environment variable, at an appropriate place.
So let's actually do this. This way also binaries installed by e.g. Pip
or Cargo will be usable out-of-the-box rather than that the user has to
figure out why it's not appearing in their PATH.
plasma-nm-mobile is already a dep of plasma-phone-components
ofono is already a dep of plasma-phone-components
ofono-openrc already gets pulled in automatically through openrc and
ofono
networkmanager is already pulled in by plasma-nm-mobile
qt5-qtvirtualkeyboard has been replaced by maliit ages ago
[ci:skip-build] already built successfully in CI
The flavor string was naively parsed using sed by removing everything
before the first hyphen, this breaks for -rc kernels. Instead lets glob
/usr/share/kernel for the installed kernel flavor. This will also
prevent the kernel being flashed if the running kernel has a different
localversion than the updated one.
[ci:skip-build] already built successfully in CI
Allow users in group "input" to control the tm2-touchkey leds.
Additionally correcting the udev rule for disabling the tm2-touchkey leds by default.
[ci:skip-build] already built successfully in CI
Add ttyescape, a script and triggerhappy configuration to allow mobile device
users to access and use a shell without having to plug in to a computer.
One of the largest limitations with a mobile device is the lack of keyboard, for
mainstream OSs like Android and iOS, this is a non-issue as the whole OS stack
is built to automatically recover in case of a crash / hang, hiding the internal
state of affairs from users and making use of careful design to minimise the
impact. When bringing Linux to mobile, we carry not only the benefits of the
Linux desktop but also it's limitations. In the event that your desktop manager
goes haywire or hangs completely, or your graphics drivers get unhappy, the
ability to quickly jump to a tty and start killing bad behaving programs or
reset your display manager is one that most of us take for granted. But when
hit by similar errors on a mobile device there is no such recourse available,
users either have to reboot and hope that the issue doesn't occur again, or pull
out a laptop and pull up a shell (assuming ssh is enabled and the rndis
interface comes up).
ttyescape proposes to solve this issues by pieceing together several already
available tools, notably:
- triggerhappy, a tool used to perform actions when
certain buttons or key combinations are pressed with no dependencies on the
display manager in use.
- fbkeyboard, a framebuffer keyboard for tty's, it
renders on top of the current tty and uses the device touchscreen as input.
gzip results in a boot.img that's too big (over 8 MB) for e.g.
samsung-i9300, so let's replace it with something that produces
smaller kernels. With this, the entire boot.img is 6,3 MB (down
from 8MiB, or 8.5458944 MB) which leaves plenty of space on the
8 MB partition and prevents the recovery from being overwritten
when this kernel is flashed.
Tested and works on samsung-i9300.
[ci:skip-build] already built successfully in CI
This provides a mobile-friendly music player in the default
installation which is something that's currently lacking.
[ci:skip-vercheck]: _pmb_recommends change doesn't need pkgrel bump
The networkmanager hotspot needs to have DHCP input enabled on the wifi
interfaces so the temporary dnsmasq instance can work. The
networkmanager backend is also switched to the nftables one so it can
create the ad-hoc hotspot forwarding/masquerade table.
Proper fix for the monospace fonts seen when postmarketos-ondev is
installed without also installing osk-sdl. This doesn't happen anymore
with pmbootstrap install --ondev, because it will always pull in osk-sdl
again for other reasons. However, since postmarketos-ondev is using this
font, let's directly depend on it instead of having it pulled in as side
effect of also having osk-sdl installed.
And extend bootloader CMDLINE per default, giving us the option to
change the CMDLINE both via the kernel config and from samsung's
S-BOOT shell.
Note: the default console in exynos_defconfig (which this config is
based on) is ttySAC1, but all midas devices uses ttySAC2, so set it to
ttySAC2 instead. Also remove all other variables. They are not needed,
and (at least) root=/dev/ram0 seem to prevent us from booting pmos.
[ci:skip-build] already built successfully in CI
NymphCast is a FOSS Chromecast replacement (not a drop-in one though)
and allows you to "cast" audio and video to your device running the
nymphcast server. Plasma Bigscreen seems like an ideal use-case for this
so let's install and launch it by default. People can always uninstall
it anyways
This allows using lm_sensors to read temperature data on the pinebook
pro (and probably other devices too)
❯ sensors
gpu_thermal-virtual-0
Adapter: Virtual device
temp1: +41.1°C (crit = +95.0°C)
tcpm_source_psy_4_0022-i2c-4-22
Adapter: rk3x-i2c
in0: 5.00 V (min = +5.00 V, max = +5.00 V)
curr1: 2.50 A (max = +2.50 A)
cw2015_battery-i2c-4-62
Adapter: rk3x-i2c
in0: 4.24 V
curr1: 0.00 A
cpu_thermal-virtual-0
Adapter: Virtual device
temp1: +47.5°C (crit = +95.0°C)
nvme-pci-0100
Adapter: PCI adapter
Composite: +31.9°C (low = -273.1°C, high = +80.8°C)
(crit = +80.8°C)
Sensor 1: +31.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +37.9°C (low = -273.1°C, high = +65261.8°C)
[ci:skip-build] Already built on CI
5.13.5 had some rockchip-related fixes in the changelog, so I figured
why not upgrade to it.
These patches from Manjaro seem to be the bare minimum required to get
usb-c charging and device peripherial support working again (external
display still doesn't work)
[ci:skip-build] already built successfully in CI
llvm was left over from Martijn's efforts to reduce the kernel size
The drivers for external DP are enabled here, but all patches from
manjaro that deal with DP/typec alt mode, etc are dropped since they do
not solve anything on their own and may cause display instability
issues...
[ci:skip-build]: already built successfully in CI
prevent the creation of a fake NUMA node
saving a few CPU cycles each DRAM access:
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at ...
[ 0.000000] NUMA: NODE_DATA [mem 0xff9c2100-0xff9c3fff]
if you boot on QEMU make sure to review vCPU topology:
set socket to 1
This is needed to get ethernet working on most 64-bit sunxi boards.
Basically just synced with armv7 config a bit.
[ci:skip-build] already built successfully in CI
Install obex-capabilities and a modified DBus Service
for BlueZ's obexd when BlueZ OBEX support is installed.
UIs depending on BlueZ are now also depending on
bluez-obexd for OBEX support through various MRs at Alpine.
Anbox, nftables, and containers aren't set up for now because I'm not
sure how useful Anbox would be on devices using this SoC given that most
(all?) of them have around 1 GB of RAM, aren't very fast, and I have
heard that Anbox isn't very well-Asupported on ARMv7. As for nftables,
I don't want debug it at this time in case breaks something. Setting up
container support made the phone hang while booting, however that might
have been due to that I only booted the new kernel without getting the
new modules in the rootfs.
[ci:skip-build] already built successfully in CI
Pulseaudio is used by other graphical UIs to manage audio, so having it
installed for sway is useful for having audio working "out of the box"
[ci:skip-build] already built successfully in CI
This package used to be installed through osk-sdl, but now osk-sdl is only
installed when FDE is enabled, and so when it is not enabled the system has no
fonts to use, which means UIs like Sway and Weston have broken fonts. This
commit fixes the issue.
[ci:skip-build] already built successfully in CI
This adds a new 'UI' that includes networking support (network manager), firewall (by way
of postmarketos-base-ui), and anything else that will give a basic,
working image without any graphical UI.
The intention is for bpo to build this instead of the 'none' UI. 'none'
UI will continue to be around for mainlining and testing purposes.
This switches the config over to one based on Alpine's linux-gru which
is for an rk3399 chromebook. It produces way smaller kernels and has
more general purpose hardware support.
The udev file "20-tm2-touchkey-leds.rules" disables the leds of
tm2-touchkey by default because they are in an unconfigured state.
The udev file "95-rt5033-battery-refresh.rules" triggers a refresh
of the rt5033-battery information within UPower 5 secs after
initialization. This avoids a wrong battery icon after boot.
The udev file "50-firmware.rules" was moved from /etc/udev/rules.d
to /lib/udev/rules.d.
Related: https://wiki.postmarketos.org/wiki/Packaging#Device_specific_quirks
Adds pmb:gpu-accel option to Phosh, Plasma Mobile/Bigscreen, Sway,
Glacier and Kodi APKBUILDs to hide the UIs at `pmbootstrap init`
for devices without GPU acceleration support.
Related: pmbootstrap!2043
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
Should work same as before.
Slightly tweaked kernel config options:
* default cpufreq governor is now "conservative" instead of "performance", which should be better for devices running on battery. Not that it matters, MSM8974 does not have cpufreq support anyway.
* enabled CONFIG_ARM_QCOM_SPM_CPUIDLE, which was missing! At least some cpuide is better than none at all.
* 2 missing options for nftables: CONFIG_IP6_NF_FILTER, CONFIG_IP6_NF_TARGET_REJECT
* few missing options for wg-quick: CONFIG_IPV6_MULTIPLE_TABLES, CONFIG_IP_MULTIPLE_TABLES, CONFIG_IP6_NF_RAW, CONFIG_IP_NF_RAW
WWAN subsystem is not enabled.
BAM-DMUX upgraded to version "v3" (subnode of modem remoteproc)
Mark kernel package as supporting anbox, containers (in addition to nftables)
[ci:skip-build] Already built successfully twice on CI
Phosh 0.12.0 introduces filtering when the device is of a mobile type
and the app is not explicitly 'adaptive'. This means a lot of apps that
might otherwise work ok-ish are gone from the list.
This change disables the filtering for now.
Currently, shut down and reboot as a user does not work (sudo shutdown
from terminal required). polkit-elogind needs to be installed. lxpolkit
is not needed.
This:
1. fixes the UI not showing up on boot by installing polkit-elogind
2. makes for fancy password popups when root rights are needed rather
than just fail silently
Move the package back from aports to pmaports and fix fall out from
postmarketos-base-ui related breakage:
* add the subset of depends from postmarketos-base-ui that are used in
postmarketos-ondev
* upgrade to postmarketos-ondev 0.7.1, where I made it compatible with
using the default tinydm config (not just the one overridden in
postmarketos-base-ui-tinydm)
Reasoning for moving it from alpine to pmaports, in line with our new
guidelines (that were written after the package was moved to aports):
* has postmarketOS branding
* enables services in post-install (similar to postmarketos-ui-* packages)
Related: https://wiki.postmarketos.org/wiki/Packaging#Should_my_package_be_in_postmarketOS_or_Alpine.3F
* use tinydm instead of lightdm
* set default term to foot, as alacritty needs a recent opengl version
(issue 984)
* override sway config to actually use foot (there is no
sway-sensible-terminal and upstream isn't interested in adding it)
* set the pmOS wallpaper in the overridden sway config
* add a subpackage that allows changing $mod to Alt, so it's easier to
test this in QEMU while running i3/sway on the host with $mod set to
Mod4
* re-enable previously disabled architectures
* set myself as maintainer
Currently, this only sets Firefox to run in Wayland mode, but in the
future it might be used to make e.g. SDL applications run in Wayland
mode.
SDL applications are not set to run in Wayland mode right no as
SDL 1.2 uses the same environment variable as SDL 2.0 for
controlling video driver (SDL_VIDEODRIVER) and SDL 1.2 does not
support Wayland and crashes if an invalid value is provided for
SDL_VIDEODRIVER, and as such setting SDL_VIDEODRIVER=wayland
globally would break all SDL 1.2 applications. This will however be
fixed once SDL 1.2 is replaced by sdl12-compat in Alpine, as
sdl12-compat implements the SDL 1.2 API and ABI via SDL 2.0 and as
such supports Wayland. As such, once this happens we can start
setting SDL_VIDEODRIVER=wayland.
[ci:skip-build] already built successfully in CI
This causes issues with some programs, chiefly that gsd-xsetttings
does not start properly. GDK_BACKEND=wayland is only really
necessary to make Firefox run in Wayland mode anyway - other GTK 3/4
apps use it automatically. Firefox will be set to use Wayland via a
following commit.
- Update to Linux 5.13
- Upstreamed many more patches
- Various cleanup to BAM-DMUX driver to prepare for upstreaming
- Enable support for virtualization/KVM via https://github.com/msm8916-mainline/qhypstub
- Probably many other things I forgot :)
- Add tons of kernel config options for containers and nftables
- Add WireGuard to kernel config
Device changes:
- huawei-g7: Initial support for Huawei Ascend G7
- USB
- Storage (eMMC, SD card)
- Display
- Touchscreen, Buttons, Vibrator
- Notification LED
- WiFi/Bluetooth
- Accelerometer, Magnetometer, Proximity
- Audio
- NFC
- lg-c50: Initial support for LG Leon LTE
- USB
- Storage (eMMC, SD card)
- Buttons
- WiFi/Bluetooth
- Vibrator
- Display
- longcheer-l8150 (wileyfox-crackling): Fix proximity sensor
- motorola-surnia: Add audio and modem
- samsung-j5nlte: Add buttons
- samsung-j5xlte: Initial support for Samsung Galaxy J5 (2016)
- USB
- Storage (eMMC, SD card)
- Buttons
- samsung-serranovelte: Add USB-OTG detection
[ci:skip-build] already built successfully in CI
This replaces the dependency on osk-sdl with a dependency on a
postmarketos-fde-unlocker virt. package
osk-sdl and its dependencies are also added contitionally to the initfs,
based on whether the osk-sdl exe is installed in the rootfs
Also see:
https://gitlab.com/postmarketOS/pmbootstrap/-/merge_requests/2066
This rule is installed by default, since users that need usb inet won't
have an easy way to install a subpackage.
This is meant to facilitate:
https://wiki.postmarketos.org/wiki/USB_Internet
The old rule would result in nftables failing to load if the iface
doesn't exist. Using `iifname` will match on any future ifaces if they
don't exist when the firewall starts.
1. Fixes touchscreen input not working in Poco F1 (Tianma variant) in osk-sdl
2. Basic dts support for Xiaomi Mi 8 Pro(Equuleus)
3. Basic dts support for LG G7 and LG V35
Anbox needs a specific set of nftables rules to allow incoming and
outgoing traffic. Anbox makes it easy to allow the specific traffic due
to the established `anbox0` bridge network interface.
UIs that depend on networkmanager also have an added dependency on
dnsmasq since this was removed from postmarketos-base
[ci:ignore-count] lots of packages, but no code compilation..
This makes venus load the right firmware on xiaomi-scorpio. It also has
re-enabled cpuidle in kconfig after it was mistakenly disabled in the last
update.
[ci:skip-build] already built successfully in CI
Shellcheck 0.7.2 has a change that gives many error conditions their own
SC30** codes, instead of including them in SC2039. This updates the
scripts in this package that "disable SC2039" to disable the new code.
New codes added in shellcheck: cfd68ee0c2ebfd0ab08a1d4bf628162b454dc207
This enables the firewall by default, and could be split off into a
future ui-base package so that the firewall (among other things) are
enabled only when UIs are installed.
Installs nftables config useful for pmOS::
1) drop all connections to wwan* (wildcard matching supported, are there
any other wwan iface names that wouldn't match this?)
2) allow ssh, drop from wwan (kinda redundant w/ the first rule, but
doesn't hurt..), allow DHCP on usb*
3) allow all incoming connections on usb* (with the -openusb subpackage)
4) enable logging all nftable events (with the -log subpackage), very
useful for debugging
fixes#1024
This patch is obsolete now and even breaks the detection
of headphones. Headsets are properly detected at all times.
Dropping this, allows ALSA to see the 'Headphone Jack' event
when headphones are plugged in and removed. This way, ALSA UCM
can act on these jack events as well.
[ci:skip-build] Already built on CI in a MR
If the system time jumps back and forth before installing the package
"swclock-offset", OpenRC can get confused whether the current dependency
tree is old or new. To resolve this confusion, the dependency tree cache
is updated within the post-install script of the openrc subpackage.
This is needed urgently to prevent `make oldconfig` from asking
questions about new options since 5.10 and thus unblock the
broken aarch64 BPO builder.
Some devices have a working but non-writable real-time clock (RTC).
This package contains two shell scripts: One writes the offset between
'hwclock' and 'swclock' to a file at shutdown, another one reads the
offset from the file at boot and sets the 'swclock'. This way the system
time in userspace is kept in present time.
[ci:skip-build] already built successfully in CI
This package sets GDK_BACKEND=wayland (in gtk-app-wayland.sh), and some
apps (firefox) still need that set to work. gsd-xsettings, which is
launched explicitly by Phosh 0.11.0+, does not work when this var is set
to wayland.
On Android devices that support kernel updates (marked by the deviceinfo
variable "deviceinfo_flash_kernel_on_update") lets flash the kernel and
initramfs automatically!
- Add support for Samsung Galaxy Note 3 (hlte)
- Changes to kernel config:
- add support for anbox
- add support for nftables
- add support for lxc, docker
- add support for Wireguard
- Disable CONFIG_ARM_APPENDED_DTB (for lk2nd compatibility)
[ci:skip-build] Already built on CI in a MR
Don't suspend the device while alsa is playing. I ran this for two days
in combination with suspend time set to 1 min on the pinephone and it
works great. Finally no suspend while VLC is playing podcasts.
This updates to the Linux stable 5.12.8 release, it also adds the kernel
side support for the speaker and headphone jack on the OnePlus 6 (
unfortunately not the 6T)
On my librem 5 when using directfb in initfs, touch input is really
inconsistent... the cursor seems to jump around and it's hard to enter
keys in osk-sdl. This is completely 'fixed' by disabling the ps2mouse
input module in dfb.
I guess this might cause mice to stop working (?), but I can't think of
any situation where someone would run osk-sdl in initfs on a device that
has a ps2 mouse but no keyboard (which would make more sense to use for
entry than the mouse..)
Next release of ModemManager needs Qualcomm RMNET support
for QMAP mobile data support.
armv7 config doesn't have ethernet enabled at all,
so this is only enabled for the aarch64 config.
I rebased all of the patches (only 2 needed some changes, the rest I
just did for good measure).
These two patches were dropped since they are already merged in the new
kernel:
0008-leds-gpio-Set-max-brightness-to-1.patch
0009-dts-pinephone-Add-pine64-pinephone-to-compat-list.patch was dropped
The kconfig changes are just after running kconfig edit, and making no
changes so that it would generate a config with any new options in 5.12,
to make maintenance easier moving forward.
In 35f283a8ef sxmo was made to install
sxmo on clean installs, but due to
9387842aec was getting uninstalled if it
was installed before. Let's properly depend on it instead so people
don't end up without working networking
The Mer stack that Asteroid uses actually uses connman by default rather
than NetworkManager, so let's enable it by default
SSH still works at least on Qemu
The Mer stack that Glacier uses actually uses connman by default rather
than NetworkManager, so let's enable it by default
SSH still works at least on Qemu
The v5.12.5-msm8996 tag also includes the yet-to-be-merged Qualcomm LPG
driver, with support for LEDs on xiaomi-scorpio including the IR LED.
Also clean up the config and enable useful configs such as ZRAM.
[ci:skip-build]: already built successfully in CI
We've rename the kernel repo to
https://gitlab.com/sdm845-mainline/linux,
update the package to point to the new repo.
[ci:skip-build]: already built successfully in CI