Linux第50步_移植ST公司的linux内核第2步_编译ST公司的linux源码和修改网络驱动

1、修改“linux-5.4.31”目录下的“Makefile

1)、使用VSCode打开“linux-5.4.31.code-workspace

2)、点击“linux-5.4.31”目录下的“Makefile

3)、点击“编辑”,点击“查找”,输入“CROSS_COMPILE回车”,找到“ARCH ?= $(SUBARCH)

4)、添加内容如下:

ARCH = arm

CROSS_COMPILE = arm-none-linux-gnueabihf-

见下图:

5)、点击“文件”,点击“保存”;

2、创建脚本文件,命名为“stm32mpl57d_atk.sh

1)、输入“ls回车

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd atk-mp1/回车”,切换到“atk-mp1”目录

输入“ls回车”,列出“atk-mp1”目录下的文件和文件夹

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd my_linux/回车”,切换到“my_linux”目录

输入“ls回车”,列出“my_linux”目录下的文件和文件夹

输入“cd linux-5.4.31/回车”,切换到“linux-5.4.31”目录

输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

2)、输入“vi stm32mp157d_atk.sh回车

3)、输入内容如下:

#!/bin/sh

make  distclean

#清除工程,删除“.config”文件,执行1次即可,以后就不要再执行了。

make  stm32mp1_atk_defconfig

#设置为默认配置,执行1次即可,以后就不需要执行该语句了。

#“stm32mp1_atk_defconfig”位于“arch/arm/configs”目录下;

make  menuconfig

#打开图形化配置界面

make  uImage dtbs LOADADDR=0XC2000040 -j8

#编译镜像文件和设备树,linux内核在DDR中的加载地址为0XC2000040,-j8表示采用8线程编译

见下图:

4)、按“ESC键”,按“:wq回车”保存脚本文件

输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

5)、输入“chmod 777 stm32mp157d_atk.sh回车”,给脚本文件赋予可执行权限

输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

3、使用脚本文件“stm32mpl57d_atk.sh”编译linux源码;

1)、输入“./stm32mp157d_atk.sh回车”,执行编译;

2)、输入“cd arch/arm/boot/回车”,切换到“arch/arm/boot/”目录

输入“ls回车”,列出“boot”目录下的文件和文件夹

发现生成了uImage文件

3)、输入“cd dts/回车”,切换到“dts”目录

输入“ls stm32mp*回车”,列出“dts”目录下以“stm32mp”为开头的的文件和文件夹

发现linux设备树文件“stm32mp157d-ed1.dtb

见下图:

4、修改网络驱动

STM32MP157核心板V1.3的网络驱动芯片型号:YT8511,其PHY地址为0x00;

STM32MP157核心板V1.2的网络驱动芯片型号:RTL8211,其PHY地址为0x01;

网络驱动程序名字:phy.c;

网络驱动程序功能:支持YT8511和RTL8211;

正点原子的网络驱动程序路径:

程序源码\08、模块驱动源码\01、YT8511驱动源码\linux内核下修改方法\linux

1)、使用“FileZilla”,将“motorcomm_phy.h”分别拷贝到“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31/include/linux”目录下

2)、使用“FileZilla”,将“motorcomm.c”拷贝到 Limux 源码下的 “/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31/drivers/net/phy” 目录下

3)、修改“my_linux/linux-5.4.31/drivers/net/phy/”目录下的Makefile文件

使用VSCode打开“linux-5.4.31.code-workspace”,然后点击“drivers”,点击“net”,点击“phy”,找到“Makefile”,打开它,见下图:

4)、在最后一行添加“obj-$(CONFIG_MOTORCOMM_PHY) += motorcomm.o

见下图:

5)、修改“my_linux/linux-5.4.31/drivers/net/phy/”目录下的Kconfig文件,加入如下内容:

config MOTORCOMM_PHY

tristate "Motorcomm PHYs"

---help---

Supports the YT8010, YT8510, YT8511, YT8512 PHYs.

见下图:

6)、输入“cd ..回车”,退回到“boot”目录

输入“cd ..回车”,退回到“arm”目录

输入“cd ..回车”,退回到“arch”目录

输入“cd ..回车”,退回到“linux-5.4.31”目录

输入“make menuconfig回车”,打开linux内核配置界面

移动向下光标键,找到“Device Drivers”

7)、按“回车”进入,移动向下光标键,找到“Network device support”

8)、按“回车”进入,移动向下光标键,找到“PHY Device support and infrastructure”

9)、按“回车”进入,移动向下光标键,找到“Motorcomm PHYs”

10)、按“y”,将YT8511驱动编译进内核

11)、按“ESC”退出,直到出现下图:

12)、按“Y”,保存

输入“make  uImage dtbs LOADADDR=0XC2000040 -j8回车

编译镜像文件和设备树,linux内核在DDR中的加载地址为0XC2000040,-j8表示采用8线程编译

注意:不能使用脚本文件编译,否则会把刚才的配置清除了。

13)、为了防止配置文件丢失,将linux默认配置文件“.config”修改为“./arch/arm/configs/stm32mp1_atk_defconfig”,

注意:make distclean #清除工程,删除“.config”文件,测试OK后,一定要保存。

输入“make menuconfig回车

14)、移动向右光标键至“Save”,按下“回车

15)、输入“./arch/arm/configs/stm32mp1_atk_defconfig

16)、向下移动光标至“Ok”,再按“O”保存

输入“vi  ./arch/arm/configs/stm32mp1_atk_defconfig回车

17)、按“ESC键”,输入“/CONFIG_MOTORCOMM_PHY回车”,搜索“CONFIG_MOTORCOMM_PHY

发现“CONFIG_MOTORCOMM_PHY”,说明备份正确。

18)、按“ESC键”,输入“:q!回车”,不保存退出。

至此,我们得到了ST公司开发板对应的ulmage和stm32mp157d-ed1.dtb设备树,还需要修改linux设备树,暂时还不能烧录。

最近更新

  1. TCP协议是安全的吗?

    2024-02-13 00:30:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-13 00:30:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-13 00:30:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-13 00:30:02       18 阅读

热门阅读

  1. 【深度学习】S1 预备知识 P1 张量

    2024-02-13 00:30:02       27 阅读
  2. 老兵(10)

    2024-02-13 00:30:02       29 阅读
  3. redis过期淘汰策略、数据过期策略与持久化方式

    2024-02-13 00:30:02       26 阅读
  4. python 对Windows关机/重启/锁屏

    2024-02-13 00:30:02       27 阅读
  5. Swagger2

    2024-02-13 00:30:02       32 阅读
  6. Spring Boot + Lua = 王炸!

    2024-02-13 00:30:02       29 阅读
  7. 【嵌入式开发】70

    2024-02-13 00:30:02       26 阅读
  8. STM32 7-8

    STM32 7-8

    2024-02-13 00:30:02      27 阅读
  9. C++ 同构数,的问题。

    2024-02-13 00:30:02       30 阅读
  10. H5/CSS 笔试面试考题(41-50)

    2024-02-13 00:30:02       23 阅读
  11. H5/CSS 笔试面试考题(51-60)

    2024-02-13 00:30:02       25 阅读
  12. ZooKeeper分布式锁

    2024-02-13 00:30:02       28 阅读
  13. C语言:表达式求值

    2024-02-13 00:30:02       33 阅读
  14. 【嵌入式开发】72

    2024-02-13 00:30:02       26 阅读