It seems the the CFLAGS are not properly set in the CMakeLists.txt.
Cmake currently appends -std=gnu90 at the end of the CFLAGS, overriding
the earlier set -std=c99. Work around this with sed. Better fix is
welcome, this is a stop-gap solution to unbreak the build (which is
blocking build.postmarketos.org).
It's unmaintained both on our side and upstream. Nobody stepped up to
maintain it (https://gitlab.com/postmarketOS/pmaports/issues/372), so
let's drop it before it introduces security issues and compilation
problems.
ConfigFS USB attrs are customizable based on the `deviceinfo_usb_*` variables,
however some downstream kernels (e.g: msm-3.18) doesn't use configfs, instead
uses the traditional Android USB Gadget.
Based on `deviceinfo_usb_{idVendor/idProduct}` variables, we can change the USB
vendor and product.
So that on these devices, we can make it appear on USB bus as the correct USB
vendor/product ID, not "Google Inc. Nexus 4 (fastboot)"
Signed-off-by: Danct12 <danct12@disroot.org>
At the moment, a full file system check is forced even if the
file system is marked clean (i.e. it was properly unmounted the
last time it was used). On large file systems with slow I/O
(e.g. SD cards), this can take a significant amount of time.
Removing the -f option of e2fsck allows skipping the full
file system check if it is marked clean, speeding up the boot time.
Some devices' downstream kernels may have different RNDIS/functionfs
drivers (ex. QCRNDIS) that require different values for some
configfs gadget attributes. Make it possible to customize with
deviceinfo file from device- package.
The idea is that each device- package can optionally specify a
bunch of `deviceinfo_usb_*` variables to customize the way it is
visible on USB bus. The ability to override
`deviceinfo_usb_rndis_function` is essential to make downstream
sdm660 based device to appear on USB bus.
While at it, make `idVendor`, `idProduct` and `serialnumber` also
customizable. So that we can make, for example, PineTab appear on
USB bus as PineTab, not as "Google Inc. Nexus 4 (fastboot)".
Mainline U-Boot looks for the device tree blob in the "second" area
of the Android boot image (see https://patchwork.ozlabs.org/patch/1025211/).
Add an option "deviceinfo_bootimg_dtb_second" to place the device DTB there.
Currently, the USB networking setup using configfs does not configure
a "serialnumber" for the USB gadget. This means that an empty
serial number will be sent during USB enumeration.
This is usually not a problem, but it seems to cause issues under
special circumstances (on asus-me176c on one of my PCs).
The USB Gadget configfs documentation also suggests setting
the "serialnumber":
https://www.kernel.org/doc/Documentation/usb/gadget_configfs.txt
It can be any string, so we can just set it as "postmarketOS" like
the manufacturer.
The openrc service of lightdm has been moved to lightdm-openrc in
Alpine. Fix all UIs depending on lightdm, so their post-install script
does not fail with:
Executing postmarketos-ui-plasma-mobile-2-r6.post-install
* rc-update: service `lightdm' does not exist
Upgrade and add depends to static libraries to make it build again. When
the package was added initially, the static libraries were part of the
respective -dev packages.
The initramfs needs ext4 (to mount the rootfs) and usb_f_rndis
(to enable USB networking on devices that use USB configfs).
If these are built as modules, they need to be included in initramfs.
[ci:skip-build]: already built successfully in CI
apitrace have a GUI tool to inspect the trace dumped by apitrace tool.
This is built when a optional dependency of qt5 widgets and qt5 network
is satisfied. So build that as well.
current version merged was missing the zlib-dev and libpng-dev
dependency which would make apitrace build internal copies of them, and
that would fail due to missing patches for musl.
add dependencies zlib-dev and libpng-dev
The package was added with the initial Unity 8 packaging but even then
it seems that this package was never actually used.
Remove it because it no longer builds (some patches upstream might get
it building again).
[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
5.17.x will be released soon with python3 changes, but before it is, for
now let's add this critical bugfix
[ci:skip-build]: already built successfully in CI
The sparse image tools (img2simg, simg2img, append2simg) are now
part of Alpine's android-tools package where they are continously
updated. (See https://github.com/nmeum/android-tools/pull/8)
Remove "libsparse" as depends from all packages because it is either:
- installed automatically by pmbootstrap when needed for
deviceinfo_flash_sparse="true"
(device-chuwi-hi10plus, device-htc-flounder, device-lg-bullhead,
device-semc-anzu, device-xiaomi-kenzo)
- seemingly unused(?)
(device-asus-z00t, linux-motorola-falcon, linux-motorola-peregrine)
[ci:skip-build]: already built successfully in CI
Phosh depends on gnome-session, which is currently not available in
Alpine for armhf. Fix the arch-lines to unblock building the binary
repository. [ci:skip-vercheck]
Fixes 'pmbootstrap flasher boot' for fastboot devices. This is probably
not used as often as 'pmbootstrap flasher flash_*', so I'm not enforcing
the upgrade by modifying pmaports.cfg this time.
We'll switch from whatever version of shellcheck is packaged in Debian
stretch to the newer version in Alpine edge in the next commit. Adjust
postmarketos-mkinitfs first, so it doesn't report any errors.
Also removed the explicit depends on telepathy-mission-control, as that
was already picked up by abuild with the soname
[ci:skip-build]: already built successfully in CI
This MR enable the new CONFIG_SND_SOC_NOKIA_RX51 kernel option which
replaces the old CONFIG_SND_OMAP_SOC_RX51, enabling the audio on the
N900 again (just tested).
[ci:skip-build]: won't finish in time
Rebuild all other GCC packages against mpfr4, so they don't fail with:
Error loading shared library libmpfr.so.4: No such file or directory (needed by /usr/gcc4/libexec/gcc/x86_64-alpine-linux-musl/4.9.2/cc1)
[ci:skip-build]: won't finish in time
Related: 2b32ed3a48786fa151cad8f920e5d9997bee94ed in Alpine's aports.git
* Added display in final pinephone to the kernel
* Added getty
* Use RGB led to signify booting status in u-boot
* Enable CONFIG_GPIO_SYSFS
[ci:skip-build]: won't finish in time
Seems like VIA/Wondermedia 8850 devices do not boot with the default
address. Add new deviceinfo_legacy_uboot_load_address variable to
allow setting a custom one.
[ci skip] Package output does not change except for meta
information (licenses), so don't build or verify checksums
of the packages to prevent outdated source URL's breaking it.
This will have to be looked at later
A Wayland kiosk. Works in Wayland (tested in weston), X11 (tested in
i3wm) and tty. Works with both dri-virtio and dri-swrast, but I won't
recommend you running with swrast because it's veeeeery slow.
[ci:skip-build]: already built successfully in CI
Previously, running reboot-mode as an unprivileged user resulted in
Error: No error information
without a newline at the end. According to SYSCALL(2), the return value
of -1 indicated an error, but the actual error code is stored in errno.
The DRM module itself can not do anything without a DRM driver.
It just takes up precious space (about ~5 MB for aarch64)
on the boot partition.
Devices that do include the appropriate DRM driver via
deviceinfo_modules_initfs will automatically pull in
"drm" and "drm_kms_helper" as dependencies, if needed.
So there is no need to depend on it explicitly.
Use deviceinfo_framebuffer_landscape during splash screen generation.
Also add the postmarketos-splash arguments variable to the computation
of the hash for the cache.
Adjust device-pine-pinetab to use the new variable, and therefore rotate
its splash screen.
[ci:skip-build]: already built successfully in CI
kirigami-gallery is not meant for users, but it is good testing
application and is even part of reference image provided by Plasma
Mobile team.
For now we are not targetting plasma-mobile towards users anyway and
only developers, so include kirigami-gallery in main UI package.
Currently we rely on the fact, that the kernel asks user space to load
the firmware for it, so we can use the /lib/firmware/postmarketos
directory for firmware.
As the kernel has support for loading the firmware itself since
v3.7, and the parameter for adding an additional path to the search
paths was added with v3.10, we can use that to not rely on
CONFIG_FW_LOADER_USER_HELPER being set.
Update to the 5.2 kernel plus my patches for the Nexus 5 display that
will also work for other msm8974-based systems:
https://github.com/masneyb/linux/commits/v5.2-nexus5-display. There's
currently 25 extra patches on top of 5.2:
- The first 9 patches after the 5.2 commit are currently in 5.3rc1 and
were back ported to 5.2. All of these patches have 'Commit XXX
upstream.' messages in the commit message.
- The next 9 patches are for ocmem support and some msm display fixes. I
expect that these will be merged upstream for 5.4rc1.
- The remaining 7 patches are still not suitable to send upstream.
[ci:skip-build]: already built successfully in CI
I've ordered the $depends list alphabetically for better readability,
and added the bluedevil (for Bluetooth) kwallet-pam and
xdg-desktop-portal-kde runtime dependencies.
[ci:skip-build]: already built successfully in CI
As Idan Horo wrote in osk-sdl!82:
"Newer versions of cryptsetup automatically encrypt with LUKS v2.
osk-sdl assumes all partitions are encrytped with v1 and as such fails.
By just changing the encryption type to NULL cryptsetup automatically
detects and chooses the correct LUKS version. Tested on xiaomi-kenzo."
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
This adds a seperate dts for the longts version of the devkit (which was
the un-inverted version before) and adds a shortts version which was
inverted before, but didn't exist in pmaports yet because I manually
edited the dts for every release.
This MR abuses the kernel switching feature to switch the dtb instead so
shortts/longts can be selected in the init step.
[ci:skip-build]: build won't finish in time
An SMS application for Plasma Mobile, finally!
Please note that it's still in development, and it doesn't work
flawlessly yet. For example new chats can't be initiated, someone else
has to send an SMS to you first before you can send an SMS back.
However, with this application basic phone functionality should work
with Plasma Mobile. I'll keep it up-to-date while it develops, just like
the other to-be-released Plasma Mobile applications we already package
(e.g. Plasma Camera).
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
* Added --skip option to skip specific tests
* Allow skipping broken inputs in interactive mode with ctrl+c
* Added basic modem test that lists modems in ofono
* Added audio test based on alsabat
* Added pressure sensor support
* Fixed temperature calculations
Use the start_weston.sh wrapper script again, and make it work with
lightdm. It makes custom weston configs possible, and allows starting
postmarketos-demos together with weston. The custom config logic uses a
default config from postmarketos-ui-weston unless it is overwritten
with a device specific config. Our default configs use fbdev in most
cases, as this is not the case since the change to lightdm, weston was
broken for most devices with downstream kernels, that only work with
framebuffer.
Lastly, set myself as maintainer for this UI. Resolves#289
Ollieparanoid extended this patch and made sure that this boots up
weston on the samsung-i9100 again.
When the UI package is reinstalled (due to the package being recompiled
or upgraded), it runs $pkgname.post-upgrade instead of
$pkgname.post-install which would run the sed replacement LightDM
autologin. This will cause LightDM to show the greeter when the UI
package is rebuilt, and the user ran pmbootstrap install without
deleting the old chroot.
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
Reviewed-by: Danct12 <danct12@disroot.org>
Signed-off-by: Danct12 <danct12@disroot.org>
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]
A framebuffer console plus gesture recognition UI option. Tested locally
building and on nexus 5. The power key works fine for me and the freeze
after sitting for about 5 minutes still happens for me but I don't
consider that necessarily a shelli bug, maybe the code needs to feed a
watchdog or something.
This adds the first interactive tests for inputs, interactive tests are
only run when specifying --interactive/-i. This also adds --export and
--verify. The export option will write the test results to an .ini file.
The verify option will run the tests and compare it to the saved export
and then will show a diff of hardware functionality.
Move Wayland meta packages to LightDM and replace ConsoleKit2 for
elogind for Plasma.
Now we don't need the hacky scripts in /etc/profile.d anymore!
This change requires elogind for both Weston and Plasma Mobile. Using
elogind allows us to use one patch less in kwin. Weston has logind
(which elogind provides) support disabled in Alpine Linux, so I put the
package in temp/ with it enabled for now, but will upstream this change
to Alpine.
Remove consolekit2 dependency in postmarketos-ui-xfce4.
[ci:skip-build]: already built successfully.
- main: postmarketos-mkinitfs: Add /run
Create the /run directory in the initramfs so that cryptsetup doesn't
crash on not being able to create /run/cryptsetup for lockfiles
- device: pine-dontbeevil: Remove workaround for touchscreen
- main: linux-postmarketos-allwinner: Implemented supplies for touchscreen
This uses a slightly newer commit from the kernel repo that implements
requesting a regulator in the touchscreen driver
- device: pine-dontbeevil: Remove ethernet from initramfs
This actually makes debugging more complicated since networkmanager wont
touch the ethernet adapter afterwards and the initramfs can be debugged
over uart
- temp/u-boot: sync APKBUILD with upstream and update to 2019.04
- main: linux-postmarketos-allwinner: Use 20190521 git version
Currently we're using matchbox-keyboard as on screen keyboard. However,
onboard seems to be a better alternative to, it has auto-show, word
suggestions, themes and settings you can choose. So far the best OSK out
there on the market.
There are a few minor issue such as word suggestions doesn't work (not
sure why, but i assume that onboard doesn't know about the program that
was in front of it), sound feedback doesn't work at all due to missing
sound despite it exists in
/usr/share/sounds/freedesktop/stereo/onboard-key-feedback.oga. Other
than that, I haven't found any issue while testing.
Tested on qemu-amd64.
On some devices (mainly the ones that uses wcnss-wlan), there is another
interface beside wlan0, which is p2p0. It is used for Wi-Fi Direct, but
beside that, this might also cause confusion to other users as well. And
also you cannot connect into any network with this interface.
* Fixed audio
* Fixed battery handeling
* Added fix for touchscreen not working for everyone
* Use newer upstream kernel
[ci:skip-build]: won't finish in time, Martijn made sure that it builds.
Rebuild to fix missing dependencies:
so:libicui18n.so.63, so:libicuuc.so.63
Currently we are facing another upstream compatibility issue with
Alpine, which is why CI will fail: polkit and therefore
networkmanager don't exist for armhf, armv7. See #244 for details.
This script triggers late initialization of some platform
drivers that cannot be probed at boot time, because for
example they use firmware blobs on partitions that are
not mounted during early kernel startup.
Disabled by default, can be enabled on per-device basis.
Plasma lockscreen is currently hard or impossible to unlock
using phone itself, that's why you should send a command to
ConsoleKit over DBus in a shell. This script saves from extra
typing.
The postmarketos initramfs is larger than android initramfs. This causes
problems on some devices like htc-ace that have a very small boot
partition (4MB in htc-ace). I've been able to make the boot image small
enough to fit by compressing initramfs using lzma.
With this change it should be possible to change the compression in
deviceinfo like this: deviceinfo_initfs_compression='lzma'
or even deviceinfo_initfs_compression='lzma -9'. When no option is
specified it defaults to 'gzip -1'.
I've also added dependencies to compression utilities for all possible
initramfs compression algorithms.
* Moved more PinePhone related kernel stuff to the upstream
* Added cma=256M so the CSI subsystem doesn't throw out-of-memory errors
when capturing at higher than 1280x720 resolutions (but it still hangs)
* Removed a lot of modules that get compiled for DVB tuners after
enableing the camera stuff.
[ci:skip-build]: doesn't finish in time
Explicitly depend on mpc1. Our generated gcc aports use the !tracedeps
option, so we need to explicitly set the libraries it depends on.
This has mostly not been an issue, as we are installing our gcc
packages together with Alpine's gcc package, which causes the libraries
to get installed anyway.
Fixes#236.
[ci:skip-build]: takes too long to build.
* Inverted the X-axis on the touchscreen
* Enabled the driver for the wifi/bluetooth chip and added it to the dts
* Added a horrible hack for making the touchscreen work
This also decreases the kernel version because the previous version I've
used was technically incorrect.
[ci:skip-build]: doesn't finish in time
This package was a workaround for out-of-tree modules (wireguard). We
have dropped the wireguard kernel module package already, and since
kernel-scripts is failing to build now (it would need to be updated),
let's drop it as well.
If somebody wants to bring back *and maintain* the wireguard
out-of-tree kernel module, I've documented how we had done it here:
https://wiki.postmarketos.org/wiki/Out-of-tree_kernel_modules
[ci:skip-build]: building the kernels that have been adjusted to drop
kernel-scripts related code would take too long for CI,
but I'm making sure that everything still builds before
merging.
* Created seperate DTB for the devkit named sun50i-a64-dontbeevil.dts so
it can easily be edited and the diff remains readable in gitlab
* Added patch to build the new dtb
* Added the ST LIS3MDL to the new dtb (Magnetometer)
* Added the SensorTek STK3335 to the new dtb (Proximity and ambient
light sensor)
* InvenSense MPU-6050 to the new dtb (Accelerometer and gyroscope)
* Added CSI bus and OV5640 camera
Remaining issues:
* The STK3310 module doesn't load automatically
* Camera doesn't want to capture but does show up as /dev/video0
[ci:skip-build]: doesn't finish in time
The working directory can contain other files. For example pmbootstrap uses
the same directory for generating android recovery zip files. Extra files
can end up being archived into the recovery zip.
This change explicitly passes the list of files to be archived.
Built and tested on x86_64, everything works as expected.
[ci:skip-build]: ollieparanoid made sure, that this builds for all
relevant arches. With crossdirect, so that means it is
pretty stable now \o/
UART and SSH work and HDMI works in u-boot (just like the pine-a64lts).
It should work now with display and xorg/weston works directly after
installing. Plasma mobile doesn't work directly because both kms and
fbdev are enabled and kms doesn't work yet.
linux-postmarketos-allwinner: update to 5.0.0-rc3 with patches for this
devkit, tested on this device and on pinea64lts (the only other device
using the allwinner kernel).
[ci:skip-build]: won't finish in time
Mir 1.1.2 builds without any out-of-tree patches, which is great.
I've updated a few other unity8-related packages too.
[ci:skip-build]: ollieparanoid made sure, that everything builds.
Without QT_QUICK_CONTROLS_MOBILE=true, kwin would assume it is on
desktop with touchscreen and would try to show resize overlay. which
doesn't work on phone.
Fixes#206