Armbian构建及其使用
查看英文说明 | View English description
Github Actions 是 Microsoft 推出的一项服务,它提供了性能配置非常不错的虚拟服务器环境,基于它可以进行构建、测试、打包、部署项目。对于公开仓库可免费无时间限制地使用,且单次编译时间长达 6 个小时,这对于编译 Armbian 来说是够用的(我们一般在3小时左右可以完成一次编译工作)。分享只是为了交流经验,不足的地方请大家理解,请不要在网络上发起各种不好的攻击行为,也不要恶意使用 GitHub Actions。
目录
- Armbian 构建及使用方法
- 目录
- 1. 注册自己的 Github 的账户
- 2. 设置隐私变量 GITHUB_TOKEN 等
- 3. Fork 仓库并设置工作流权限
- 4. 个性化 Armbian 系统定制文件说明
- 5. 编译系统
- 6. 保存系统
- 7. 下载系统
- 8. 安装 Armbian 到 EMMC
- 9. 编译 Armbian 内核
- 10. 更新 Armbian 内核
- 11. 安装常用软件
- 12. 常见问题
- 12.1 每个盒子的 dtb 和 u-boot 对应关系表
- 12.2 LED 屏显示控制说明
- 12.3 如何恢复原安卓 TV 系统
- 12.4 设置盒子从 USB/TF/SD 中启动
- 12.5 禁用红外接收器
- 12.6 启动引导文件的选择
- 12.7 网络设置
- 12.8 如何添加开机启动任务
- 12.9 如何更新系统中的服务脚本
- 12.10 如何获取 eMMC 上的安卓系统分区信息
- 12.11 如何制作 u-boot 文件
- 12.12 内存大小识别错误
- 12.13 如何反编译 dtb 文件
- 12.14 如何修改 cmdline 设置
- 12.15 如何添加新的支持设备
- 12.16 如何解决写入 eMMC 时 I/O 错误的问题
- 12.17 如何解决 Bullseye 版本没有声音的问题
- 12.18 如何编译 boot.scr 文件
- 12.19 如何开启远程桌面和修改默认端口
1. 注册自己的 Github 的账户
注册自己的账户,以便进行系统个性化定制的继续操作。点击 github.com 网站右上角的 Sign up 按钮,根据提示注册自己的账户。
2. 设置隐私变量 GITHUB_TOKEN 等
根据 GitHub 文档,在每个工作流作业开始时,GitHub 会自动创建唯一的 GITHUB_TOKEN 机密以在工作流中使用。可以使用 ${{ secrets.GITHUB_TOKEN }} 在工作流作业中进行身份验证。
在 Actions 中制作 Armbian Docker 镜像并推送到 Docker Hub 时,需要设置 DOCKERHUB_USERNAME 和 DOCKERHUB_PASSWORD 两个隐私变量。在自己的仓库页面,点击右上角的 Settings > Secrets and variables > Actions > Repository secrets > New repository secret 按钮,添加如下两个隐私变量:
- 变量名
DOCKERHUB_USERNAME:值是登录 Docker Hub 的用户名 - 变量名
DOCKERHUB_PASSWORD:值是登录 Docker Hub 的密码
3. Fork 仓库并设置工作流权限
现在可以 Fork 仓库了,打开仓库 https://github.com/ophub/amlogic-s9xxx-armbian ,点击右上的 Fork 按钮,复制一份仓库代码到自己的账户下,稍等几秒钟,提示 Fork 完成后,到自己的账户下访问自己仓库里的 amlogic-s9xxx-armbian 。在右上角的 Settings > Actions > General > Workflow permissions 下选择 Read and write permissions 并保存。图示如下:
4. 个性化 Armbian 系统定制文件说明
系统编译的流程在 .github/workflows/build-armbian-arm64-server-image.yml 文件里控制,在 workflows 目录下还有其他 .yml 文件,实现其他不同的功能。编译系统时采用了 Armbian 官方的当前代码进行实时编译,相关参数可以查阅官方文档。
1 | |
使用 ophub 打包 Armbian 时,使用 armbian_files 参数可以添加或覆盖自定义文件到 ophub 的 common-files 目录。目录结构必须与 Armbian 根目录保持一致,以确保文件被正确覆盖到固件中(例如:默认配置文件应存放于 etc/default/ 子目录下)。设置方法举例:
1 | |
5. 编译系统
系统编译的方式很多,可以设置定时编译,手动编译,或者设置一些特定事件来触发编译。我们先从简单的操作开始。
5.1 手动编译
在自己仓库的导航栏中,点击 Actions 按钮,再依次点击 Build armbian > Run workflow > Run workflow ,开始编译,等待大约 3 个小时,全部流程都结束后就完成编译了。图示如下:
5.2 定时编译
在 .github/workflows/build-armbian-arm64-server-image.yml 文件里,使用 Cron 设置定时编译,5 个不同位置分别代表的意思为 分钟 (0 - 59) / 小时 (0 - 23) / 日期 (1 - 31) / 月份 (1 - 12) / 星期几 (0 - 6)(星期日 - 星期六)。通过修改不同位置的数值来设定时间。系统默认使用 UTC 标准时间,请根据你所在国家时区的不同进行换算。
1 | |
5.3 自定义默认系统配置
默认系统的配置信息记录在 model_database.conf 文件里,其中的 BOARD 名字要求唯一。
其中 BUILD 的值是 yes 的是默认打包的部分盒子的系统,这些盒子可以直接使用。默认值是 no 的没有打包,这些没有打包的盒子使用时需要下载相同 FAMILY 的打包好的系统,在写入 USB 后,可以在电脑上打开 USB 中的 boot 分区,修改 /boot/uEnv.txt 文件中 FDT 的 dtb 名称,适配列表中的其他盒子。
在本地编译时通过 -b 参数指定,在 github.com 的 Actions 里编译时通过 armbian_board 参数指定。使用 -b all 代表打包 BUILD 是 yes 的全部设备。使用指定 BOARD 参数打包时,无论 BUILD 是 yes 或者 no 均可打包,例如:-b r68s_s905x3-tx3_s905l3a-cm311
5.4 使用逻辑卷扩大 Github Actions 编译空间
Github Actions 编译空间默认是 84G,除去系统和必要软件包外,可用空间在 50G 左右,当编译全部固件时会遇到空间不足的问题,可以使用逻辑卷扩大编译空间至 110G 左右。参考 .github/workflows/build-armbian-arm64-server-image.yml 文件里的方法,使用下面的命令创建逻辑卷。并在编译时使用逻辑卷的路径。
1 | |
5.5 制作 Armbian Docker 镜像
Armbian 系统 Docker 镜像的制作方法可以参考 armbian_docker 制作脚本。
6. 保存系统
系统保存的设置也在 .github/workflows/build-armbian-arm64-server-image.yml 文件里控制。我们将编译好的系统通过脚本自动上传到 github 官方提供的 Releases 里面。
1 | |
7. 下载系统
从仓库首页右下角的 Release 版块进入,选择和自己盒子型号对应的系统。图示如下:
8. 安装 Armbian 到 EMMC
Amlogic, Rockchip 和 Allwinner 的安装方法不同。不同的设备具有不同的存储,有的设备使用外置 microSD 卡,有的带有 eMMC,有的支持使用 NVMe 等多种存储介质,根据设备不同,分别介绍其安装方法。首先在 Releases 里下载自己设备的 Armbian 系统,解压缩成 .img 格式备用。根据自己的设备,使用下面小结中不同的安装方法。
当安装完成后,将 Armbian 设备接入路由器,设备开机2分钟后,到路由器里查看设备名称为 Armbian 的 IP,使用 SSH 工具连接进行管理设置。默认用户名为 root,默认密码为 1234,默认端口为 22


