/dev/pmsg0 may be created by pstore driver. When it is available,
write logs into it so logs can be recovered through pstore after
a failed boot. This is useful for devices without console or hard
to get console.
Crappy workaround, it's better than having DNS broken...
See: https://gitlab.com/postmarketOS/pmaports/-/issues/2601
Also removed it from shellcheck, because SC doesn't like all of the
unused/unreachable things after the `exit 0`. This commit should be
reverted when the issue is actually fixed later...
[ci:skip-build] already built successfully in CI
tinydm uses startx for Xorg UIs, which is provided by the xinit package.
The xinit package used to be pulled in automatically by
the xorg-server package, but this stopped being the case with
1fd2d70696
this allows to opt-out of usb-tethering on pmOS devices with
`apk add !postmarketos-base-ui-networkmanager-usb-tethering`
this is useful for developers with laptops on pmOS / dailydriving
those laptops on pmOS.
[ci:skip-build]: Already built successfully in CI.
These apps are useful to have on the full GNOME desktop too, and this
removes the need to duplicate package lists across UI meta packages that
depend on the base gnome UI package.
Some devices take time to initialize storage, e.g. Qualcomm laptops
using ADSP need to load firmware firstly, and initramfs script does
not always manage to mount boot partition in time.
Unfortunately, there is no reliable way to reproduce the issue, but
this patch should fix cases like this.
Which replaces /lib/udev/rules.d/60-persistent-v4l.rules (from the
eudev package) with a symlink to /dev/null. Around 20 devices need
this to fix a kernel panic with downstream kernel when starting udev.
Issue happens due to that camera firmware is missing and/or not loaded
properly.
The configfs gadget can provide the actual interface name, which may not be
the default "usb0" since another gadget driver might have claimed "usb0".
This code is based on the `start_unudhcpd` function in `init_functions.sh`
[ci:skip-build] already built successfully in CI
Before this change the script assumed that the device has only one UDC.
However it is possible for a device to have multiple UDCs, in which case
the deviceinfo is the appropriate place to specify which one should be used.
This change adds an optional deviceinfo variable `deviceinfo_usb_network_udc`
to specify the UDC that should be used.
Also, before this change the script assumed the USB network interface name is
"usb0". But other gadget drivers like `g_cdc` can claim USB interfaces
before the initramfs script gets around to creating one for USB networking,
so the interface might be "usb1" or something else. The configfs gadget itself
can provide the actual interface name, so this change makes the script
use that.
In many cases, when fw is installed in /lib/firmware, some of it ends up
in the initramfs. In those situations, mkinitfs should run so that the
initramfs gets the latest fw. This will result in mkinitfs possibly
running in cases where it doesn't matter (i.e. device has fw in
/lib/firmware but none is used in the initramfs), but I think the
trade-off is worth it.
This also breaks the triggers= line into multiple lines so that it's
easier to review/maintain. We can't prepend whitespace on these lines
since the apkbuild parser expects dirs to be separated by ":"
This is a device-specific package. The only device that depends on
this, device-nokia-n900, is in community, so let's move it there too.
[ci:skip-build]: already built successfully in CI
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.
Dependencies:
- Add dependency "xfce4-screensaver" to provide virtual keyboard at screen
unlock. As a dependency because several settings need to be implemented to
integrate it well in LXQt.
- Add dependency "setxkbmap" to make keyboard layout settings work
- Add dependency "upower" to make battery icon in panel work
Recommends:
- Add recommend "pulseaudio" to make sound work
- Add recommend "adwaita-icon-theme" because that's used by xfce4-screensaver
- Remove recommend "pavucontrol" because there is already "pavucontrol-qt"
Sources:
- Add autostart desktop file for xfce4-screensaver
- Add autostart desktop file to override lxqt-xscreensaver-autostart
- Modify autostart desktop file for onboard, a startup delay mitigates
an issue with the onboard panel icon not showing up at the first boot
- Modify lxqt-tablet.sh to include custom XDG_DATA_DIRS
- Add application desktop file to override xfce4-screensaver-preferences,
adding it to the menu
- Add application desktop file to override xscreensaver-settings, removing it
from the menu
- Change install location of "lxqt-tablet" repository configs from
/etc/skel/.config to /etc/xdg/lxqt-tablet. That way they are handled as
distribution-specific configs and are separated from the user configs in
~/.config.
- Upgrade to version 0.3 of "lxqt-tablet" repository:
- Change theme to "Dark" to fix panel look
- Increase panel size
- Change wallpaper mode to "zoom" to avoid deforming the picture
- Disable global single click to not interfere with PCManFM
- Add terminal and file manager launchers to panel
- Rename openbox xml file to apply the configs
- Set lock command to xfce4-screensaver
- Add xfconf files to configure xfce4-screensaver
- Clean up configs by removing default values
[ci:skip-build]: Already built successfully in CI.
Currently, when postmarketOS fails to boot up, retrieving any
information necessary to root cause the issue is non-trivial, requiring
building a custom initramfs with debug-shell enabled and then manually
copying out data.
Let's improve the situation by exporting logs automatically on boot
failure. This is safer than just exposing a root shell but still
provides a whole lot of useful info that should make duplicating and
triaging issues much easier for developers.
This commit implements the functionality and includes some generally
useful data. We then generate a README and expose files for each command/log
as well as an archive that can be easily attached to a GitLab issue.
To help with triaging, also record the version of the postmarketos-initramfs
package and hash the init.sh and init_functions.sh files.
For testing purposes, you can trigger the log recovery mode on-time by
creating an empty file named ".pmos_export_logs" in the /boot partition.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Always write logs to the ramdisk, adjust setup_log() to spawn "tail" to
pipe the log to the console device when PMOS_NO_OUTPUT_REDIRECT is set.
This is necessary to ensure that the initramfs logs can be extracted on
a failed boot.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
This was enabled in the "default" runlevel during upgrades, which is an
error, since it depends on bootmisc, which is in "boot" runlevel
Fixes#2473
[ci:skip-build]: Already built successfully in CI.
And enable it by default, since it's a sensible thing to do.
This makes the bootmisc config file unnecessary, since it was only
used before to make sure that /tmp was wiped on every boot.
Mounting /tmp as a tmpfs will be skipped if:
* The user or maintainer configured deviceinfo_tmp_as_tmpfs_size=0
* If they didn't but the device has less than 2GB of RAM
* And in any case, if it is already mounted, to respect users that
might have it in /etc/fstab
The options for mounting /tmp has been copied from my local debian
tmp.mount service. The only real difference is that we are mounting it
after /etc/fstab, and they do so before.
Fixes#2233
Notification daemon; provides nice HUD for volume control and allows
Blueman to normally send notifications instead of opening separate
windows (which can get very annoying for frequently-reconnecting
devices).