The extlinux.conf provides a standard U-Boot distro boot configuration
that allows boards with U-Boot already flashed to SPI NOR to boot
without needing the boot.scr script. U-Boot scans for this file at
/extlinux/extlinux.conf during its distro boot sequence.
This is the fallback when U-Boot is already on SPI and the boot
partition provides the kernel/DTB/ramdisk for Android TV.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
Remove unused OPI_BOOT_OUT staging directory. Boot.img is now
just the U-Boot binary for build system packaging. The actual
FAT32 boot partition with kernel/DTB/ramdisk is created by
mkimg_gpt.sh, which runs outside the build system and has
access to mkfs.vfat and mcopy.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
- Make mkimg_gpt.sh executable (chmod +x)
- Fix boot partition creation: create FAT32 fs and copy kernel/boot
files instead of relying on boot.img (which was the u-boot binary)
- Add android-sdcard.dtbo to boot partition
- Parameterize DEVICE_PATH and KERNEL_PATH variables
- Use correct U-Boot path (new Ultra-specific bl32less binary)
The boot partition (p1) is now properly created as FAT32 with
kernel Image, DTB, boot.scr, ramdisk.img, and config.txt.
This matches what U-Boot expects to read from the boot media.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
mkfs.fat and mcopy are disallowed in Android 16 build system.
Use pre-built U-Boot binary as boot.img for packaging purposes.
The actual bootable image is created by mkimg_gpt.sh.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
Without explicit definition, the variable is empty when
TARGET_NO_KERNEL was set. Define it to ensure boot.img
is created for the target-files packaging step.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
The kernel repo only has the Orange Pi 5 Ultra DTB. Remove
references to other OPI5 variant DTBs. Fix ramdisk dependency
to use built ramdisk.img directly.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
TARGET_NO_KERNEL prevented INSTALLED_BOOTIMAGE_TARGET from
being defined, breaking the target-files packaging step.
Use BOARD_KERNEL_IMAGE_NAME instead to satisfy kernel.mk.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
Stock AOSP mesa3d doesn't build libgbm_mesa, so the
minigbm_gbm_mesa gralloc wrapper can't link. Remove
for now to get a booting PoC with software rendering.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
Stock AOSP mesa3d doesn't build libEGL_mesa, libgallium_dri,
or com.android.hardware.vulkan.panfrost. Remove these references
until Panfrost support is added back.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
The kernel is prebuilt and boot image is assembled by mkbootimg.mk
which directly copies Image from the kernel path. Bypass LineageOS
kernel.mk with TARGET_NO_KERNEL since we handle it entirely via
BOARD_CUSTOM_BOOTIMG.
Set BOARD_KERNEL_IMAGE_NAME and TARGET_PREBUILT_KERNEL
for the prebuilt mainline 6.15 kernel Image.
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
- libGLESv1_CM_mesa and libGLESv2_mesa not available in AOSP mesa 25.0.4
- cec-ctl, ir-keytable, media-ctl require v4l-utils not in build
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>