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.