Prepare for better device categorization by moving everything to testing
subdir first.
[skip-ci]: chicken-egg problem: passing pmaports CI depends on pmbootstrap MR
depends on this MR
Related: postmarketos#16
All device ports have been changed in one of the previous commits,
so do one pkgrel bump for all of them using:
$ pmbootstrap pkgrel_bump device-*
[ci:ignore-count]
Most devices do not need to set any of these variables.
directfb can now automatically detect touchscreens, calibration is
only needed for resistive touchscreens and dev_keyboard is unused.
Automatically done using:
- sed -i '/deviceinfo_dev_keyboard=""/d' device-*/deviceinfo
- sed -i '/deviceinfo_dev_touchscreen=""/d' device-*/deviceinfo
- sed -i '/deviceinfo_dev_touchscreen_calibration=""/d' device-*/deviceinfo
* move msm-fb-refresher dependency to downstream kernel package,
it is useless on mainline
* disable msm-fb-refresher service when using libhybris
adaptation, it is only required for downstream kernel *without*
libhybris. It interferes with qcom kgsl-adreno driver badly
(causes screen flickering)
* set CPU governor to conservative on system startup (it lowers
CPU frequency in idle state from initial 2.4 Ghz to 300 MHz)
* add hybris_pulse subpackage that gets installed only when
device-samsung-klte-hybris AND pulseaudio are installed. It
pulls in pulseaudio-modules-droid-7.1-caf and alsa integration
* add system.img symlink to lxc-android installation. With this
you can have Android container successfully running already
at the first boot without need to do it manually. Halium
installation process puts your system.img to /data partition
by default, so follow their recommendation. We can use a
symlink to save some space on /system partition.
[ci:skip-build]: already built successfully in CI
We have linux-postmarketos-qcom and linux-postmarketos-qcom-msm8916 now,
which is quite confusing. linux-postmarketos-qcom was originally added
for MSM8974 devices (e.g. Nexus 5) and its patches on top of mainline
are therefore quite focused on MSM8974.
linux-postmarketos-qcom-msm8916 on the other hand, has patches specific
to MSM8916. The two packages do not have any patch in common, therefore
merging the two would only cause signficiant overhead to coordinate
testing for devices of the two SoCs.
Therefore, it is better to keep them separate.
To avoid confusion, rename linux-postmarketos-qcom to
linux-postmarketos-qcom-msm8974 to make it clear that it is really
a close-to-mainline kernel for MSM8974 devices.
[ci:skip-build]: already built successfully in CI
Lots of device-specific configurations:
* android mount points and mounts
* android groups and users (needed for udev rules)
* android udev rules for platform devices (needed for android services to run)
* NetworkManager device-specific config
* wpa_supplicant device-specific config
* device-specific openrc service for late initcalls to bring up Wi-Fi hardware
* extra helper scripts to call logcat, set backlight brightness,
get battery status, unlock kde screenlocker session
* use kernel cmdline from downstream android to keep it as close to
android as possible. Important for android in lxc container later
We don't need to append the dtb to the kernel image in all cases, with
e.g. the u-boot bootloader we can load the dtb seperately from the
kernel image. Introduce a new variable deviceinfo_append_dtb, if set to
"true", append the dtb, otherwise just copy the dtb file to the boot
partition.
Fixes#260
[ci:ignore-count]
Use the device's architecture instead of noarch. Because the device
packages should never be built for other architectures, even if all
depends can be built for other arches as well.
This simplifies package building as part of the new build
infrastructure effort.
pmbootstrap has also been changed to output this by default in
aportgen.
Changes:
* device-samsung-klte with both downstream and mainline kernel
subpackages
* linux-postmarketos-qcom updated to last commit
What works in mainline kernel:
* internal SD card
* volume and home key buttons
* usb network
The `msm-fb-refresher` updates the screen for msm based devices. It is
not needed for all devices, so we had some extra code in the initramfs,
that would only add it when the `deviceinfo_msm_refresher` variable was
set. However, we are able now to add files to initramfs hooks, so this
hack can be removed and simplify everything.
Changes:
* Remove `deviceinfo_msm_refresher` from all deviceinfos
* Add sanity check for it
* Move all `deviceinfo` sanity checks to an extra function
* `postmarketos-mkinitfs`: remove code for msm refresher
* `msm-fb-refresher`: add initramfs hook
* 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