lk2nd

From postmarketOS
Jump to navigation Jump to search
lk2nd
lk2nd fastboot screen example
lk2nd fastboot screen example
Name lk2nd
1st stage ?
2nd stage yes
Resources source code


lk2nd is a bootloader for devices based on Qualcomm system-on-chips (SoCs) and simplifies booting standard operating systems by providing unified boot and flashing interface.

Features

lk2nd provides automatic device and hardware detection, additional bootloader features like file system boot and Dual Booting (booting from SD card) and additional firmware features include booting secondary CPU cores and various of debugging commands that allow better understanding of the hardware for research and development purposes.

Supported SoCs

Usage

lk2nd provides the standard Android fastboot protocol for flashing/booting Android boot images.

Press Volume Down while booting to enter Fastboot mode. Press Volume Up while booting to boot into Recovery mode.

Note: If your stock bootloader uses the same key combinations, you need to wait a bit before pressing the volume keys. Usually, waiting until the screen turns on and/or the device vibrates should be enough to make the stock bootloader ignore the keys.

fastboot flash lk2nd lk2nd.img can be used to update lk2nd directly from its fastboot interface.

Note: fastboot flash boot boot.img will flash the actual boot image with 512 KiB offset into the boot partition. This is done to avoid replacing lk2nd (since it is also booted from the boot partition).

Other fastboot commands work normally.

Troubleshooting

If the device shows up via fastboot you can get a log file from lk2nd using fastboot oem lk_log && fastboot get_staged <output-file>, where <output-file> is either some text file to write to (e.g. output.txt) or /dev/stdout to write the log to standard output.

Quirky devices

Some devices have a quirky bootloader, which doesn't boot lk2nd correctly and fallback to stock Fastboot/Odin Download Mode instead.

Common traits on quirky devices

  • 1 GiB of RAM
  • Kitkat 4.4 bootloader with ARM32 only support
  • Crash after running fastboot oem readl 0x004a8000[1] in lk2nd
  • Kernel panics without tsens workaround[2]

Known quirky devices

Current known solution is to flash Lolipop 5.1 or above firmware to get a better bootloader, or flash TZ/HYP firmware from DragonBoard 410c, which is DANGEROUS. Otherwise you will have to comment out unused device trees to avoid that the bootloader gets confused.

See also

References