From Fedora Project Wiki
Line 197: Line 197:
 
简而言之,还不支持。
 
简而言之,还不支持。
  
个中缘由说来话长。Fedora 自带的驱动可以支持大部分 40 针 HAT 连接器的硬件接口。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。手动构建加载覆盖以提供板载设备访问的过程会被记录成文档,并作为示例方法,展示如何临时手动实现此类需求及其过程原理。相关文档在完成后会第一时间添加在这里。
  
 
=== 支持设备树覆盖吗? ===
 
=== 支持设备树覆盖吗? ===

Revision as of 08:58, 7 August 2017

Idea.png
现在树莓派在 Fedora 25 以及更新的版本中得到支持。Fedora 25 最终发布版的支持尚未经过时间考验,如果你遇到问题请反馈到 ARM 邮件列表或 IRC 频道。

引言

树莓派是一块信用卡大小、基于 ARM 的单板计算机(SBC)。Fedora 从 25 Beta 及更新的版本中开始原生支持树莓派 2 代和 3 代 B 型,无需再用第三方内核或脚本修改官方镜像。本文将介绍如何上手,以及关于支持情况会有哪些常见问题(FAQ)等。

支持的硬件

目前只支持树莓派 2 代和 3 代 B 型。

前期准备

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

制备 SD 卡还需要:

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

下载 Fedora ARM 镜像

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

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

制备 SD 卡

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

Fedora 或其他 Linux 发行版

脚本化

  • 使用 fedora-arm-installer

安装 arm-image-installer:

dnf install -y fedora-arm-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 文件。

手动

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

macOS

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

微软 Windows

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

调整 root 分区大小

为了压缩下载文件的体积,root 分区已被尽可能地调至最小。你需要手动重新调节。我们计划在 Fedora 25 正式发布之前使之可以自动调整分区大小。

在首次启动前调整

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

gparted /dev/XXX

初始化启动后调整

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

# 扩增第 4 个分区(本示例中为 mmcblk0 )
growpart /dev/mmcblk0 4
# 扩展文件系统以使用全部可用空间
resize2fs /dev/mmcblk0p4
# 对于服务器(server)版镜像(由于使用了 xfs 文件系统)
xfs_growfs /dev/mmcblk0p4

首次启动树莓派上的 Fedora

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

应用更新和安装软件

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

寻求帮助与报告问题

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

常见问题( FAQ )

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

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

  • 电源供电不足。请参考上述 前期准备部分。
  • 没有安装系统。请检查 SD 卡是否正确安装且系统亦正确写入。
  • 树莓派版本错误。由于 Fedora 不支持 ARMv6 芯片,所以在树莓派 1 代或树莓派零上会出现此类错误。

哪些桌面环境可用?

Fedora 搭载的桌面环境都可用,而且 3D/2D 也是开箱即用的。这得益于针对视频核心 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)发售后我们会跟进支持,因为它基于和树莓派 3 代相同的芯片。

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 已经发布而且在树莓派上已经非常稳定了。

树莓派支持哪些 USB 设备?

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

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

WiFi:

树莓派上板载的 WiFi 在 Fedora 26 Alpha(4.11 rc3 内核)上得以支持。

目前有一个文件你可能需要修改,不过我们暂时还不能参与再分发这个文件。你可以先用板载有线网络启动或者预先在 SD 卡中设置好。在树莓派 3 代中你可以执行如下命令,执行成功后重启即可使用 WiFi 了。

sudo curl https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm80211/brcm/brcmfmac43430-sdio.txt -o /lib/firmware/brcm/brcmfmac43430-sdio.txt

蓝牙:

目前尚未测试,但是既然它属于串口而且可访问,应该也是可用的。只是简单测试过,但是在实际使用中常常会拖垮整个设备,所以不推荐。如果你感兴趣的话,欢迎深入研究一下,也许可以提供更多有用的信息。

够胆的话,你可以用如下命令测试一下:

hciattach /dev/ttyAMA0 bcm43xx 3000000 noflow -

声音正常吗?

HDMI 音频输出自 Fedora 26 Alpha (4.11rc3)开始支持,但是模拟端口尚不支持。 USB 接口的音频输出应该也可以良好地支持。

外接摄像头可用吗?

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

加速媒体解码可用吗?

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

HDMI-CEC 可用吗?

可用。目前在 Fedora 中使用libcec 来进行支持。

树莓派触摸屏支持吗?

上游正在做针对官方树莓派触摸屏的支持工作,从 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。手动构建加载覆盖以提供板载设备访问的过程会被记录成文档,并作为示例方法,展示如何临时手动实现此类需求及其过程原理。相关文档在完成后会第一时间添加在这里。

支持设备树覆盖吗?

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

支持 GPIO 吗?

GPIO 目前尚不能被很好地支持,因为它需要映射的设备树覆盖上。在 F-25 周期以及 Fedora 26 中会对其进行改进。

支持 SPI 吗?

是的,支持基础 SPI 。

支持 I2C 吗?

是的,支持基础 I2C 。

树莓派 3 的 aarch64 支持

由于时间和可用资源有限,针对 Fedora 25 的工作重点放在了使用统一的磁盘镜像来同时为 2 代和 3 代树莓派提供优雅的体验。当初这些工作开始的时候并不明确 aarch64 内核支持是否会按时在上游中加入。我们期望能在 Fedora 26 中为树莓派 3 提供 aarch64 设备的官方支持。在 Fedora 25 中已经做了大量的工作,但是完成 aarch64 的支持依然任重道远。

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

由于需要设备运行于低速状态,在树莓派 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 卡插入树莓派,连接串行控制台,通电开机