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
Alpine Linux has updated their main/icu to 63.1, which means we have to
rebuild some of our packages too.
[skip ci]: simple pkgrel bumps, building won't finish in CI
Fails to build for armhf with the error below, and doesn't seem to be
tested on anything but x86_64 anyway according to the project's
README.md file. I did not report this upstream, because we are using
the version from Purism's repository that is at 1.2.31. Upstream is
already at 1.2.68, which may have fixed this already. So if somebody
needs to have it working for anything other than x86_64, we should try
the upstream version first.
[ 83%] Creating preprocessed clst file /home/pmos/build/src/mfgtools-uuu_1.2.31/uuu/gen/emmc_burn_all.clst
gen_txt_include.sh: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:63: uuu/gen/uuu.clst] Error 127
make[2]: *** Waiting for unfinished jobs....
gen_txt_include.sh: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:68: uuu/gen/emmc_burn_loader.clst] Error 127
gen_txt_include.sh: applet not found
gen_txt_include.shmake[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:73: uuu/gen/emmc_burn_all.clst] Error 127
: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:93: uuu/gen/sd_burn_all.clst] Error 127
make[1]: *** [CMakeFiles/Makefile2:184: uuu/CMakeFiles/uuu.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 83%] Built target uuc
make: *** [Makefile:130: all] Error 2
ConfigFS expects idVendor and idProduct values to be prefixed with 0x.
Without this change, google-crosshatch shows as a device with 0:0 as the
idVendor/idProduct in lsusb:
Bus 001 Device 004: ID 0000:0000
This confuses VirtualBox: it has trouble detaching this device from
a virtual machine, so one must manually use ifconfig to bring down the
old USB network connection before reattaching.
With this change, the idVendor/idProduct is correct:
Bus 001 Device 004: ID 18d1:d001 Google Inc.
This issue also seems to affect other devices with ConfigFS, such as the
Nexus 5:
https://matrix.to/#/!clcCCNrLZYwdfNqkkR:disroot.org/$15487159511194991apGpy:matrix.org
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.
Instead of never overwriting compiler-gcc.h if it exists, overwrite it
by default except if OVERWRITE_GCCH=0 is set in the environment.
Most kernels *do* need this file replaced and won't build without this
patch.
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
The 5.0 kernel now includes -Werror= parameters in the makefile, this
changes downstreamkernel_prepare.sh to support them. Without this, the
script will replace, for example, -Werror=blah with =blah, which causes
the kernel compilation to fail.
More information and screenshots in the GitLab project:
https://gitlab.com/cubocore
[skip ci]: ollieparanoid made sure this builds for x86_64, armhf,
aarch64, armv7.
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'
We had 2 music players included which doesn't make sense, and vvave is
actually made with a focus on mobile.
[skip ci]: do not try to build this merge request, ollieparanoid made
sure that it builds for x86_64, armhf, aarch64.
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.