Commit graph

47 commits

Author SHA1 Message Date
jane400
dc81fbcd23
main/postmarketos-base: split openrc specifics into subpackages (MR 5364)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2024-07-23 09:53:58 -07:00
Pablo Correa Gómez
1229616e21
main/postmarketos-base: add service to mount /tmp as tmpfs (MR 4588)
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
2023-12-21 17:38:45 +01:00
Martijn Braam
3460ae18d4
main/postmarketos-base: depend on logbookd (MR 4549)
Use logbookd to replace the busybox in-memory logger. The default
configuration of logbookd still logs in-memory but writes out the log on
shutdown or manual trigger.

The logread command is also replaced by a drop-in replacement for the
busybox tool.
2023-12-08 22:57:47 -08:00
Clayton Craft
bca632d4f6
postmarketos-base: enable using zram swap by default (MR 3752)
This installs zram-init and sets it to start on boot for all
devices/UIs. The included conf.d/zram-init also allows diabling using
zram swap or overriding the size by using a deviceinfo var.

I did an analysis of the pmos base install size with the 'none' UI
selected, after depending on zram-init, and the following new package is
installed:
        zram-init-11.1-r1 installed size: 40 KiB

These packages are dependencies of zram-init, however they are already
installed in the base image (with 'none' UI) so they are not counted
above:
        util-linux-misc-2.38.1-r0 installed size: 6816 KiB
        e2fsprogs-extra-1.46.5-r4 installed size: 1324 KiB

So this seems like a very small price to pay for the benefit of not
making the logic/implementation more complicated than this.

     * Starting busybox syslog ... [ ok ]
    ssh-keygen: generating new host keys: RSA ECDSA ED25519
     * Starting sshd ... [ ok ]
    zram swap: activating with size: 243 MB
     * Loading zram module...
     [ ok ]
     * Swap->zram0
     [ ok ]
     * Starting local ... [ ok ]

This change introduces one new deviceinfo variable:
deviceinfo_zram_swap_pct: percentage of RAM to use for zram swap

Default percentages if the second var is unset are explained in the
zram-init file this commit adds. A value of 0 disables zram swap.

fixes #1133
2023-01-11 15:39:40 +01:00
Newbyte
f2c7c48e2a
main/postmarketos-base: make apk interactive by default (MR 3444)
This would mitigate issues where apk unexpectedly replaces packages
somewhat as this way the user will be able to see precisely what changes
will happen to their system before they are committed. Furthermore, most
users are likely accustomed to package managers like apt, dnf, pacman,
among others that all are interactive by default and as such this would
provide a more familiar experience for them.

This will not affected pre-existing installs, and advanced users who
do not like this behaviour can restore the old one by deleting
/etc/apk/interactive.

[ci:skip-build]: already built successfully in CI
2022-09-28 09:18:55 +02:00
Dylan Van Assche
a3f7bf3e1a
main/postmarketos-base: use setup-devd (MR 3302)
Alpine does not use setup-udev anymore and provides the same
functionality through setup-devd. The setup-udev script was deleted [1]
but postmarketos-base still used it and caused pmbootstrap to fail when
building a device image. Use the rc-service setup directly from
setup-devd.

[1] b56c4c2b9d
2022-07-20 10:05:27 -04:00
Clayton Craft
92e43e8324
postmarketos-base: remove UI-specific config/dependencies (MR 2243)
These will be included in a new postmarketos-base-ui package
2021-06-23 13:00:00 +02:00
Clayton Craft
a83a0a0726
postmarketos-base: add nftables as dependency (MR 2060)
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.
2021-06-14 14:30:50 -07:00
Bart Ribbers
9387842aec
main/postmarketos-base: remove networkmanager from depends (MR 2174) 2021-05-24 11:39:07 +02:00
Oliver Smith
e4ef9fba72
main/postmarketos-base: retire devmappings service (MR 1820)
Remove devmappings service. The original purpose of this service was to
ensure that /boot is mounted properly after the initramfs passed control
to OpenRC, because the initramfs used to umount /boot before that. With
/etc/fstab alone, /boot get not get mounted with subpartitions (which we
use on Android devices), if util-linux >= 2.33 was installed (MR 115).

Nowadays, we don't umount /boot in the initramfs before passing control
to OpenRC anymore (MR 1398). So this service isn't needed anymore, and
prevented the previous pmOS_inst_boot <> pmOS_boot patch from working
correctly.
2021-01-27 16:12:27 +01:00
Oliver Smith
8b7adeddf3
main/postmarketos-base: remove post-install config overrides (MR 1713)
Do not change config files in post-install scripts anymore (with sed
commands or by other means). Instead, ship the files inside the packages
and use "replaces", so apk allows the package to overwrite files from
other packages:
https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#replaces

