使用全新的Raspberry Pi 4 使用USB存储会更有益,因为Pi 4中终于添加了一个USB 3.0总线,使其能充分利用固态驱动器。这是我目前使用的设置:
Raspberry Pi 4 Model B 2 GB
StarTech 2.5″ SATA转USB 3.0适配器 -AND- Kingston A400 SSD 120GB SATA 3 2.5" SSD
或者紧凑型设置:SanDisk Extreme Pro 128 GB USB固态闪存驱动器
对于micro SD卡设置:SanDisk Extreme 64 GB A2应用级别Micro SD卡
访问官方Ubuntu Raspberry Pi页面 https://wiki.ubuntu.com/ARM/RaspberryPi 并滚动到“Official Images”部分。
32位(armhf)vs. 64位(aarch64)
获取Ubuntu Server的32位版本的启动比64位版本更容易和更快。如果您选择安装64位,请在说明书中仔细注意64位特定步骤,因为遗漏任何一个步骤都会导致您的树莓派无法启动!目前树莓派已经支持64位,但由于Raspbian和树莓派固件没有官方发布64位版本,因此配置起来可能会有些问题,也更加困难。
写入基础镜像
这部分很简单。将镜像从xz格式解压到img格式(7zip非常好用且免费,可以进行解压)。然后将img写入您的存储介质(Micro SD卡、固态硬盘、USB存储器等),就像为任何其他发行版写入一样。
删除现有固件
当前版本的固件不支持树莓派4,所以我们需要更新/boot/分区上的固件,以便树莓派4能够正确启动。
将Micro SD卡插入/挂载到计算机上,并导航到"boot"分区。删除现有文件夹中的所有内容,使其完全为空。
下载最新固件
32位固件说明
如果您想运行64位版本的Ubuntu,请跳到下一节的64位指令部分。对于32位版本的Ubuntu,请从官方GitHib存储库下载固件,链接在这里:https://github.com/raspberrypi/firmware/archive/master.zip
最新的固件位于master.zip的"boot"文件夹中(包括子文件夹)。我们希望将"boot"文件夹中的所有内容(包括子文件夹)提取到我们之前清空的micro SD卡的"boot"分区中。不要忘记获取"overlays"文件夹,因为它包含了正确启动所需的覆盖层。
最终结果在"boot"驱动器上会看起来像这样:
$ 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
64位固件说明
为了以64位模式启动Ubuntu服务器,我们需要下载64位版本的固件。32位和64位操作系统之间的.dtb文件是不同的。Raspbian没有提供64位引导加载程序,官方GitHub仓库中也没有提供。
自己构建64位固件版本需要交叉编译工具链和大量时间,但这是一个选择。幸运的是,sakiki提供了一个64位版本固件的二进制文件,用于在支持继续跟进的同时启动树莓派4 64位设备。
下载固件二进制文件: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
导航至微型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
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
[all]
64位 config.txt 配置
为了以64位模式启动Pi,我们需要将以下行添加到config.txt中:
total_mem=1024
arm_64bit=1
enable_gic=1
armstub=armstub8-gic.bin
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
total_mem=1024
arm_64bit=1
enable_gic=1
armstub=armstub8-gic.bin
[all]
这些选项使您能够执行树莓派的64位引导所需的所有64位相关选项。
关于total_mem=1024的注意事项:目前,树莓派4的SD卡在没有将总内存限制为1GB的情况下无法以64位模式工作。正在进行相关修复工作,并将在官方支持发布后进行修复。
我们现在可以引导设备了。插入微型SD卡并启动设备。
注意:第一次启动可能会非常慢,请耐心等待。它可能需要2-3分钟,没有任何活动指示灯,然后突然一切都开始闪烁,SSH将会打开。
如果您现在尝试执行apt-get update
,它将尝试使用Ubuntu存储库中的旧固件更新您的固件。暂时的解决方法是删除该软件包,以保留您现有的固件。请记住此步骤,因为以后我们将希望重新启用存储库中的更新一旦添加了支持。
sudo apt remove flash-kernel initramfs-tools
sudo apt-get update && sudo apt-get upgrade
,但是不要使用dist-upgrade
,因为仓库中的内核还不支持树莓派4。但这样应该可以使所有软件包保持最新。
目前尚未将USB引导功能添加到树莓派4的固件中,但正在进行相关开发工作。在此期间,您可以将微型SD卡用作引导加载程序,并从固态硬盘启动整个操作系统(rootfs),从而实现全系统范围内的完整USB 3.0速度增加。一旦树莓派的USB引导正式发布,您就可以直接从设备启动,无需任何临时引导加载程序SD卡。
首先,按照本教程中的早期步骤创建一个完全镜像和可引导的微型SD卡。在创建了微型SD安装后,您现在应该使用与创建SD卡时使用的相同的Ubuntu映像来为SSD / USB驱动器制作镜像。
现在导航到新创建的SSD / USB驱动器上的"boot"分区,并像之前处理SD卡一样删除其中的所有内容。然后将micro SD卡中的"boot"文件夹复制到固态硬盘上。这是必要的,因为尽管最初从micro SD卡读取"boot"中的文件,但在后期加载阶段,某些固件文件会从挂载的驱动器中读取,如果缺少必要的固件文件,系统将无法启动。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
root=/dev/mmcblk0p2
更改为root=/dev/sda2
。root=/dev/sda2
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
user: ubuntu
password: ubuntu
第一次登录后,您将需要更改密码。在输入新密码之前,请确保在提示中输入当前的“ubuntu”密码,否则设备将完全将您踢出,并且您将不得不重新登录。
设置时区
要为Ubuntu服务器配置正确的时区,请使用以下命令:
sudo dpkg-reconfigure tzdata
sudo apt-get update && sudo apt-get upgrade
更改默认的GPU内存分配
树莓派上默认分配给GPU的内存大约为1GB中的76MB。在2GB和4GB型号中,从中获得的内存量微不足道,但对于1GB型号仍然值得。
如果您输入命令free
,您会发现树莓派在“总计”列下缺少这部分内存。我们可以通过将GPU内存分配设置为16MB来回收大部分内存。如果您计划将来安装图形用户界面(GUI),则不应进行此更改。
此选项在config.txt文件中设置。它与Raspbian使用的文件完全相同,但位于/boot/firmware/config.txt
而不是/boot/config.txt
。请使用以下命令打开config.txt:
sudo nano /boot/firmware/config.txt
gpu_mem=16
yes
以保存文件。现在通过输入以下内容重新启动Pi:sudo reboot
free
命令,您会发现可用内存总量已增加,系统和应用程序现在可以使用它。我们将引导您完成在Raspberry Pi 2、3或4上刷写Ubuntu服务器的步骤。在此过程结束时,您将拥有一个完整的开发或生产环境。
最低要求
安装说明
下载Ubuntu服务器映像:
Ubuntu 19.10 Raspberry Pi 32位和64位预装映像(raspi3)现在支持Raspberry Pi 2、4和4平台。当20.04正式发布时,以下链接将进行更新。
适用于 Raspberry Pi 2、3 和 4 的 64 位版本
您可以使用 SHA256SUM 和 SHA256SUM.gpg 文件验证文件的完整性。
如果需要,您可以安装桌面环境。以下是一些流行的选择:
sudo apt install xubuntu-desktop
sudo apt install lubuntu-desktop
sudo apt install kubuntu-desktop
sudo apt install ubuntu-mate-desktop^ # full desktop + applications
sudo apt install mate-desktop-environment-core # very basic set of programs that are necessary to start a MATE desktop environment session
打开终端并输入:
sudo snap install rpi-imager
有人说它很快就会推出:
树莓派4的Ubuntu MATE
Ubuntu MATE 18.04.2的首席开发者Martin Wimpress在推特上发布了一张树莓派4的照片,并表示:“这应该能让我忙上一段时间。”