Some partitions are sparse (DATAFS, FACTORYFS), but the largest
partition, UMS, needs to be non-sparse. DATAFS partition also expects
some special images with a magic header (or something), simply trying
to flash a sparse or non-sparse image to it gives an error from device
bootloader:
```
[ ... ]
erase completed(from 73728 to 90111).
.
mmc_pwrite: partition[6] written successfully.
...set_nps_update_start: set nps start flag successfully.
process_packet: id=102, data=0
process_packet: id=102, data=2
process_packet: id=102, data=3
pda completed: id=11, size=31457280, final=0
Invalid Magic Code! 0x 0
[ ... ]
```
Therefore set UMS as default rootfs partition and create non-sparse
images.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8877>
A large scripted cleanup to fix the errors, each with the sed command
used.
**Renamed variables**
[Error!!!] deviceinfo_gpu_accelerated: gpu_accelerated was renamed to drm: More accurately describes its function; see pmaports#1481 for the reasoning.
sed -i 's/^deviceinfo_gpu_accelerated=/deviceinfo_drm=/' device/*/*/deviceinfo
[Error!!!] deviceinfo_flash_heimdall_partition_system: flash_heimdall_partition_system was renamed to flash_heimdall_partition_rootfs: Renamed to avoid confusion
sed -i 's/^deviceinfo_flash_heimdall_partition_system=/deviceinfo_flash_heimdall_partition_rootfs=/' device/*/*/deviceinfo
[Error!!!] deviceinfo_flash_fastboot_partition_system: flash_fastboot_partition_system was renamed to flash_fastboot_partition_rootfs: Renamed to avoid confusion
sed -i 's/^deviceinfo_flash_fastboot_partition_system=/deviceinfo_flash_fastboot_partition_rootfs=/' device/*/*/deviceinfo
**Obsolete variables**
[Error!!!] deviceinfo_keyboard: This property is obsolete: Programs should automatically detect if the device currently has a keyboard or not (often it can be hotplugged anyway).
sed -i '/^deviceinfo_keyboard=/d' device/*/*/deviceinfo
[Error!!!] deviceinfo_framebuffer_landscape: This property is obsolete: Removed by the switch to pbsplash with no apparent replacement
sed -i '/^deviceinfo_framebuffer_landscape=/d' device/*/*/deviceinfo
[Error!!!] deviceinfo_mesa_driver: This property is obsolete: This was used by osk-sdl, which has been replaced by unl0kr.
sed -i '/^deviceinfo_mesa_driver=/d' device/*/*/deviceinfo
**Default values**
[Warning!] deviceinfo_flash_method: Property is set to its default value ("none") and can be removed.
sed -i '/^deviceinfo_flash_method="none"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_drm: Property is set to its default value (false) and can be removed.
sed -i '/^deviceinfo_drm="false"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_bootimg_dtb_second: Property is set to its default value (false) and can be removed.
sed -i '/^deviceinfo_bootimg_dtb_second="false"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_generate_bootimg: Property is set to its default value (false) and can be removed.
sed -i '/^deviceinfo_generate_bootimg="false"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_flash_heimdall_partition_rootfs: Property is set to its default value ("SYSTEM") and can be removed.
sed -i '/^deviceinfo_flash_heimdall_partition_rootfs="SYSTEM"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_flash_heimdall_partition_kernel: Property is set to its default value ("KERNEL") and can be removed.
sed -i '/^deviceinfo_flash_heimdall_partition_kernel="KERNEL"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_flash_heimdall_partition_initfs: Property is set to its default value ("RECOVERY") and can be removed.
sed -i '/^deviceinfo_flash_heimdall_partition_initfs="RECOVERY"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_flash_offset_base: Property is set to its default value ("0x10000000") and can be removed.
sed -i '/^deviceinfo_flash_offset_base="0x10000000"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_flash_kernel_on_update: Property is set to its default value (false) and can be removed.
sed -i '/^deviceinfo_flash_kernel_on_update="false"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_flash_fastboot_partition_rootfs: Property is set to its default value ("userdata") and can be removed.
sed -i '/^deviceinfo_flash_fastboot_partition_rootfs="userdata"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_flash_fastboot_partition_kernel: Property is set to its default value ("boot") and can be removed.
sed -i '/^deviceinfo_flash_fastboot_partition_kernel="boot"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_partition_type: Property is set to its default value ("gpt") and can be removed.
sed -i '/^deviceinfo_partition_type="gpt"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_sd_embed_firmware_step_size: Property is set to its default value (1024) and can be removed.
sed -i '/^deviceinfo_sd_embed_firmware_step_size="1024"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_boot_part_start: Property is set to its default value (2048) and can be removed.
sed -i '/^deviceinfo_boot_part_start="2048"/d' device/*/*/deviceinfo
[Warning!] deviceinfo_generate_legacy_uboot_initfs: Property is set to its default value (false) and can be removed.
sed -i '/^deviceinfo_generate_legacy_uboot_initfs="false"/d' device/*/*/deviceinfo
All were bumped using "pmbootstrap pkgver_bump".
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7403>
The close-to-mainline u-boot fork can then load linux from boot
partition.
One downside is that it will no longer be possible to flash through
pmbootstrap, since there is no support for flashing arbritrary targets
to arbritrary partitions with pmbootstrap, yet.
Therefore, users will need to manually flash
/usr/share/u-boot/trats/u-boot.bin to the KERNEL partition for i9100
to work after these changes.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6921>
Make use of the new multi-stage initramfs rather than the minimal
variant, and inform mkinitfs that the initramfs-extra archive should be
created to save space.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:ignore-count]
Add deviceinfo_flash_kernel_on_update="true" to the deviceinfo file.
This makes sure that the updated kernel is flashed to the device every
time the linux-postmarketos-exynos4 package is updated.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
[ci:skip-build]: already built successfully in CI
Unfortunately we cannot get to a getty shell unless we also run:
setenv SWITCH_SEL 3
from the SBL shell. Furthermore, actually getting kernel output
requires setting console=ttySAC2,115200.
SWITCH_SEL might be related to the "MUIC" of the device, but the
variable also controls whether or not it is possible to get serial
output from pads on main board, and seems weird that those pads are
affected by MUIC (unless pads are also behind MUIC, but seems like
that would be very annoying when developing the device)
See also initial MR where mainline support for i9100 was added, where
serial output is also discussed:
https://gitlab.com/postmarketOS/pmaports/-/merge_requests/1598#how-to-get-serial-output
[ci:skip-build]: already built successfully in CI
With the pmbootstrap change let's change the deviceinfo variable names
to the non-deprecated version.
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
mesa-dri-swrast no longer exists and just installs,
mesa-dri-gallium. However, this might not always be the case, so
let's change it before it causes any issues.
[ci:ignore-count]
[ci:skip-build]
[ci:ignore-count]
[ci:skip-vercheck] needed for the postmarketos-ui-* packages in this
series
[ci:skip-build] already built ui-* packages in CI, and device pacakges
are just trivial deviceinfo change (manually built some just to verify)
At the moment we have Contributor: lines on some packages (but not all of them),
but often they don't represent the actual contributors to the package very well.
E.g. when we added them retroactively to the device packages we only added
the initial contributor (which isn't necessarily the person
who made most of the work for a device...)
The Git history is the most representative source for figuring out
who contributed to a package, so there is no reason to duplicate that
into the APKBUILD.
[skip ci]: way too many packages
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