This upgrades the package to include:
- Support for usb serial console (only in OS, not in u-boot)
- udev rule to fix phone calls with modemmanager using the
broadmobi modem in the phone
- The beginnings of usb network support (still not functional
yet)
- Enable framebuffer in the deviceinfo, pmos logo on boot!
The udev rule and module configs were gathered from upstream Purism
PureOS.
This adds new subpackages for phosh, plasma, and a new dependency on the
phone device package for wys (in Alpine Linux)
This adds subpackages for pulseaudio, phosh, and plasma mobile, and
includes some configuration files from upstream Purism for udev and
pulseaudio that help with audio a bit (though phone audio routing is
still weird/broken for now..)
The separate subpackages for phosh and plasma are necessary becuase they
each use a different modem handling daemon (modem manager and ofono,
respectively).
Add a vibration feedback, along with the LED feedback when booting.
This is suggested by TL Lim.
When trying to power up the phone with holding it in the hand, vibration
feedback is more obvious than LED.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Started porting pmOS to Xiaomi Redmi Note 5 Pro (whyred).
What works so far:
- Booting
- SSH over USB
- SD card detection (haven't tried flashing to internal storage because
i'm afraid of bricking the device due to anti-rollback)
- Vibration and LEDs
- Screen
- Hardware buttons
- Touchscreen
Untested:
- WiFi
- Camera
- Audio
- Bluetooth
- GPS
- Calls, SMS, Cellular network
- Proper WiFi support (building modules, firmware package)
- Architecture change to armv7
- Fix no MAC address on USB networking
[ci:skip-build]: already built successfully in CI
The datasheet says that the AT+QDAI audio routing configuration is saved
to non-volatile memory directly, and therefore needs a modem reset to be
applied.
This commits changes the audio routing configuration script to first
check for the current configuration, and only change it if it is
different from the one wanted.
The new configuration is then sent, and modem is reset to apply
configuration.
The pkgrel bump in !1032 got lost during a rebase, rebuild the package to fix:
ERROR: Could not find dependency 'modem-qcom-msm-mainline-common' in any aports folder or APKINDEX.
The pkgrel bump in !1032 got lost during a rebase, rebuild the package to fix:
ERROR: Could not find dependency 'modem-qcom-msm-mainline-common' in any aports folder or APKINDEX.
The pkgrel bump in !1032 got lost during a rebase, rebuild the package to fix:
ERROR: Could not find dependency 'modem-qcom-msm-mainline-common' in any aports folder or APKINDEX.
Combine modem-qcom-msm-{mainline,downstream}-common to a single APKBUILD
with mainline and downstream subpackages.
Enable rmtfs service here instead of directly in the package.
[ci:skip-vercheck]: for qrtr version fix
This device is probably broken at this point, but since we want to
remove linux-postmarketos-mainline/stable it really has best chances
to work (somewhat) on linux-postmarketos-qcom-msm8974.
This commit adds support for the Alcatel OneTouch Pop 7S (pop7lte),
a 2014 MSM8226-based tablet, using manufacturer's downstream kernel.
Currently working: display, USB networking, Weston
Firmware is packaged for WiFi and audio but the downstream kernel tree
doesn't seem to include drivers for the qcom wlan chip, only wcnss.
Additionally, audio mixer config is missing as I haven't been able to
find it in the stock Android 4.2.x ROM's filesystem yet.
Please note that this commit adds support *only* for model P330X,
which is not to be confused with similarly-named incompatible devices,
the Pop 7 (also 2014 w/ MT8312) and the Pop 7 LTE (2016 w/ MSM8909).
Signed-off-by: Lauren Kelly <lauren.kelly@msn.com>
All the downstream kernels reference ../../.shared-patches in their
symlinks. Now that we have moved device ports to device/testing/*,
those symlinks are no longer working.
Changing the path would require fixing all downstream packages *and*
a new pmbootstrap release. Overall it seems easier to move the
.shared-patches folder to device/.shared-patches.
Since it is only relevant for downstream kernel packages in device/
that might be a better place in general.
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
pmbootstrap now configures consistent QEMU hardware for all architectures.
This means that the device package for amd64/aarch64 is now almost identical,
except for the architecture and the name of the serial port.
pmbootstrap always uses virtio-gpu now (but not necessarily virgl),
so there is only one consistent set of initfs modules we need to configure
for both architectures.
Also add the xfce4 package from amd64 to aarch64, exactly the same
problem with the wallpaper exists there.
We haven't been maintaining linux-postmarketos-mainline/stable very
well. Let's recommend use of one of the Alpine kernels which are actively
updated with new LTS updates (see #464).
This simplifies upcoming refactoring of the QEMU device ports,
which may (or may not) work with the more minimal kernel configurations
in linux-postmarketos-mainline/stable.
For some reason, the default SDL UI has been using 1024x768 for a while
now. This causes the splash screen to look weird because it is too small.
Now that pmbootstrap tries to configure 1024x768 in all cases
we can change the resolution for the device ports.
QEMU has its own DHCP server, which provides the necessary routes
and DNS server to access THE INTERNET. Trying to make QEMU provide
something similar to our usual USB network (by starting our our DHCP
server) will just confuse everything and break Internet access in most
cases.
Remove all our custom setup and let QEMU handle all the hard work.
mesa-dri-swrast and mesa-dri-virtio are actually provided by the same
package in Alpine now, so the selection in pmbootstrap does not have
any use. Always install mesa-dri-gallium instead.
Adds samsung-matissevewifi support using msm8916-mainline/linux kernel.
- Device can boot.
- USB network is working.
- Can connect to device using SSH.
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]
Attempting to use a stable device path there does not actually work,
so we might as well remove it and hope that directfb can now automatically
detect the touchscreen for osk-sdl.
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
Audio stopped working after alsa-lib-1.2.1, this patch fixes it
by adapting it to ucm2 format.
As well as some improvements to HiFi:
- Remove SpeakerMic as it was just HandsetMic without conflict
with Speaker
- Remove some unnecessary conflicts with ports
- Add input/output priorities
Co-Authored-By: Asriel Dreemurr <asriel.danctnix@gmail.com>
This adds basic functionality for the Moto One Hyper.
The device boots with rootfs on sd, booted by 'pmbootstrap flasher boot'.
USB net works, and i can ssh in. There is no framebuffer device, but
weston works with the drm backend instead of fbdev. Touchscreen support
is not implemented yet, but i will update this with support when i get
the chance. Most other functionality either does not seem to work yet or
has not been tested (wifi, audio, modem, etc).
CONFIG options added:
- nvidia tegra partition support (now it's kernel option)
- CONFIG_SECCOMP support (needed for Epiphany and lot of others)
- CONFIG_USER_NS required for bubble wrap (used by Epiphany)
- CONFIG_TEGRA_SOCTHERM as module, required for thermal management
DTS change:
- grouper we all have has codename "tilapia" (w/ GSM), since no-one had "older" grouper
- in future, when we get testing, we'll add "real" grouper (wo/ GSM)
- no functional change in DTS (except wiring SMB347 driver)
Kernel changes:
- added SMB347 driver support (now it's able report charging state)
Signed-off-by: David Heidelberg <david@ixit.cz>
v2:
- Also switch firmware/firmware-asus-flo
- fix linting warnings
device/linux-asus-flo/APKBUILD: IC:[AL6]:device/linux-asus-flo/APKBUILD:36:prefix custom variable with _: HOSTCC="${CC:-gcc}"
IC:[AL6]:device/linux-asus-flo/APKBUILD:37:prefix custom variable with _: HOSTCC="${HOSTCC#${CROSS_COMPILE}}"
IC:[AL6]:device/linux-asus-flo/APKBUILD:39:prefix custom variable with _: ksrcdir="$srcdir/linux-$pkgver"
MC:[AL5]:device/linux-asus-flo/APKBUILD:10:variable set to empty string: depends=""
MC:[AL5]:device/linux-asus-flo/APKBUILD:13:variable set to empty string: install=
MC:[AL5]:device/linux-asus-flo/APKBUILD:30:variable set to empty string: subpackages=""
MC:[AL31]:device/linux-asus-flo/APKBUILD:36:variables must not have capital letters
MC:[AL31]:device/linux-asus-flo/APKBUILD:37:variables must not have capital letters
MP:[AL32]:device/linux-asus-flo/APKBUILD:3:unnecesary usage of braces: ${_flavor}
MP:[AL32]:device/linux-asus-flo/APKBUILD:4:unnecesary usage of braces: ${_flavor}
MP:[AL32]:device/linux-asus-flo/APKBUILD:32:unnecesary usage of braces: ${pkgver}
firmware/firmware-asus-flo/APKBUILD: MC:[AL28]:firmware/firmware-asus-flo/APKBUILD:12:literal integers must not be quoted
MP:[AL32]:firmware/firmware-asus-flo/APKBUILD:15:unnecesary usage of braces: ${_url_aosp}
MP:[AL32]:firmware/firmware-asus-flo/APKBUILD:15:unnecesary usage of braces: ${_version_broadcom}
MP:[AL32]:firmware/firmware-asus-flo/APKBUILD:16:unnecesary usage of braces: ${_url_aosp}
MP:[AL32]:firmware/firmware-asus-flo/APKBUILD:16:unnecesary usage of braces: ${_version_qcom}
MP:[AL32]:firmware/firmware-asus-flo/APKBUILD:22:unnecesary usage of braces: ${_commit_other}
MP:[AL32]:firmware/firmware-asus-flo/APKBUILD:24:unnecesary usage of braces: ${_commit_other}
MP:[AL32]:firmware/firmware-asus-flo/APKBUILD:24:unnecesary usage of braces: ${_url_other}
Signed-off-by: David Heidelberg <david@ixit.cz>
The downstream kernel doesn't provide a separate dtb file,
but the experimental mainline kernel does.
Previously, the deviceinfo specified a dtb file for both kernels,
and pmbootstrap ignored the missing file for downstream kernel.
pmbootstrap now errors when the dtb file is missing, so this
fixes the downstream kernel by specifying a dtb file only for
the upstream kernel.
We should do this in the UI packages that need it rather than in the
device packages themselves because for example Phosh doesn't need Ofono
but ModemManager
* 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
The patch set for asus-me176c is really small at this point, and there
is no need to make a new tag for each minor kernel update. Usually the
previous patch set will still apply correctly.
Refactor the APKBUILD to build the kernel similar to linux-lts in Alpine,
and use the original kernel tarball together with a small patch file on top.
Also enable Android-related options in the kernel so we can test
Anbox on asus-me176c.
The Wileyfox Swift is the only mainline MSM8916 device using QCDT
at the moment. The other devices do not have unique qcom,board-ids
that could be used within QCDT.
So far this has worked fine for the Wileyfox Swift. However,
in preparation to *optionally* load the modem we now need two separate
pairs of DTBs (one with modem and one without modem). This is simple
to implement using appended DTBs, but not possible with QCDT.
So let's stop using QCDT entirely for mainline,
and use appended DTBs for wileyfox-crackling.
- use mesa-git (until we have functional mesa-grate-git)
Works:
- USB
- WiFi (tested with IWD) + Bluetooth
- Touchscreen
- Phosh rotation (rootston.ini)
- IIO Light sensor
- NFC
Not works:
- 3D
- GPS
- GSM (tilapia)
- Camera
Signed-off-by: David Heidelberg <david@ixit.cz>
[ci:skip-build]: already built successfully in CI
This enables the out of tree redpine wifi driver currently included in
the Purism kernel that these devices boot.
There's at least one MR @ purism needed before the mainline wifi driver
can be used:
https://source.puri.sm/Librem5/linux-next/merge_requests/66
This is based on input from Sebastian Krzyszkowi.
Flash (split) boot partition to the "APD" partition.
It's a rather useless partition with media files for demo purposes.
Perfect for a small(-ish) boot partition with ~300 MB.
This addresses the issue here, but only for the devkit:
https://source.puri.sm/Librem5/linux-next/issues/114
I didn't patch the dts for the phone because:
1) I don't have one to test
2) it might negatively impact batter life (I'm only speculating)
[ci:skip-build]: already built successfully in CI
Support for the downstream kernel has been removed entirely. This is
because the downstream kernel only has support for the armhf
architecture, whereas linux-postmarketos-qcom-msm8916 is only built
for aarch64. Since pmbootstrap has no way to handle having two
kernels on differing architectures, the decision was made to remove
the downstream kernel and only support mainline.
The Intel graphics in asus-me176c have (incomplete) Vulkan support
in Mesa. Make it possible to use Vulkan by installing the Intel
driver that is necessary for it.
The mesa-dri-intel package is deprecated since it was replaced with
mesa-dri-classic and mesa-dri-gallium. Installing mesa-dri-intel
causes both packages to be installed.
The Intel graphics in asus-me176c are not supported by the new
Gallium "iris" driver, therefore asus-me176c can only use the old
i965 driver available in mesa-dri-classic.
Removing mesa-dri-gallium reduces the disk space needed for a minimal
installation on asus-me176c:
- Before: 329M
- After: 256M (-73M)
mesa-git-dri-gallium covers all Gallium DRI drivers
(including lima and kmsro).
Also mesa-git-dri-gallium now depends directly on all relevant
mesa-git subpackages, so the subpackages do not need to be specified
in each device APKBUILD anymore.
mesa-git-dri-gallium covers all Gallium DRI drivers
(including lima and kmsro).
Also mesa-git-dri-gallium now depends directly on all relevant
mesa-git subpackages, so the subpackages do not need to be specified
in each device APKBUILD anymore.
mesa-git-dri-gallium covers all Gallium DRI drivers
(including lima and kmsro).
Also mesa-git-dri-gallium now depends directly on all relevant
mesa-git subpackages, so the subpackages do not need to be specified
in each device APKBUILD anymore.
This updates the uuu flasher script to conform to what Purism uses, and
changes the package to use the new M4 + uboot image that is generated by
the librem5 u-boot package.
It also changes the kernel/uboot to the 'generic' librem5 kernel/uboot.
The librem5 devkit and phone share the exact same kernel/branch, so this
package is renamed to be a bit more generic, and update to the latest
version in the Purism kernel tree.
samsung-serranovelte runs Linux mainline (linux-postmarketos-qcom-msm8916)
with support for:
- Display
- Touchscreen
- Sound
- GPIO keys
- NFC
- Vibrator
- IMU (Accelerometer + Gyroscope)
- Battery
The primary limitation of samsung-serranovelte is that it can only run
ARMv7 (32-bit) binaries, even though its hardware (MSM8916) is 64-bit
capable. This is because it was never updated with 64-bit compatible
firmware (usually introduced together with the Android 5.0 update).
[ci:skip-vercheck]: only added new architectures
The post-install depends on the -openrc files being present, and if the
dependency isn't explicitly specified then the device-* package may be
installed before the -openrc package, causing the post-install to fail.
Both sway and phosh require hardware acceleration (DRM) to work. Let's
activate that when we request one of them. Also don't let them fail
during startup on inputless setups (which is common on a raspberry pi).
Phosh is too slow to be unsable, but now, it'll at least be unusable out
of the box ;-)
Without this MR, elogind, and therefore weston will not start as it will
complain about cgroup mess:
[ 21.387150] elogind-daemon[1538]: Failed to determine whether /sys/fs/cgroup is a mount point: Symbolic link loop
[ 21.388341] elogind-daemon[1538]: Failed to mount cgroup at /sys/fs/cgroup/elogind: No such file or directory
Fix by applying this patch, thanks minlexx for pointing me to it! This
might possibly also be applicable to other kernel 3.4-based ports.
[ci:skip-build]: already built successfully in CI
This provides alsa usecase profiles for the audio routing in the
pinephone, pulseaudio also picks up this config.
[ci:skip-build]: already built successfully in CI
Remove all firmware-support dependencies from the firmware package and
add them to -downstream-firmware and -mainline-firmware packages which
have an install_if on the downstream or mainline kernel subpackage.
[ci:skip-build]: already built successfully in CI
Stock Android on PineTab is detected as 1f3a:1007.
Use those values as USB idVendor and idProduct on
postmarketOS, too.
idVendor 1f3a is "Allwinner Technology Co., Ltd."
idProduct 1007 is unknown to databases.
device/device-asus-me176c:
- Install me176c-factory to apply correct MAC addresses for
WiFi and BT
- Use FAT32 for boot partition. This allows flashing the boot
partition directly as ESP (EFI System Partition).
- Overall cleanup
device/linux-asus-me176c:
- Update kernel fork to 4.19.80
- Cleanup APKBUILD
- Stop building patched ACPI DSDT table directly into kernel
firmware/firmware-asus-me176c:
- Package WiFi firmware
firmware/firmware-asus-me176c-acpi:
- New package for the patched ACPI DSDT table
-> Separate from firmware-asus-me176c because it is always required,
(not optional)
[ci:skip-build]: runs into timeout
The modem boots up properly without causing any problems, so let's
install the firmware and support packages by default.
Also install adsp-audio now by default to boot up the adsp for audio and
other services provided by the processor.
[ci:skip-build]: already built successfully in CI
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
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
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
in Librem 5 devkit, card0 is coming from etnaviv and is not usable for
kms/drm. So force usage of card1 for kwin_wayland.
[ci:skip-build]: won't finish in time
This simplifies the uboot script and updates it to use correct address
offsets for kernel, ramdisk and fdt. Appending the dtb to the kernel is
no longer necessary. This also changes the dtb to the one used on
PureOS.
linux-samsung-apexq/APKBUILD updated with newer kernel commit
sha from d2 repo, and now builds and packages modules into the
rootfs in /lib/modules/. prima wifi module not yet working.
The subpackage depends on the "kernel-scripts" package, which has been
removed from pmaports.git. Therefore the -dev package could not be
installed, and our CI check of the binary repo noticed this and was
failing.
Related: https://gitlab.com/postmarketOS/pmaports/merge_requests/329
Make the renamed pine packages build again, by giving their post-install
files the new pkgname.
(So much for trivial package renames, needs better testing next time :p)
* 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
Changes in the kernel defconfig:
- disable ANDROID_PARANOID_NETWORK (removes network restrictions)
- enable CONFIG_USB_G_ANDROID and CONFIG_DIAG_CHAR (for USB networking)
- enable DEVTMPFS (needed for udev -> touch support in weston)
- enable FB_MSM_DEFAULT_DEPTH_RGB565 (for 16-bit support to avoid red
screen)
- enable SYSVIPC (so busybox' syslogd can log to a ringbuffer in the
kernel)
- enable VT (for virtual terminal over USB)
[ci:skip-build]: already built successfully in CI
Insert missing space into the depends line, so it reads "gmp-dev bash"
instead of "gmp-devbash". This did not cause a build failure, but made
the upstream compat CI check fail after the binary package had been
built and uploaded. It would also cause an error if one tried to install
the package. The CI check will pass once the fixed package is built and
uploaded.
[ci:skip-build]
* add dev-package
* modularize some kernel drivers
* modernize Makefile to silence some warnings
* fix various warnings
* add some CVE patches
[ci:skip-build]: already built successfully in CI
This rebases the Pixel 3 XL patches on top of Linux 5.3-rc5.
Also enabled more kernel modules related to modem, and applied
Bjorn Andersson's patch for resetting the UFS memory.
See
https://gitlab.com/postmarketOS/pmaports/issues/153
for more information.
[ci:skip-build] because kernel takes more than one hour to build
Some Samsung muic's have debug possibility, but seems kernel config
option for that was deleted. Muic debug can be useful for attaching UART
cable to phone.
[ci:skip-build]: already built successfully in CI
Firmware for Exynos 7880 SOC from https://github.com/TheMuppets
It is needed to enable wifi, and possibly other hardware. All of firmware found on Muppets has been packaged.
Also contains wlan module configuration.
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
- rename 'ch-de' keymap to 'ch' as in X keyboard config file
- add PMOS_NO_OUTPUT_REDIRECT to kernel cmdline (fixes debug-shell)
- add all keymap files in initramfs
- load default us keymap in initramfs
Also fix a few spaces->tabs issues while we're at it.
Should result in the exact same commit being download as before, the
checksum is different because GitHub puts the commit instead of the
branch name into the archive.
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
- OTG support
- Charger
- WiFi 5GHz
- RTC bug "fixed" (always-on interrupt - made device overheat!)
- Kernel version bumped to 5.2.1
- Memory timings
- New WM8994 codec board driver (fixes suspend/resume)
- Camera's regulator supported now (saves power at least!)
- Updated panel driver (still not in mainline, idk why)
- MHL support in kernel (fixes boot times and screen, currently disabled in X,
not tested)
- Other minor kernel chagnes
[ci:skip-build]: already built successfully in CI