8.1 Amlogic 系列安装方法
登录 Armbian 系统 (默认用户: root, 默认密码: 1234) → 输入命令:
1 | |
| 可选参数 | 默认值 | 选项 | 说明 |
|---|---|---|---|
| -m | no | yes/no | 使用 Mainline u-boot |
| -a | yes | yes/no | 使用 ampart 分区表调整工具 |
| -l | no | yes/no | List. 显示全部设备列表 |
举例: armbian-install -m yes -a no
8.2 Rockchip 系列安装方法
每个设备的安装方法不同,分别介绍如下。
8.2.1 Radxa-Rock5B 的安装方法
Radxa-Rock5B 有 microSD/eMMC/NVMe 等多种存储介质可以选择,相应的安装方法也不同。下载 rk3588_spl_loader_v1.08.111.bin 和 spi_image.img 文件备用。下载 RKDevTool 工具及驱动备用。下载 Rufus 或者 balenaEtcher 写盘工具备用。
8.2.1.1 安装系统至 microSD
使用 Rufus 或者 balenaEtcher 等工具将 Armbian 系统镜像写入 microSD 里,然后把写好系统的 microSD 插入设备即可使用。

8.2.1.2 安装系统至 eMMC
使用 microSD 卡安装:将 Armbian 系统镜像写入 microSD 卡,将 microSD 卡插入设备并启动,上传 armbian.img 镜像文件到 microSD 卡,使用 dd 命令将 Armbian 镜像写入 NVMe 中,命令如下:
1 | |
- 使用 USB 转 eMMC 读卡器安装:将 eMMC 模块与电脑连接,使用 Rufus 或者 balenaEtcher 等工具将 Armbian 系统镜像写入 eMMC 里,然后把写好系统的 eMMC 插入设备即可使用。
- 使用 Maskrom 模式安装:关闭开发板电源。按住金色按钮。将 USB-A 转 C 型电缆插入 ROCK 5B C 型端口,另一端插入 PC。松开金色按钮。检查 USB 设备提示找到一个 MASKROM 设备。右键单击列表的空白区域,然后选择加载
rock-5b-emmc.cfg配置文件(配置文件和 RKDevTool 在同一个目录下)。将rk3588_spl_loader_v1.08.111.bin和Armbian.img按下图所示设置,选择写入即可。



8.2.1.3 安装系统至 NVMe
ROCK-5B 在主板上有一个 SPI 闪存,将引导加载程序安装到 SPI 闪存可以支持 SoC maskrom 模式不直接支持的其他启动介质(如 SATA、USB3 或 NVMe)。使用 NVMe 需要先写入 SPI 文件。方法如下:
关闭开发板电源。删除可启动设备,如MicroSD卡,eMMC模块等。按住金色(或某些开发板修订版上的银色)按钮。将 USB-A 转 C 型电缆插入 ROCK-5B C 型端口,另一端插入 PC。松开金色按钮。检查 USB 设备找到一个 MASKROM 设备。在列表框中右键选择加载配置,然后在资源管理文件夹中选择配置文件(配置文件和 RKDevTool 在同一个目录下),根据下图选择 rk3588_spl_loader_v1.08.111.bin 和 spi_image.img 文件,点击写入即可,如下图所示:



- 使用读卡器安装:将 M.2 NVMe SSD 插入 M.2 NVMe SSD 到 USB3.0 读卡器,以连接到主机。使用 Rufus 或者 balenaEtcher 等工具将 Armbian 系统镜像写入 NVMe 里,然后把写好系统的 NVMe 插入设备即可使用。
- 使用 microSD 卡安装:将 Armbian 系统镜像写入 microSD 卡,将 microSD 卡插入设备并启动,上传
armbian.img镜像文件到 microSD 卡,使用dd命令将 Armbian 镜像写入 NVMe 中,命令如下:
1 | |
8.2.2 电犀牛 R66S 的安装方法
使用 Rufus 或者 balenaEtcher 等工具将 Armbian 系统镜像写入 microSD 里,然后把写好系统的 microSD 插入设备即可使用。
8.2.3 电犀牛 R68S 的安装方法
- 下载 RKDevTool 工具及驱动,解压并安装 DriverAssitant 驱动程序,打开 RKDevTool 工具备用。
- R68s 在关机状态下,先插入 USB 双公头线,然后按住 Recovery 键并插上 12V 电源,两秒之后松开 Recovery 键,刷机工具会
发现一个 LOADER 设备。 - 在 RKDevTool 工具操作界面的空白处点右键,添加项。
- 地址是
0x00000000,名字是armbian,路径点击右侧选择armbian.img系统文件。 - 选择添加的 armbian 一行外,
取消其他行的选择,点击执行写入即可。 - 补充说明:如果 eMMC 中写入了其他系统,请先在高级功能里擦除,再写入 Armbian 系统。如果无法擦除,先重新写入一次
MiniLoaderAll.bin引导文件,然后再次进入MASKROM写入 Armbian 系统。MiniLoaderAll.bin 引导文件设置:地址0xCCCCCCCC, 名字Loader, 路径选择 RKDevTool 刷机工具 Image 目录下的MiniLoaderAll.bin文件。



