Successfully tested both the gcc4 compiler on x86_64 with a simple
program (fbdebug) and the gcc4-armhf cross-compiler to build a very old
u-boot port for Galaxy Nexus (a MR will follow soon) which failed to
boot with either newer version (6 and 8).
[skip ci]: already went through
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.
The show_splash function called by the 20-debug-shell.sh script already
skips fbsplash when the device is configured to not use the framebuffer.
But the variable was not defined in the script. This is solved by
including the /etc/deviceinfo file.
Follow-up to !108, where this change got lost in the rebase.
Also noticed that the debug-shell hook wasn't sourcing the deviceinfo
and still showing the splashscreen even with
deviceinfo_no_framebuffer="true", now is fixed and tested.
Additionally, fix a typo in the existing
"NOTE: Skipping framebuffer setup..." message.
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 😢)
I noticed that some times the framebuffer driver gets configured in a
way that the ioctl performed by msm-fb-refresher returns something lower
than zero:
https://github.com/LineageOS/android_kernel_samsung_msm8974/blob/0ed263db093b1fc590589836ee36956c327998c3/drivers/video/fbmem.c#L877-L911
For example when the Xorg starts I noticed it does a ioctl BLANK and
UNBLANK, but if msm-fb-refresher performs a ioctl in that moment it
stops its loop and exit.
For this reason I lost a lot of time trying to understand what was the
problem with Xorg not displaying anything until I noticed that I had
to restart the msm-fb-refresher.
With this change we don't have to care about msm-fb-refresher as it will
continue call ioctl PAN even if the framebuffer returns some negative
error code.
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 charging-sdl package
* Include charging-sdl into the initramfs-extra
* [initramfs] Detect charging mode and use triggerhappy to start
charging-sdl when the power key is pressed
Also don't build "-repack" packages in native chroot anymore.
This was a legacy hack, which has no use anymore, and it prevented
the package from being built for different architectures.
- Removed the framebuffer configuration in the initramfs hook
- Added patch for fixing the framebuffer mode in the kernel source
- Cleanup linux-samsung-i9070 APKBUILD
* Changed usb-shell behavior, it wait for some user action before continue booting
* Rename usb-shell to debug-shell and changed port to 23
* Add `20-debug-shell.sh` script to static code analysis
* Enable eth0 interface in initramfs (qemu)
* Add additional script to run a shell in order to be able to kill it from a telnet session
* Add LG G Watch (dory) support
* Use github.com mirror instead of googlesource.com to have fixed checksum
* Fix kernel compilation and remove unnecessary initfs-hook for framebuffer settings
Adding INSTALL_MOD_STRIP will cause modules to be stripped after
they are installed (option --strip-debug will be used)
In case someone isn't happy with it, please open a PR that reverts
it for your device, or start a discussion as a new issue.
* Automatically compute the minimum size for the partitions
* Automatically resize the pmOS_root partition during the boot process
* Resize root partition only if there is unallocated space at the end of the device.
* Added more echos to make debugging easier while looking at the pmOS_init.log.
* Updated static_code_analysis.sh script to run shellcheck with `-x` option.
Huge thank you to @drebrez for his amazing work on this PR!
* Add generation of initramfs-extra with additional binaries
Extract both initramfs with `pmbootstrap initfs extract`
Add new splashscreens for missing partitions/files errors
Changes in init script:
- use busybox findfs applet to find boot partition
- mount boot partion
- extract initramfs-extra
- show error splashscreens accordingly and loop forever
- start usb unlock directly from unlock_root_partition (hook removed)
* Print out a text message for serial debugging in case of errors
Add initramfs-extra files to `pmbootstrap initfs ls` output
* Fix trailing whitespace in comment...
* ls: Indicate which initramfs we're looking at / add wiki link
I've rewritten the initramfs-development article to reflect the
changes made in this PR. It will be a good read for someone who
extracted the initramfs and wants to know why we have two files.
* Add HTC Desire (Bravo) device-specific and kernel package
* Enable kernel virtual terminal support
* Add framebuffer and usb configuration in initfs-hook script
* Add udev required kernel options and set correct framebuffer resolution
* Add touchscreen device rules and enabled kernel logs (dmesg)
* Add deviceinfo_flash_offset_base in deviceinfo and update other offsets
* Add kernel module compilation
* Add wifi firmware from vendor files (to `/lib/firmware/postmarketos`) and fix modules install path
* Add patch to change hardcoded dhd firmware/nvram paths
* Add wifi module (dhd) to the list of kernel modules that should be loaded at boot time
Details:
https://github.com/postmarketOS/pmbootstrap/pull/138
Thanks you very much, drebrez \o/