TL3562/3568移植无锡沐创N500L-AM4驱动进内核源码,报错及其解决方案

news2025/1/21 11:37:53

前言

        创龙官方提供的资料无锡沐创N500L-AM4驱动是rnpgbe-0.1.0.rc60-dd9f3cf.tar.gz;无锡沐创官方,截止目前,最新驱动是rnpgbe-0.2.3-f26b9a4.tar.gz。考虑到开发的稳妥性,先选用创龙尝试过的rnpgbe-0.1.0.rc60-dd9f3cf.tar.gz来移植,将他解压出来,后文将其简称“官方包”。

        目标环境:TL3562 Ubuntu环境(不是buildroot)kernel 5.15

        根据创龙官方提供的资料,来移植,会有些问题,创龙自己测试是编译成模块再移植到系统里来测试的,没有移植到内核源码中。为排查问题,花费了1.5天的时间,凸(艹皿艹 )。

移植过程及遇到的问题

        根据rnpgbe-0.1.0.rc60-dd9f3cf.tar.gz中的README文件中所述:

  • 先将官方包里的scr文件夹中文件,复制到内核源码中。但是kernel/drivers/net/ethernet下没有mucse文件夹,需要手动创建,然后进入musce文件夹,再创建一个rnpgbe文件夹。再开始复制:把官方包里的scr/目录下所有文件复制到kernel/drivers/net/ethernet/musce/rnpgbe/目录下。
  • 然后把官方包里kconfig_file文件夹中的Kconfig、Makefile两个文件,复制到kernel/drivers/net/ethernet/musce/目录下。
  • 将kernel/drivers/net/ethernet/musce/rnpgbe/目录下的Makefile文件删除,将makefile.example文件重命名为Makefile。
  • 修改kernel/drivers/net/ethernet/下的Makefile,让编译的时候,去编译kernel/drivers/net/ethernet/musce下的内容:增加一句obj-$(CONFIG_NET_VENDOR_MUCSE) += mucse/,如图:

  • 修改kernel/drivers/net/ethernet/下的Kconfig,让menuconfig工具,去包含kernel/drivers/net/ethernet/musce下的Kconfig文件:增加一句source "drivers/net/ethernet/musce/Kconfig",如图:

  • 去menuconfig界面中配置上mucse驱动:make menuconfig --> Device Drivers --> Network device support --> Ethernet driver support,应该默认就是开启的,save一下退出menuconfig

  • 然后开始编译内核的流程,很顺利,但是去kernel/drivers/net/ethernet/musce/rnpgbe/目录下,查看生成的build-in.a居然只有8kb,有问题!把该镜像烧到开发版上,然后dmseg | grep rnp指令,也确实找不到该驱动的启动信息!
  • 经对比Kconfig文件,发现端倪!mucse/Kconfig和mucse/rnpgbe/Makefile中的命名不一致!稍作修改如下:

  • 再次编译内核源码,编译过程中就会报错了:

  • 通过上述内容,可以发现是有两个问题:①No rule to make target 'xxxxxxx/rnp_ptp.o'; ②error: unused variable 'hw_addr_bar0',就说这个变量没有被使用
  • 前往rnpgbe_main.c,去解决②,文件中搜索一下发现有两个地方有hw_addr_bar0,直接把这两处注释掉

  • 再次编译内核源码,发现只剩一个问题了,刚才修改有效

  • 这个问题,思索了许久。对比过原包内的Makefile和makefile.example发现有问题!
  • 对比如下:
  • 凸(艹皿艹 )官方发布的文件,文件名写错了,还漏了一个文件!因此,结合上述内容,该makefile实际上有三处问题:

  • 再次编译内核源码,就顺利通过了。把镜像烧入开发板,使用dmseg | grep rnp指令查看,可以发现有驱动信息,成功了。

