This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMDS64EVM:Ubuntu 上 ARM64的交叉编译

Guru**** 2466550 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1473286/tmds64evm-cross-compilation-for-arm64-on-ubuntu

器件型号:TMDS64EVM

工具与软件:

我尝试在 Ubuntu 22.04上通过 ARM64交叉编译来构建外部内核模块、并出现以下输出错误:

RM -rf *。o *~ core .dependent .*。cmd *。ko *。mod.c .tmp_versions
make -C /home/atcom/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04/board-support/ti-linux-kernel-6.6.32 +git-ti-rt M=/home/atcom/Desktop/at_spi_pps 模块
make[1]:输入目录"/home/atcom/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04/board-support/ti-linux-kernel-6.6.32 + git-ti-rt"
警告:编译器与用于构建内核的编译器不同
内核构建于: GCC (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
您使用的是:AArch64-OE-Linux-gcc (GCC) 13.3.0
cc [M]/home/atcom/Desktop/at_spi_pps/at_spi_pps.o
‘arch64-OE-linux-gcc:错误:无法识别的命令行选项"ms-record-mcount"
make[3]:***[scripts/Makefile.build:243:/home/atcom/Desktop/at_spi_pps/at_spi_pps.o 错误1.
make[2]:***[git-ti-rt/Makefile:1913:/home/atcom/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04/board-support/ti-linux-kernel-6.6.32 /home/atcom/Desktop/at_spi_pps 错误2.
make[1]:***[Makefile:234:_sub-make]错误2.
make[1]:正在离开目录"/home/atcom/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04/board-support/ti-linux-kernel-6.6.32 + git-ti-rt"
make:***[Makefile:17: modules]错误2.

我将从.sh 文件启动构建过程:

SDK_INSTALL_DIR="/home/atcom/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04

导出 cross_compile_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-
导出 sysROOT_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/aarch64-oe-linux
导出 CC_64="${cross_compile_64}gcc --sysroot=${sysroot_64}"
export ROSS_COMPILE_32="${SDK_INSTALL_DIR}/k3r5-Devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-eabi/arm-oe-eabi-"

将 arch=arm64 cross_compile=${cross_compile_64}设置为 clean
使 arch=arm64 cross_compile=${cross_compile_64}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我安装了用于 Linux 驱动程序编程和 DTB 文件的库- AM642x

    sudo apt install git xz-utils build-Essential flex bison bc libssl-dev libncurses-dev

    sudo apt install libelf-dev

    在生成 dtb 文件和/或编译 Linux 驱动程序之前、我生成了内核配置:

    使 oldconfig &&使其做好准备

    然后我重新编译内核、它似乎已经解决了问题。

    .sh 脚本:

    SDK_INSTALL_DIR="/home/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04

    导出 cross_compile_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-
    导出 sysROOT_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/aarch64-oe-linux
    导出 CC_64="${cross_compile_64}gcc --sysroot=${sysroot_64}"
    export ROSS_COMPILE_32="${SDK_INSTALL_DIR}/k3r5-Devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-eabi/arm-oe-eabi-"

    cd /home/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04/board-support/ti-linux-kernel-6.6.32 +git-ti-rt
    导出路径=/home/atcom/ti-processor-sdk-linux-rt-am64xx-evm-10.00.07.04/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux:$path
    make ARCH=ARM64 CROSS_COMPILE=AArch64-OE-Linux- distclean
    使 arch=arm64 cross_compile=aarch64-OE-linux- defconfig ti_arm64_prune.config ti_rt.config
    使 arch=arm64 cross_compile=aarch64-OE-linux- menuconfig
    make ARCH=ARM64 CROSS_COMPILE=AArch64-OE-Linux- Image

    make ARCH=ARM64 CROSS_COMPILE=AArch64-OE-Linux-模块

    重新编译内核似乎已经解决了问题。