8.2.4 贝壳云的安装方法
方法转载自 milton 的教程。刷机需要进入 Maskrom 模式。先断开所有连接,通过短接 CLK 和 GND(使用 TTL 的 GND, 或者旁边小按钮的 GND 均可)这两个触点,然后将 USB 连接到 PC 就会检测到 MASKROM 设备了。短接点位置如下:

打开 RKDevTool 刷机工具,右键添加项。
- 地址
0xCCCCCCCC, 名字Boot, 路径选择rk3328_loader_v1.14.249.bin。 - 地址
0x00000000, 名字system, 路径选择要刷的Armbian.img系统。 - 勾选
强制按地址写入,点执行,等右侧下载面板显示进度完成即可。
8.2.5 我家云的安装方法
方法转载自 cc747 的教程。刷机需要进入 Maskrom 模式。使我家云处于断电状态,拔掉所有线。用 USB 双公头线,一头插入我家云的 USB2.0 接口,一头插入电脑。用回形针插进 Reset 孔,并按压住不松开。插入电源线。等待几秒钟,直到 RKDevTool 框的下方出现发现一个LOADER设备后才松开回形针。将 RKDevTool 切换到高级功能点击进入Maskrom按钮,提示发现一个MASKROM设备。右键添加项。
- 地址
0xCCCCCCCC, 名字Boot, 路径选择rk3328_loader_v1.14.249.bin。 - 地址
0x00000000, 名字system, 路径选择要刷的Armbian.img系统。 - 勾选
强制按地址写入,点执行,等右侧下载面板显示进度完成即可。
8.2.6 泰山派的安装方法
- 下载 RKDevTool 工具及驱动,解压并安装 DriverAssitant 驱动程序,打开 RKDevTool 工具。(注意,请使用2.86版本工具而不是2.92,2.92版本刷入时会闪退)
- 泰山派关机状态下按住 Recovery 键后插入type-c数据线,待 RKDevTool 提示
发现一个 LOADER 设备后松开 Recovery 键。右键添加项。 - 地址
0x00000000, 名字system, 路径选择要刷的Armbian.img系统。 - 点击执行,等待进度条完成即可
8.3 Allwinner 系列安装方法
登录 Armbian 系统 (默认用户: root, 默认密码: 1234) → 输入命令:
1 | |
8.4 Docker 版本的 Armbian 安装方法
可以在 Ubuntu/Debian/Armbian 系统中使用 Docker 版本的 Armbian 镜像。这些镜像托管在 Docker Hub 上,可以直接下载使用。
提供了四个不同内核版本的 Armbian Docker 镜像:armbian-trixie,armbian-bookworm,armbian-noble,armbian-jammy。每个版本都有 arm64 和 amd64 版本,可以根据需要选择不同的内核版本。
其中 armbian-trixie 基于 debian13,armbian-bookworm 基于 debian12,armbian-noble 基于 ubuntu24.04,armbian-jammy 基于 ubuntu22.04。
arm64 版本适用于 Amlogic/Rockchip/Allwinner 等平台架构的设备,amd64 版本适用于 x86_64 架构的电脑和服务器。
8.4.1 安装 Docker 运行环境
1 | |
8.4.2 设置 macvlan 网络
1 | |
8.4.3 运行 Armbian Docker 容器
这里以 armbian-trixie:arm64 镜像为例,介绍如何运行 Armbian 容器。
1 | |
9. 编译 Armbian 内核
支持在 Ubuntu,debian 或 Armbian 系统中编译内核。支持本地编译,也支持使用 GitHub Actions 云编译,具体方法详见 内核编译说明。
9.1 如何添加自定义内核补丁
当内核补丁目录 tools/patch 中有通用内核补丁目录(common-kernel-patches),或者有 与内核源码库同名 的目录时(例如 linux-5.15.y),可以使用 -p true 自动应用内核补丁。补丁目录的命名规范如下:
1 | |
- 在本地编译内核时,可以手动创建相应目录,添加对应的自定义内核补丁。
- 在 GitHub Actions 云编译时,可以使用
kernel_patch参数指定内核补丁在你仓库中的目录,例如 kernel 仓库中 compile-beta-kernel.yml 的使用方法:
1 | |
当使用 kernel_patch 参数指定自定义内核补丁时,补丁目录请参照上述规范进行命名。
9.2 如何制作内核补丁
- 从 Armbian 和 OpenWrt 等仓库中获得:例如 armbian/patch/kernel 和 openwrt/rockchip/patches-6.1,lede/rockchip/patches-5.15 等等,这些使用主线内核的仓库中的补丁一般可以直接使用。
- 从 github.com 仓库的 commits 中获得:在相应的
commit地址后添加.patch后缀即可生成对应的补丁。
在添加自定义内核补丁前,需要先和上游的内核源码仓库 unifreq/linux-k.x.y 进行比较,确认此补丁是否已经添加,避免造成冲突。通过测试的内核补丁,建议向 unifreq 大佬维护的系列内核仓库进行提交。每人一小步,世界一大步,大家的贡献会让我们在盒子里使用 Armbian 和 OpenWrt 系统时更加稳定和有趣。
9.3 如何自定义编译驱动模块
在 linux 主线内核里,有些驱动尚未支持,可以自定义编译驱动模块。请选择支持在主线内核里使用的驱动,安卓驱动一般不支持主线内核,无法编译。举例如下:
1 | |
图示如下:
10. 更新 Armbian 内核
登录 Armbian 系统 → 输入命令:
1 | |
| 可选参数 | 默认值 | 选项 | 说明 |
|---|---|---|---|
| -r | ophub/kernel | <owner>/<repo> |
设置从 github.com 下载内核的仓库 |
| -u | 自动化 | stable/flippy/beta/rk3588/rk35xx/h6 | 设置使用的内核的 tags 后缀 |
| -k | 最新版 | 内核版本 | 设置内核版本 |
| -b | yes | yes/no | 更新内核时自动备份当前系统使用的内核 |
| -m | no | yes/no | 使用主线 u-boot |
| -s | 无 | 无/磁盘名称 | [SOS] 恢复 eMMC/NVMe/sdX 等磁盘中的系统内核 |
| -h | 无 | 无 | 查看使用帮助 |
举例: armbian-update -k 5.15.50 -u stable
通过 -k 参数指定内核版本号时,可以准确指定具体版本号,例如:armbian-update -k 5.15.50,也可以模糊指定到内核系列,例如:armbian-update -k 5.15,当模糊指定时将自动使用指定系列的最新版本。
更新内核时会自动备份当前系统使用的内核,存储路径在 /ddbr/backup 目录里,保留最近使用过的 3 个版本的内核,如果新安装的内核不稳定,可以随时恢复回备份的内核:
1 | |
[SOS]:因特殊原因导致的更新不完整等问题,造成系统无法从 eMMC/NVMe/sdX 启动时,可以从 USB 等其他磁盘启动任意内核版本的 Armbian 系统,然后运行 armbian-update -s 命令可以把 USB 中的系统内核更新至 eMMC/NVMe/sdX 中,实现救援的目的。不指定磁盘参数时,默认将从 USB 设备恢复 eMMC/NVMe/sdX 中的内核,如果设备有多个磁盘,可以准确指定需要恢复的磁盘名称,举例如下:
1 | |
如果你访问 github.com 的网络不通畅,无法在线下载更新时,可以手动下载内核,上传至 Armbian 系统的任意目录,并进入内核目录,执行 armbian-update 进行本地安装。如果当前目录下有成套的内核文件,将使用当前目录的内核进行更新(更新需要的 4 个内核文件是 header-xxx.tar.gz, boot-xxx.tar.gz, dtb-xxx.tar.gz, modules-xxx.tar.gz。其他内核文件不需要,如果同时存在也不影响更新,系统可以准确识别需要的内核文件)。在设备支持的可选内核里可以自由更新,如从 6.6.12 内核更新为 5.15.50 内核。
通过 -r/-u/-b 等参数设置的自定义选项,可以固定填写到个性化配置文件 /etc/ophub-release 的相关参数里,避免每次输入。对应设置为:
1 | |
11. 安装常用软件
登录 Armbian 系统 → 输入命令:
1 | |
使用 armbian-software -u 命令可以更新本地的软件中心列表。根据用户在 Issue 中的需求反馈,逐步整合常用软件,实现一键安装/更新/卸载等快捷操作。包括 docker 镜像、桌面软件、应用服务 等。详见更多说明。
根据你所在的国家或地区,使用 armbian-apt 命令选择合适的软件源,提高软件的下载速度。例如,选择中国的清华大学源:
1 | |
12. 常见问题
在 Armbian 的使用中,一些可能遇到的常见问题汇总如下。
12.1 每个盒子的 dtb 和 u-boot 对应关系表
支持的电视盒子列表在 Armbian 系统中配置文件的位置为 /etc/model_database.conf。
12.2 LED 屏显示控制说明
请查阅说明
12.3 如何恢复原安卓 TV 系统
通常使用 armbian-ddbr 对设备的安卓 TV 系统进行备份和恢复。
除此之外也可以通过线刷的方法,将安卓系统刷入 eMMC 中,安卓系统的下载镜像可在 Tools 中查找。
12.3.1 使用 armbian-ddbr 备份恢复
建议您在全新的盒子里安装 Armbian 系统前,先对当前盒子自带的原安卓 TV 系统进行备份,以便在需要恢复系统时使用。请从 TF/SD/USB 启动 Armbian 系统,输入 armbian-ddbr 命令,然后根据提示输入 b 进行系统备份,备份文件的存放路径为 /ddbr/BACKUP-arm-64-emmc.img.gz ,请下载保存。在需要恢复安卓 TV 系统时,将之前备份的文件上传至 TF/SD/USB 设备的相同路径下,输入 armbian-ddbr 命令,然后根据提示输入 r 进行系统恢复。
12.3.2 使用 Amlogic 刷机工具恢复
一般情况下,重新插入电源,如果可以从 USB 中启动,只要重新安装即可,多试几次。
如果接入显示器后,屏幕是黑屏状态,无法从 USB 启动,就需要进行盒子的短接初始化了。先将盒子恢复到原来的安卓系统,再重新刷入 Armbian 系统。首先下载 amlogic_usb_burning_tool 系统恢复工具并安装好。准备一条 USB 双公头数据线,准备一个 曲别针。
以 x96max+ 为例,在盒子的主板上确认 短接点 的位置,下载盒子的 Android TV 系统包。其他常见设备的安卓 TV 系统系统及对应的短接点示意图也可以在此下载查看。
1 | |
当完成恢复出厂设置,盒子已经恢复成 Android TV 系统,其他安装 Armbian 系统的操作,就和你之前第一次安装系统时的要求一样了,再来一遍即可。
12.4 设置盒子从 USB/TF/SD 中启动
根据自己盒子的情况,分别使用初次安装和重新安装 Armbian 系统的两种方法。
12.4.1 初次安装 Armbian 系统
- 把刷好系统的 USB/TF/SD 插入盒子。
- 开启开发者模式: 设置 → 关于本机 → 版本号 (如: X96max plus…), 在版本号上快速连击 5 次鼠标左键, 看到系统显示
开启开发者模式的提示。 - 开启 USB 调试模式: 系统 → 高级选选 → 开发者选项 (设置
开启USB调试为启用)。启用ADB调试。 - 安装 ADB 工具:下载 adb 并解压,将
adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll三个文件拷⻉到c://windows/目录下的system32和syswow64两个文件夹内,然后打开cmd命令面板,使用adb --version命令,如果有显示就表示可以使用了。 - 进入
cmd命令模式。输入adb connect 192.168.1.137命令(其中的 ip 根据你的盒子修改,可以到盒子所接入的路由器设备里查看),如果链接成功会显示connected to 192.168.1.137:5555 - 输入
adb shell reboot update命令,盒子将重启并从你插入的 USB/TF/SD 启动,从浏览器访问系统的 IP 地址,或者 SSH 访问即可进入系统。
12.4.2 重新安装 Armbian 系统
- 正常情况下,直接把刷写好 Armbian 的 U 盘插入 USB 即可直接从 U 盘中启动。USB 启动比 eMMC 具有优先启动权。
- 个别设备可能出现无法从 U 盘启动的现象,可以先把 eMMC 里 Armbian 系统
/boot目录下的boot.scr文件改个名字,例如boot.scr.bak,然后再插入 U 盘启动,这样就可以从 U 盘启动了。
12.5 禁用红外接收器
默认情况下启用对红外接收器的支持,但如果您将电视盒用作服务器,那么您可能希望禁用 IR 内核模块以防止错误地关闭您的盒子。 要完全禁用 IR,请添加以下行:
1 | |
至 /etc/modprobe.d/blacklist.conf 并重启。
12.6 启动引导文件的选择
目前已知的设备中,只有
T95(s905x)/T95Z-Plus(s912)/BesTV-R3300L(s905l-b)等少数设备需要使用/bootfs/extlinux/extlinux.conf文件,已经在系统里默认添加了。其他设备如果需要,可以将系统写入 USB 后,双击打开boot分区,将系统自带的/boot/extlinux/extlinux.conf.bak文件名称中的.bak删除即可使用。当写入 eMMC 时armbian-install会自动检查,如果存在extlinux.conf文件,会自动创建。其他设备只需要
/boot/uEnv.txt即可启动,不要修改extlinux.conf.bak文件。
12.7 网络设置
12.7.1 使用 interfaces 设置网络
网络配置文件 /etc/network/interfaces 的默认内容如下:
1 | |
12.7.1.1 由 DHCP 动态分配 IP 地址
1 | |
12.7.1.2 手动设置静态 IP 地址
其中的 IP 和网关和 DNS 根据自己的网络情况修改。
1 | |
12.7.1.3 在 docker 中使用 OpenWrt 建立互通网络
其中的 MAC 地址根据自己的需要修改。
1 | |
12.7.2 使用 NetworkManager 管理网络
12.7.2.1 新建网络连接
新建或修改网络连接前的准备工作
12.7.2.1.1 获取网络接口名称
查看设备中有哪些网络接口可以用来建立网络连接。
1 | |
执行命令后返回内容, DEVICE 列显示网络接口名称, TYPE 列显示网络接口类型。
其中 eth0 = 第1块有线网卡的名称, eth1 = 第2块有线网卡的名称, 以此类推, 无线网卡同理。
1 | |
12.7.2.1.2 获取现有网络连接名称
查看设备现有哪些网络连接, 包含使用中和未使用的连接。在新建网络连接时, 不建议使用已经存在的连接名称。
1 | |
执行命令后返回内容, NAME 列显示现有网络连接名称, TYPE 列显示网络接口类型。
其中 ethernet = 有线网卡, wifi = 无线网卡, bridge = 网桥
1 | |
12.7.2.1.3 新建有线网络连接
在网络接口 eth0 上新建网络连接并立即生效 (动态 IP 地址 - IPv4 / IPv6)。
1 | |
在网络接口 eth0 上新建网络连接并立即生效 (静态 IP 地址 - IPv4)。
1 | |
12.7.2.1.4 新建无线网络连接
在网络接口 wlan0 上新建网络连接并立即生效 (动态 IP 地址 - IPv4 / IPv6)。
1 | |
12.7.2.2 修改无线网络连接中的 WiFi SSID or PASSWD
修改无线网络连接 ssid 中的 WiFi SSID or PASSWD 并立即生效。
1 | |
12.7.2.3 修改网络地址分配方式
12.7.2.3.1 静态 IP 地址 - IPv4
在网络连接 ether1 上修改 IP 地址分配方式为 静态 IP 地址 并立即生效。
*适用 有线连接 / 无线连接
1 | |
12.7.2.3.2 DHCP 获取动态 IP 地址 - IPv4 / IPv6
在网络连接 ether1 上修改 IP 地址分配方式为 DHCP 获取动态 IP 地址 并立即生效。
*适用 有线连接 / 无线连接
1 | |
12.7.2.4 修改网络连接 MAC 地址
在网络连接上修改 MAC 地址 以解决局域网 MAC 地址冲突问题。
12.7.2.4.1 方法一:使用 nmcli 命令修改 MAC 地址
1 | |
- 新建或修改部分网络参数, 网络连接可能会被断开, 并重新连接网络。
- 由于软硬件环境不同(盒子, 系统, 网络设备等), 生效所需时间
1-15秒左右, 更长时间未生效的建议检查软硬件环境。
12.7.2.4.2 方法二:通过配置文件修改 MAC 地址
添加 Mac 地址覆盖配置文件。
1 | |
添加以下内容:
1 | |
重启后生效。
12.7.2.5 如何禁用 IPv6
您可以使用 nmcli 实用程序在命令行中禁用 IPv6 协议,参考来源 disable-ipv6。
第一步,先使用 nmcli connection show 命令查看网络连接列表,返回结果如下:
1 | |
第二步,将连接的 ipv6.method 参数设为 disabled :
1 | |
第三步,重新连接网络:
1 | |
第四步,查看网络连接状态,如果没有显示 inet6 条目,则 IPv6 在该设备上被禁用:
1 | |
第五步,验证 /proc/sys/net/ipv6/conf/eth0/disable_ipv6 文件现在是否包含值 1
1 | |
也可以通过修改 /etc/sysctl.conf 文件来禁用 IPv6:
1 | |
12.7.3 如何启用无线
有的设备支持使用无线,启用方法如下:
1 | |
12.7.4 如何启用蓝牙
有的设备支持使用蓝牙,启用方法如下:
1 | |
系统重启后,查看蓝牙驱动是否正常。桌面系统的可以在菜单里连接蓝牙设备。也可以使用终端图形界面安装。
1 | |
1 | |
也可以在终端中使用命令安装:
1 | |
12.8 如何添加开机启动任务
系统中已经添加了自定义开机启动任务脚本文件,在 Armbian 系统中的路径是 /etc/custom_service/start_service.sh 文件,可以根据个人需求在该脚本中自定义添加相关任务。
12.9 如何更新系统中的服务脚本
使用 armbian-sync 命令可以一键将本地系统中的全部服务脚本更新到最新版本。
如果 armbian-sync 更新失败,说明这个命令的版本过旧,可以使用下面的方法更新这个命令:
1 | |
12.10 如何获取 eMMC 上的安卓系统分区信息
我们将 Armbian 系统写入 eMMC 系统时,需要首先确认设备的安卓系统分区表,确保将数据写入至安全区域,尽量不要破坏安卓系统分区表,以免造成系统无法启动等问题。如果写入了不安全的区域,会无法启动,或出现类似下面的错误:
12.10.1 获取分区信息
如果你使用的是 2022.11 之后本仓库中发布的 Armbian,你可以复制粘贴以下命令来获得一个记录完整分区信息的网址(设备本身并不需要联网)
1 | |
ampart 的 webreport 模式为 2023.02.03 发布的 v1.2 版本引入的,如果你使用上面的命令无输出,则可能为不支持直接输出网址的旧版,你可以转而使用下面这条命令:
1 | |
得到的网址将会类似于下面这样:
1 | |
将这个网址复制到你的浏览器打开,即可看到格式清晰明了的 DTB 分区信息和 eMMC 分区信息:
12.10.2 分区信息分享
当你需要分享分区信息给其他人时(比如,发布到本仓库以来汇报某一新设备的情况,或者寻求他人的帮助),尽量分享网址本身,而不是截图。如果介意网址太长,可以借用一些免费的短网址工具。
- 一方面,网页上的分区信息在每次访问时都会动态生成,对于某些分区是否能写入的标注,以及表格的格式等都可能会更新。
- 另一方面,从截图中其他人也不能方便地复制分区参数做计算等。
另外,也不需要额外地将参数整理到表格文件,网页上表格的布局已经特意设计为仅需复制粘贴就可以导入到 Excel 或者 LibreOffice Calc 中。
12.10.3 分区信息解读
DTB 表是安卓 DTB 中记录的每个盒子系统希望的分区布局,这一布局里一般会以一个大小为自动填充的 data 分区为结尾,所以同系统(也必然包括同型号)的盒子,这里的布局必然是相同的。盒子上实际的分区布局会因为 eMMC 的容量不同而各有差别,但总是由 DTB 的分区布局所决定的(即已知 DTB 分区布局 +eMMC 准确大小,必然可推知 eMMC 分区情况。 上面的 DTB 分区信息和 eMMC 分区信息并非来自同一个盒子,你看出来了吗?)。
eMMC 表是盒子上实际的 eMMC 分区布局。其中每一行表示一块存储区域,这一存储区域既可能是一个分区,也可能是分区间的空隙(因为晶晨的诡异决策,每个分区之间都至少有 8M 的空隙,计划留作他用,结果到最新的 S905X4 都没有用上,十分浪费空间)。对应分区的行中,字体为黑色,且偏移和掩码栏均有数值;对应空隙的行中,字体为灰色,偏移和掩码栏没有数值,且分区名为 gap 。
eMMC 表中,每一块存储区域的最后一栏为可写入的情况,绿色且 yes 表示这一区域可以写入,红色且 no 表示这一区域绝对不可以写入,黄色且有标注则表示某前提的下可以写入,或者只有部分可以写入。
以上表为例,bootloader 分区对应的 0+4M (0M~4M)绝对不可写入,其后的 32M 空隙(4M~36M)可以写入,reserved 分区对应的 36M+64M (36M~100M)绝对不可写入,其后的空隙一直到 env 前的空隙(100M~836M)都可以写入,env 的1M往后(837M一直到结尾)在不需要安卓启动 logo 的情况下都可以写入,则 eMMC 上所有可写入的范围为:
- 4M~36M
- 100M~836M
- 837M~结尾
在需要安卓启动 logo 的情况下,额外的,logo分区对应的 852M + 32M (852M~884M)不能写入,则 eMMC 上所有的可写入范围为:
- 4M~36M
- 100M~836M
- 837M~852M
- 884M~结尾
12.10.4 用于 eMMC 安装
如果你的设备在使用 armbian-install 且 -a 参数(使用 ampart 调整 eMMC 分区布局)为 yes(默认值)的情况下失败,则你的盒子不能使用最优化的布局(即把 DTB 分区信息调整为只有 data ,再由此生成 eMMC 分区信息,然后将所有还存在的分区均向前挪动,如此一来,117M 向后的空间便均可使用),你需要在 armbian-install 中修改对应的分区信息。
此文件中,声明分区布局的关键参数有三个:BLANK1, BOOT, BLANK2。其中 BLANK1 表示从 eMMC 开头算起的不能使用的大小;BOOT 表示在 BLANK1 以后创建的用来存放内核、DTB 等的分区的大小,最好不要小于 256M,BLANK2 表示 BOOT 以后不能使用的大小;在此之后的空间会全部用来创建 ROOT 分区,储存整个系统中 /boot 挂载点以外的数据。三者均应为整数,且单位为MiB (1 MiB = 1024 KiB = 1024^2 Byte)
讨论上一段中不需要 logo 分区的情况,我们自然希望将所有能使用的空间全部使用,但是 4M~36M 的区域由于太小,不能用作 BOOT,所以只能将它算在不能用的 BLANK1 里面。而 100M~836M 的区域,用作 BOOT 绰绰有余,则可以将这 736M 全部分配给 BOOT。此后再有 836M~837M 的不能使用区域,便算给 BLANK2 ,那么应该使用的参数就应该如下(下文仅以 s905x3 为例,若你的 SoC 为其他,需要修改其他的对应代码块):
1 | |
12.11 如何制作 u-boot 文件
u-boot 文件是引导系统正常启动的重要文件。Amlogic,Allwinner 和 Rockchip 设备在获取源码和编译流程上略有不同。
12.11.1 如何制作 Amlogic 设备的 u-boot 文件
由于 Amlogic 系列的设备厂商大多数都是闭源的,所以我们需要从设备上提取 u-boot 相关文件,然后再进行编译。这里介绍的方法来自 unifreq 大佬分享的制作教程。
12.11.1.1 如何提取 bootloader 和 dtb 文件
提取需要使用 HxD 软件。可以从 官网下载链接 或 备份下载链接 获取安装。
在 cmd 面板中依次执行以下命令提取相关文件,并下载到本地电脑。
1 | |
12.11.1.2 如何制作 acs.bin 文件
主线 u-boot 最重要的是 acs.bin,用于初始化内存的部分,原厂 u-boot 位于系统最前面的 4MB 位置。使用刚才获得的 bootloader.bin 文件提取 acs.bin 文件。
打开 HxD 软件,打开上面导出的 bootloader.bin 文件,右键 - 选择范围,起始位置 F200,长度 1000,选十六进制。
复制选择的结果,然后新建文件,插入式粘贴,警告忽略,另存为 acs.bin 文件。
如果是锁了 bootloader 的话这个区域的代码是是乱码就没用了。正常的应该像上图中这样有很多 0 ,有 cfg 会连续出现几次,中间会出现 ddr 相关的字样,这种正常代码就是可以使用的。
12.11.1.3 如何编译 u-boot 文件
制作 u-boot 需要 https://github.com/unifreq/amlogic-boot-fip 和 https://github.com/unifreq/u-boot 这两个源码库,编译自己盒子的两个 u-boot 文件。
在 amlogic-boot-fip 源码里面每个机型只有 acs.bin 这个文件是不同的,其它的文件都可以通用。
制作 u-boot 的方法详见 https://github.com/unifreq/u-boot/tree/master/doc/board/amlogic 里的具体说明,选择自己设备的型号进行编译测试。
根据 unifreq 的方法制作 u-boot 需要用到盒子的 acs.bin,dts 和 config 文件。其中安卓系统导出来的 dts 不能直接转换成 Armbian 的格式,需要自己编写一个对应的 dts 文件。根据自己设备具体硬件上的区别部分,比如开关、led、电源控制、tf卡、sdio wifi模块等,使用内核源码库中相似的 dts 文件进行修改制作。
以制作 X96Max Plus 的 u-boot 为例:
1 | |
- 下载 amlogic-boot-fip 源码。在根目录创建 x96max-plus 目录,里面的文件除了自己制作的
asc.bin文件外,其他文件可以从其他目录下复制。 - 下载 u-boot 源码。制作对应的 x96max-plus_defconfig 文件放入 configs 目录。制作对应的 meson-sm1-x96-max-plus-u-boot.dtsi 和 meson-sm1-x96-max-plus.dts 文件放入 arch/arm/dts 目录,并编辑此目录中的 Makefile 文件,添加
meson-sm1-x96-max-plus.dtb文件的索引。 - 进入 u-boot 源码目录根目录下,根据文档 https://github.com/unifreq/u-boot/blob/master/doc/board/amlogic/x96max-plus.rst 中的步骤操作。
最终生成的文件有两类:在 u-boot 根目录下的 u-boot.bin 文件是 /boot 目录下使用的不完整版 u-boot(对应仓库中的 overload 目录);在 fip 目录下的 u-boot.bin 和 u-boot.bin.sd.bin 是 /usr/lib/u-boot/ 目录下使用的完整版 u-boot 文件(对应仓库中的 bootloader 目录),完整版的两个文件相差 512 字节,大的那个是填充了 512 字节的 0 在前面。
💡提示:在写入 eMMC 进行测试前,请先查看 12.3 的救砖方法。务必掌握短接点位置,有原厂 .img 格式的安卓系统文件,并进行过短接刷机测试,确保救砖方法都已经掌握的情况下再进行写入测试。
12.11.2 如何制作 Rockchip 设备的 u-boot 文件
由于 Rockchip 设备的大部分厂商都开放了他们的 u-boot 源码,所以可以比较方便地从厂商的源码库中获取到相关的 u-boot 源码,然后进行编译。同时一些开源大佬们也分享了很多更易使用的 u-boot 编译脚本,下面以几个实例介绍几种编译方法。
12.11.2.1 如何使用 Radxa 的 u-boot 制作脚本
以编译 Rock5b(rk3588) 为例。
1 | |
通过在 radxa/build 源码的 board_configs.sh 和 mk-uboot.sh 里添加更多选项,可以编译其他设备的 u-boot 文件,例如我编译 Beelink-IPC-R(rk3588) 设备的使用方法。
12.11.2.2 如何使用 cm9vdA 的 u-boot 制作脚本
cm9vdA 在他的 cm9vdA/build-linux 开源项目里提供了编译 u-boot 和 kernel 的脚本和使用方法,我在一些 Rockchip 设备的 u-boot 编译中使用了他的项目并进行了过程记录,摘录部分以供参考。
- 编译 Lenovo-Leez-P710(rk3399) 设备的 u-boot:Link
- 编译 DLFR100(rk3399) 设备的 u-boot:Link
- 编译 ZYSJ(rk3399) 设备的 u-boot:Link
12.12 内存大小识别错误
如果内存大小识别不正确(4G内存识别为1-2G是不正常,识别为3.7G是正常),可以尝试手动复制一份 /boot/UBOOT_OVERLOAD 文件(注意是复制一份,不要改名,改名后安装与更新等操作后将无法启动),在 USB 中使用时另存为 /boot/u-boot.ext,在 eMMC 中使用时另存为 /boot/u-boot.emmc。
除了想尝试解决内存的问题外,不要手动复制 u-boot 文件,添加不正确会导致无法启动以及出现各种问题。
12.13 如何反编译 dtb 文件
有些新设备不在目前的支持列表(或有变异体),可以通过反编译,调整相关参数进行尝试。
1 | |
12.14 如何修改 cmdline 设置
在 Amlogic 设备中,可以在 /boot/uEnv.txt 文件中进行添加/修改/删除等设置。在 Rockchip 和 Allwinner 设备中在 /boot/armbianEnv.txt 文件中进行设置(添加至 extraargs 或 extraboardargs 参数里)。使用 /boot/extlinux/extlinux.conf 的设备在这个文件里配置。每次更改后要重启才能生效。
比如
Home Assistant Supervisor应用只支持docker cgroup v1版本,而目前 docker 默认安装的都是最新的 v2 版本。如需切换至 v1 版本,可以在 cmdline 中添加systemd.unified_cgroup_hierarchy=0参数设置,重启后就可以切换至docker cgroup v1版本。通过在 cmdline 中添加
max_loop=128设置,可以调整允许的 loop 挂载数量。通过在 cmdline 中添加
usbcore.usbfs_memory_mb=1024设置,可以永久将 USBFS 内存缓冲区从默认的16 mb改为更大(cat /sys/module/usbcore/parameters/usbfs_memory_mb),提升 USB 传输大文件的能力。通过在 cmdline 中添加
usbcore.usb3_disable=1设置,可以禁用 USB 3.0 的所有设备。通过在 cmdline 中添加
extraargs=video=HDMI-A-1:1920x1080@60设置,可以将视频显示模式强制为 1080p。
12.15 如何添加新的支持设备
为一个设备构建 Armbian 系统,需要用到 设备配置文件、系统文件、u-boot 文件、流程控制文件 共 4 部分,具体添加方法介绍如下:
12.15.1 添加设备配置文件
在配置文件 /etc/model_database.conf 里面,根据设备的测试支持情况,添加对应的配置信息。其中 BUILD 的值是 yes 的是默认构建的部分设备,对应的 BOARD 值 必须唯一,这些盒子可以直接使用默认构建的 Armbian 系统。
默认值是 no 的没有打包,这些设备使用时需要下载相同 FAMILY 的 Armbian 系统,在写入 USB 后,可以在电脑上打开 USB 中的 boot 分区,修改 /boot/uEnv.txt 文件中 FDT 的 dtb 名称,适配列表中的其他设备。
12.15.2 添加系统文件
通用文件放在:build-armbian/armbian-files/common-files 目录下,各平台通用。
平台文件分别放在 build-armbian/armbian-files/platform-files/<platform> 目录下,Amlogic,Rockchip 和 Allwinner 分别共用各自平台的文件,其中 bootfs 目录下是 /boot 分区的文件,rootfs 目录下的是 Armbian 系统文件。
如果个别设备有特殊差异化设置需求,在 build-armbian/armbian-files/different-files 目录下添加以 BOARD 命名的独立目录,根据需要建立 bootfs 目录添加系统 /boot 分区下的相关文件,根据需要建立 rootfs 目录添加系统文件。各文件夹命名以 Armbian 系统中的实际路径为准。用于添加新文件,或覆盖从通用文件和平台文件中添加的同名文件。
12.15.3 添加 u-boot 文件
Amlogic 系列的设备,共用 bootloader 文件和 u-boot 文件,如果有新增的文件,分别放入对应的目录。其中的 bootloader 文件在系统构建时会自动添加至 Armbian 系统的 /usr/lib/u-boot 目录,u-boot 文件会自动添加至 /boot 目录。
Rockchip 和 Allwinner 系列的设备,为每个设备添加以 BOARD 命名的独立 u-boot 文件目录,对应的系列文件放在此目录中。
构建 Armbian 镜像时,这些 u-boot 文件将根据 /etc/model_database.conf 中的配置,由 rebuild 脚本写入对应的 Armbian 镜像文件中。
对于能够使用标准 U-Boot 文件的设备,我们优先推荐您直接使用。然而,部分设备可能无法编译或获取到适用的 U-Boot。如果这类设备上已经可以正常运行 Ubuntu 等其他 Linux 系统,您可以尝试一种保留与引导相关的关键分区,来安装 Armbian 或 OpenWrt 的方法。通常,需要保留的关键分区包括 bootloader、reserved 和 env。
这些分区也可以备份出来,然后在制作新的 Armbian 或 OpenWrt 镜像时,将这些备份好的分区数据写回到新镜像的相应位置。这种包含原系统引导分区的新镜像制作完成后,可以直接使用 dd 命令将整个镜像写入 eMMC,也可以使用相应系统的内置工具进行安装,例如 Armbian 的 armbian-install 命令,或 OpenWrt 的 晶晨宝盒 插件。
目前使用这种方法的设备有 oes(a311d),oes-plus(s922x),oec-turbo(rk3566),下面我们以 oes(a311d) 设备为例,具体说明操作流程。
12.15.3.1 查看分区信息布局情况
1 | |
12.15.3.2 备份关键分区
1 | |
备份的文件放在 u-boot 仓库对应的目录 u-boot/amlogic/bootloader/a311d-oes 里面。
细心的你是否发现了 reserved 分区有 64MB 大小,为什么我们只备份了 8MB 的大小呢?这是因为在 oes(a311d) 设备上,reserved 分区的前 8MB 是关键数据,后续的 56MB 是空白的,可以不备份。具体查看方法:
1 | |
分析输出结果,最后一个包含非零数据的行的地址是 0071fff0。从地址 00720000 开始,所有内容都变成了 00(零)。hexdump 工具使用 (*) 来表示重复的行,这意味着从 00720000 一直到 00800000 (即8MB的末尾) 都是零。把效数据地址 0x00720000 换算成十进制是 7,471,104 字节,也就是 7471104 / 1024 / 1024 = 7.125 MB 大小,所以我们取个整备份 8MB 即可。另外 env 分区也是只有前面 80KB 是有效数据,后面都是空白的,所以我们只备份了 1MB 的内容。
12.15.3.3 添加特殊分区写入文件
具体的实现细节,可以参考文件 /etc/armbian-board-release.conf 中定义的 write_board_bootloader 函数。该函数会在镜像重构(rebuild)过程中被调用。此外,该配置文件也是一个功能强大的设备定制中心。您不仅可以通过 skip_mb="700" 等参数来精确控制镜像分区的布局与大小,还可以添加自定义脚本,以实现对内核或其他系统文件的特殊处理。以后所有针对特定设备的高级定制化操作都将集中在此文件中进行统一管理,从而确保配置的清晰、高效与便捷。
12.15.4 添加流程控制文件
在 yml 工作流控制文件 的 armbian_board 中添加对应的 BOARD 选项,支持在 github.com 的 Actions 中进行使用。
12.16 如何解决写入 eMMC 时 I/O 错误的问题
有些设备可以从 USB/SD/TF 正常启动 Armbian 使用,但是写入 eMMC 时会报 I/O 写入错误,例如 Issues 中的案例,报错内容如下:
1 | |
这种情况下可以调整所使用的 dtb 的工作模式速度和频率,来稳定对存储的读写支持。使用 sdr 模式时,频率是速度的 2 倍,使用 ddr 模式时,频率等于速度。如下:
1 | |
以内核源码的 dts 文件中的代码片段举例:
1 | |
一般情况下,把 &sd_emmc_c 的频率由 max-frequency = <200000000>; 下调为 max-frequency = <100000000>; 即可解决问题。如果不行可继续下调到 50000000 进行测试,并通过调整 &sd_emmc_b 来对 USB/SD/TF 进行设置,也可以使用 sd-uhs-sdr 进行限速。你可以通过修改 dts 文件并 编译 得到测试文件,也可以通过 12.13 节 中介绍的方法对已有的 dtb 文件进行反编译修改生成测试文件。反编译 dtb 文件修改时使用十六进制的值,其中十进制的 200000000 对应的十六进制为 0xbebc200,十进制的 100000000 对应的十六进制为 0x5f5e100,十进制的 50000000 对应的十六进制为 0x2faf080,十进制的 25000000 对应的十六进制为 0x17d7840。
除了通过系统软件层来解决,还可以发挥 钞能力 和 动手能力 解决。
12.17 如何解决 Bullseye 版本没有声音的问题
声音问题的错误日志信息:
1 | |
请参考 Bullseye NO Sound 中的方法进行设置。
1 | |
重启 Armbian 测试。如果声音仍然不工作,可能是因为你的盒子用的是旧的 conf 对应的声音输出路线,需要在 /usr/bin/g12_sound.sh 里面注释掉 L137-L142 对应的新配置(主要是给 G12B 用的,也就是 S922X,旧的 G12A/S905X2 之前,以及基于 G12A 的 SM1/S905X3 大部分用不来),然后取消 L130-L134 对应的旧配置的注释。
12.18 如何编译 boot.scr 文件
在 Armbian 系统中的 /boot 目录下,boot.scr 是用于引导系统的文件。boot.scr 是 boot.cmd 的编译文件。boot.cmd 是 boot.scr 的源码文件。可以通过修改 boot.cmd 文件来修改 boot.scr. 文件,然后通过 mkimage 命令编译成 boot.scr 文件。
这两个文件一般不需要修改,如果有调整需求,可以参考以下方法。
1 | |
12.19 如何开启远程桌面和修改默认端口
在软件中心 armbian-software 里选择 201 可以安装桌面,在安装桌面时会询问是否开启远程桌面,输入 y 即可开启。远程桌面的默认端口是 3389,可以根据需要自定义使用其他端口:
1 | |