From Fedora Project Wiki
m
(update translation to 2018-Nov-18 version)
 
(29 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{lang|en|zh-cn|page=Architectures/ARM/Raspberry Pi}}
 
{{lang|en|zh-cn|page=Architectures/ARM/Raspberry Pi}}
  
{{admon/tip | 现在树莓派在 Fedora 25 以及更新的版本中得到支持。Fedora 25 最终发布版的支持尚未经过时间考验,如果你遇到问题请反馈到 ARM 邮件列表或 IRC 频道。 }}
+
{{admon/tip | 现在 Fedora 所有的稳定版本都可以支持树莓派 2 代和 3 代。最新款的树莓派 3 代 B+ 型还只有 Fedora 28 之后的版本可以支持。使用中如遇问题,请反馈到 ARM 邮件列表或 IRC 频道。 }}
  
 
= 引言 =
 
= 引言 =
  
[https://www.raspberrypi.org 树莓派]是一块信用卡大小、基于 ARM 的单板计算机(SBC)。Fedora 从 25 Beta 及更新的版本中开始原生支持树莓派 2 代和 3 代 B 型,无需再用第三方内核或脚本修改官方镜像。本文将介绍如何上手,以及关于支持情况会有哪些常见问题(FAQ)等。
+
[https://www.raspberrypi.org 树莓派]是一块信用卡大小、基于 ARM 的单板计算机(SBC)。目前 Fedora 的发行版本都可以原生支持树莓派 2 代和 3 代 B 型,树莓派 3 代 B+ 型还只有 Fedora 29 可以支持,这些都无需使用第三方内核或脚本修改官方镜像。本文将介绍如何上手,以及关于支持情况会有哪些常见问题(FAQ)等。
  
 
= 支持的硬件 =
 
= 支持的硬件 =
  
目前只支持树莓派 2 代和 3 代 B 型。
+
树莓派 2 代和 3 代 B 型。Fedora 29 可以支持树莓派 3 代 B+ 型。  
  
 
= 前期准备 =
 
= 前期准备 =
  
* 树莓派 2 代和 3 代 B 型
+
* 树莓派 2 代和 3 代 B 型或 3 代 B+
* 高质量的 SD 卡 ([http://elinux.org/RPi_SD_cards eLinux] 有一份兼容性列表)
+
* 高质量的 SD 卡 ( [http://elinux.org/RPi_SD_cards eLinux] 有一份兼容性列表)
 
* HDMI 显示器或电视,一副 USB 键盘和鼠标
 
* HDMI 显示器或电视,一副 USB 键盘和鼠标
* 合适的供电装置。 树莓派 2 代建议至少 2A, 3 代建议至少 2.5A。 详情请访问 [https://www.raspberrypi.org/help/faqs/#power]
+
* 合适的供电装置。 树莓派 2 代建议至少 2A, 3 代建议至少 2.5A。 详情请访问 [https://www.raspberrypi.org/documentation/faqs/#pi-power]
  
 
制备 SD 卡还需要:
 
制备 SD 卡还需要:
Line 24: Line 24:
 
= 下载 Fedora ARM 镜像 =
 
= 下载 Fedora ARM 镜像 =
  
Fedora 25 已经原生支持树莓派,关于目前的特性请阅读 FAQ 。
+
Fedora 已经原生支持树莓派,关于目前的特性请阅读 FAQ 。
  
Fedora 25 镜像可以从这里下载:
+
== 支持 ARMv7 架构的镜像 ==
* [https://download.fedoraproject.org/pub/fedora/linux/releases/25/Workstation/armhfp/images/Fedora-Workstation-armhfp-25-1.3-sda.raw.xz Fedora Workstation 25] ([https://download.fedoraproject.org/pub/fedora/linux/releases/25/Workstation/armhfp/images/Fedora-Workstation-25-1.3-armhfp-CHECKSUM 校验文件])
+
 
* [https://download.fedoraproject.org/pub/fedora/linux/releases/25/Server/armhfp/images/Fedora-Server-armhfp-25-1.3-sda.raw.xz Fedora Server 25] ([https://download.fedoraproject.org/pub/fedora/linux/releases/25/Server/armhfp/images/Fedora-Server-25-1.3-armhfp-CHECKSUM 校验文件])
+
Fedora 29 镜像可以从这里下载:
* [https://download.fedoraproject.org/pub/fedora/linux/releases/25/Spins/armhfp/images/Fedora-Minimal-armhfp-25-1.3-sda.raw.xz Fedora 25 最小化安装镜像] ([https://download.fedoraproject.org/pub/fedora/linux/releases/25/Spins/armhfp/images/Fedora-Spins-25-1.3-armhfp-CHECKSUM 校验文件])
+
* [https://download.fedoraproject.org/pub/fedora/linux/releases/29/Workstation/armhfp/images/Fedora-Workstation-armhfp-29-1.2-sda.raw.xz Fedora Workstation 29] ([https://download.fedoraproject.org/pub/fedora/linux/releases/29/Workstation/armhfp/images/Fedora-Workstation-29-1.2-armhfp-CHECKSUM 校验文件])
* [https://download.fedoraproject.org/pub/fedora/linux/releases/25/Spins/armhfp/images/ Fedora 25 定制版] ([https://download.fedoraproject.org/pub/fedora/linux/releases/25/Spins/armhfp/images/Fedora-Spins-25-1.3-armhfp-CHECKSUM 校验文件])
+
* [https://download.fedoraproject.org/pub/fedora/linux/releases/29/Server/armhfp/images/Fedora-Server-armhfp-29-1.2-sda.raw.xz Fedora Server 29] ([https://download.fedoraproject.org/pub/fedora/linux/releases/29/Server/armhfp/images/Fedora-Server-29-1.2-armhfp-CHECKSUM 校验文件])
 +
* [https://download.fedoraproject.org/pub/fedora/linux/releases/29/Spins/armhfp/images/Fedora-Minimal-armhfp-29-1.2-sda.raw.xz Fedora 29 最小化安装镜像] ([https://download.fedoraproject.org/pub/fedora/linux/releases/29/Spins/armhfp/images/Fedora-Spins-29-1.2-armhfp-CHECKSUM 校验文件])
 +
* [https://download.fedoraproject.org/pub/fedora/linux/releases/29/Spins/armhfp/images/ Fedora 29 定制版] ([https://download.fedoraproject.org/pub/fedora/linux/releases/29/Spins/armhfp/images/Fedora-Spins-29-1.2-armhfp-CHECKSUM 校验文件])
 +
 
 +
== 支持树莓派 3 代 aarch64 架构的镜像 ==
 +
 
 +
Fedora 29 镜像可以从这里下载:
 +
* [https://dl.fedoraproject.org/pub/fedora-secondary/releases/29/Workstation/aarch64/images/Fedora-Workstation-29-1.2.aarch64.raw.xz Fedora Workstation 29] ([https://dl.fedoraproject.org/pub/fedora-secondary/releases/29/Workstation/aarch64/images/Fedora-Workstation-29-1.2-aarch64-CHECKSUM 校验文件])
 +
* [https://dl.fedoraproject.org/pub/fedora/linux/releases/29/Server/aarch64/images/Fedora-Server-29-1.2.aarch64.raw.xz Fedora Server 29] ([https://dl.fedoraproject.org/pub/fedora/linux/releases/29/Server/aarch64/images/Fedora-Server-29-1.2-aarch64-CHECKSUM 校验文件])
 +
* [https://dl.fedoraproject.org/pub/fedora-secondary/releases/29/Spins/aarch64/images/Fedora-Minimal-29-1.2.aarch64.raw.xz Fedora 29 最小化安装镜像] ([https://dl.fedoraproject.org/pub/fedora-secondary/releases/29/Spins/aarch64/images/Fedora-Spins-29-1.2-aarch64-CHECKSUM 校验文件])
  
 
= 制备 SD 卡 =
 
= 制备 SD 卡 =
  
你可以很容易地在 Fedora 或其他 Linux 发行版,或者 macOS 、Windows 上将镜像写入 SD 卡中。默认设置会提供 HDMI 显示器上的用户可视界面和对键盘鼠标的支持。如果你想输出到串行控制台,请参考[[User:Pbrobinson/RPi#How_do_I_use_a_serial_console.3Fthe | Section in the FAQ]].
+
你可以很容易地在 Fedora 或其他 Linux 发行版,或者 macOS 、Windows 上将镜像写入 SD 卡中。默认设置会提供 HDMI 显示器上的用户可视界面和对键盘鼠标的支持。如果你想输出到串行控制台,请参考[[User:Pbrobinson/RPi#How_do_I_use_a_serial_console.3Fthe | FAQ 中的这一部分]].
  
 
== Fedora 或其他 Linux 发行版 ==
 
== Fedora 或其他 Linux 发行版 ==
 
===脚本化===
 
===脚本化===
* 使用 fedora-arm-installer
+
* 使用 arm-image-installer 安装:
安装 arm-image-installer:
 
 
<pre>
 
<pre>
dnf install -y fedora-arm-installer
+
dnf install -y arm-image-installer
 
</pre>
 
</pre>
  
Line 63: Line 71:
 
示例: arm-image-installer --image=Fedora-Rawhide.xz --target=Bananapi --media=/dev/mmcblk0
 
示例: arm-image-installer --image=Fedora-Rawhide.xz --target=Bananapi --media=/dev/mmcblk0
  
关于支持的版型,请参考 SUPPORTED-BOARDS 文件。
+
关于支持的板型,请参考 SUPPORTED-BOARDS 文件。
 +
</pre>
 +
对于树莓派 2 代请使用
 +
<pre>
 +
--target=rpi2
 +
</pre>
 +
对于树莓派 3 代(B/B+ 型)请使用
 +
<pre>
 +
--target=rpi3
 
</pre>
 
</pre>
  
Line 79: Line 95:
 
== 调整 root 分区大小 ==
 
== 调整 root 分区大小 ==
  
为了压缩下载文件的体积,root 分区已被尽可能地调至最小。你需要手动重新调节。我们计划在 Fedora 25 正式发布之前使之可以自动调整分区大小。
+
为了压缩下载文件的体积,root 分区已被尽可能地调至最小。你需要手动重新调节。未来理想状态下我们也希望这一步骤可以被自动化(很棒的社区项目想法!)。
  
 
=== 在首次启动前调整 ===
 
=== 在首次启动前调整 ===
Line 92: Line 108:
  
 
<pre>
 
<pre>
# 扩增第 4 个分区(本示例中为 mmcblk0 )
+
# 扩增第 3 个分区(本示例中为 mmcblk0 )
growpart /dev/mmcblk0 4
+
growpart /dev/mmcblk0 3
# 扩展文件系统以使用全部可用空间
+
# 扩展卷以使用磁盘剩余空间
resize2fs /dev/mmcblk0p4
+
resize2fs /dev/mmcblk0p3
# 对于服务器(server)版镜像(由于使用了 xfs 文件系统)
+
# 调整 armhfp 服务器(server)版镜像的 root 分区(由于使用了 xfs 文件系统)
xfs_growfs /dev/mmcblk0p4
+
xfs_growfs -d /
 +
 
 +
# 针对 AArch64 服务器(server)版镜像的步骤
 +
 
 +
# 扩增第 3 个分区(本示例中为 mmcblk0 )
 +
growpart /dev/mmcblk0 3
 +
# 调整物理卷(physical volume)
 +
pvresize /dev/mmcblk0p3
 +
# 扩增 root 文件系统以使用刚刚添加到卷中的空间
 +
lvextend -l +100%FREE /dev/fedora/root
 +
# 调整服务器(server)版镜像的 root 分区(由于使用了 xfs 文件系统)
 +
xfs_growfs -d /
 
</pre>
 
</pre>
  
Line 105: Line 132:
 
* 确保你的键盘、鼠标、网线、显示器已正确连接。
 
* 确保你的键盘、鼠标、网线、显示器已正确连接。
 
* 连接树莓派电源开机。
 
* 连接树莓派电源开机。
* 你会看到 Fedora 开始启动,最后会显示「初始化设置向导」。
+
* 你会看到 Fedora 开始启动,最后会显示「初始化设置向导」(Initial setup wizard)。
 
* 按照向导设置语言、时区并且创建用户。
 
* 按照向导设置语言、时区并且创建用户。
 
* 你会看到登录提示或开始向导(具体情况会由于你选择的桌面环境或定制版本的不同而有所差异)。
 
* 你会看到登录提示或开始向导(具体情况会由于你选择的桌面环境或定制版本的不同而有所差异)。
Line 128: Line 155:
 
* 电源供电不足。请参考上述[[Raspberry_Pi#Prerequisites | 前期准备]]部分。
 
* 电源供电不足。请参考上述[[Raspberry_Pi#Prerequisites | 前期准备]]部分。
 
* 没有安装系统。请检查 SD 卡是否正确安装且系统亦正确写入。
 
* 没有安装系统。请检查 SD 卡是否正确安装且系统亦正确写入。
* 树莓派版本错误。由于 Fedora 不支持 ARMv6 芯片,所以在树莓派 1 代或树莓派零上会出现此类错误。
+
* 树莓派版本错误。由于 Fedora 不支持 ARMv6 芯片,所以在树莓派 1 代或树莓派零(Raspberry Pi Zero)上会出现此类错误。
 +
* Fedora 版本不支持,例如在树莓派 3 代 B+ 型上使用了 Fedora 29 之前的版本
 +
 
 +
=== 电源供应 ===
 +
 
 +
最常遇到的一个问题通常是电源供应不够造成的。树莓派 3 代系列需要 2.5W 以上的电源供应器,尤其是在使用 Fedora 29 的时候,因为我们支持了更高的 CPU 频率,而这势必会需要更高的电力支持。在以前貌似还能正常运作的电源供应器,如果到了 Fedora 29 出了问题,就是这个缘故。
  
 
=== 哪些桌面环境可用? ===
 
=== 哪些桌面环境可用? ===
  
Fedora 搭载的桌面环境都可用,而且 3D/2D 也是开箱即用的。这得益于针对视频核心 IV GPU 的开源加速驱动。
+
3D/2D 都可以开箱即用,大部分 Fedora 搭载的轻量级桌面环境都运行良好。这得益于针对视频核心 IV GPU 的开源加速驱动。
  
=== 会有更多针对硬件的增强支持吗?
+
=== 会有更多针对硬件的增强支持吗?===
  
 
会的。新的增强支持即将到来,只要完备就会在标准 Fedora 更新机制中分发。如果有新的重大特性,我们会通过 [https://fedoramagazine.org/ Fedora Magazine] 或 [http://fedoraplanet.org/ Fedora Planet] 公布。
 
会的。新的增强支持即将到来,只要完备就会在标准 Fedora 更新机制中分发。如果有新的重大特性,我们会通过 [https://fedoramagazine.org/ Fedora Magazine] 或 [http://fedoraplanet.org/ Fedora Planet] 公布。
Line 140: Line 172:
 
=== 关于 树莓派 A/A+ 型、 1 代 B/B+ 型、零/零W(Zero/ZeroW)以及计算模组(Compute Module)的支持情况如何? ===
 
=== 关于 树莓派 A/A+ 型、 1 代 B/B+ 型、零/零W(Zero/ZeroW)以及计算模组(Compute Module)的支持情况如何? ===
  
这些都不支持!!!
+
'''这些都不支持!'''
  
Fedora 现在不会,将来也不会支持 ARMv6 处理器。近年来我们多次尝试过支持,最好的结果便是基于 Fedora 23 的 Pignus 。更多信息请访问 [https://pignus.computer Pignus 官网]。新的计算模组 3(Compute Module 3)发售后我们会跟进支持,因为它基于和树莓派 3 代相同的芯片。
+
Fedora 现在不会,将来也不会支持 ARMv6 处理器。近年来我们多次尝试过支持,最好的结果便是基于 Fedora 23 的 Pignus 。更多信息请访问 [https://pignus.computer Pignus 官网]。对于计算模组 3(Compute Module 3,CM3)的支持,上游已经加入到 4.20 内核之中了,我们也会在 Fedora 30 的时候支持 CM3 及其衍生设备。
 
 
=== Fedora 24 可以支持吗? ===
 
 
 
不支持。团队资源有限,重心会放在 Fedora 25 和 rawhide 上。While possible to do there is reasonably significant amount of work to back port all the fixes that have gone into Fedora 25/rawhide back to stable releases. Fedora 25 [[Releases/25/Schedule | 已经发布]]而且在树莓派上已经非常稳定了。
 
  
 
=== 树莓派支持哪些 USB 设备? ===
 
=== 树莓派支持哪些 USB 设备? ===
Line 154: Line 182:
 
=== 树莓派上板载的 WiFi 和蓝牙支持吗? ===
 
=== 树莓派上板载的 WiFi 和蓝牙支持吗? ===
  
==== WiFi:====
+
==== Wi-Fi:====
  
树莓派上板载的 WiFi Fedora 26 Alpha(4.11 rc3 内核)上得以支持。
+
树莓派 3 代和 3 代 B+ 上的板载 WiFi 可以在 Fedora 29 上可以开箱即用。之前在 aarch64 架构上使用 Wi-Fi 有一个 bug,已经在 4.19.2-301 中得以修复。最新的内核/linux-firmware 固件同样支持最先的稳定发行版本。
  
目前有一个文件你可能需要修改,不过我们暂时还不能参与再分发这个文件。你可以先用板载有线网络启动或者预先在 SD 卡中设置好。在树莓派 3 代中你可以执行如下命令,执行成功后重启即可使用 WiFi 了。
+
===== 通过命令行使用 Wi-Fi =====
 
+
如果你是通过最小化镜像或服务器(server)镜像安装的,那么你可以通过命令行来配置设备使用 Wi-Fi:
<pre>sudo curl https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm80211/brcm/brcmfmac43430-sdio.txt -o /lib/firmware/brcm/brcmfmac43430-sdio.txt</pre>
+
<pre>
 +
# 显示网络列表
 +
nmcli device wifi list
 +
# 连接
 +
nmcli device wifi connect $SSID --ask
 +
</pre>
  
 
==== 蓝牙:====
 
==== 蓝牙:====
目前尚未测试,但是既然它属于串口而且可访问,应该也是可用的。只是简单测试过,但是在实际使用中常常会拖垮整个设备,所以不推荐。如果你感兴趣的话,欢迎深入研究一下,也许可以提供更多有用的信息。
+
蓝牙正在支持情况良好,也比较稳定了。设备有时会自带一个通用蓝牙地址,不过基本运行良好,无需进行配置。
 
 
够胆的话,你可以用如下命令测试一下:
 
 
 
<pre>hciattach /dev/ttyAMA0 bcm43xx 3000000 noflow -</pre>
 
  
 
=== 声音正常吗? ===
 
=== 声音正常吗? ===
  
HDMI 音频输出自 Fedora 26 Alpha (4.11rc3)开始支持,但是模拟端口尚不支持。 USB 接口的音频输出应该也可以良好地支持。
+
Fedora 中包含了对 HDMI 音频输出的支持,但是模拟端口尚不支持。 USB 接口的音频输出应该也可以良好地支持。
  
 
=== 外接摄像头可用吗? ===
 
=== 外接摄像头可用吗? ===
Line 183: Line 212:
 
=== HDMI-CEC 可用吗? ===
 
=== HDMI-CEC 可用吗? ===
  
可用。目前在 Fedora 中使用[http://libcec.pulse-eight.com/ libcec] 来进行支持。
+
可用。目前已经获得了上游的新的 CEC 支持。可以看到有一个 /dev/cec0 的字符设备,v4l-utils 包中只要是支持使用 rc-cec 键位布局的 IR 遥控的应用都可以访问,命令行下也有一个 cec-ctl 工具可用。
  
 
=== 树莓派触摸屏支持吗? ===
 
=== 树莓派触摸屏支持吗? ===
Line 189: Line 218:
 
上游正在做针对官方树莓派触摸屏的支持工作,从 4.10 内核已经开始初步支持了,参见 [https://github.com/anholt/linux/issues/8 tracked upstream]。Fedora 很快会进行审阅补遗。上游尚未发行触摸屏驱动。另外目前暂无计划支持其他触摸屏。
 
上游正在做针对官方树莓派触摸屏的支持工作,从 4.10 内核已经开始初步支持了,参见 [https://github.com/anholt/linux/issues/8 tracked upstream]。Fedora 很快会进行审阅补遗。上游尚未发行触摸屏驱动。另外目前暂无计划支持其他触摸屏。
  
=== Is the composite TV out supported? ===
+
=== 复合端子输出支持吗? ===
  
The composite TV out is not currently supported in a stable Fedora release but the core support has landed upstream in the 4.10 kernel. There's some missing enabling patches currently which we will add to the Fedora kernel soon.
+
当前 Fedora 稳定发行版暂不支持,不过上游的 4.10 内核已经加入核心支持了。部分补丁尚有缺失,我们会尽快加入到 Fedora 内核之中。
  
=== Are the expansion HATs supoorted? ===
+
=== 扩展板 HATs 支持吗? ===
  
The quick answer here is they are not currently supported.
+
简而言之,还不支持。
  
The long answer is a lot more complex. Most of the hardware interfaces that are exposed by the 40 pin HAT connector are supported with drivers shipped with Fedora. Drivers for the hardware contained on a lot of the common HATs are also enabled and supported in Fedora. The core means of supporting the HAT add-on boards require the use of device tree overlays. The kernel and the u-boot 2016.09 boot-loader supports the loading over overlays manually. Currently there is no upstream consensus on the means of autoloading these overlays by means of an "overlay manager" (also known as Cape Manager and by numerous other names) by reading the EEPROM ID and loading the appropriate overlay automatically. There's also no consensus on the extensions to the dtc (Device Tree Compiler) to build the binary blob overlays, and no consensus of the exact format of the overlay file. There is now a group of people working to resolve this issue which enable Fedora to better support HATs (Raspberry Pi), Capes (BeagleBone), DIPs (C.H.I.P) and Mezzanine (96boards) before long.
+
个中缘由说来话长。Fedora 自带的驱动可以支持大部分 40 针 HAT 连接器的硬件接口。包含在大量通用 HAT 中的硬件驱动也同样在 Fedora 中启用支持了。支持 HAT 扩展板主要是需要使用设备树覆盖。内核与 u-boot 2016.09 引导器支持手动加载覆盖。目前上游尚未就自动加载这些覆盖的方法达成共识,也就意味着不能通过一个「覆盖管理器」(又名 Cape 管理器或其他名字)来读取 EEPROM ID 并自动加载适当的覆盖。同样也未就构建二进制 blob 覆盖的 dtc(设备树编译器)扩展和覆盖文件的确切格式达成共识。目前有一大批人正在着力解决该问题,以使 Fedora 可以尽快更好地支持 HAT(树莓派),Cape(BeagleBone),DIP(C.H.I.P)和 Mezzanine(96 板)。
  
The first focus HAT to support will be the official Raspberry Pi Sense HAT. This will be documented using the manual process to build and load the overlay to provide access to the onboard devices as a means of demonstrating how this process works for those wishing to use this manual method in the interim. The link to this documentation will be added here once that is complete.
+
首先着重于支持的 HAT 是树莓派官方的传感器 Sense HAT。手动构建加载覆盖以提供板载设备访问的过程会被记录成文档,并作为示例方法,展示如何临时手动实现此类需求及其过程原理。相关文档在完成后会第一时间添加在这里。
  
=== Are Device Tree Overlays supported? ===
+
=== 使用 config.txt ===
 +
config.txt 目前只能用于基本的配置。由于开源 vc4 GPU 驱动的使用,大部分视频配置已经在 Linux 中完成了。
  
There's basic support for overlays in u-boot and the linux kernel but an overlay manager isn't yet upstream. There's
+
目前还不支持使用 config.txt 对HATs 进行配置,不过我们正在努力研究。
  
=== Is GPIO supported? ===
+
=== 支持设备树覆盖吗? ===
  
GPIO isn't supported well as they need to be mapped with Device Tree overlays. This will be improved in the F-25 cycle, and in Fedora 26.
+
目前只能在 u-boot 和 Linux 内核中对覆盖基础性地支持,但是覆盖管理器还没有进入到上游之中。
  
=== Is SPI supported? ===
+
=== 支持 GPIO 吗? ===
  
Yes, basic SPI is supported.
+
现在使用了 libgpiod 并辅以其他的实用工具,可以支持 GPIO 了。但是 RPI.GPIO 目前尚不支持。
  
=== Is I2C supported? ===
+
=== 支持 SPI 吗? ===
  
Yes, basic I2C is supported.
+
是的,支持基础 SPI 。
  
=== Raspberry Pi 3 aarch64 support ===
+
=== 支持 I2C 吗? ===
  
The focus for Fedora 25 with the limited time and resources available, was to provide a polished experience with a single disk image for both the Raspberry Pi 2 and 3. At the time the work started it wasn't clear whether the aarch64 kernel support would land upstream in time. The intention is to officially support the Raspberry Pi 3 as an aarch64 device in Fedora 26. There has been significant enabling work in Fedora 25 but there is still quite a bit more work to do to finish the aarch64 support at time of writing.
+
是的,支持基础 I2C 。
  
=== How do I use a serial console? ===
+
=== 我该如何使用串行控制台? ===
  
The serial console is disabled by default on the Raspberry Pi 2 and 3 because it requires the device to run at significantly slower speeds. To wire up the USB to TTL adapter follow [https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/connect-the-lead this guide from Adafruit]. You'll need a 3.3 volt USB to TTL Serial Cable like [https://www.adafruit.com/product/954 this one from Adafruit]
+
由于需要设备运行于低速状态,在树莓派 2 代和 3 代上串行控制台是默认禁用的。如需连接 USB TTL 适配器请参考 [https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/connect-the-lead Adafruit 上的这篇教程]。你需要一条 3.3 伏特的 USB TTL 串行线,例如 [https://www.adafruit.com/product/954 Adafruit 上的这个]
  
To enable the serial console follow the specific steps for the Raspberry Pi 2 or 3 as they both differ slightly:
+
如需启用串行控制台请分别参照树莓派 2 代和 3 代相应的步骤,两者是有些许差异的:
  
==== Raspberry Pi 2: ====
+
==== 树莓派 2 代: ====
* inset the micro SD card into a PC
+
 
* on the VFAT partition edit the config.txt file and uncomment the enable_uart line:
+
* 在 PC 上插入 micro SD
 +
* VFAT 分区编辑 config.txt 文件并取消注释 enable_uart 这一行:
 
<pre>enable_uart=1</pre>  
 
<pre>enable_uart=1</pre>  
* on the boot partition edit the extlinux/extlinux.conf file adding "console=tty0 console=ttyAMA0,115200" to the end of the append line so it looks similar to:
+
* boot 分区编辑 extlinux/extlinux.conf 并添加 "console=tty0 console=ttyAMA0,115200" 到最后一行,最终应该变成类似这样:
 
<pre>append ro root=UUID="LARGE UUID STRING OF TEXT" console=tty0 console=ttyAMA0,115200</pre>
 
<pre>append ro root=UUID="LARGE UUID STRING OF TEXT" console=tty0 console=ttyAMA0,115200</pre>
* Safely unmount the micro SD card
+
* 安全缷载 micro SD
* Insert micro SD into Raspberry Pi, connect serial console, power on
+
* micro SD 卡插入树莓派,连接串行控制台,通电开机
 +
 
 +
==== 树莓派 3 代: ====
  
==== Raspberry Pi 3: ====
+
* 在 PC 上插入 micro SD
* inset the micro SD card into a PC
+
* VFAT 分区编辑 config.txt 文件并取消注释 enable_uart 这一行:
* on the VFAT partition edit the config.txt file and uncomment the enable_uart line:
 
 
<pre>enable_uart=1</pre>  
 
<pre>enable_uart=1</pre>  
* on the boot partition edit the extlinux/extlinux.conf file adding "console=tty0 console=ttyS0,115200" to the end of the append line so it looks similar to:
+
* boot 分区编辑 extlinux/extlinux.conf 并添加 "console=tty0 console=ttyS0,115200" 到最后一行,最终应该变成类似这样:
 
<pre>append ro root=UUID="LARGE UUID STRING OF TEXT" console=tty0 console=ttyS0,115200</pre>
 
<pre>append ro root=UUID="LARGE UUID STRING OF TEXT" console=tty0 console=ttyS0,115200</pre>
* Safely unmount the micro SD card
+
* 安全缷载 micro SD
* Insert micro SD into Raspberry Pi, connect serial console, power on
+
* micro SD 卡插入树莓派,连接串行控制台,通电开机
  
 
[[Category:Raspberry Pi]]
 
[[Category:Raspberry Pi]]
 
[[Category:Fedora ARMv7]]
 
[[Category:Fedora ARMv7]]

Latest revision as of 16:26, 18 November 2018

Idea.png
现在 Fedora 所有的稳定版本都可以支持树莓派 2 代和 3 代。最新款的树莓派 3 代 B+ 型还只有 Fedora 28 之后的版本可以支持。使用中如遇问题,请反馈到 ARM 邮件列表或 IRC 频道。

引言

树莓派是一块信用卡大小、基于 ARM 的单板计算机(SBC)。目前 Fedora 的发行版本都可以原生支持树莓派 2 代和 3 代 B 型,树莓派 3 代 B+ 型还只有 Fedora 29 可以支持,这些都无需使用第三方内核或脚本修改官方镜像。本文将介绍如何上手,以及关于支持情况会有哪些常见问题(FAQ)等。

支持的硬件

树莓派 2 代和 3 代 B 型。Fedora 29 可以支持树莓派 3 代 B+ 型。

前期准备

  • 树莓派 2 代和 3 代 B 型或 3 代 B+ 型
  • 高质量的 SD 卡 ( eLinux 有一份兼容性列表)
  • HDMI 显示器或电视,一副 USB 键盘和鼠标
  • 合适的供电装置。 树莓派 2 代建议至少 2A, 3 代建议至少 2.5A。 详情请访问 [1]

制备 SD 卡还需要:

  • 一台运行 Windows 或 macOS 或 Linux 系统的电脑
  • SD 读卡器

下载 Fedora ARM 镜像

Fedora 已经原生支持树莓派,关于目前的特性请阅读 FAQ 。

支持 ARMv7 架构的镜像

Fedora 29 镜像可以从这里下载:

支持树莓派 3 代 aarch64 架构的镜像

Fedora 29 镜像可以从这里下载:

制备 SD 卡

你可以很容易地在 Fedora 或其他 Linux 发行版,或者 macOS 、Windows 上将镜像写入 SD 卡中。默认设置会提供 HDMI 显示器上的用户可视界面和对键盘鼠标的支持。如果你想输出到串行控制台,请参考 FAQ 中的这一部分.

Fedora 或其他 Linux 发行版

脚本化

  • 使用 arm-image-installer 安装:
dnf install -y arm-image-installer

按照如下操作写入镜像:

$ sudo arm-image-installer

用法: arm-image-installer <选项>

   --image=IMAGE    - xz 压缩镜像文件名
   --target=TARGET  - 目标板
   --media=DEVICE   - 介质设备文件 (/dev/[sdX|mmcblkX])
   --selinux=ON/OFF - 按需要启用(ON)或关闭(OFF) SELinux
   --norootpass     - 移除 root 密码
   -y		    - 后续询问都选择「是」,不需要再次确认
   --version	    - 显示版本并退出
   --resizefs	    - 重新调整 root 文件系统大小以适配介质设备文件
   --addconsole     - 添加系统控制台到 extlinux.conf
   --addkey=        - 后接 ssh 公钥的路径

示例: arm-image-installer --image=Fedora-Rawhide.xz --target=Bananapi --media=/dev/mmcblk0

关于支持的板型,请参考 SUPPORTED-BOARDS 文件。

对于树莓派 2 代请使用

--target=rpi2

对于树莓派 3 代(B/B+ 型)请使用

--target=rpi3

手动

 xzcat Fedora-IMAGE-NAME.raw.xz | sudo dd status=progress bs=4M of=/dev/XXX # 你的介质的路径(硬件不同可能会有差异,一般是 sdX 或 mmcblkX )

macOS

树莓派基金会提供了一些友好的说明,会指导你如何使用 macOS 写入镜像。 你只需简单地替换步骤中的文件路径和文件名即可。

微软 Windows

树莓派基金会提供了一些友好的说明,会指导你如何使用 Windows 写入镜像。 你只需简单地替换步骤中的文件路径和文件名即可。

调整 root 分区大小

为了压缩下载文件的体积,root 分区已被尽可能地调至最小。你需要手动重新调节。未来理想状态下我们也希望这一步骤可以被自动化(很棒的社区项目想法!)。

在首次启动前调整

最简单的方法就是在首次启动 Linux 系统前使用 gparted 调整分区大小:

gparted /dev/XXX

初始化启动后调整

另一种机制就是在你启动树莓派并完成初始化建立帐户后进行调整。

# 扩增第 3 个分区(本示例中为 mmcblk0 )
growpart /dev/mmcblk0 3
# 扩展卷以使用磁盘剩余空间
resize2fs /dev/mmcblk0p3
# 调整 armhfp 服务器(server)版镜像的 root 分区(由于使用了 xfs 文件系统)
xfs_growfs -d /

# 针对 AArch64 服务器(server)版镜像的步骤

# 扩增第 3 个分区(本示例中为 mmcblk0 )
growpart /dev/mmcblk0 3
# 调整物理卷(physical volume)
pvresize /dev/mmcblk0p3
# 扩增 root 文件系统以使用刚刚添加到卷中的空间
lvextend -l +100%FREE /dev/fedora/root
# 调整服务器(server)版镜像的 root 分区(由于使用了 xfs 文件系统)
xfs_growfs -d /

首次启动树莓派上的 Fedora

  • 将 SD 卡插入树莓派。
  • 确保你的键盘、鼠标、网线、显示器已正确连接。
  • 连接树莓派电源开机。
  • 你会看到 Fedora 开始启动,最后会显示「初始化设置向导」(Initial setup wizard)。
  • 按照向导设置语言、时区并且创建用户。
  • 你会看到登录提示或开始向导(具体情况会由于你选择的桌面环境或定制版本的不同而有所差异)。

应用更新和安装软件

如果你执行的是标准化的安装步骤,那么在初始化设置完成之后,无需其他特殊操作,你就可以正常安装或升级软件。而且普通桌面环境下的升级机制,如 dnf 、gnome-software 或其他图形界面升级系统程序都可以正常支持。

寻求帮助与报告问题

如果出现异常该去哪里寻求帮助呢?以下是 Fedora 常规支持的论坛:

常见问题( FAQ )

为什么当我启动树莓派后显示器上会出现「彩虹条」?

多种原因可能会导致这种情况,常见以下三种:

  • 电源供电不足。请参考上述 前期准备部分。
  • 没有安装系统。请检查 SD 卡是否正确安装且系统亦正确写入。
  • 树莓派版本错误。由于 Fedora 不支持 ARMv6 芯片,所以在树莓派 1 代或树莓派零(Raspberry Pi Zero)上会出现此类错误。
  • Fedora 版本不支持,例如在树莓派 3 代 B+ 型上使用了 Fedora 29 之前的版本

电源供应

最常遇到的一个问题通常是电源供应不够造成的。树莓派 3 代系列需要 2.5W 以上的电源供应器,尤其是在使用 Fedora 29 的时候,因为我们支持了更高的 CPU 频率,而这势必会需要更高的电力支持。在以前貌似还能正常运作的电源供应器,如果到了 Fedora 29 出了问题,就是这个缘故。

哪些桌面环境可用?

3D/2D 都可以开箱即用,大部分 Fedora 搭载的轻量级桌面环境都运行良好。这得益于针对视频核心 IV GPU 的开源加速驱动。

会有更多针对硬件的增强支持吗?

会的。新的增强支持即将到来,只要完备就会在标准 Fedora 更新机制中分发。如果有新的重大特性,我们会通过 Fedora MagazineFedora Planet 公布。

关于 树莓派 A/A+ 型、 1 代 B/B+ 型、零/零W(Zero/ZeroW)以及计算模组(Compute Module)的支持情况如何?

这些都不支持!

Fedora 现在不会,将来也不会支持 ARMv6 处理器。近年来我们多次尝试过支持,最好的结果便是基于 Fedora 23 的 Pignus 。更多信息请访问 Pignus 官网。对于计算模组 3(Compute Module 3,CM3)的支持,上游已经加入到 4.20 内核之中了,我们也会在 Fedora 30 的时候支持 CM3 及其衍生设备。

树莓派支持哪些 USB 设备?

大部分 USB-2 兼容设备在 Fedora 上都是支持的。树莓派硬件对于 USB 总线有一些限制,请参考这里的文档

树莓派上板载的 WiFi 和蓝牙支持吗?

Wi-Fi:

树莓派 3 代和 3 代 B+ 上的板载 WiFi 可以在 Fedora 29 上可以开箱即用。之前在 aarch64 架构上使用 Wi-Fi 有一个 bug,已经在 4.19.2-301 中得以修复。最新的内核/linux-firmware 固件同样支持最先的稳定发行版本。

通过命令行使用 Wi-Fi

如果你是通过最小化镜像或服务器(server)镜像安装的,那么你可以通过命令行来配置设备使用 Wi-Fi:

# 显示网络列表
nmcli device wifi list
# 连接
nmcli device wifi connect $SSID --ask

蓝牙:

蓝牙正在支持情况良好,也比较稳定了。设备有时会自带一个通用蓝牙地址,不过基本运行良好,无需进行配置。

声音正常吗?

Fedora 中包含了对 HDMI 音频输出的支持,但是模拟端口尚不支持。 USB 接口的音频输出应该也可以良好地支持。

外接摄像头可用吗?

暂不支持。 对流媒体和专用媒体加速器的支持尚需时日。

加速媒体解码可用吗?

不可用。目前还没有上游核心支持,而且其所需的多项内核子系统仍有待支持。

HDMI-CEC 可用吗?

可用。目前已经获得了上游的新的 CEC 支持。可以看到有一个 /dev/cec0 的字符设备,v4l-utils 包中只要是支持使用 rc-cec 键位布局的 IR 遥控的应用都可以访问,命令行下也有一个 cec-ctl 工具可用。

树莓派触摸屏支持吗?

上游正在做针对官方树莓派触摸屏的支持工作,从 4.10 内核已经开始初步支持了,参见 tracked upstream。Fedora 很快会进行审阅补遗。上游尚未发行触摸屏驱动。另外目前暂无计划支持其他触摸屏。

复合端子输出支持吗?

当前 Fedora 稳定发行版暂不支持,不过上游的 4.10 内核已经加入核心支持了。部分补丁尚有缺失,我们会尽快加入到 Fedora 内核之中。

扩展板 HATs 支持吗?

简而言之,还不支持。

个中缘由说来话长。Fedora 自带的驱动可以支持大部分 40 针 HAT 连接器的硬件接口。包含在大量通用 HAT 中的硬件驱动也同样在 Fedora 中启用支持了。支持 HAT 扩展板主要是需要使用设备树覆盖。内核与 u-boot 2016.09 引导器支持手动加载覆盖。目前上游尚未就自动加载这些覆盖的方法达成共识,也就意味着不能通过一个「覆盖管理器」(又名 Cape 管理器或其他名字)来读取 EEPROM ID 并自动加载适当的覆盖。同样也未就构建二进制 blob 覆盖的 dtc(设备树编译器)扩展和覆盖文件的确切格式达成共识。目前有一大批人正在着力解决该问题,以使 Fedora 可以尽快更好地支持 HAT(树莓派),Cape(BeagleBone),DIP(C.H.I.P)和 Mezzanine(96 板)。

首先着重于支持的 HAT 是树莓派官方的传感器 Sense HAT。手动构建加载覆盖以提供板载设备访问的过程会被记录成文档,并作为示例方法,展示如何临时手动实现此类需求及其过程原理。相关文档在完成后会第一时间添加在这里。

使用 config.txt

config.txt 目前只能用于基本的配置。由于开源 vc4 GPU 驱动的使用,大部分视频配置已经在 Linux 中完成了。

目前还不支持使用 config.txt 对HATs 进行配置,不过我们正在努力研究。

支持设备树覆盖吗?

目前只能在 u-boot 和 Linux 内核中对覆盖基础性地支持,但是覆盖管理器还没有进入到上游之中。

支持 GPIO 吗?

现在使用了 libgpiod 并辅以其他的实用工具,可以支持 GPIO 了。但是 RPI.GPIO 目前尚不支持。

支持 SPI 吗?

是的,支持基础 SPI 。

支持 I2C 吗?

是的,支持基础 I2C 。

我该如何使用串行控制台?

由于需要设备运行于低速状态,在树莓派 2 代和 3 代上串行控制台是默认禁用的。如需连接 USB 和 TTL 适配器请参考 Adafruit 上的这篇教程。你需要一条 3.3 伏特的 USB 转 TTL 串行线,例如 Adafruit 上的这个

如需启用串行控制台请分别参照树莓派 2 代和 3 代相应的步骤,两者是有些许差异的:

树莓派 2 代:

  • 在 PC 上插入 micro SD 卡
  • 在 VFAT 分区编辑 config.txt 文件并取消注释 enable_uart 这一行:
enable_uart=1
  • 在 boot 分区编辑 extlinux/extlinux.conf 并添加 "console=tty0 console=ttyAMA0,115200" 到最后一行,最终应该变成类似这样:
append ro root=UUID="LARGE UUID STRING OF TEXT" console=tty0 console=ttyAMA0,115200
  • 安全缷载 micro SD 卡
  • 将 micro SD 卡插入树莓派,连接串行控制台,通电开机

树莓派 3 代:

  • 在 PC 上插入 micro SD 卡
  • 在 VFAT 分区编辑 config.txt 文件并取消注释 enable_uart 这一行:
enable_uart=1
  • 在 boot 分区编辑 extlinux/extlinux.conf 并添加 "console=tty0 console=ttyS0,115200" 到最后一行,最终应该变成类似这样:
append ro root=UUID="LARGE UUID STRING OF TEXT" console=tty0 console=ttyS0,115200
  • 安全缷载 micro SD 卡
  • 将 micro SD 卡插入树莓派,连接串行控制台,通电开机