Geo*_*vis 13 server raspberrypi 18.04
我想知道您是否可以在 RPi 4 上安装 Ubuntu,因为在 Ubuntu 的官方指南中,它说它仅适用于 2 和 3。Raspberry Pi 3 的版本可以在 RPi 4 上运行吗?
小智 13
如果您不想等待官方发布,请访问https://jamesachambers.com/raspberry-pi-ubuntu-server-18-04-2-installation-guide/ 提供一份非官方指南。
当前的 Ubuntu Server Raspberry Pi 映像尚未正式支持 Raspberry Pi 4,但您可以通过手动更新固件来使其正常工作。固态存储也可以使用,但必须使用微型 SD 卡作为引导加载程序,因为 Pi 4 还没有官方引导支持。我在本文中描述了如何做到这两点。
现在完全支持 Raspberry Pi 的外围设备,例如 WiFi / 蓝牙。以前用于 Raspberry Pi 的 Ubuntu Server 版本(与许多其他发行版一样)已损坏或完全丢失了核心组件(如 WiFi / 蓝牙)的驱动程序。在 18.04.2 更新中,WiFi 和其他组件的固件现在开箱即用,使其成为功能齐全的发行版。
这是除 Raspbian 之外的第一个发行版,感觉您可以对其进行映像并且一切正常。我将指导您完成本指南中的流程。只需几分钟即可完成设置。
我强烈建议升级到固态设置。性能提升是巨大的。现在购买 Pi 固态只需不到 30 美元。这是您可能为 Pi 获得的最佳性能升级。
有了新的 Raspberry Pi 4,使用 USB 存储更加有益,因为最终在 Pi 4 中添加了 USB 3.0 总线,让它充分利用固态驱动器。这是我目前使用的设置:
树莓派 4 B 型 2 GB
StarTech 2.5?SATA 至 USB 3.0 适配器 - 和 - 金士顿 A400 SSD 120GB SATA 3 2.5" SSD
或用于紧凑型设置:SanDisk Extreme Pro 128 GB USB 固态闪存驱动器
对于微型 SD 卡设置:SanDisk Extreme 64 GB A2 应用级微型 SD 卡
前往https://wiki.ubuntu.com/ARM/RaspberryPi的官方 Ubuntu Raspberry Pi 页面,然后滚动到“官方图像”部分。
32 位 (armhf) 与 64 位 (aarch64)
获得 32 位版本的 Ubuntu Server 启动比现在的 64 位版本更容易、更快。如果您选择安装 64 位,请密切注意说明中的 64 位特定步骤,因为缺少其中任何一个都会导致您的 Pi 无法启动!
现在 Raspberry Pi 4 的 64 位模式有 1 GB 的内存限制。我建议使用 32 位版本的 Ubuntu 或等到 Raspberry Pi 4 支持赶上。如果你现在想运行 64 位,它可以正常工作,但内存限制除外。
您现在应该选择 armhf 32 位版本,除非您特别需要 64 位发行版。对于绝大多数用例,32 位版本更快、更稳定。64 位版本已经走了很长一段路,此时完全可用,但仍有一些明显的缺点。
Raspberry Pi 4 使我们一路达到了 4 GB 的障碍,但要扩展到 Raspbian 最终将必须使用 64 位,因为 32 位操作系统的限制之一是它只能处理 4 GB 的 RAM . 为了打破 4 GB 内存寻址障碍,操作系统将必须使用 64 位(aarch64/arm64)。
目前 64 位支持在 Pi 上工作,但由于 Raspbian 和 Pi 的固件没有正式的 64 位版本,它可能很古怪且更难以配置。
编写基本图像
这部分很容易。将图像从 xz 格式提取为 img 格式(7zip 很棒而且免费,可以提取这些)。现在将 img 写入您的媒体(Micro SD 卡、固态驱动器、USB 存储设备等)。与任何其他发行版的方式相同。
删除现有固件
当前版本中的固件未构建支持 Raspberry Pi 4,因此我们需要更新 /boot/ 分区上的固件,以便 Pi 4 能够正确启动。
在您的计算机中插入/挂载 micro SD 卡并导航到“引导”分区。删除现有文件夹中的所有内容,使其完全为空。
下载最新固件
32位固件说明
如果您尝试运行 64 位版本的 Ubuntu,请跳至接下来的 64 位说明部分。对于 32 位版本的 Ubuntu,请从此处的官方 GitHib 存储库下载固件:https : //github.com/raspberrypi/firmware/archive/master.zip
最新固件是 master.zip“boot”文件夹(包括子文件夹)中的所有内容。我们想将所有内容从“boot”(包括子文件夹)提取到我们在上一步中刚刚清空的 micro SD 的“boot”分区。不要忘记获取“overlays”文件夹,因为它包含正确启动所需的覆盖。
最终结果在“引导”驱动器上看起来像这样:
$ ls
COPYING.linux bcm2711-rpi-4-b.dtb kernel.img
LICENCE.broadcom bootcode.bin kernel7.img
'System Volume Information' cmdline.txt kernel7l.img
bcm2708-rpi-b-plus.dtb config.txt overlays
bcm2708-rpi-b.dtb fixup.dat start.elf
bcm2708-rpi-cm.dtb fixup4.dat start4.elf
bcm2708-rpi-zero-w.dtb fixup4cd.dat start4cd.elf
bcm2708-rpi-zero.dtb fixup4db.dat start4db.elf
bcm2709-rpi-2-b.dtb fixup4x.dat start4x.elf
bcm2710-rpi-3-b-plus.dtb fixup_cd.dat start_cd.elf
bcm2710-rpi-3-b.dtb fixup_db.dat start_db.elf
bcm2710-rpi-cm3.dtb fixup_x.dat start_x.elf
Run Code Online (Sandbox Code Playgroud)
64 位固件说明
要以 64 位模式启动 Ubuntu 服务器,我们需要下载 64 位版本的固件。.dtb 文件在 32 位和 64 位操作系统之间有所不同。Raspbian 没有 64 位引导加载程序,官方 GitHub 存储库中也没有提供。
自己构建 64 位版本的固件需要交叉编译工具链和大量时间,但这是一个选项。幸运的是,sakiki 提供了 64 位版本固件的 blob,旨在用于启动 Raspberry Pi 4 64 位设备,同时支持继续赶上。
下载固件 blob:https : //github.com/sakaki-/gentoo-on-rpi3-64bit/releases/download/v1.4.2/deploy_root_p4.tar.xz
将存档中的 deploy-root/bootfs 中的文件提取到我们在上一步中清除的 SD 卡上的“boot”分区。这将为我们提供 64 位引导加载程序。
创建/更新 config.txt 和 cmdline.txt
导航到 micro SD /boot/ 分区。使用以下行创建一个空白的 cmdline.txt 文件:
dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0
Run Code Online (Sandbox Code Playgroud)
接下来,我们将使用以下内容创建 config.txt:
dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0
Run Code Online (Sandbox Code Playgroud)
64 位 config.txt 配置
要以 64 位模式启动 Pi,我们需要将以下行添加到 config.txt:
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
[all]
Run Code Online (Sandbox Code Playgroud)
64 位的最终配置如下所示:
total_mem=1024
arm_64bit=1
enable_gic=1
armstub=armstub8-gic.bin
Run Code Online (Sandbox Code Playgroud)
这些启用了在 Pi 上执行 64 位启动所需的所有不同的 64 位相关选项。
关于 total_mem=1024 的注意事项:目前,如果不将总内存限制为 1 GB,Raspberry Pi 4 的 SD 卡将无法在 64 位模式下工作。这正在研究中,将在官方支持推出后立即修复。
我们现在准备启动设备。插入 micro SD 卡并打开设备电源。
注意:第一次启动可能会很慢。要有耐心。在没有活动灯的情况下最多可能需要 2-3 分钟,然后突然间一切都将开始闪烁并且 SSH 将打开。
如果您apt-get update现在尝试,它将尝试使用来自 Ubuntu 存储库的旧固件更新您的固件。现在的解决方法是删除该软件包,以便保留您现有的固件。请记下您已执行此步骤,因为稍后我们将希望在添加支持后重新启用存储库中的更新。
sudo apt remove flash-kernel initramfs-tools
Run Code Online (Sandbox Code Playgroud)
您现在可以运行sudo apt-get update && sudo apt-get upgrade但尚未使用dist-upgrade,因为存储库中的内核会将您更新为尚不支持 Pi 4。但这应该可以让您了解软件包的最新信息。
USB 启动尚未添加到 Raspberry Pi 4 固件中,但目前正在开发中。同时,您可以将您的微型 SD 卡用作引导加载程序,并且仍然可以从固态驱动器引导整个操作系统 (rootfs),从而在系统范围内为您提供完整的 USB 3.0 速度提升。一旦 Pi USB 启动正式发布,您应该能够直接从设备启动,而无需任何临时引导加载程序 SD 卡。
首先按照本教程中的前面步骤创建一个完全成像和启动的微型 SD 卡。创建 micro SD 安装后,您现在应该使用用于创建 SD 卡的相同 Ubuntu 映像对您的 SSD / USB 驱动器进行映像。
现在导航到新创建的 SSD / USB 驱动器上的“引导”分区,并像我们之前对 SD 卡所做的那样删除其中的所有内容。现在将“boot”文件夹从微型 SD 卡复制到固态驱动器。这是必要的,因为即使最初从我们的微型 SD 卡中读取“启动”中的文件,稍后加载阶段的一些固件文件也会从安装的驱动器中读取,如果缺少必要的固件文件,系统将无法启动。
现在您已经创建了 SSD/USB 驱动器分区并将“引导”分区从 SD 卡复制到您的新驱动器,我们需要更新您的 SD 卡的 cmdline.txt 以指向 SSD/USB 驱动器的分区。
dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0
Run Code Online (Sandbox Code Playgroud)
我们这里需要更改的关键部分是“root=/dev/mmcblk0p2”部分。mmcblk0p2 是 micro SD 存储的硬件标识符。我们需要将其更改为检测到您的存储设备的设备。
如果您使用的是 USB 转固态驱动器适配器,则您的驱动器很可能会被寻址为 /dev/sda2。因此,我们将更root=/dev/mmcblk0p2改为root=/dev/sda2
root=/dev/sda2
Run Code Online (Sandbox Code Playgroud)
最后一行将是:
dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0
Run Code Online (Sandbox Code Playgroud)
将微型 SD 和固态驱动器插入 Pi 并启动它。
记住:第一次启动可能需要 2-3 分钟,所以在假设它不起作用之前给它一些时间。
默认用户/密码
您初次登录 Ubuntu Server 的用户名和密码将是:
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
total_mem=1024
arm_64bit=1
enable_gic=1
armstub=armstub8-gic.bin
[all]
Run Code Online (Sandbox Code Playgroud)
首次登录后,您将需要更改密码。在输入新密码之前,请确保在提示中输入当前的“ubuntu”密码,否则设备会将您完全踢出,您将不得不再次登录。
设置时区
要为 Ubuntu Server 配置正确的时区,请使用以下命令:
sudo dpkg-reconfigure tzdata
Run Code Online (Sandbox Code Playgroud)
这将带您进入一个非常易于遵循的菜单,以选择正确的时区并将其应用于系统。
更新系统
为了获得最佳稳定性、安全性和性能,您应该立即将系统和软件包更新到最新版本。这还将获取所有最新的修复/改进,使您的 Raspberry Pi Ubuntu 体验更好。
这部分很容易。类型:
sudo apt-get update && sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
更改默认 GPU 内存拆分
分配给 Raspberry Pi 上 GPU 的默认内存量约为 1 GB 中的 76 MB。在 2 GB 和 4 GB 模型中,由此获得的数量可以忽略不计,但对于 1 GB 模型来说仍然值得。
如果您键入命令,free您将看到您的 Raspberry Pi 在“总计”列下缺少此内存。我们可以通过将 GPU 内存拆分设置为 16 MB 来回收大部分内存。如果您计划将来安装 GUI,则不应进行此更改。
此选项在 config.txt 文件中设置。它与 Raspbian 使用的文件完全相同,但它位于/boot/firmware/config.txt而不是/boot/config.txt. 使用以下命令打开 config.txt:
sudo nano /boot/firmware/config.txt
Run Code Online (Sandbox Code Playgroud)
我们将在 config.txt 的底部添加以下行:
gpu_mem=16
Run Code Online (Sandbox Code Playgroud)
按 Ctrl + X 并键入yes以保存文件。现在输入以下命令重新启动 Pi:
sudo reboot
Run Code Online (Sandbox Code Playgroud)
重新启动完成后free再次键入,您将看到总可用内存增加,现在可供系统和应用程序使用。
| 归档时间: |
|
| 查看次数: |
51837 次 |
| 最近记录: |