为什么选择ubuntu?
刚拿到树莓派时,我和很多萌新一样选择了Raspbian作为入门系统,但是在使用过程中,我无法适应它——Raspbian采用64位的内核,但是其用户域是32位的——但是我入手的树莓派是4GiB RAM版本的,这就意味着我无法获取全部的内存控制权
这件事直接导致Visual Studio Code无法使用remote-ssh插件登录树莓派
截至本文写作日期(2020年2月22日),目前已知的拥有64位用户域的、基于GNU/Linux树莓派操作系统列表如下:
最后,基于个人使用习惯,我选择安装Ubuntu Server 19.10
系统安装和配置
镜像烧录
可以使用各种镜像烧录工具将img文件烧录至SD卡,例如Rufus、Win32ImageWriter等,这一步同Raspbian并无任何区别
固件配置
烧录好的SD卡第一分区为FAT32格式,其中包含了固件的启动设置,以及第一次启动时需要执行的任务,这些任务以无后缀的yaml文件给出
关于config.txt
该文件规定了固件的启动行为,可以参考这里,但是不同于Raspbian的是,不要随意修改该文件的默认内容,而是应该在usercfg.txt
中添加用户自定义的配置
根据config.txt
的说明,后来的配置将会覆盖新的配置,而usercfg.txt
由config.txt
包含于文件末尾,保证了用户配置总能覆盖默认配置
默认情况下,Ubuntu启动时是禁止蓝牙模块的,但是可以在usercfg.txt
中添加include btcfg.txt
以覆盖默认配置
Headless Setup
同Raspbian,Ubuntu Server也支持无键鼠、无显示的无头配置,只是比Raspbian略微复杂——将烧录好的SD卡连接到PC,挂载第一分区,可以看到几个无后缀的yaml文件:
- user-data
该文件是用于cloud-init的配置文件,其中规定了默认的用户名和密码都是ubuntu
,如有需要可以根据文件说明修改
值得一提的是,这个文件规定了可以使用密码验证登录SSH,这对SSH启动是极为重要的 - network-config
这里是网络配置文件,在Ubuntu中默认使用netplan
进行网络管理,这个文件就是第一次启动时netplan
读取和执行的配置,关于该文件的编写,可以参考这里,不论使用以太网还是Wi-Fi,都可以直接在这里设置静态IP,方便开机后直接访问
开机之后的配置
- 修改软件源
切换目录到/etc/apt/
,对原有的sources.list
文件进行备份后(使用cp
命令),使用sed
命令一键替换:
更新软件缓存即可:sudo sed -i 's/http://ports.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update
- 设置时区
这条命令将时区设置为上海,即东八区时间,sudo timedatectl set-timezone Asia/Shanghai
set-timezone
后的参数应该是continent/city
- 安装zsh和oh-my-zsh
安装好以后,需要使用# installed zsh sudo apt install zsh -y # get oh-my-zsh sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
chsh
命令切换默认shell,如果oh-my-zsh没有自动拷贝.zshrc
文件,也需要我们自行拷贝
关于zsh的美化和自定义,这里不再赘述# change the default shell chsh -s /bin/zsh # use the template .zshrc from oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc source ~/.zshrc
- 移除MOTD欢迎信息
可能有些人觉得MOTD(Message of the Day)比较烦,这个功能也是可选关闭的
找到/etc/default/motd-news
文件,将其中ENABLED
项改为0即可 - 解决登录时显示
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts....
问题
参考这里
至此,树莓派4B上的安装流程结束,请好好体验吧~!
Bugs
Ubuntu 19.10 for RPI4存在一些使用上的bug,Canonical官方声明将在未来几个月内逐一修复,但是其中最影响使用的bug当属USB3.0接口的bug:
按照官方blog的说法,在内存为4GB的树莓派4B上,使用USB端口将会引发内核崩溃,现在暂行的解决方法是,在usercfg.txt
中限制开机后可用内存,使用total_mem=3072
这条语句可以将开机后的内存限制到3GB,以此规避USB端口引发的崩溃问题
但是,经过本人测试,该bug的行为与官方叙述有些许出入,具体表现为:
- 在不限制内存,即不使用上述语句的情况下,USB2.0端口依然可用
- 在限制过内存的情况下,USB3.0端口依然会引起内核崩溃
所以在目前内核版本为5.3.0-1018-rasp2
的情况下,只能暂时停止使用USB3.0端口以等待官方修复
下一篇文章将介绍树莓派蓝牙模块的使用