Notes on specific files:
* /etc/elogind/logind.conf: original file only consists of commented out
  compile defaults. Copy them over for now. In the future we should be
  able to install our own config into a .d directory, without all the
  comments: 8358fc5950
* /etc/fstab: original file only has /dev/cdrom and /dev/usbdisk
  entries, which are not useful for postmarketOS:
  https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/alpine-baselayout/APKBUILD
* /etc/motd: reformat the text, add link to the chat
* /etc/conf.d/syslog: original file only contained 'SYSLOGD_OPTS="-t"',
  make the override file as if the sed statement from post-install was
  executed
* /etc/wpa_supplicant/wpa_supplicant.conf: post-install script touches
  this file. We probably added it back in 2017 in relation to enabling
  D-Bus (though the PR does not mention it explicity), but at least with
  the current init.d script of NetworkManager, we can simply have '-u' in
  wpa_supplicant_args:
  https://github.com/postmarketOS/pmbootstrap/pull/578
  https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/wpa_supplicant/wpa_supplicant.initd
* /etc/sudoers: base on original /etc/sudoers, but remove all the
  commented out stuff except for the visudo note at the top. We could
  also put a file in /etc/sudoers.d, but since the wheel line is present
  in the original /etc/sudoers and only commented out, it would be kind
  of unexpected to enable it in a file in /etc/sudoers.d. I prefer this
  stripped down version of the file, that is easy to read.
2020-12-03 13:11:03 +01:00
clayton craft
81fc6a0bed
postmarketos-base: enable rfkill service (MR 1693)
This enabled the rfkill service, part of util-linux, that saves/restores
radio device state on shutdown/boot.

fixed #836
2020-11-09 15:09:32 +01:00
Bart Ribbers
7b58ed7fce
main/postmarketos-base: stop the power key from shutting down devices (MR 1499)
Pressing power button should not power off a device. Although it is
expected on desktops and laptops, it isn't expected on phones and
tablets. Instead it should just turn off the screen or go into a deep
sleep, but that isn't handled by elogind. So let elogind just ignore the
button altogether.

Also re-order the dependencies alphabetically while we're touching the
package anyway
2020-08-22 22:41:41 +02:00
Oliver Smith
784782f543
main/postmarketos-base: keep /etc/fstab (MR 1398)
Only add a comment, do not try to mount the root or boot partitions
anymore. The initramfs is doing this already.

Related: https://postmarketos.org/fstab
2020-07-08 18:02:49 +02:00
Oliver Smith
58ae4df2ef
main/postmarketos-base: rm write_unless_modified (MR 1398)
Get rid of the "write_unless_modified" code, which was supposed to only
change /etc/fstab, /etc/issue, /etc/motd if the user did not modify it.

This is nice in theory, but we have a bug report where the code did not
do what it should (apk audit possibly failed due to a qemu bug?), and
then it lead to strange bugs related to not having the expected
/etc/fstab installed.

