从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)

发布于:2025-06-11 ⋅ 阅读:(31) ⋅ 点赞:(0)

内核网络驱动修改 - 参考正点原子

使用ST官方YT8511驱动,启动根文件系统后网络会有问题,所以需要修改YT8511驱动源码

08、模块驱动源码 -> 01、YT8511驱动源码 -> linux内核下修改方法

找到motorcomm.c替换到drivers/net/phy/motorcomm.c

找到motorcomm_phy.h替换到include/linux/motorcomm_phy.h

重新编译内核源码后正常使用nfsroot启动

source ~/sdk6.6
export OUTPUT_BUILD_DIR=$PWD/../build
mkdir -p ${OUTPUT_BUILD_DIR}
make O="${OUTPUT_BUILD_DIR}" defconfig fragment*.config
for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r -O ${OUTPUT_BUILD_DIR} ${OUTPUT_BUILD_DIR}/.config $f; done
(yes '' || true) | make oldconfig O="${OUTPUT_BUILD_DIR}"


[ "${ARCH}" = "arm" ] && imgtarget="uImage" || imgtarget="Image.gz"
echo $imgtarget
export IMAGE_KERNEL=${imgtarget}
make ${IMAGE_KERNEL} vmlinux dtbs LOADADDR=0xC2000040 O="${OUTPUT_BUILD_DIR}"
make modules O="${OUTPUT_BUILD_DIR}"
make INSTALL_MOD_PATH="${OUTPUT_BUILD_DIR}/install_artifact" modules_install O="${OUTPUT_BUILD_DIR}"
mkdir -p ${OUTPUT_BUILD_DIR}/install_artifact/boot/

cp ${OUTPUT_BUILD_DIR}/arch/${ARCH}/boot/${IMAGE_KERNEL} ${OUTPUT_BUILD_DIR}/install_artifact/boot/

find ${OUTPUT_BUILD_DIR}/arch/${ARCH}/boot/dts/ -name 'st*.dtb' -exec cp '{}' ${OUTPUT_BUILD_DIR}/install_artifact/boot/ \;

make dtbs O="${OUTPUT_BUILD_DIR}"

find ${OUTPUT_BUILD_DIR}/arch/${ARCH}/boot/dts/ -name 'st*.dtb' -exec cp '{}' ${OUTPUT_BUILD_DIR}/install_artifact/boot/ \;

cp /home/niuke/STM32/STM32MP1/develop/linux-stm32mp-6.6.48-stm32mp-r1-r0/linux-6.6.48/../build/arch/arm/boot/dts/st/stm32mp157d-stm32mp157daa1-mx.dtb ~/tftpboot/


setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.156.10:/home/niuke/nfsroot,nfsvers=3 proto=tcp rw ip=192.168.156.11:192.168.156.10:192.168.156.1:255.255.255.0::eth0:off'

saveenv

在这里插入图片描述