从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)
内核网络驱动修改 - 参考正点原子
使用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