Raspberry Pi 4B的Linux游记(一):Ubuntu Server 19.10系统的安装、配置和优化

为什么选择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.txtconfig.txt包含于文件末尾,保证了用户配置总能覆盖默认配置
默认情况下,Ubuntu启动时是禁止蓝牙模块的,但是可以在usercfg.txt中添加include btcfg.txt以覆盖默认配置

Headless Setup

同Raspbian,Ubuntu Server也支持无键鼠、无显示的无头配置,只是比Raspbian略微复杂——将烧录好的SD卡连接到PC,挂载第一分区,可以看到几个无后缀的yaml文件:

  1. user-data
    该文件是用于cloud-init的配置文件,其中规定了默认的用户名和密码都是ubuntu,如有需要可以根据文件说明修改
    值得一提的是,这个文件规定了可以使用密码验证登录SSH,这对SSH启动是极为重要的
  2. network-config
    这里是网络配置文件,在Ubuntu中默认使用netplan进行网络管理,这个文件就是第一次启动时netplan读取和执行的配置,关于该文件的编写,可以参考这里,不论使用以太网还是Wi-Fi,都可以直接在这里设置静态IP,方便开机后直接访问
开机之后的配置
  1. 修改软件源
    切换目录到/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
    
  2. 设置时区
    sudo timedatectl set-timezone Asia/Shanghai
    
    这条命令将时区设置为上海,即东八区时间,set-timezone后的参数应该是continent/city
  3. 安装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文件,也需要我们自行拷贝
    # 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
    
    关于zsh的美化和自定义,这里不再赘述
  4. 移除MOTD欢迎信息
    可能有些人觉得MOTD(Message of the Day)比较烦,这个功能也是可选关闭的
    找到/etc/default/motd-news文件,将其中ENABLED项改为0即可
  5. 解决登录时显示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的行为与官方叙述有些许出入,具体表现为:

  1. 在不限制内存,即不使用上述语句的情况下,USB2.0端口依然可用
  2. 在限制过内存的情况下,USB3.0端口依然会引起内核崩溃

所以在目前内核版本为5.3.0-1018-rasp2的情况下,只能暂时停止使用USB3.0端口以等待官方修复


下一篇文章将介绍树莓派蓝牙模块的使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章