Kodi UI is broken on Wayland with Cage, switch to GBM instead.
GBM is more suitable for running standalone and easier to maintain.
Also add udev rules to automount USB drives as you cannot access
them from Kodi otherwise.
[ci:skip-build] already built successfully in CI
unudhcpd is a lightweight dhcp server that effectively implements static
assignment of a single IP on an interface regardless of client MAC, with
no lease. The end result is that a system connected to a pmOS device via
usb networking should always get an IP, and always get one very quickly.
This adds a new dependency on this dhcp server, and starts it in initfs.
Fixes#1199
[ci:skip-build] already built successfully in CI
allows applications that use midi files that expect a synthesizer to work
via a new file that appears under /dev
[ci:skip-build]: already built successfully in CI
This reverts 5fa1755fba. Bundling
/sbin/modprobe is no longer necessary because Alpine switched back to gz
for LTS kernels with [1].
Relates: !2693
Relates: #1294
[1]: 12243ca822
This is done as devices that use Heimdall flash to KERNEL instead of boot
like in case of fastboot, plus devices with weird partitions can set the
var in deviceinfo
SHIFT6mq (axolotl) requires this panel driver.
Config is already merged upstream:
- 9ed86f14d0
Change-Id: I7d0286084df53b1a160702e8928f4691153b64f4
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build] Already built on CI in MR
This configures bootmisc to clear /tmp on bootup. I think most folks
expect distros to do this, many even mount /tmp as tmpfs. I don't think
that's a great idea in pmOS since RAM is usually limited on many
devices. So this, clearing it on boot, seems like a reasonable compromise.
Fixes#1342
NOTE: Should be likely backported without the kernel config changes
since Alpine 3.15 still has the older gcc version.
[ci:skip-build] Already built successfully on CI
rc-update fails if this service is not in the default runlevel,which is
the case if it's a brand new installation, or would be the case later on
upgrading this package again after the service was already removed from
the runlevel.
The issue that c47c62e3 set out to solve isn't fatal, if polkit fails to
start by openrc then users can manually remove it from the runlevel.
partially reverts c47c62e3
[ci:skip-build] already built successfully in CI
This upgrades ttyescape to use buffyboard, a new fbkeyboard replacement
by @Cherrypicker. It adds a lot of missing keys and uses the same layout
as Phosh's Squeekboard, so should feel much more like home for Phosh
users.
This also switches to the new HKDM daemon for hotkey handling, replacing
triggerhappy.
[ci:skip-build] already passed
A recent(?) update in shellcheck made this fail, possibly because the
test in shellcheck was fixed(?) or ???
The failure this fixes is:
Test with shellcheck: ./main/msm-firmware-loader/msm-firmware-loader.sh
In msm-firmware-loader.sh line 49:
if [ -z "${FW_PARTITIONS##*$PARTNAME*}" ] && [ -n "$PARTNAME" ]
^-------^ SC2295 (info): Expansions inside ${..} need to be quoted separately, otherwise they match as patterns.
[ci:skip-build] already built successfully in CI
Simple upgrade with few generic kernel features enabled
* IWD support
* F2FS
* NTFS3_FS
* USB mass storage support
* disable MTD and build more things as modules to reduce
kernel size to compensate some new built-in options,
as kernel doesn't boot otherwise.
No new things for pmOS's devices (yet). Should work same as before.
[ci:skip-build] Already built on CI in MR
Changing source to freemangordon's branch as that is much more stable and does not crash, got firefox running, which with older mesa would crash the GPU
Display the app icon properly, instead of the "unknown" icon, in the
activity view. Phosh attempts to open a .desktop file with the name of
the gtk app-id, but the app-id is "firefox" and the file is named
org.mozilla.firefox.desktop (see related commit, where it was renamed
for a good reason). The way Phosh is doing the name lookup doesn't
always work for other apps too, phosh_get_desktop_app_info_for_app_id()
has workarounds e.g. for gnome-control-center hardcoded. As workaround,
add a .desktop file that makes the icon show up properly, but is not
displayed anywhere else (NoDisplay=true).
Replace epiphany with FF in the default favorite applications in phosh
(top 4 displayed at the top). We already install FF instead of epiphany
and so the 4th place is currently empty.
Related: 2d291a4afc
Finally a new upgrade! This brings along some minor driver changes and
improvements, more stuff slowly landing upstream.
We also get a few new splats during boot, these are inevitable at this
point due to fw_devlink changes and large reworking of the drm/msm code,
they are caused by the common clock framework not knowing that some
clocks are left enabled by the bootloader, it panics when they aren't in
a state it expects. They are harmless as far as I know.
[ci:skip-build]
Upstream has switched from ofono to modemmanager since Plasma 5.23 and
Plasma Mobile Gear 21.12. Since the latter has just been released it's
now time to switch our images too.
The modemmanager service will be enabled to start on default and for
existing installations the .post-upgrade script will disable and stop
the existing ofono service and enable and start modemmanager instead.
Changes:
- Replace "Battery Monitor" by "Power Manager Plugin" (#1317)
- Fix the lower panel
- Change clock format from "1:23" to "01:23"
- Make font DPI changable for device package post-install scripts (#293)
- Reset list of keyboard shortcuts to default
- Remove brightness-switch properties from configs
Waydroid works better than anbox, and this package keeps failing to
build as in theory the bundled f-droid version needs to be upgraded more
frequently than we do.
Prepare to drop anbox from pmaports in favor of waydroid. For waydroid,
there's an nftables rule packaged as waydroid-nftables subpackage of the
waydroid package in Alpine (see pmaports issue 1280).
This adds two new subpackages postmarketos-mkinitfs-modprobe-lts and
postmarketos-mkinitfs-modprobe-edge that include /sbin/modprobe in the
initfs when one of the Alpine kernels (linux-lts or linux-edge) are also
installed.
Fixes: #1294
[ci:skip-build] already built successfully in CI
- Update to Linux 5.15
- Upstreamed many more patches
- Major rework of CPU core boot: This is now partially handled in lk2nd
since mainline Linux does not want to support anything except PSCI on arm64.
- Major rework of "-modem" DTB variants. Now all device trees only contain
the full modem configuration. lk2nd can patch the DTB at runtime to get
the alternative "no-modem" variant where audio bypasses the modem entirely.
- Rename some Samsung device trees to drop variant suffixes (e.g. *lte/*wifi)
- Lots of other cleanup everywhere
- Probably many other things I forgot :)
Device changes:
- samsung-gtelwifiue: new device tree
- eMMC, SD card, USB, Buttons
- Display (no brightness control yet)
- Touchscreen
- gt58: touch keys and some touch fixes
- Note: Multi-touch seems broken at the moment :<
- samsung-a2015/samsung-serranove:
- Battery: Report voltage as uV
- Touch keys: Allow changing function from userspace
Kernel config changes:
- Enable required options for AppArmor and IWD
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Without the explicit dependency to `polkit-elogind` the packages
`polkit` and `polkit-libs` are installed. This however prevents starting
`sway`. Below is the error message from the `tinydm` log:
```
00:00:00.028 [ERROR] [wlr] [libseat] [libseat/backend/logind.c:310] Could not activate session: Interactive authentication required.
00:00:00.028 [ERROR] [wlr] [libseat] [libseat/libseat.c:79] No backend was able to open a seat
00:00:00.028 [ERROR] [wlr] [backend/session/session.c:84] Unable to create seat: Function not implemented
00:00:00.028 [ERROR] [wlr] [backend/session/session.c:218] Failed to load session backend
00:00:00.028 [ERROR] [wlr] [backend/backend.c:353] Failed to start a DRM session
00:00:00.028 [ERROR] [sway/server.c:53] Unable to create backend
```
Signed-off-by: Paul Spooren <mail@aparcar.org>
Enable options required to run iwd instead of wpa_supplicant for the
aarch64 kernel config. Make it easier to test this, before we consider
switching to iwd as default (and enforcing kernel options in all devices
in main and community).
[ci:skip-build]: already built successfully in CI before disabling
CRYPTO_USER_API_ENABLE_OBSOLETE. I've built and verified the aarch64
version with this disabled locally, and I'm pretty sure that the armv7
version will build successfully too. So let's avoid the wait here.
Let every postmarketos-ui-* package have a link on top that points to
the new UI package reference. Do not put the link in <>, as it was done
with other references, since there's no benefit to it. It doesn't look
better and it doesn't make it easier to click the link or something, I
just did this initially because I saw it in GPL license headers.
[ci:skip-vercheck] [ci:ignore-count]
Enable CONFIG_RFKILL in the kernel configuration for Exynos4 devices.
This allows Gnome's Bluetooth panel to detect the Bluetooth controllers
present.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
[ci:skip-build]: already built successfully in CI
Add two patches that fixes the Bluetooth node in the Device Tree of the
Galaxy S2 (i9100).
These two patches are not upstream yet, but were accepted by the
maintainer for inclusion in Linux 5.17.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Let postmarketos-ui-phosh depend on modemmanager and
modemmanager-openrc, so we ensure both get installed before the
post-install script runs. The post-install script will not be able to
enable the modemmanager openrc service otherwise.
Related: issue 1297
Alpine patches busybox to support image alignment in [1].
So far we don't need to align the spalshes in postmarketOS as those are
generated per device. However with generic images it becomes impossible
to support multiple resolutions with this approach.
Set the alignment to "Center" in fbsplash config so generic system
images can reuse the splash on multiple resolutions.
[1] - https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/busybox/0008-fbsplash-support-image-and-bar-alignment-and-positio.patch
[ci:skip-build] already built successfully in CI
Upgrade to 5.15.0, disable some unused I2C and SPI configs, and
remove msm8996 from linux-msm8996-$_tag, since $_tag already
includes msm8996 and makes the first one redundant.
[ci:skip-build] Already built on CI in MR
v5.14.15 kernel used (current newest stable).
Intended to be used also on msm8992 which has nearly the same DTS.
I haven't tested other functionality except boot to initramfs on
huawei-angler and lg-bullhead.
Some kernel config options set according to
linux-postmarketos-qcom-msm8996.
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
[ci:skip-build] Already built on CI in MR
We should always install lk image as /boot/lk2nd.img, even for
image with appended DTB (lk2nd-appended-dtb.img). pmbootstrap tooling
will expect it this way, and also it keeps all subpackages consistent,
while also making them conflict with each other.
Add new subpackages that are explicitly named -appended, but still
install the same file.
Each device should "know" which kind of LK image it needs and should
explicitly depends on specific variant.
Having only one file `/boot/lk2nd.img` will simplify many things,
for example we don't have to introduce new deviceinfo properties
to specify which image is needed (like if we installed both of them).
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Support for custom "Loading..." splashes was added in MR 1776, but
`unlock_root_partition` function is still hardcoding default "Loading..."
splash. Fix this behaviour by replacing usage of `show_splash` function with
`show_splash_loading`, which accounts for presence of custom splash.
Closes#759
MyCroft is something definitely not everybody wants, and it could in
theory even make slower devices unusable while they would otherwise work
fine with Bigscreen. Let's move it to extras so it's optional to install
Last update for 5.14 kernel, next one will be 5.15
Kernel config cleanup:
* enable various USB peripherals support, per user requests:
* usb webcams [m]
* usb ethernet adapters [m]
* remove support for various TV tuners and DVB cards
* enable few filesystem drivers [m], like iso9660, exFAT, ntfs
* enable kernel automounter, to use with nfs (autofs, [m])
* disable CONFIG_ARM_CPUIDLE, which gets rid of annoying message
during boot:
/cpus/cpu@0: unsupported enable-method property: qcom,kpss-acc-v2
Cpuidle is handled by another driver, which is still enabled:
CONFIG_ARM_QCOM_SPM_CPUIDLE
[ci:skip-build] already built successfully in CI
firmware-qcom-msm8916-wcnss is a virtual package used for MSM8916
devices without secure boot (i.e. device that do not require signed
firmware). For those it's best to install more recent firmware by
default rather than using the firmware on the firmware partition.
firmware-qcom-msm8916-wcnss is provided by firmware-qcom-db410c-wcnss
by default, however it's still useful to make it possible to switch to
the stock firmware on the firmware partition if needed. To allow that,
add a dummy msm-firmware-loader-wcnss package that provides the virtual
package using the msm-firmware-loader.
# apk add msm-firmware-loader-wcnss
(1/2) Purging firmware-qcom-db410c-wcnss (1034.2.1-r2)
(2/2) Installing msm-firmware-loader-wcnss (1-r1)
* xts, libaes & aes are required for root partition FDE unlocking
* evdev is required by osk-sdl for input
[ci:skip-build] already built successfully in CI
This seems to fix the last missing piece to getting the hotspot stuff
working, at least when it's set up with networkmanager (I haven't tested
other methods, but assume this rule is still needed there too...)
fixes#1198
Installing postmarketos-base currently changes the file permissions
of /etc/sudoers:
# apk add sudo
# stat /etc/sudoers
Access: (0440/-r--r-----) Uid: ( 0/ root) Gid: ( 0/ root)
# apk add postmarketos-base
# stat /etc/sudoers
Access: (0044/----r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
The file mode 0044 decodes to:
- User *cannot* read
- Group can read
- Other can read
which does not make any sense. The "sudoers" man page makes it very
clear that this file should have a file mode of 0440 [1]
("readable by owner and group, writable by none").
This looks like a bad typo. However, given that only read permissions
were given out this shouldn't have major security implications
(except allowing all users to see who can use sudo).
Install the file with 0440 instead of 0044 to fix this:
# apk add postmarketos-base
# stat /etc/sudoers
Access: (0440/-r--r-----) Uid: ( 0/ root) Gid: ( 0/ root)
[1]: https://www.sudo.ws/man/1.9.8/sudoers.man.html#Error_log_entries
This used to be in Alpine but they don't want what is basically a giant
unknown blob, and for good reasons. However we do want to provide these
images for ease of install and quality-control, so let's ship it in pmOS
instead
When building from tarball git tag is not available.
We need to pass version number manually.
This chnage is cosmetic, but will allow users to easily
identify version and source of their bootloader.
Package secondary LK bootloader for some Qualcomm devices
(for now: msm8916, msm8974, msm8226).
Bootloader binary is built from source in x86_64 chroot.
Two targets are built in a sequence. Then package is split
into 2 subpackages, each of them installs `/boot/lk2nd.img`.
So the end result is - lk2nd-msm8916 and lk2nd-msm8974 can't
be installed at the same time.
Device- packages then can depend on specific subpackage of this
package and have proxy-bootloader image ready to use in /boot.
This can improve user experience with installing postmarketOS on
several devices using only pmbootstrap tool.
At the very least, pmbootstrap can suggest user to flash lk2nd
immediately after `pmbootstrap install` or even offer some kind
of `pmbootstrap flasher` integration.
This will also open possibilities to automatically update and flash
lk2nd using package manager, it we ever want this.
Improvements from xfce4-phone source:
- Add screenshot to README.md
- Enable screen locking
- Disable Desktop icons "Home", "File System", "Trash"
- Enable single-click on Desktop
- Enable single-click in Thunar
- Change clock format
- Set postmarketos wallpaper
Additional changes in postmarketos-ui-xfce4:
- Installing greybird-themes (which is already set as default theme in
/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml).
- Changing /etc/skel/.config/autostart/onboard-autostart.desktop to
slightly speed up keysboard startup (overriding startup-delay of
/etc/xdg/autostart/onboard-autostart.desktop).
- Enabling scrollbars by /etc/profile.d/enable-scrollbars.sh, this is
helpful where touch-scrolling doesn't work like e.g. in whiskermenu.
(And re-ordered network-manager-applet in APKBUILD _pmb_recommends
section.)
Also removing xfce4 subpackages of device-qemu-amd64,
device-qemu-aarch64 and device-nokia-n900. The device specific monitor
to set the wallpaper will now be automatically derived from "monitor0"
in file xfce4-desktop.xml.
Additionally taking maintainership as discussed in merge request
(!2506).
Many devices need proprietary firmware blobs. So far those blobs were
packaged and installed from the repository but this approach has many
drawbacks:
- The rootfs can only be used on a single device model.
- If a model has multiple variants that have diferent secire-boot key,
each must have it's own firmware blobs.
This makes maintaining packaged firmware very hard and outweights the
benefits of having a repeatable installation in most cases.
Instead we can load blobs dynamically from preexisting firmware
partitions that usually have same structure and contain the blobs we are
interested in.
The proposed scripts place symlinks to the blobs in a special dir that
then given to the kernel. Blobs from firmware/postmarketos (or another
dir that was set as extra path prior the script execution) will take
priority which allows to override some blobs (e.g. for deviecs with no
secure-boot)
Also add patches from the Replicant project to fix so that charging
works, and patches from the linux-pm list to fix the SOC INTR message
that has been spamming our dmesg (issue
https://gitlab.com/postmarketOS/pmaports/-/issues/1214).
Add kernel flags needed for Anbox and Waydroid to work
[ci:skip-build] Already built successfully on CI
Signed-off-by: Raffaele Tranquillini <raffaele.tranquillini@gmail.com>
Also add patches that should fix backlight control, add reboot modes,
and work around a nasty eMMC corruption issue.
[ci:skip-build]: already built successfully in CI
- Update to Linux 5.14
- Enable new RPMSG WWAN CTRL driver that is now used to communicate
with the modem through the new WWAN subsystem in Linux
- Minor fixes for ARM32
- Enable some additional options in kernel config (F2FS, UHID, LED triggers)
- Add TravMurav as second maintainer
The text color in mate-terminal is currently dark brown on black
background. Therefore hardly readable.
Changing text color to light gray on black background.
* Idol3 panel have been renamed, so update the defconfig to
reflect that.
* add finduitls to makedepends (MR 2519)
Gets rid of "find: unrecognized: -printf" in build log.
Fixes 80a70aab92
[ci:skip-build] Already built on CI in MR
This is needed for devices such as Xiaomi Mi 5 (gemini), having backlight embedded in the panel controller
Signed-off-by: Raffaele Tranquillini <raffaele.tranquillini@gmail.com>
Fixes an issue where /dev/video2 can't be used by Megapixels (and thus
Megapixels crashing) when having PipeWire installed. The problem was
that the node could only be used by a single application, which was
PipeWire in that case.
[ci:skip-build]: just built successfully in CI
Adjust post-upgrade script to not remove vmlinuz-*. This causes problems
with devices using kernels from Alpine, where the kernel is not
installed to /boot/vmlinuz, as it is now the case in postmarketOS, but
e.g. in /boot/vmlinuz-rpi. The intention was to clean up files when
migrating from the old postmarketos-mkinitfs to the new one (>= 1.0.0).
However, the /boot/vmlinuz* files are managed by apk, so they should
already get removed.
Add -v, so it prints a message when removing a file from /boot.
kernel filename must now be /boot/vmlinuz
[ci:skip-build]: ollie is pretty sure that this will work. it's a
critical fix, so let's not delay it by waiting for two kernels to build.
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