Manjaro是基于 Arch Linux的发行版,自然也继承了Arch Linux的特点——更新策略激进、AUR覆盖的软件包多等等
笔者选择Manjaro的理由其实比较简单——不喜欢Ubuntu那种大版本升级的策略,滚动更新可以更及时的用到bug修复、新特性等等……至于为什么不选择Arch Linux ARM,那是因为alarm项目没有提供64位userland
如果有人像笔者一样喜欢试用不稳定的测试版软件,那么这一部分绝对可以给你提供很大帮助——自由切换Manjaro ARM的更新分支!
首先,Manjaro ARM同主线一样具有三个不同的分支,分别是stable
、testing
、unstable
,从稳定性的角度来说,stable
> testing
> unstable
——自然unstable
分支的软件应该是三者中最新的,也是最不稳定的
下面叙述一下如何通过pacman-mirrors
命令自由切换分支:
stable
分支切换到其他分支首先修改路径/etc/pacman.d/mirrors/
下的镜像源描述文件,在上一篇文章中,我们新建了名为“China”的文件,这里我们仍旧修改它——将服务器地址中的stable
修改为$branch
,然后保存退出即可
输入如下命令:
$ sudo pacman-mirrors -b testing -c China
其中-b
选项代表branch,即分支的意思,这里选择了较为稳定的testing
分支,-c
选项代表国家,这里我们选择国内的镜像源,具体来说是清华的镜像源,速度会较快一些
更新数据库并更新软件:
$ sudo pacman -Syu
这一步完成后,系统的更新分支就切换完成了
stable
分支如果在新的分支中遭遇无法解决的bug,也可以退回稳定分支:
testing
切换为stable
即可$ sudo pacman -Syyuu # -uu代表强制降级
也可以选择不降级软件包,这样在当前testing
分支合并至stable
分支之前,已安装的包都会比分支中的包新,从而在等待分支合并的时间内无法进行软件升级(事实上也无必要升级)AUR,全称Arch User Repository,是由用户自行维护的软件仓库,官方也经常将其中的一些优秀软件集成到pacman仓库中“转正”,可以说正是因为AUR,Arch系列的发行版才有了足够的可玩性,而且,AUR和下一步硬件管理的操作息息相关
一般来说,对AUR而言常用的包管理工具有两个,分别是yay
和yaourt
,更多的工具信息可以在这里找到
但是这里推荐yay
,理由有二:
yaourt
已经停止开发yay
具有和pacman
命令极为相似的语法要使用AUR源,首先应该安装yay
和一些必要的依赖:
$ sudo pacman -S yay base-devel
之后,设置国内的AUR镜像源以加快访问速度:
$ yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save # 注意不要使用sudo提权
在AUR仓库中有第三方打包完成的二进制包,只需要一条命令即可安装:
$ yay -S raspi-config
CSI接口即树莓派板载的摄像头接口,要启用摄像头接口需要修改/boot/config.txt
以修改内核的启动行为
首先检查/boot/
目录下是否有start_x.elf
、fixup_x.dat
这两个文件,如果没有,需要安装树莓派4B的Bootloader扩展:
$ sudo pacman -S raspberrypi-bootloader-x
安装完成后,/boot/
目录下应该有我们所需要的的文件了,这个时候在/boot/config.txt
末尾添加一行start_x=1
,保存以后重启树莓派即可,但是这个时候没有raspistill
等命令,还是无法使用摄像头
这个时候,还是要去万能的AUR中去寻找:
$ yay -S raspberrypi-userland-aarch64-git # 这是一个源码包,yay会自动编译安装它
这个git包内是Raspbian提供的一系列常用命令,编译时也许有几处小错误,但是不影响最后的编译成功,编译完成后这一系列文件将被安装在/opt/vc
目录下,如果要使用这些命令,将/opt/vc/bin
添加到环境变量中即可
首先,一个很不幸的消息,wiringPi的作者因为某个公司薅羊毛而放弃了这个库的开发和维护,这是去年八月份的事情,具体原因见作者博客
那么这里不再使用这个库进行GPIO的管理,如果使用python进行编程的话,推荐安装rpi.gpio
,应该使用pip来安装它:
# 0. 安装python3-pip
$ sudo pacman -S python-pip
# 1. pip更换国内pypi源
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 2. 升级pip
$ pip install -U pip
# 3. 安装rpi.gpio
$ pip install rpi.gpio
如果想使用C/C++控制GPIO,那么建议安装pigpio
库,可以在AUR仓库中找到它,也可以在这里找到最新版本,除了C语言库之外,该库还拥有用于python和node.js的派生版本,可以使用npm
命令安装node.js派生版,也可以在AUR仓库中找到python的派生版本:
$ yay -Ss pigpio
前几篇文章就心心念念的要写蓝牙部分……可惜我无论如何都连接不上我的小米蓝牙音箱,遂放弃,这里简要阐述一下使用蓝牙必要的软件包
首先,bluez
是Linux官方的蓝牙协议栈,其次,树莓派4B需要一个单独的软件包来使得该协议栈可以和硬件交互,因此只需要安装这两个包即可:
$ sudo pacman -S bluez pi-bluetooth
安装完成以后,就可以使用bluetoothctl
命令查看和管理蓝牙设备了
要使用3.5mm音频接口需要修改/boot/config.txt
文件,添加dtparam=audio=on
语句,不过在Manjaro ARM中,音频接口默认是打开的
不如,下一篇讲一讲如何在命令行中播放音乐?