Switch RK3576 toolchain to Buildroot SDK and migrate to Python 3.11

This commit is contained in:
EricX-Zhao
2026-07-10 17:08:18 +03:00
parent 877c9c329d
commit 39f628605f
6 changed files with 68 additions and 51 deletions
+18 -6
View File
@@ -2,16 +2,28 @@ FROM cc-base:latest AS cc_rk3576
WORKDIR /opt
RUN wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
&& tar -xJf arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
&& rm /opt/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
# RUN wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
# && tar -xJf arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
# && rm /opt/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
COPY rk3576/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz /opt/
RUN tar -zxf aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz \
&& rm /opt/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz
# use python3.11
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 \
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 \
&& update-alternatives --set python3 /usr/bin/python3.11 \
&& rm -f /usr/bin/python3-config \
&& ln -s /usr/bin/python3.11-config /usr/bin/python3-config
COPY rk3576/rk3576.toolchain.cmake /opt/cmake/
ENV PATH="/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin:${PATH}"
ENV CC_TOOLCHAIN_FILE=/opt/cmake/rk3576.toolchain.cmake
ENV TARGET_SYSROOT=/opt/rk3576
ENV PATH="${PATH}:/opt/aarch64-buildroot-linux-gnu_sdk-buildroot/bin"
ENV PYTHON_PKG_PATH=${TARGET_SYSROOT}/lib/python3.11/site-packages
WORKDIR /root
ARG BUILD_JOBS=6
ENV MAKEFLAGS="-j${BUILD_JOBS}"
+17 -20
View File
@@ -1,16 +1,7 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
# include buildroot toolchain file
include(/opt/aarch64-buildroot-linux-gnu_sdk-buildroot/share/buildroot/toolchainfile.cmake)
set(SYSROOT /opt/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu)
set(CMAKE_SYSROOT
${SYSROOT}/aarch64-none-linux-gnu/libc
)
set(CMAKE_C_COMPILER ${SYSROOT}/bin/aarch64-none-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER ${SYSROOT}/bin/aarch64-none-linux-gnu-g++)
list(APPEND CMAKE_FIND_ROOT_PATH
list(APPEND CMAKE_FIND_ROOT_PATH
$ENV{TARGET_SYSROOT}
$ENV{ROS_ROOT}
${CMAKE_INSTALL_PREFIX}
@@ -20,13 +11,19 @@ list(APPEND CMAKE_FIND_ROOT_PATH
# set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG -Wno-error=unused-variable")
# set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -Wno-error=unused-variable")
# add_link_options("LINKER:-rpath-link,$ENV{TARGET_SYSROOT}/lib")
add_link_options($<$<CONFIG:Release>:-s>)
add_link_options("LINKER:-rpath-link,$ENV{TARGET_SYSROOT}/lib")
set(Python3_EXECUTABLE /usr/bin/python3)
set(Python3_NumPy_INCLUDE_DIR $ENV{ROS_ROOT}/lib/python3.10/site-packages/numpy/core/include)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
# use buildroot sdk python3.11
set(Python3_EXECUTABLE /usr/bin/python3.11)
set(Python3_INCLUDE_DIR ${CMAKE_SYSROOT}/usr/include/python3.11)
set(Python3_LIBRARY ${CMAKE_SYSROOT}/usr/lib/libpython3.11.so)
set(Python3_NumPy_INCLUDE_DIR ${CMAKE_SYSROOT}/usr/lib/python3.11/site-packages/numpy/core/include)
# use cross compile packages
set(LZ4_INCLUDE_DIR $ENV{TARGET_SYSROOT}/include)
set(LZ4_LIBRARY $ENV{TARGET_SYSROOT}/lib/liblz4.so)
set(flann_DIR $ENV{TARGET_SYSROOT}/lib/cmake/flann)
set(FLANN_INCLUDE_DIR $ENV{TARGET_SYSROOT}/include)
set(FLANN_LIBRARY $ENV{TARGET_SYSROOT}/lib/libflann.so)
set(yaml-cpp_DIR $ENV{TARGET_SYSROOT}/lib/cmake/yaml-cpp)