NanoPi M4 Linux开启SPI

NanoPi M4 Linux开启SPI

我使用的是NanoPi M4V2版本的硬件,从硬件和内核配置上看,对NanoPi M4同样适用。

NanoPi M4/M4V2硬件上支持SPI接口,其通过40PIN GPIO接口引出的是SPI1接口,从PIN脚定义上看,SPI1和UART4复用了收发PIN,而官方提供的Linux系统设备树使能的是UART4(对应设备/dev/ttyS4)而不是SPI1,要使用SPI接口,需要修改设备树配置,禁用UART4,启用SPI1。

在这里插入图片描述

搭建编译环境

参考官方文档:http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4V2/zh#.E6.90.AD.E5.BB.BA.E7.BC.96.E8.AF.91.E7.8E.AF.E5.A2.83

获取内核代码

参考官方文档:http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4V2/zh#.E7.BC.96.E8.AF.91_FriendlyCore.2FFriendlyDesktop.2FLubuntu.2FEFlasher.E7.9A.84.E5.86.85.E6.A0.B8.E6.BA.90.E4.BB.A3.E7.A0.81

修改内核配置

我的系统环境:

  • 硬件:NanoPi M4V2,32G SD
  • 系统:rk3399-sd-friendlydesktop-bionic-4.4-arm64-20211029.img
  • 内核:分支:4.4.y(实际版本:4.4.179),commit:595acbae9d1e03e39d0ebbb22226b061f5682be7

UART4和SPI1的使能配置都在内核代码的arch/arm64/boot/dts/rockchip/rk3399-nanopi4-common.dtsi文件中,修改两处:

$ git diff
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-common.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-common.dtsi
index 72cf2d15..234058cd 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-common.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-common.dtsi
@@ -485,7 +485,7 @@
 };
 
 &spi1 {
-       status = "disabled";
+       status = "okay";
        pinctrl-names = "default", "sleep";
        pinctrl-1 = <&spi1_gpio>;
 
@@ -508,7 +508,7 @@
 };
 
 &uart4 {
-       status = "okay";
+       status = "disabled";
 };
 
 &vopb {

编译内核

参考官方文档:http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4V2/zh#.E7.BC.96.E8.AF.91_FriendlyCore.2FFriendlyDesktop.2FLubuntu.2FEFlasher.E7.9A.84.E5.86.85.E6.A0.B8.E6.BA.90.E4.BB.A3.E7.A0.81

更新SD卡

参考官方文档:https://github.com/friendlyarm/sd-fuse_rk3399
下载cd sd-fuse_rk3399,使用master分支,commit:3005b25b030b6c1ecd766183732f3874295bc2d9

从网盘下载制作SD卡镜像的各分区镜像文件friendlydesktop-arm64-images.tgz,
解压到sd-fuse_rk3399目录下;
将新编译的内核镜像(kernel.img和resource.img)复制到friendlydesktop-arm64目录下覆盖原文件;
执行命令制作sd卡镜像

sudo ./mk-sd-image.sh friendlydesktop-arm64

生成的镜像文件在out目录下,文件名rk3399-sd-friendlydesktop-bionic-4.4-arm64-yyyymmdd.img

如果想临时更新一下之前烧写过的SD卡进行测试而不重新烧写整个SD卡,可以删除friendlydesktop-arm64目录下除了编译kernel生成的两个镜像(kernel.img和resource.img)外的其他镜像文件,然后执行以下命令:

sudo ./fusing.sh /dev/sdX friendlydesktop-arm64

脚本运行时会跳过缺失的镜像文件,仅更新friendlydesktop-arm64目录下存在镜像的分区到SD卡,这样可以保留SD卡文件系统里的内容。

sd-fuse_rk3399里提供了一些脚本,用来编译各个分区的镜像,里面也包含了编译内核的脚本,如果除了需要更新内核镜像文件,还需要更新内核模块到文件系统或者更新内核相关的头文件,用这个脚本会更方便。

参考

  • https://blog.csdn.net/u014096133/article/details/88642669
  • http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4V2/zh
  • https://github.com/friendlyarm/sd-fuse_rk3399
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
nf5280m4是一款服务器主板型号,适用于Linux操作系统。为了使nf5280m4能够正常工作,需要安装相应的Linux驱动。nf5280m4Linux驱动包含了与硬件设备通信和控制的程序,确保服务器的各项功能可以正常运行。 nf5280m4Linux驱动主要涉及以下几个方面: 1. 网络驱动:nf5280m4具备多个网络接口,网络驱动负责实现数据包的收发和网络连接的管理,确保服务器可以与外部网络进行通信。 2. 存储驱动:nf5280m4支持多种存储设备,存储驱动负责与存储设备进行通信,实现数据的读写和存储空间的管理。 3. 显卡驱动:nf5280m4集成了显卡,显卡驱动负责显卡输出的控制和显示画面的渲染,确保服务器可以正常显示图形界面。 4. 声卡驱动:nf5280m4也可能配备了声卡,声卡驱动负责音效的输出和音频输入的处理,确保声音的正常播放和录制。 5. 其他设备驱动:nf5280m4还可能包含其他设备(如USB接口、串口等),相应的驱动程序负责这些设备的通信和控制。 安装nf5280m4Linux驱动,可以通过以下步骤进行: 1. 下载驱动包:从指定的官方网站或其他可信来源下载nf5280m4Linux驱动包。 2. 解压驱动包:将下载的驱动包解压到指定的目录中,可以使用压缩软件(如tar命令)进行解压。 3. 编译驱动:进入解压后的驱动包目录,执行编译命令,生成可执行的驱动程序。 4. 安装驱动:执行安装命令,将生成的驱动程序复制到系统指定的目录中,并进行相应的配置。 5. 加载驱动:通过系统命令加载所安装的驱动,使其生效。 6. 测试驱动:重启服务器,验证安装的驱动是否可用,是否可以正常与硬件设备进行通信和控制。 通过以上步骤,你可以成功安装nf5280m4Linux驱动,确保服务器的各项功能正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞花丝雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值