Architectures/ARM/Raspberry Pi/zh-cn

From FedoraProject

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

Contents

引言

树莓派是一块信用卡大小、基于 ARM 的单板计算机(SBC)。Fedora 从 Fedora 26 及更新的版本开始原生支持树莓派 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 26 已经原生支持树莓派,关于目前的特性请阅读 FAQ 。

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

制备 SD 卡

你可以很容易地在 Fedora 或其他 Linux 发行版,或者 macOS 、Windows 上将镜像写入 SD 卡中。默认设置会提供 HDMI 显示器上的用户可视界面和对键盘鼠标的支持。如果你想输出到串行控制台,请参考 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 分区已被尽可能地调至最小。你需要手动重新调节。未来理想状态下我们也希望这一步骤可以被自动化(很棒的社区项目想法!)。

在首次启动前调整

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

gparted /dev/XXX

初始化启动后调整

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

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

首次启动树莓派上的 Fedora

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

应用更新和安装软件

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

寻求帮助与报告问题

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

常见问题( FAQ )

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

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

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

哪些桌面环境可用?

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 版本上。虽然可以支持,但是需要相当大的工作量。现在 Fedora 26 已经发布而且在树莓派上已经非常稳定了。

树莓派支持哪些 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-26 周期以及 Fedora 27 中会对其进行改进。

支持 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 卡插入树莓派,连接串行控制台,通电开机