仅仅作为笔记,记录
如何使用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
|
|
|
|