千家信息网

怎么使用Fedora IoT点亮LED灯

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍怎么使用Fedora IoT点亮LED灯,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是 Fedora IoT?Fedora IoT 是当前 Fedora
千家信息网最后更新 2025年12月01日怎么使用Fedora IoT点亮LED灯

这篇文章主要介绍怎么使用Fedora IoT点亮LED灯,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

什么是 Fedora IoT?

Fedora IoT 是当前 Fedora 项目的目标之一,计划成为一个完整的 Fedora 版本。Fedora IoT 将是一个在 ARM(目前仅限 aarch74)设备上(例如树莓派),以及 x86_64 架构上运行的系统。

Fedora IoT 基于 OSTree 开发,就像 Fedora Silverblue 和以往的 Atomic Host。

下载和安装 Fedora IoT

官方 Fedora IoT 镜像将和 Fedora 29 一起发布。但是在此期间你可以下载 基于 Fedora 28 的镜像 来进行这个实验。(LCTT 译注:截止至本译文发布,Fedora 29 已经发布了,但是 IoT 版本并未随同发布,或许会在 Fedora 30 一同发布?)

你有两种方法来安装这个系统:要么使用 dd 命令烧录 SD 卡,或者使用 fedora-arm-installer 工具。Fedora 的 Wiki 里面提供了为 IoT 设置物理设备 的更多信息。另外,你可能需要调整第三个分区的大小。

把 SD 卡插入到设备后,你需要创建一个用户来完成安装。这个步骤需要串行连接或一个 HDMI 显示器和键盘来与设备进行交互。

当系统安装完成后,下一步就是要设置网络连接。使用你刚才创建的用户登录系统,可以使用下列方式之一完成网络连接设置:

  • 如果你需要手动配置你的网络,可能需要执行类似如下命令,需要保证设置正确的网络地址:


    1. $ nmcli connection add con-name cable ipv4.addresses \

    2. 192.168.0.10/24 ipv4.gateway 192.168.0.1 \

    3. connection.autoconnect true ipv4.dns "8.8.8.8,1.1.1.1" \

    4. type ethernet ifname eth0 ipv4.method manual

  • 如果你网络上运行着 DHCP 服务,可能需要类似如下命令:


    1. $ nmcli con add type ethernet con-name cable ifname eth0

Fedora 中的 GPIO 接口

许多关于 Linux 上 GPIO 的教程都关注传统的 GPIO sysfis 接口。这个接口已经不推荐使用了,并且上游 Linux 内核社区由于安全和其他问题的缘故打算完全删除它。

Fedora 已经不将这个传统的接口编译到内核了,因此在系统上没有 /sys/class/gpio 这个文件。此教程使用一个上游内核提供的一个新的字符设备 /dev/gpiochipN 。这是目前和 GPIO 交互的方式。

为了和这个新设备进行交互,你需要使用一个库和一系列命令行界面的工具。常用的命令行工具比如说 echocat 在此设备上无法正常工作。

你可以通过安装 libgpiod-utils 包来安装命令行界面工具。python3-libgpiod 包提供了相应的 Python 库。

使用 Podman 来创建一个容器

Podman 是一个容器运行环境,其命令行界面类似于 Docker。Podman 的一大优势是它不会在后台运行任何守护进程。这对于资源有限的设备尤其有用。Podman 还允许您使用 systemd 单元文件启动容器化服务。此外,它还有许多其他功能。

我们使用如下两步来创建一个容器:

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. 创建包含所需包的分层镜像。

  3. 使用分层镜像创建一个新容器。

首先创建一个 Dockerfile 文件,内容如下。这些内容告诉 Podman 基于可使用的*** Fedora 镜像来构建我们的分层镜像。然后就是更新系统和安装一些软件包:

FROM fedora:latestRUN  dnf -y updateRUN  dnf -y install libgpiod-utils python3-libgpiod

这样你就完成了镜像的生成前的配置工作,这个镜像基于***的 Fedora,而且包含了和 GPIO 交互的软件包。

现在你就可以运行如下命令来构建你的基本镜像了:

$ sudo podman build --tag fedora:gpiobase -f ./Dockerfile

你已经成功创建了你的自定义镜像。这样以后你就可以不用每次都重新搭建环境了,而是基于你创建的镜像来完成工作。

