Рубрики
dev

ls1046ardb / buildroot

Собираем собираем:

0. Качаем и выбираем версию:
git clone https://github.com/buildroot/buildroot
cd buildroot
git tag 
git checkout 2025.08.1

1. Показать доступные и создать конфиг для нужной платформы:
make list-defconfigs  | grep ls1046
make ls1046a-rdb_defconfig 

2. Посмотреть что там можно качнуть из ядер:
git ls-remote --tags https://github.com/nxp-qoriq/linux.git | grep 6

3. Сборка и настройка
make linux-source
make linux-menuconfig
make menuconfig

#make nconfig - альтернатива menuconfig
#make xconfig - альтернатива menuconfig

P.S Иногда полезно кое что :

В поисках:
grep "BR2_LINUX_KERNEL_VERSION" .config
grep "BR2_LINUX_KERNEL_CUSTOM_VERSION" .config
В поисках ядер:
find /opt/buildroot/output/build/linux-* -name "*lsdk*" -o -name "*ls1046*" -o -name "*defconfig*" 2>/dev/null | grep 1046

# Посмотрим какие defconfig есть в скачанном ядре ( сработает после make linux-source)
ls /opt/buildroot/output/build/linux-v5.10.100/arch/arm64/configs/

Проверим, что создался правильный device tree:
ls /opt/buildroot/output/build/linux-v5.10.100/arch/arm64/boot/dts/freescale/ | grep ls1046

# В menuconfig можно указать кастомный tarball
Kernel
  -> Kernel version (Custom git repository)
  -> URL of custom kernel repository = https://github.com/nxp-qoriq/linux.git
  -> Custom kernel version = LSDK-xx.xx (или конкретный тег)

#Иногда после изменения конфига(make menuconfig) помогает:
make savedefconfig
make linux-dirclean
make

P.S По поводу хешей

# Скачаем файл и вычислим хэш
mkdir -p dl/linux
echo "sha256  8e6e5c3e5f2b5a5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c  linux-5.10.72.tar.xz" > dl/linux/linux.hash

# Скачаем файл и вычислим хэш
cd /opt/buildroot/output/build/
wget -q https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.72.tar.xz
sha256sum linux-5.10.72.tar.xz > /opt/buildroot/dl/linux/linux.hash

P.S включить английскую локаль

export LANG=C.UTF-8
export LC_ALL=C.UTF-8

P.S. Возможная проблема загрузки и неверная dtb:

0. Ищем источник extlinux для 1046
find /opt/buildroot -name "*extlinux*" -type f | grep 1046

1. В текущем билдрут это файл:
cat /opt/buildroot/board/freescale/ls1046a-rdb/rootfs_overlay/boot/extlinux/extlinux.conf
-----------------------------------------------------------------------------------------
label ls1046ardb-buildroot
  kernel /boot/Image
  devicetree /boot/fsl-ls1046a-rdb-sdk.dtb
  append console=ttyS0,115200 root=/dev/mmcblk0p1 earlycon=uart8250,mmio,0x21c0500 rootwait
-----------------------------------------------------------------------------------------

2. Вот пример правильной так как я менял кое что при сборке то файл dtb у меня другой:
cat /opt/buildroot/board/freescale/ls1046a-rdb/rootfs_overlay/boot/extlinux/extlinux.conf
------------------------------------------------------------
label ls1046ardb-buildroot
  kernel /boot/Image
  devicetree /boot/fsl-ls1046a-rdb.dtb
  append console=ttyS0,115200 root=/dev/mmcblk0p1 earlycon=uart8250,mmio,0x21c0500 rootwait
------------------------------------------------------------

3. Производим переcборку образа:
make target-post-image

4. Убеждаемся что все исправлено:
cat /opt/buildroot/output/target/boot/extlinux/extlinux.conf

5. Записываем sd карту:
cd output/images/
dd if=sdcard.img of=/dev/sde status=progress
sync

Важные параметры для сборки 5.10 ядра файл .config

BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/nxp-qoriq/linux.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v5.10.100"
BR2_LINUX_KERNEL_VERSION="v5.10.100"
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/fsl-ls1046a-rdb"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_KERNEL_HEADERS_CUSTOM_GIT=y
BR2_KERNEL_HEADERS_CUSTOM_REPO_URL="https://github.com/nxp-qoriq/linux.git"
BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION="v5.10.100"
BR2_DEFAULT_KERNEL_HEADERS="v5.10.100"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y
BR2_aarch64=y
BR2_cortex_a72=y
BR2_ARM_FPU_FP_ARMV8=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_GCC_VERSION_14_X=y
BR2_BINUTILS_VERSION_2_43_X=y
BR2_PACKAGE_FMC=n
BR2_PACKAGE_FMLIB=n

Вот сам файл .config, собрано только ядро:
doc_2025-11-19_14-35-03.config_5_10_100_no_soft