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

news2025/1/23 7:04:27

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设备树,暂时还不能烧录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1445820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux学习】线程详解

目录 十八.多线程 18.1 线程与进程 18.2 内核视角看待创建线程与进程 18.3 线程优缺点总结 线程的优点: 线程的缺点: 线程的用途: 18.4 线程与进程的联系 十九.线程控制 19.1 POSIX线程库 19.2 线程创建 19.3 线程等待 19.4 线程终止 19.5 线…

【后端高频面试题--Nginx篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 后端高频面试题--Nginx篇 什么是Nginx?为什么要用Nginx?为什么Nginx性能…

揭秘:15条黄金法则,让你的GPT聊天提示效率翻倍!(一)

你的 ChatGPT 响应的好坏完全取决于你使用的ChatGPT 提示。 事实是,ChatgPT对于潜在客户开发、内容创建甚至外展都非常有效。 但大多数人只是使用人工智能来创建内容。 当然,它有时可以产生一些纯文本。也就是说,如果你只使用正确的提示。…

jsp课程教学管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 课程教学管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0…

FPGA_工程_基于rom的vga显示

一 框图 二 代码修改 module Display #(parameter H_DISP 1280,parameter V_DISP 1024,parameter H_lcd 12d150,parameter V_lcd 12d150,parameter LCD_SIZE 15d10_000 ) ( input wire clk, input wire rst_n, input wire [11:0] lcd_xpos, //lcd horizontal coo…

Days 29 ElfBoard LCD屏双电荷泵电路原理

7寸LCD屏幕的屏幕排线中采用的供电电压是5V供电,但是在屏幕工作时需要VCOM-5.3V、AVDD-12.5V、VGL--7V、VGH-17V几组电压,所以要对初始的5V电源进行DC-DC电压变换,在这里我们用到了双电荷泵电路。 再此电路中VCC_5V为电源输入,E…

gtkmm4 应用程序使用 CSS 样式

文章目录 前言css选择器css文件示例源代码效果动态设置css-classes 前言 程序样式和代码逻辑分离开 使代码逻辑更可观 css选择器 Cambalache提供了两种css-classes 相当于css里的类名:class“类名”css-name 相当于css里的标签名:spin div p 啥的 如上我设置了这个按钮控件的…

【ES】--ES集成热更新自定义词库(字典)

目录 一、问题描述二、具体实施1、Tomcat实现远程扩展字典2、验证生效3、ES配置远程扩展字典4、为何不重启ES能实现热更新 一、问题描述 问题现象: 前面完成了自定义分词器词库集成到ES中。在实际项目中词库是时刻在变更的,但又不希望重启ES,对此我们应…

[Python进阶] 识别验证码

11.3 识别验证码 我们再开发某些项目的时候,如果遇到要登录某些网页,那么会经常遇到输入验证码的情况,而每次人工输入验证码的话,比较浪费时间。于是,可以通过调用某些接口进行识别。 11.3.1 调用百度文字识别接口 …

软件22-上午题-树与二叉树2

一、平衡二叉树 平衡二叉树:是一棵空树或它的左右两个子树的高度差的绝对值不超过 1, 并且左右两个子树都是一棵平衡二叉树。 注意: 完全二叉树 平衡二叉树!!! 二、二叉排序树(二叉查找树、二…

Linux(Ubuntu)环境下安装卸载Python3(避免踩坑)

一、安装 第一步: 进入/usr/local/目录,下载Python3,这里我下载的是python 3.8.10,如果要下载其他版本改下链接中的版本号,需与官网版本号对应。 wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz第…

问题:入园前需要做好的准备包括( )。 #学习方法#其他#微信

问题:入园前需要做好的准备包括( )。 A.室内通风 B.清洁消毒 C.保健医晨检 D.准备用品和玩具 参考答案如图所示

AI新工具(20240209) ImgGen AI-免费在线AI图像生成应用;Smoothrase - 新一代的图像擦除技术等

ImgGen AI-免费在线AI图像生成应用 使用ImgGen的AI图像生成器(文字转图像)免费创建令人惊叹的图像,无水印,无需注册。包括功能、优势、定价、定位等。 Anything in Any Scene - 在现有的动态视频中无缝地插入任何物体&#xff0c…

java对象内部都有哪些东西

普通对象 对象头 markword 占8字节ClassPointer 指针 :-XX userCompressedClassPointrs 为4字节,不开启为 8字节实例数据 引用类型: -XX userCommpressedOops 为4字节,不开启8字节Padding对齐, 8的倍数 数组对象 对象头:markwor…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月12日,星期一

每天一分钟,知晓天下事! 2024年2月12日 星期一 农历正月初三 1、 注意错峰出行!今起全国公路网流量将处于高位运行状态。 2、 中国旅游研究院:预计2024年国内旅游人数或超60亿人次。 3、 阔别四年,北京、贵阳、张家…

Halcon 频域缺陷检测

文章目录 傅里叶变换频谱矩形圆菱形黑白相间的亮带去除图纹(反傅里叶变换)去除图纹滤波器处理 Halcon 频域空间域检测缺陷Halcon 频域差分空间域 缺陷检测(lines_gauss 提取线)Halcon 频域差分空间域(blob特征&#xf…

leetcode 461. 汉明距离

比较简单的一题,先对两个整数进行异或操作,会将两个整数二进制形式中各个数字进行异或操作,不同的数字则为1,再通过移位操作统计得到的二进制数中为1的个数,即为所求。 Java代码如下: class Solution {pub…

例38:使用Frame(分组框)

建立一个EXE工程,在窗体上放两个Frame框。分别放两组单选按钮表示性别和收入,注意每组单选按钮的组名要一样。在按钮中输入代码: Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)If Frame1.Visible ThenFrame1.Visib…

车载诊断协议DoIP系列 —— 协议中术语解释和定义

车载诊断协议DoIP系列 —— 协议中术语解释和定义 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,…

EXCEL中如何调出“数据分析”的菜单

今天发现,原来WPS还是和EXCEL比,还是少了“数据分析”这个日常基本做统计的菜单,只好用EXCEL了,但奇怪发现我的EXCEL中没发现这个菜单,然后查了下,才发现,要用如下的方法打开: 1&…