正点原子mp157移植Linux源码过程记录

仅仅作为笔记,记录

如何使用Linux源码在stm157上运行
 
步骤一
步骤二
步骤三
步骤四
①:链接出适合stm32的内核源码
首先解压,然后在加压目录下面会有这个文件linux-5.4.31.tar.xz目录,他就是Linux系统官方源码
 
进入解压目录内,然后
 
cd linux-5.4.31/
 
//进入 Linux 源码目录
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done //打补丁
cd linux-5.4.31/
 
然后进行默认配置,这一步,少不了。他是将刚编译出的配置文件写入config里里面
//进入到 linux 内核
make ARCH=arm multi_v7_defconfig "fragment*.config" //生成默认配置文件
①:  for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done
 
②:   yes '' | make ARCH=arm oldconfig
②:编写脚本,进行编译
#!/bin/sh
make distclean
make stm32mp1_atk_defconfig
make menuconfig
make uImage dtbs LOADADDR=0XC2000040 -j16
生成的uImage 路径     arch/arm/boot
 
生成的stm32mp157d-ed1.dtb路径 /linux-5.4.31/arch/arm/boot/dts
(记得修改名字为 stm32mp157d-atk.dtb   主要是tftp 加载命令我没有更改  偷懒了)
 
 
③:修改网络驱动
将 motorcomm.c 和 motorcomm_phy.h 分别拷贝到 Linux 源码下的 drivers/net/phy
include/linux 目录下
拷贝完成以后修改 drivers/net/phy/Makefile 文件,加上下面这句:
obj-$(CONFIG_MOTORCOMM_PHY) += motorcomm.o
外还需要修改 drivers/net/phy/Kconfig 文件,加入如下内容:
 
494 config MOTORCOMM_PHY
495         tristate "Motorcomm PHYs"
496         ---help---
497                 Supports the YT8010, YT8510, YT8511, YT8512 PHYs.
 
④:make menuconfig进行配置
linux-5.4.31$ make menuconfig
 
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> PHY Device support and infrastructure (PHYLIB [=y])
-> <*> Motorcomm PHYs //将 YT8511 驱动编译进内核
 
 
 
⑤:编译内核
./stm32mp157d_atk.sh
 
 
 

 

posted @ 2022-06-11 14:27  怎因一双媚眼惹尘埃  阅读(273)  评论(0编辑  收藏  举报