Ignore this kernel in "pmbootstrap kconfig check" by default, so we can
use the upstream kernel config without any changes. But still enable the
kernel config check again.
The related pmbootstrap change will be merged soon:
https://gitlab.com/postmarketOS/pmbootstrap/merge_requests/1753
[skip ci]: this change doesn't affect the build
Display is working in both X and wayland (tested with weston and XFCE).
Not tried with osk-sdl yet, charging-sdl seems to work fine.
USB networking and SSH is working too.
Camera subsystem disabled to prevent bootloops. This device brings its
own dtb.img format, but there's a generator in the kernel source that
is used at build time (patched to make it work properly).
[skip ci]: already built in CI successfully
- Use separated patches
- Use new panel driver (with backlight support)
- Battery fixes
- Fix compass (AK8975) (not tested, only probing works, but sometimes
doesn't - says "Unexpected device" - need to investigate that)
- Touchkey is working + LED
- Keyboard backlight + HALL for slideout detection
- Reverts few hacky commits that caused USB networking not to work
- Modified atmel drivers used by TF101 to work with libinput
[skip ci]: already built successfully in CI
Runs an only slightly patched mainline kernel.
For now:
- flashing works (only SD card boot and kernel flashing tested)
- boots
- screen works
- keyboard works
- touch works
- accelerated Xorg works (OGL not tested, xf86-video-tegra works,
but sometims X crashes with invalid instruction error - open top menus in
Xfce file manager to reproduce)
- SD card works (troubles with GPIO insertion detection)
- USB should work, not tested
- WiFi should work, also not tested (a lot of warnings during boot)
- Sound needs configuration
- battery needs kernel driver (max8922/max8907c)
- touchkey doesn't work - very strange hardware here...
- cameras don't work - no DT bindings, but all drivers there
Other functionality is broken/not tested.
[skip ci]: already built successfully in CI
Add firmware required to make WiFi work. Patch the kernel so the ramoops
dmesgs can be read properly without having to remove that header every
time.
[skip ci]: already built successfully in CI
USB host mode is useful (essential?) on the devkit for adding a
keyboard/mouse to interact with the desktop since the onboard display
and touchscreen are very much in flux.
[skip ci]: already built successfully in CI
The LineageOS kernel integrates the Wi-Fi driver, so reconfigure with
the Lineage defconfig and copy the Wi-Fi options over to our defconfig.
This doesn't get Wi-Fi working yet, but it gives a good starting point.
Do not replace compiler-gcc.h. This is necessary now, as we are
replacing compiler-gcc.h by default again, as it is needed for most
kernels. Not increasing the pkgrel to avoid unnecessary rebuild, I have
verified that this works.
NOTE: in the last commit message, I wrote about OVERWRITE_GCC=0. But
the variable is called REPLACE_GCC, as I've decided to rename it before
submitting. I forgot to change it in the commit message.
[skip ci]: this kernel takes more than one hour to build, so it won't
finish in CI.
This modernizes the APKBUILD that was based from outdated one (still
needs GCC6) as requested in !165 (comment 133993271). Also adds a fix
to allow Xorg booting, osk-sdl doesn't work yet as it throws some ugly
faults in kernel related to fbcon.
[skip ci]: already built successfully in CI
Finally got display working, but it's based on MoKee kernel which is
also hosted on GitHub by community. So what works:
* USB Networking
* Flashing
* Touchscreen
* Display
* Weston with Xwayland
The device boots and shows the splash screen properly, after about 3
sec the screen went black. I had to
"echo 127 > /sys/devices/i2c-0/0-0038/leds/lm3530-backlight/brightness"
to make the backlight work, even though the value of it was already
127.
[skip ci]: this was built successfully in CI already
I have tested this on xfce4 and weston. Also plasma-mobile "works"! The
performance isn't any better than on armhf, it's still less than one
frame per second and llvmpipe still doesn't work.
After switching to armv7, this kernel fails to compile with the
following error unless CONFIG_CRYPTO_AES_ARM_BS is disabled:
arch/arm/crypto/aesbs-core.S:449: Error: thumb conditional instruction should be in IT block -- `addeq r6,r6,#0x10'
arch/arm/crypto/aesbs-core.S:904: Error: thumb conditional instruction should be in IT block -- `addeq r6,r6,#0x10'
arch/arm/crypto/aesbs-core.S:2100: Error: thumb conditional instruction should be in IT block -- `subne r9,#0x10'
Quite a few Nexus 5X devices have the tendency to bootloop after a while
of being on, iirc because it overheats. This has been a known issue for
quite some time, and most Android ROM's for it have measures in place to
prevent this, in the form of disabling some CPU cores (iirc "Big cores"
or something like that). My Nexus 5X is also subject to this issue.
According to craftyguy, resolving this is as easy as changing the boot
command to not use those CPU cores. This commit does exactly that. It
should probably be made optional for people with this device without
that issue, but since I have no clue how to do that atm, this is the
safest for now.
Initial support for Xiaomi A1 aka xiaomi-tissot using LineageOS 15.1
kernel, has similar board to Xiaomi Redmi 4 aka xiaomi-mido with some
differences that had to be patched such as reversing skip_initramfs and
ignoring dm param. 16.0 kernel boots but display fb init doesn't work.
Weston boots with touch support, SSH via USB RNDIS works.
[skip ci]: this built once in CI already, good to go.
Integrate Gemini PDA support into master from old branch:
https://github.com/postmarketOS/pmbootstrap/commits/device-planet-geminipda
Most of hybris-related changes (besides KWin) was merged, so it is just
device and kernel aports now.
The state of hardware support is unchanged from:
https://wiki.postmarketos.org/wiki/Planet_Computers_Gemini_PDA_(planet-geminipda)
Without hybris, it can boot to graphics with X11 fbdev driver, the
included config enables correct rotation (as it has portrait display,
but usable only in landscape).
For running it with hybris, which can allow for 3D acceleration, we need
a way to package and provide large LXC image for running Halium Android
container. Lately Adam Boardman from Gemini PDA community also got voice
calls working in Debian install with a mix of SailfishOS middleware and
Ubuntu Touch applications, which could be probably adapted for
postmarketOS if needed.
Add firmware-rtl8723bt package and Pine wifi and bluetooth firmware
subpackage.
[skip ci]: ollieparanoid will build this MR manually before merging, it
will probably not finish CI within one hour.
The device boots, USB networking is available and the display does also
work, even though the default display brightness seems to be zero. More
information can be found in the wiki.
Use upstream Linux with patches, which are needed for a lot of things.
lambdadroid said he will upstream some of them, but the battery driver
would need to be written from scratch, which is apparentely
non-trivial.
[skip ci]: kernel doesn't build under one hour (maybe too many modules
are selected), but it does build eventually
As mentioned in #151, the Raspberry Pi Zero doesn't have an ethernet
port, so this makes it quite complicated to connect to the device from
a fresh install, because wifi/bluetooth/serial/... are not configured.
With this new package, the device starts with the microUSB configured as
ethernet and the dhcpd is running on the RPI, so you can simply connect
it to a computer and connect with SSH in order to configure it.
This is a followup to !109 (merged). Affected packages:
* device/linux-samsung-p4wifi
* device/linux-sony-tulip
* device/linux-teclast-x80pro
* main/linux-postmarketos-allwinner
* main/linux-postmarketos-mainline
* main/linux-postmarketos-qcom
* main/linux-postmarketos-stable
[skip ci] I have confirmed that all 7 kernels still compile.
The modules wl12xx, mac80211 and cfg80211.ko are assembled as modules,
but due to the lack of the command 'make modules_install' in APKBUILD,
these modules are not included in the finished package. Because of this,
it was impossible to launch Wi-Fi on Samsung-i9003.
Modernize the APKBUILD. Load reboot mode kernel module, and uinput
kernel module (used by bluetoothd).
User facing changes:
* Uses some mainline sensor drivers.
* Fixes bluetooth audio stuttering (needs some userspace fixes though).
Various code refactoring happened. I tried to write a better looking
display panel driver rather than reuse the downstream driver. Not
quite there yet though.
Use latest sources from LineageOS, instead of the ones from andip71.
The APKBUILD is modernized to use the devicepkg-dev but unfortunately
compiling with gcc8 it doesn't boot.
The kernel config is updated with the required options to start the
lxc-android container and xf86-video-hwcomposer works
(tested with xfce4).
My plan was to add the firmware-samsung-klte with the subpackages for
the wifi blobs and a precompiled android system.img to use with
libhybris, but my device just died and I'm not able to power it on (I've
probably burnt the Power IC 😢)
For i3 on the N900, which seems to be the only device using i3 at the
moment, I thought using Tabbed workspace layout as the default would be
best, since the screen is quite small, and having two split windows can
quickly make it impractical.
With this commit, all new windows will be created in tabbed
configuration. It is still possible to switch to stacking or standard
layout as needed, using the appropriate shortcut keys.
gcc-fix-put-user.patch doesn't apply cleanly to any kernel that
includes commit 538094 ("ARM: 8051/1: put_user: fix possible data
corruption in put_user") or a backport of it because the surrounding
lines (context) of the patch are different:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=537094b64b229bf3ad146042f83e74cf6abe59df
This commit fixes the problem by removing the context from the patch. It
also changes linux-sony-amami, linux-sony-aries, and linux-sony-taoshan
to use the shared patch.
I have confirmed that all six affected kernels still compile. [skip ci]
Ouya boots. Install instructions are being refined, but device does
boot through fastboot. Hoping to merge into master to encourage others
to contribute to the device.
This reverts commit ee659a5bb4
and increases the pkgrels of all affected linux pmaports.
I have compiled *every single kernel* that was modified with this
commit, and it worked. That took 12 hours. So I'm pretty confident that
this is a good commit. Let's roll it out and go back to stability \o/
I'll kick off the binary repo building directly after pushing this, but
it will take some time until all binary packages are available again.
[skip ci]: it wouldn't finish in time.
Add -j1 to compiling the standby code, which is compiled separately
already. This change seems to make the kernel always compile, I've
tried it 6 times, 3 times of that with pmbootstrap's "--no-ccache"
option. It got past an error about 30 seconds into the build, which
happened roughly 2 out of 10 times:
gcc6-armv6-alpine-linux-muslgnueabihf-ld: cannot find standby.o: No such file or directory
I thought, this was related to gcc6 changes, or to changes in abuild,
but both were not the case.
Grant Miller confirmed that this fixed the build, he was able to
compile the kernel ten times in a row with this commit.
This is a simple backport of the getrandom syscall. It does not
include other changes to the random interface like periodic or
late re-seeding which might be necessary to get good random numbers.
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.
All kernels compile again, after the GCC 8 upgrade.
All 3.x kernels have been changed to use GCC 6 now, because we can't
say for sure that they boot with GCC 8 even if we made them compile
with that newer GCC. If someone wants to test a kernel for a newer
device which they can test, see the instructions on
<https://postmarketos.org/vendorkernel>.
The linux-sony-castor-windy 4.x kernel did not compile out of the box
with the latest GCC, so we set it to GCC 6 as well. This can probably
be fixed easily.
linux-teclast-x80-pro: removed Werror and updated to latest 4.14 kernel
from kernel.org, otherwise this would not compile anymore (tested with
both GCC 6 and 8, probably incompatibility with the latest binutils or
something).
This commit will take too long to compile in CI, so let's [skip ci].
I've compiled all kernels multiple times and fixed them up until all of
them were working again.
Related: #103
* Added linux-postmarketos-allwinner kernel
* Added copy of alpines u-boot package with pine-a64lts support
* Changed postmarketos-mkinitfs to add the plain .dtb file to the boot partition
* Travis and Coveralls badges
* aports: instead of <https://github.com/postmarketOS>, use
<https://postmarketos.org>
* References to full URLs to issues and pull requests replaced with
a hash and the number
* grsec check: simplify error message, remove link to github issue
(nobody is using that anymore anyway)
Alpine's firmware packages have been updated to include the latest
raspberry pi firmware. This commit adjusts our aports.
Details:
* remove obsolete `aports/temp/linux-firmware`
* `firmware/firmware-pi-bluetooth`: rename to `device/bluetooth-raspberry-pi`
and remove firmware files (they are part of Alpine's `linux-firmware` now)
* `device-raspberry-pi`: depend on `bluetooth-raspberry-pi`
* `device-raspberry-pi`: note that Alpine's kernels depend non free firmware
* `device-raspberry-pi`: remove non free firmware subpackage
Kernel is downstream. System boots. Flash the device using the netcat
method to an external SD (use the entire SD, not a partition, as the
target device) because the internal memory is too small.
The ASUS MeMO Pad FHD 10 (ME302KL) is kinda like an enlarged version
of flo, all the unofficial Lineage / TWRP work has been derived from
flo. So eventually it should run mainline :) but let's start with this.
The headphone jack (sec_jack) driver no longer registers as an input device
itself. It now listens for events on the gpio-keys input device. This
changed the enumeration of /dev/input devices. The touchscreen is now
/dev/input/event1.
This fixes things which depend on deviceinfo_dev_touchscreen such as
osk-sdl.
* change "pmbootstrap kconfig_check" to "pmbootstrap kconfig check"
* change "pmbootstrap menuconfig" to "pmbootstrap kconfig edit [-x|-g]"
(with legacy alias, because the first syntax was referenced to a lot)
* enable X11 interfaces: -x: xconfig, -g: gconfig
* new function to copy the xauthority file:
pmb.chroot.other.copy_xauthority()
* remove menufconfig() function from the kernel template and all kernel
aports ([skip ci] because it would rebuild all kernels and run out of
time). Alpine has dropped this as well, and it wouldn't work with the
new code anyway.
* linux-samsung-p4wifi: Use libressl-dev
* linux-samsung-p4wifi: Update to kernel based on mainline tegra_defconfig
Previously it was based on the config from a mainline-ish kernel for
Android. The remaining Android specific patches have been dropped.
It is now mainline with out-of-tree drivers and corresponding hardware
specific patches/fixes/hacks.
- depend on the firmware-lg-hammerhead-modem and
firmware-lg-hammerhead-adsp
- depend on the modem-qcom-msm-mainline-common
Currently adsp firmware is not used actually given upstream kernel
doesn't have support for adsp/sound subsystem. But it will be used
eventually.
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
Add modem-qcom-msm-downstream-common package that pulls in the
dependencies.
qcom_rmtfs now has udev rules to find the storage partitions. My hope
is they can be written flexibly enough to cover all devices and kernel
flavors.
Guide for connecting to wlan is on the wiki page for the device, wifi
chip is BCM4334. Wlan interfaces are wlan0 and p2p0. Connection seems
stable, was able to install some packages.
* Add initial device support for Xiaomi Redmi Note 4 (xiaomi-mido)
* Update APKBUILD
* Update APKBUILD
* Wifi support for Xiaomi Redmi Note 4
* Update APKBUILD
* Download firmware from different repo for Xiaomi Redmi Note 4
* Split up cat line
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
* firmware-samsung-i9195: new wlan subpackage
* samsung-i9195: add wlan firmware to nonfree-firmware dependencies
* firmware-samsung-i9195: change pkgver to sequential numbering.
this breaks package management. be careful when updating this package.
the old version was `201707.1`, which is higher than `1.1.0`.
Previous post install action results in loading wlan module during
sysinit. This is not possible since wlan device is only exposed after
wcnss-wlan service. This also delays ssh startup for approximately 3
minutes.
Loading wlan module should only be done on default runlevel, after
wcnss-wlan service has been started.
Also add a reference fb.modes file, although directfb applications still
doesn't work and cause the framebuffer driver to crash.
- Currently just graphics along with weston tested
- Depend on firmware-adreno from device-lg-hammerhead
- Reduce dep of linux-firmware
- Just pull qcom, bracm and adreno firmware
* Progress can be followed in #1206
* Kernel boots with device tree from LineageOS and can
be installed by android recovery zip
* Networking comes up at boot but there's not display yet
* As discussed in IRC/matrix, we're removing `linux-postmarketos-lts`
for now. The kernel isn't used right now, and we save lots of
maintenance effort with not updating it every week or so.
* new config option `"kernel"` with possible values:
`"downstream", "mainline", "stable"` (downstream is always
`linux-$devicename`)
* ask for the kernel during `pmbootstrap init` if the device package
has kernel subpackages and install it in `_install.py`
* postmarketos-mkinitfs: display note instead of exit with error when
the `deviceinfo_dtb` file is missing (because we expect it to be
missing for downstream kernels)
* device-sony-amami:
* add kernel subpackages for downstream, mainline
* set `deviceinfo_dtb`
* device-qemu-amd64: add kernel subpackages for stable, lts, mainline
* test cases and test data for new functions
* test case that checks all aports for right usage of the feature:
* don't mix specifying kernels in depends *and* subpackages
* 1 kernel in depends is maximum
* kernel subpackages must have a valid name
* Test if devices packages reference at least one kernel
* Remove `_build_device_depends_note()` which informs the user that
`--ignore-depends` can be used with device packages to avoid building
the kernel. The idea was to make the transition easier after a change
we did months ago, and now the kernel doesn't always get built before
building the device package so it's not relevant anymore.
* pmb/chroot/other.py:
* Add autoinstall=True to kernel_flavors_installed(). When the flag
is set, the function makes sure that at least one kernel for the
device is installed.
* Remove kernel_flavor_autodetect() function, wherever it was used,
it has been replaced with kernel_flavors_installed()[0].
* pmb.helpers.frontend.py: remove code to install at least one kernel,
kernel_flavors_installed() takes care of that now.
* Specify a device tree binary file for p4wifi kernel
Previously the p4wifi kernel was using Android patches which append the
dtb to zImage in the kernel makefile.
Now follow mainline kernel convention of leaving the zImage and dtb
separate. Follow postmarketOS convention of specifying dtb file in
deviceinfo.
* Use linux-postmarketos-mainline APKBUILD build functions for p4wifi
* Update linux-samsung-p4wifi to kernel 4.16
- Use mainline broadcom bluetooth hci driver
- Use mainline atmel_mxt_ts driver
- Use mainline stmpe811 mfd driver and add stmpe811 ADC block
Note about PMOS_NO_SAFESTRAP kernel cmdline:
This can be used to forcefully skip SafeStrap partition mount in device
initramfs hook, for example when booting with droid4-kexecboot on device with
SafeStrap configured as well.
The kgsl 3d driver causes the device to boot loop, so disable this for
now.
The device boots ok after removing the kgsl driver, although continuing
boot from debug-shell via `pmos_continue_boot` does not work (seems to
be a bug in msm_fb driver). So, one has to reflash the boot partition
generated with no intfs debug shell to enjoy this improvement.
* [samsung-p4wifi] Include modules in kernel package
* [samsung-p4wifi] Load wifi modules at boot
* [samsung-p4wifi] Use mainline wm8994 sound driver
* [samsung-p4wifi] Add ALSA UCM config
Generated from xml2ucm tool.
* [samsung-p4wifi] Add headphone jack detect udev rules
* [samsung-p4wifi] Remove touchscreen calibration
It is not a resistive touchscreen. The default calibration works.
* Qualcomm MSM modem: 'rmtfs' support packages
* qcom_rmtfs: Server that talks to modem over IPC to allow it
read/write data for its persistent storage. This is needed for it to
boot, as well as periodically during usage. Added a patch that
it expects the storage path symlinks in /etc instead of /boot.
* qrtr: IPC library for rmtfs
* libqipcrtr4msmipc: adapter library to make qrtr work on kernels with
AF_MSM_IPC support. AF_QIPCRTR is the mainline equivalent since Linux
~4.7.
* msmipc-dev: Header files for qrtr and libqipcrtr4msmipc.
Thanks to Bjorn Andersson <https://github.com/andersson> for rmtfs and
qrtr.
* libsmdpkt_wrapper: adapter lib for QMI clients
The SMD serial packet driver in Qualcomm kernels has, AFAICT, a bug
in poll(); this works around it so that qmicli et al can work.
* i9195: firmware (modem only right now)
* add ofono (with patch for MSM devices)
Based on Alpine's package.
* i9195: add modem support
* move all modem related packages to aports/modem