后续问题

        查看了无锡沐创最新版本的驱动包rnpgbe-0.2.3-f26b9a4.tar.gz,里面的makefile.example还是有问题~笔者已通过邮件反馈,希望后期他们有维护。

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

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

相关文章

CycleGAN - CycleGAN网络:无监督图像到图像转换的生成对抗网络

1. 背景与问题 在图像到图像转换任务中,传统的生成对抗网络(GANs)依赖于成对的训练数据来进行监督学习。然而,获得大量成对标注数据通常是昂贵且耗时的。在许多应用中,真实世界的标注数据往往是稀缺的,因此…

空间解析几何8:空间线段与圆锥侧面的最短距离【附MATLAB代码】

理论推导 matlab代码 function [dmin] distanceConeToLine (A1,B1,A2,B2,R) dmin 100000000; h norm(A2-B2); A B1(1)-A1(1); if(abs(A)<1e-2)A 1e-2; end B B1(2)-A1(2); if(abs(B)<1e-2)B 1e-2; end C B1(3)-A1(3); F A1(1)*CA*h-A1(3)*A; G A1(2)*CB*h-A1(…

K8S 集群搭建和访问 Kubernetes 仪表板(Dashboard)

一、环境准备 服务器要求&#xff1a; 最小硬件配置&#xff1a;2核CPU、4G内存、30G硬盘。 服务器可以访问外网。 软件环境&#xff1a; 操作系统&#xff1a;Anolis OS 7.9 Docker&#xff1a;19.03.9版本 Kubernetes&#xff1a;v1.18.0版本 内核版本&#xff1a;5.4.203-…

2024:成长、创作与平衡的年度全景回顾

文章目录 1.前言2.突破自我&#xff1a;2024年个人成长与关键突破3.创作历程&#xff1a;从构想到落笔&#xff0c;2024年的文字旅程4.生活与学业的双重奏&#xff1a;如何平衡博客事业与个人生活5.每一步都是前行&#xff1a;2024年度的挑战与收获6.总结 1.前言 回首2024年&a…

HTML<form>标签

例子 具有两个输入字段和一个提交按钮的HTML表单&#xff1a; <form action"/action_page.php" method"get"> <label for"fname">First name:</label> <input type"text" id"fname" name"f…

C++:输入3个整数,利用指针和函数,按由小到大的顺序输出。

输出样例如图所示&#xff1a; 代码如图&#xff1a; #include<iostream> using namespace std;void exchange(int* x, int* y){int temp;temp *x;*x *y;*y temp; }int main(){int a 0, b 0, c 0;int* p1 &a, * p2 &b, * p3 &c;cout << &quo…

【QT】 控件 -- 按钮类(Button)

&#x1f525; 目录 1. 前言 2. Push Button 按钮 1、带有图标的按钮 -- 纯代码实现2、带有快捷键的按钮 -- 图形化&代码实现 3、按钮的重复触发 3. Radio Button 按钮 **1. click、press、release、toggled 的区别** **2. 单选框分组** 4. Check Box 复选 5. Tool Butto…

【Linux】Linux入门(三)权限

目录 前提权限概念whoami指令 Linux权限管理文件访问者的分类&#xff08;人&#xff09;file指令权限信息权限的表示方法 chmod指令 更改权限chown指令 修改文件&#xff0c;文件夹所属用户和用户组 权限掩码umask&#xff08;权限掩码&#xff09; 粘滞位 前提 请先看下面这…

Unity编辑器缩放设置

Unity默认界面UI字体太小了&#xff0c;可以设置一下缩放 打开首选项&#xff0c; UI Scaling 设置成125%或者更大 &#xff0c;然后重启

【Maui】下拉框的实现,绑定键值对

文章目录 前言一、问题描述二、解决方案三、软件开发&#xff08;源码&#xff09;3.1 创建模型3.2 视图界面3.3 控制器逻辑层 四、项目展示![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/05795ee1c24c49129b822b530ef58302.png) 前言 .NET 多平台应用 UI (.NET MA…

ARCGIS国土超级工具集1.3更新说明

ARCGIS国土超级工具集V1.3版本&#xff0c;功能已增加至49 个。在V1.2的基础上修复了若干使用时发现的BUG&#xff0c;完善了部分已有的功能&#xff0c;新增了“面要素狭长面检测分割”等功能&#xff0c;新工具使用说明如下&#xff1a; 一、勘测定界工具栏更新土地分类面积表…

HunyuanDiT代码笔记

HunyuanDiT 是由腾讯发布的文生图模型&#xff0c;适配中英双语。 在模型方面的改进&#xff0c;主要包括&#xff1a; transformer结构text encoderpositional encoding Improving Training Stability To stabilize training, we present three techniques: We add layer nor…

DDD - 如何设计支持快速交付的DDD技术中台

文章目录 Pre概述打造快速交付团队烟囱式的开发团队(BAD)大前端技术中台(GOOD) 技术中台的特征简单易用的技术中台建设总结 Pre DDD - 软件退化原因及案例分析 DDD - 如何运用 DDD 进行软件设计 DDD - 如何运用 DDD 进行数据库设计 DDD - 服务、实体与值对象的两种设计思路…

服务器硬盘RAID速度分析

​ 在现代数据中心和企业环境中&#xff0c;服务器的存储性能至关重要&#xff0c;RAID&#xff08;独立磁盘冗余阵列&#xff09;技术通过将多块硬盘组合成一个逻辑单元&#xff0c;提供了数据冗余和性能优化&#xff0c;本文将详细探讨不同RAID级别对服务器硬盘速度的影响&am…

【Docker】搭建一个功能强大的自托管虚拟浏览器 - n.eko

前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建&#xff0c;DSM版本为 DSM 7.2.2-72806 Update 2。 n.eko 支持多种类型浏览器在其虚拟环境中运行&#xff0c;本次教程使用 Chromium​ 浏览器镜像进行演示&#xff0c;支持访问内网设备和公网地址。 简介 n.eko 是…

五、华为 RSTP

RSTP&#xff08;Rapid Spanning Tree Protocol&#xff0c;快速生成树协议&#xff09;是 STP 的优化版本&#xff0c;能实现网络拓扑的快速收敛。 一、RSTP 原理 快速收敛机制&#xff1a;RSTP 通过引入边缘端口、P/A&#xff08;Proposal/Agreement&#xff09;机制等&…

“深入浅出”系列之C++:(9)线程分离

线程分离的基本概念 线程分离是通过调用 std::thread::detach() 方法实现的。当线程被分离时&#xff0c;它会成为一个独立的线程&#xff0c;并且会自动管理自己的资源。当该线程完成执行时&#xff0c;它会自动清理资源&#xff0c;父线程不再需要等待或回收这个线程。 线程…

Day 13 卡玛笔记

这是基于代码随想录的每日打卡 144. 二叉树的前序遍历 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a; root [1,null,2,3] 输出&#xff1a;[1,2,3] 解释&#xff1a; 示例 2&#xff1a; 输入&#xff1a; ro…

【STM32项目实战系列】系列开篇导语

【这个系列到底是什么】 简单来讲就是基于STM32的主控芯片的实际应用项目的介绍&#xff08;当然根据不同的项目功能特性需要使用不同的系列的ST主控芯片&#xff09;&#xff0c;这里面会涉及到基础工程的建立、各种驱动外设、中断和时钟的配置、RTOS的移植方法、文件系统的移…

产业园管理系统赋能企业精细管理与效益提升新路径

内容概要 现在的企业运营面临着越来越复杂的管理挑战&#xff0c;尤其是在园区管理领域。为了提升管理效率和经营效益&#xff0c;产业园管理系统的推出无疑为众多企业提供了全新的解决方案。这套系统通过智能化技术&#xff0c;将资产管理、租赁管理与财务监控等多个功能有机…