使用 Podman 完成工作

为了确认当前的镜像是否就绪,可以运行如下命令:

$ sudo podman imagesREPOSITORY                 TAG        IMAGE ID       CREATED          SIZElocalhost/fedora           gpiobase   67a2b2b93b4b   10 minutes ago  488MBdocker.io/library/fedora   latest     c18042d7fac6   2 days ago     300MB

现在,启动容器并进行一些实际的实验。容器通常是隔离的,无法访问主机系统,包括 GPIO 接口。因此需要在启动容器时将其挂载在容器内。可以使用以下命令中的 -device 选项来解决:

$ sudo podman run -it --name gpioexperiment --device=/dev/gpiochip0 localhost/fedora:gpiobase /bin/bash

运行之后就进入了正在运行的容器中。在继续之前,这里有一些容器命令。输入 exit 或者按下 Ctrl+D 来退出容器。

显示所有存在的容器可以运行如下命令,这包括当前没有运行的,比如你刚刚创建的那个:

$ sudo podman container ls -aCONTAINER ID   IMAGE             COMMAND     CREATED          STATUS                              PORTS   NAMES64e661d5d4e8   localhost/fedora:gpiobase   /bin/bash 37 seconds ago Exited (0) Less than a second ago           gpioexperiment

使用如下命令创建一个新的容器:

$ sudo podman run -it --name newexperiment --device=/dev/gpiochip0 localhost/fedora:gpiobase /bin/bash

如果想删除容器可以使用如下命令:

$ sudo podman rm newexperiment

点亮 LED 灯

现在可以使用已创建的容器。如果已经从容器退出,请使用以下命令再次启动它:

$ sudo podman start -ia gpioexperiment

如前所述,可以使用 Fedora 中 libgpiod-utils 包提供的命令行工具。要列出可用的 GPIO 芯片可以使用如下命令:

$ gpiodetectgpiochip0 [pinctrl-bcm2835] (54 lines)

要获取特定芯片的连线列表,请运行:

$ gpioinfo gpiochip0

请注意,物理引脚数与前一个命令所打印的连线数之间没有相关性。重要的是 BCM 编号,如 pinout.xyz 所示。建议不要使用没有相应 BCM 编号的连线。

现在,将 LED 连接到物理引脚 40,也就是 BCM 21。请记住:LED 的短腿(负极,称为阴极)必须连接到带有 330 欧姆电阻的树莓派的 GND 引脚, 并且长腿(阳极)到物理引脚 40。

运行以下命令点亮 LED,按下 Ctrl + C 关闭:

$ gpioset --mode=wait gpiochip0 21=1

要点亮一段时间,请添加 -b(在后台运行)和 -s NUM(多少秒)参数,如下所示。 例如,要点亮 LED 5 秒钟,运行如下命令:

$ gpioset -b -s 5 --mode=time gpiochip0 21=1

另一个有用的命令是 gpioget。 它可以获得引脚的状态(高或低),可用于检测按钮和开关。

以上是"怎么使用Fedora IoT点亮LED灯"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

命令 容器 运行 镜像 系统 设备 工具 接口 网络 内容 物理 工作 内核 文件 界面 传统 后台 官方 就是 教程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 学位论文指纹数据库是什么 oracle数据库连接包 供批地数据库 阿里云cdn网络技术专家 如何获取本地数据库地址 不必了解程序与数据库的构造 发展前景好的计算机软件开发学校 沭阳自动化网络技术诚信合作 互联网科技公司取名要求 网络安全宣传思想政治 现代指挥行动 数据库网站 软件开发工具是用什么开发的 对网络技术与运用的认识 我的世界服务器光影包 数据库视图可对原数据进行操作吗 武汉市网络安全 思科网络技术公司 海康4路智能终端服务器 温州政务软件开发多少钱 数据库编程 存储过程 工商银行软件开发中心成都图片 软件开发和版本发布 战地5可以换服务器吗 日照智慧团建软件开发系统 如何从设计的角度看软件开发 网络安全立法五个层面 ps4国行版怎么连接服务器 服务器 如何租出去 华为腾讯阿里的服务器在哪里 数据库服务器绝对安全
0