Difference between revisions of "Getting Started with Alpine-Linux/zh"
(updated by API) |
(updated by API) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Getting Started with Alpine-Linux|English]] | [[Getting Started with Alpine-Linux|English]] | ||
− | ==Alpine | + | ==Alpine Linux 系统的简单介绍== |
− | + | Alpine Linux 是一个轻量级、基于 musl libc 和 busybox 的 Linux 发行版,专为安全性、简洁性和高效性设计。它的核心非常小巧,仅包含最基本的功能,适合嵌入式设备、容器(如 Docker)以及其他资源受限的应用场景。Alpine 的包管理器 apk 提供快速、简单的包安装和更新,支持广泛的软件包。<br /><br /> | |
− | + | 友善电子根据 Alpine Linux 系统的特点,提供了基于 GitHub Actions 构建的 Alpine Linux 系统镜像。用户可以直接下载并进行测试使用,也可以通过 fork 仓库,根据自身需求灵活定制系统。 | |
− | + | ||
− | + | ||
==支持的平台== | ==支持的平台== | ||
− | * RK3528 | + | * RK3328<br /> |
− | * RK3566 | + | * RK3399<br /> |
+ | * RK3528<br /> | ||
+ | * RK3566<br /> | ||
* RK3568<br /> | * RK3568<br /> | ||
* RK3588<br /> | * RK3588<br /> | ||
− | == | + | ==下载系统映像== |
− | + | 你可以从这里下载到针对友善电子开发板,使用Github Action在线构建的Alpine Linux镜像:<br /> | |
− | === | + | https://github.com/friendlyarm/Actions-Alpine-Linux<br /><br /> |
− | + | 用户根据所用开发板的CPU,选择下载适合的版本的镜像文件。<br /> | |
− | + | 镜像文件以CPU型号开头(例如rk3568,rk3588),文件名中的sd和eflasher代表文件的不同用途,其含义如下: <br /> | |
− | + | * '''sd''': 安装系统到TF卡时使用 | |
− | + | * '''eflasher''': 需要通过TF卡烧写系统到eMMC时使用 | |
− | + | ==安装Alpine Linux== | |
− | </ | + | ===通过TF卡运行系统=== |
− | + | 下载带 "-sd-" 字样的镜像文件,使用你熟悉的写卡工具将镜像文件写入TF卡,然后将TF卡插入开发板,上电启动开发板即可启动Alpine Linux系统。 | |
− | / | + | ===烧写系统到eMMC=== |
− | / | + | 下载带 "-eflasher-" 字样的镜像文件,使用你熟悉的写卡工具将镜像文件写入TF卡,然后将TF卡插入开发板,上电启动开发板,会自动烧写系统到eMMC,烧写完成后,拨出TF卡会自动重启并进入eMMC中的Alpine Linux系统。<br /> |
− | / | + | 如果有连接HDMI显示器, 可通过图形界面观察烧写进度, 也可以通过板载LED灯来掌握烧写进度,以NanoPi-R5S/NanoPi-R3S/NanoPi-R5C为例,LED的行为如下:<br /> |
− | + | <table style="border: 1px solid black; border-collapse: collapse;"> | |
− | + | <tr style="border: 1px solid black; border-collapse: collapse;" class="header"> | |
− | + | <th style="border: 1px solid black; border-collapse: collapse;"><p>进度</p></th> | |
− | < | + | <th style="border: 1px solid black; border-collapse: collapse;"><p>SYS灯 (红灯)</p></th> |
− | + | <th style="border: 1px solid black; border-collapse: collapse;"><p>LAN灯(绿灯)</p></th> | |
− | </ | + | <th style="border: 1px solid black; border-collapse: collapse;"><p>WAN灯(绿灯)</p></th> |
− | + | </tr> | |
− | < | + | <tr style="border: 1px solid black; border-collapse: collapse;" class="odd"> |
− | + | <td style="border: 1px solid black; border-collapse: collapse;"><p>上电开机</p></td> | |
− | </ | + | <td style="border: 1px solid black; border-collapse: collapse;"><p>长亮</p></td> |
− | + | <td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td> | |
− | = | + | <td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td> |
− | + | </tr> | |
+ | <tr style="border: 1px solid black; border-collapse: collapse;" class="even"> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>系统启动</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>慢闪</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td> | ||
+ | </tr> | ||
+ | <tr style="border: 1px solid black; border-collapse: collapse;" class="odd"> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>正在烧写</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>快闪</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td> | ||
+ | </tr> | ||
+ | <tr style="border: 1px solid black; border-collapse: collapse;" class="even"> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>烧写完成</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>慢闪</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>长亮</p></td> | ||
+ | <td style="border: 1px solid black; border-collapse: collapse;"><p>长亮</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | ==登录Alpine Linux== | ||
默认帐号: <br /> | 默认帐号: <br /> | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 41: | Line 61: | ||
密码: fa | 密码: fa | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 有如下三种方法登录Alpine Linux: | |
− | + | * 串口:连接串口终端,使用如下设置: | |
− | + | {| class="wikitable" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | {| class="wikitable" | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
− | | | + | | Baud rate |
+ | | 1500000 | ||
|- | |- | ||
− | | | + | | Data bit |
+ | | 8 | ||
|- | |- | ||
− | | | + | | Parity check |
+ | | None | ||
|- | |- | ||
− | | | + | | Stop bit |
+ | | 1 | ||
|- | |- | ||
− | | | + | | Flow control |
+ | | None | ||
|} | |} | ||
− | * | + | * HDMI:通过显示器连接,直接登录到 Alpine 系统。 |
− | * | + | * SSH:通过网络连接到设备后,可通过 SSH 登录。默认情况下,Alpine Linux 只配置了 eth0 网口。如果开发板有多个网口,请将网线连接到 WAN 口(某些开发板可能会标记为数字,请选择数字最小的网口)。 |
− | + | ==初始化设置== | |
− | == | + | 首次启动时,使用 setup-alpine 命令进行基本的系统设置,配置网络、时区、主机名等信息: |
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | setup-alpine | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ==安装软件包== | |
− | + | Alpine 使用 apk 包管理器来安装软件包。你可以使用以下命令安装所需的软件包: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | apk add <package_name> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 例如,安装 vim 编辑器: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | apk update | |
− | + | apk add vim | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | 你可以通过修改 /etc/apk/repositories 文件配置软件包的源地址。 |
− | + | ==定制属于自已的 Alpine Linux 系统== | |
− | === | + | ===方法1: Fork Github Action项目=== |
+ | * Fork 项目:点击以下链接,并在右上角点击 “Fork” 按钮,将项目复制到你的 GitHub 账户:https://github.com/friendlyarm/Actions-Alpine-Linux | ||
+ | * 修改脚本文件 scripts/setup-alpine.sh,该文件用于初始化 Alpine Linux 系统。你可以通过修改此文件来自定义你的 Alpine 系统 | ||
+ | * 修改仓库权限:进入仓库的 Settings -> Actions -> General -> Workflow permissions,将选项修改为 “Read and write permissions” | ||
+ | * 触发 GitHub Actions 构建:默认情况下,点击 Star 即可触发构建。你可以通过 GitHub 仪表盘查看构建进度和结果 | ||
+ | ===方法2: 使用原材料重新打包=== | ||
+ | 访问 https://github.com/friendlyarm/Actions-Alpine-Linux/releases 下载文件 image-assets-rkXXXX.tgz(其中 XXXX 替换为具体的 CPU 型号)。该文件包含了文件系统及各个分区的镜像文件,用户可以对其进行简单修改,并重新打包成可烧录的固件。例如,重新打包 rk3528 平台的固件:<br /> | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | git clone https://github.com/friendlyarm/sd-fuse_rk3528 -b kernel-6.1.y | |
− | + | tar xzf image-assets-rk3528.tgz -C sd-fuse_rk3528 --strip-components=1 | |
− | root | + | cd sd-fuse_rk3528 |
− | + | # modify rootfs | |
− | + | ./tools/extract-rootfs-tar.sh rootfs.tgz | |
− | + | echo "hello" > rootfs/root/welcome.txt | |
− | + | # re-package rootfs.img | |
− | + | ./build-rootfs-img.sh rootfs alpine-linux-arm64 | |
− | + | # download kernel source code | |
+ | git clone https://github.com/friendlyarm/kernel-rockchip -b nanopi6-v6.1.y kernel --depth 1 | ||
+ | cat > kernel/arch/arm64/configs/custom.config<<EOL | ||
+ | CONFIG_ANDROID_LOW_MEMORY_KILLER=n | ||
+ | CONFIG_ANDROID_BINDER_IPC=y | ||
+ | CONFIG_ANDROID_BINDERFS=y | ||
+ | CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder" | ||
+ | EOL | ||
+ | # check default defconfig | ||
+ | grep "KCFG:=" ./build-kernel.sh | ||
+ | # re-build kernel with customize config | ||
+ | KCFG="nanopi5_linux_defconfig kvm.config custom.config" kernel_src=kernel ./build-kernel.sh alpine-linux-arm64 | ||
+ | # re-package sdraw image | ||
+ | ./mk-sd-image.sh alpine-linux-arm64 | ||
+ | # re-package sd-to-emmc image (Select Y when asking whether to download the eflasher file.) | ||
+ | ./mk-emmc-image.sh alpine-linux-arm64 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | ==Alpine Linux官方文档== | ||
+ | 更多Alpine Linux的使用指南,请参考官方文档:<br /> | ||
+ | https://wiki.alpinelinux.org/ |
Latest revision as of 05:58, 14 March 2025
Contents
[hide]1 Alpine Linux 系统的简单介绍
Alpine Linux 是一个轻量级、基于 musl libc 和 busybox 的 Linux 发行版,专为安全性、简洁性和高效性设计。它的核心非常小巧,仅包含最基本的功能,适合嵌入式设备、容器(如 Docker)以及其他资源受限的应用场景。Alpine 的包管理器 apk 提供快速、简单的包安装和更新,支持广泛的软件包。
友善电子根据 Alpine Linux 系统的特点,提供了基于 GitHub Actions 构建的 Alpine Linux 系统镜像。用户可以直接下载并进行测试使用,也可以通过 fork 仓库,根据自身需求灵活定制系统。
2 支持的平台
- RK3328
- RK3399
- RK3528
- RK3566
- RK3568
- RK3588
3 下载系统映像
你可以从这里下载到针对友善电子开发板,使用Github Action在线构建的Alpine Linux镜像:
https://github.com/friendlyarm/Actions-Alpine-Linux
用户根据所用开发板的CPU,选择下载适合的版本的镜像文件。
镜像文件以CPU型号开头(例如rk3568,rk3588),文件名中的sd和eflasher代表文件的不同用途,其含义如下:
- sd: 安装系统到TF卡时使用
- eflasher: 需要通过TF卡烧写系统到eMMC时使用
4 安装Alpine Linux
4.1 通过TF卡运行系统
下载带 "-sd-" 字样的镜像文件,使用你熟悉的写卡工具将镜像文件写入TF卡,然后将TF卡插入开发板,上电启动开发板即可启动Alpine Linux系统。
4.2 烧写系统到eMMC
下载带 "-eflasher-" 字样的镜像文件,使用你熟悉的写卡工具将镜像文件写入TF卡,然后将TF卡插入开发板,上电启动开发板,会自动烧写系统到eMMC,烧写完成后,拨出TF卡会自动重启并进入eMMC中的Alpine Linux系统。
如果有连接HDMI显示器, 可通过图形界面观察烧写进度, 也可以通过板载LED灯来掌握烧写进度,以NanoPi-R5S/NanoPi-R3S/NanoPi-R5C为例,LED的行为如下:
进度 |
SYS灯 (红灯) |
LAN灯(绿灯) |
WAN灯(绿灯) |
---|---|---|---|
上电开机 |
长亮 |
灭 |
灭 |
系统启动 |
慢闪 |
灭 |
灭 |
正在烧写 |
快闪 |
灭 |
灭 |
烧写完成 |
慢闪 |
长亮 |
长亮 |
5 登录Alpine Linux
默认帐号:
用户名: root 密码: fa
有如下三种方法登录Alpine Linux:
- 串口:连接串口终端,使用如下设置:
Baud rate | 1500000 |
Data bit | 8 |
Parity check | None |
Stop bit | 1 |
Flow control | None |
- HDMI:通过显示器连接,直接登录到 Alpine 系统。
- SSH:通过网络连接到设备后,可通过 SSH 登录。默认情况下,Alpine Linux 只配置了 eth0 网口。如果开发板有多个网口,请将网线连接到 WAN 口(某些开发板可能会标记为数字,请选择数字最小的网口)。
6 初始化设置
首次启动时,使用 setup-alpine 命令进行基本的系统设置,配置网络、时区、主机名等信息:
setup-alpine
7 安装软件包
Alpine 使用 apk 包管理器来安装软件包。你可以使用以下命令安装所需的软件包:
apk add <package_name>
例如,安装 vim 编辑器:
apk update
apk add vim
你可以通过修改 /etc/apk/repositories 文件配置软件包的源地址。
8 定制属于自已的 Alpine Linux 系统
8.1 方法1: Fork Github Action项目
- Fork 项目:点击以下链接,并在右上角点击 “Fork” 按钮,将项目复制到你的 GitHub 账户:https://github.com/friendlyarm/Actions-Alpine-Linux
- 修改脚本文件 scripts/setup-alpine.sh,该文件用于初始化 Alpine Linux 系统。你可以通过修改此文件来自定义你的 Alpine 系统
- 修改仓库权限:进入仓库的 Settings -> Actions -> General -> Workflow permissions,将选项修改为 “Read and write permissions”
- 触发 GitHub Actions 构建:默认情况下,点击 Star 即可触发构建。你可以通过 GitHub 仪表盘查看构建进度和结果
8.2 方法2: 使用原材料重新打包
访问 https://github.com/friendlyarm/Actions-Alpine-Linux/releases 下载文件 image-assets-rkXXXX.tgz(其中 XXXX 替换为具体的 CPU 型号)。该文件包含了文件系统及各个分区的镜像文件,用户可以对其进行简单修改,并重新打包成可烧录的固件。例如,重新打包 rk3528 平台的固件:
git clone https://github.com/friendlyarm/sd-fuse_rk3528 -b kernel-6.1.y tar xzf image-assets-rk3528.tgz -C sd-fuse_rk3528 --strip-components=1 cd sd-fuse_rk3528 # modify rootfs ./tools/extract-rootfs-tar.sh rootfs.tgz echo "hello" > rootfs/root/welcome.txt # re-package rootfs.img ./build-rootfs-img.sh rootfs alpine-linux-arm64 # download kernel source code git clone https://github.com/friendlyarm/kernel-rockchip -b nanopi6-v6.1.y kernel --depth 1 cat > kernel/arch/arm64/configs/custom.config<<EOL CONFIG_ANDROID_LOW_MEMORY_KILLER=n CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDERFS=y CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder" EOL # check default defconfig grep "KCFG:=" ./build-kernel.sh # re-build kernel with customize config KCFG="nanopi5_linux_defconfig kvm.config custom.config" kernel_src=kernel ./build-kernel.sh alpine-linux-arm64 # re-package sdraw image ./mk-sd-image.sh alpine-linux-arm64 # re-package sd-to-emmc image (Select Y when asking whether to download the eflasher file.) ./mk-emmc-image.sh alpine-linux-arm64
9 Alpine Linux官方文档
更多Alpine Linux的使用指南,请参考官方文档:
https://wiki.alpinelinux.org/