Fixes: #661, #258
2020-07-08 18:02:49 +02:00
Federico Amedeo Izzo
b6ea0ba1de
{nokia-n900,samsung-i9070}: move swclock initial timestamp back to postmaketos-base.post-install (MR 1166) 2020-05-23 17:57:40 +02:00
Federico Amedeo Izzo
859772a915
*/*: add missing exit 0 in post-install scripts (MR 1166) 2020-05-23 17:57:36 +02:00
Federico Amedeo Izzo
0e502a5139
postmarketos-base: disable swclock for all devices, enable it for nokia-n900 and samsung-i9070 (MR 1166) 2020-05-23 17:57:27 +02:00
Pops Dylan
7b7c1db0ff
main/postmarketos-base: remove initstepslew from chrony configuration (!838)
Comment out the initstepslew line in /etc/chrony/chrony.conf.
initstepslew can delay booting while chrony sets the time. The
makestep 1 -1 line in the configuration also causes chrony to step
the time (whenever the offset is greater than 1s), making
initstepslew redundant.
2019-12-30 18:34:14 +01:00
Oliver Smith
17292f4f5e
main/postmarketos-base: fix wpa_supplicant config (!365)
Fix wifi on htc-ace by properly setting nl80211 before wext.

/etc/conf.d/wpa_supplicant is supposed to get modified twice with the
current code in the post-install file. The first one was patched
recently to set nl80211 before wext, but that change does not work in
practice, for two reasons:

1. The code block does not even get executed, because apk reports that
   /etc/conf.d/wpa_supplicant was already modified (by a package that
   was installed before, in its post-install script? I could not find
   out which one does that though).
2. Even if it worked, the second code block would revert the change and
   put wext before nl80211 again.

Fix this by removing the first code block, and changing the order in the
second one. Make it easier to catch such errors in the future, by
printing, which files get modified, or get skipped. Set "#!/bin/sh -e",
so the script can not fail silently.

When doing pmbootstrap -y zap and then pmbootstrap install, the output
looks like this:

(141/151) Installing postmarketos-base (3-r26)
Executing postmarketos-base-3-r26.post-install
- Modifying: /etc/fstab
- Modifying: /etc/issue
- Modifying: /etc/motd
- Modifying: /etc/conf.d/syslog
- Modifying: /etc/conf.d/wpa_supplicant
- Modifying: /etc/sudoers
- Modifying: /etc/chrony/chrony.conf
2019-06-30 02:00:08 +02:00
Matthias Berndt
83bdddad4c
postmarketos-base: nl80211 before wext in wpa_supplicant (!264)
Fixes wifi on htc-vision.
2019-03-09 22:33:33 +01:00
Robert Yang
6d25c1bef6 postmarketos-base: Add openrc service that creates partition mappings (!115)
When util-linux v2.32 updated v2.33, remounting a partition stopped
working.

  mount -n -o remount,rw /
  mount: /: can't find LABEL="pmOS_root".

This service will add the pmOS rootfs partitions to device mapper so that
the remount root partition will succeed.

Fixes issue #156
2018-12-26 12:08:36 -05:00
Oliver Smith
340a17d98f Set all of user's groups in "pmbootstrap install" (#1432)
The postmarketos-base package used to make the user part of the "video"
and "audio" groups. However, this did not work reliably, and we were
adding the "wheel" group in "pmbootstrap install" anyway.

Now all groups get added in "pmbootstrap install", and the names of the
groups have been moved to `pmb.config.install_user_groups`.
2018-04-23 20:52:03 +00:00
Daniele Debernardi
19df13804c Remove /etc/network/interfaces and networking service from device packages (#1293)
This is not necessary anymore since there is now NetworkManager.
2018-03-05 21:18:13 +00:00
Martijn Braam
6caeba319e postmarketos-base: Enable NetworkManager by default (#388) 2018-03-04 11:07:21 +00:00
Oliver Smith
e654a995e6 device packages: depend on postmarketos-base (#1258)
* device-*: add postmarketos-base to depends
* aportgen: add postmarketos-base to depends
* Add test case
* postmarketos-base: Don't depend on devicepkg
* msm-fb-refresher: Enable service in post-install
2018-02-25 18:40:54 +00:00
Pierre Rudloff
0685ccaee7 gp-peak: Add support for osk-sdl and audio (#1243)
* gp-peak: Add support for osk-sdl
* gp-peak: Move non-kernel files to device-gp-peak
* gp-peak: Add audio support
Manually trigger the udev rules for audio devices and add the default user to the audio group
2018-02-22 23:36:24 +00:00
Pierre Rudloff
eb6ab4c641 gp-peak: display and touch screen (#1226)
Adds a /etc/local.d/ script in order to work around
udev being broken with this kernel.
2018-02-18 01:42:46 +00:00
clayton craft
1d702fd28f Fix #588: Add chrony ntp client & timezone config (#674)
This adds chrony as the ntp client (starting on boot), and also adds a
prompt in the init step for configuring the timezone.
2017-10-13 19:18:24 +00:00
Pablo Castellano
114fdc0a68 Close #709: Improve user creation (#725)
* Allow to specify a custom username in "pmbootstrap init"
* Build chroots have "pmos" instead of "user" as username now
* Installation user UID is 1000 now (as in all other Linux distributions)
* Adjust autologins
* postmarketos-base: enable wheel group for sudo, removed previous sudoers file
* Implement safe upgrade path:
We save the version of the work folder format now, in $WORK/version.
When this file does not exist, it defaults to 0.
In case it does not match the currently required version
(pmb.config.work_version), then ask the user if it should
automatically be upgraded.
2017-10-12 20:08:10 +00:00
clayton craft
caf386d8ec Set swclock to use recent date/time on first boot (#723) 2017-10-09 19:10:28 +00:00
drebrez
d82e8f7199 Fix #199: Run weston with user instead of root (#707) 2017-10-07 16:14:49 +00:00
Pavel Machek
edbe7f92d7 Fix #669: Only do useradd via Python, properly install /etc/skel defaults (#685) 2017-10-03 18:10:28 +00:00
clayton craft
775ba6ad36 Fix console blanking (#676)
So I was wrong.. /etc/issue needs to contain the escape sequence output
by setterm,  not the actual call to setterm itself. My previous testing
of this was faulty, which led me to believe the previous implementation
of this would work.
2017-10-02 22:41:19 +00:00
clayton craft
08ada9641d Fix #570: postmarketos-base: Start swclock service on boot (#660)
This service will set system time from the mtime of a file written on shutdown.
2017-10-01 00:51:32 +00:00
clayton craft
c30957ca67 Fix #193: Enable console screen blanking (#661)
This enables console screen blanking/powersaving by default. Without it, the screen will stay on indefinitely, killing battery life and/or prolonging charge time. UIs should be able to override this with dpms (e.g. xset). I arbitrarily chose 5 min as the blank time.
2017-09-30 22:41:45 +00:00
Attila Szöllősi
41fcf67bc5 postmarketos-base: Write /boot to /etc/fstab (#653)
Also removed fstab entry from nokia-rx51 post-install script.
2017-09-30 21:52:33 +00:00
Oliver Smith
09afa1f853 postmarketos-base: Execute setup-udev, remove mosh from dependencies (#647)
* postmarketos-base: Execute setup-udev, remove mosh from dependencies

* Run setup-udev [0], because that is what `setup-xorg-base` does [1].
It configures more than one OpenRC service and it also messes with the
runlevels. Only after running that, Hildon works (tested in Qemu).

[0]: 2fbea8b8da/main/eudev/setup-udev
[1]: 06300dd483/setup-xorg-base.in (L25)

* Remove `mosh` from `postmarketos-base` dependencies. I don't think anyone
uses it right now, and it's easy to add custom packages in `pmbootstrap init`
nowadays.

* Minor style changes in the `APKBUILD`
* [rx51] Remove udev-trigger service start
2017-09-29 16:10:09 +00:00
clayton craft
174cfcd7eb Enable dbus service by default (#628)
Quite a few things use dbus (plasma, hildon, ofono, connman,
networkmanager, etc) that I think it makes sense to just have this
started by default in pmOS rather than have every device package
implement this on their own.

In case someone shows up with a use-case, where dbus by default
is not desired, please speak up. Possible solutions are in #628.
2017-09-25 20:33:04 +00:00
Luca Weiss
3ecfa09d8e postmarketos-base: Update wiki link (#607) 2017-09-21 19:56:59 +00:00
clayton craft
28595f72ef Close #574: swap file support/encrypted swap on rx51 (#585)
This adds a custom swap file service, which allows specifying a
recommended swap size in the deviceinfo file via
`deviceinfo_swap_size_recommended`. For the N900 this defaults
to 1024 MB now. As the swap file is created in the root partition,
we have encrypted swap now (unless encryption is disabled with
`--no-fde`).
2017-09-20 18:32:19 +00:00
clayton craft
1bef78c6df Add msm-fb-refresher package and initfs config (#587)
* Add msm-fb-refresher package and initfs config
* Bump version for pmos-mkinitfs
* Create msm-fb-refresher openrc service
* kill refresher when initfs is done
2017-09-18 19:17:30 +00:00
clayton craft
d842513f5c [postmarketos-base] Fix typo in sed statement (#586) 2017-09-16 00:01:25 +00:00
clayton craft
e473a6cf3f Fix wpa_supplicant configuration (#578) 2017-09-15 17:44:50 +00:00
clayton craft
c08ac45efd Fix #396: No root autologin except for weston (#407)
This commit disables root autologin for postmarketos-base and enabled
root autologin for postmarketos-ui-weston (since weston-launcher is not
built, weston can only be run by root).
2017-08-18 15:55:30 +00:00
clayton craft
88c753e5ae Move wpa_supplicant to default runlevel (#286)
Having it in boot doesn't actually work, the service is being started
too early and fails. This change moves it to the default runlevel. This
change also removes "wifi-handler" since that service doesn't actually
exist.
2017-07-30 13:19:43 +00:00
Oliver Smith
3e140ea690 Close #194: Aports subfolders! See migration guide in the wiki (#227)
Migration guide:
https://github.com/postmarketOS/pmbootstrap/wiki/Migration-to-aports-subfolders
2017-07-28 22:34:40 +00:00
Renamed from postmarketos-base/postmarketos-base.post-install (Browse further)