Difference between revisions of "Getting Started with Alpine-Linux/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
 
(updated by API)
Line 1: Line 1:
 
[[Getting Started with Alpine-Linux|English]]
 
[[Getting Started with Alpine-Linux|English]]
==Alpine-Linux版本信息==
+
==Alpine Linux 系统的简单介绍==
* OS: Debian 12<br />
+
Alpine Linux 是一个轻量级、基于 musl libc 和 busybox 的 Linux 发行版,专为安全性、简洁性和高效性设计。它的核心非常小巧,仅包含最基本的功能,适合嵌入式设备、容器(如 Docker)以及其他资源受限的应用场景。Alpine 的包管理器 apk 提供快速、简单的包安装和更新,支持广泛的软件包。<br />
* Alpine-Linux: 8.2.7<br />
+
为方便友善电子开发板的用户使用Alpine Linux,我们提供了Github Action在线构建的Alpine Linux镜像,用户可以直接下载使用,亦可通过fork仓库按需定制。
==Alpine-Linux运行界面==
+
==支持的开发板==
[[File:Alpine-Linux-cn.png|600px]]
+
* RK3328<br />
==支持的平台==
+
* RK3399<br />
* RK3528 (单核)<br />
+
* RK3528<br />
* RK3566 (单核)<br />
+
* RK3566<br />
 
* RK3568<br />
 
* RK3568<br />
 
* RK3588<br />
 
* RK3588<br />
==IP地址==
+
==下载系统映像==
固定为 192.168.1.200,可参考如下方法更改:
+
你可以从这里下载到针对友善电子开发板,使用Github Action在线构建的Alpine Linux镜像:<br />
===系统启动后更改IP地址===
+
https://github.com/friendlyarm/Actions-Alpine-Linux<br />
例如你的网络网段是192.168.100,要设置成192.168.100.200的IP地址,可以用如下命令:
+
根据所用开发板的CPU选择适合的版本(如 rk3568, rk3588 等)并下载相应的镜像文件。<br />
<syntaxhighlight lang="bash">
+
文件名中的sd和eflasher代表文件的不同用途,其含义如下: <br />
rm -f /etc/firstuse
+
* '''sd''': 安装系统到TF卡时使用
sed -i 's/new_ip=.*/new_ip=192.168.100.200/' /etc/init.d/friendlyelec_firstuse.sh
+
* '''eflasher''': 需要通过TF卡烧写系统到eMMC时使用
reboot
+
==安装Alpine Linux==
</syntaxhighlight>
+
===通过TF卡运行系统===
如下配置文件会被改动:<br/>
+
下载带 "-sd-" 字样的镜像文件,使用你熟悉的写卡工具将镜像文件写入TF卡,然后将TF卡插入开发板,上电启动开发板即可启动Alpine Linux系统。
/etc/resolv.conf<br/>
+
===烧写系统到eMMC===
/etc/network/interfaces<br/>
+
下载带 "-eflasher-" 字样的镜像文件,使用你熟悉的写卡工具将镜像文件写入TF卡,然后将TF卡插入开发板,上电启动开发板,会自动烧写系统到eMMC,烧写完成后,拨出TF卡会自动重启并进入eMMC中的Alpine Linux系统。<br />
/etc/hosts<br/>
+
如果有连接HDMI显示器, 可通过图形界面观察烧写进度, 也可以通过板载LED灯来掌握烧写进度,以NanoPi-R5S/NanoPi-R3S/NanoPi-R5C为例,LED的行为如下:<br />
Alpine-Linux对主机名的设置比较严格,设置不正确会导致服务无法启动, 要特别留意。
+
<table style="border: 1px solid black; border-collapse: collapse;">
===安装系统前更改IP地址===
+
<tr style="border: 1px solid black; border-collapse: collapse;" class="header">
将烧录了eflasher固件的sd卡插入电脑,挂载sd卡的第一个分区,假设sd卡设备为/dev/sdX,挂载到/mnt,命令如下:
+
<th style="border: 1px solid black; border-collapse: collapse;"><p>进度</p></th>
<syntaxhighlight lang="bash">
+
<th style="border: 1px solid black; border-collapse: collapse;"><p>SYS灯 (红灯)</p></th>
mount /dev/sdX1 /mnt
+
<th style="border: 1px solid black; border-collapse: collapse;"><p>LAN灯(绿灯)</p></th>
</syntaxhighlight>
+
<th style="border: 1px solid black; border-collapse: collapse;"><p>WAN灯(绿灯)</p></th>
使用vi或其他编辑器打开文件 /mnt/Alpine-Linux-arm64/info.conf,追加以下一行内容, 再使用此sd卡烧写Alpine-Linux系统到eMMC:
+
</tr>
<syntaxhighlight lang="bash">
+
<tr style="border: 1px solid black; border-collapse: collapse;" class="odd">
bootargs-ext=Alpine-Linux_ip=192.168.100.200
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>上电开机</p></td>
</syntaxhighlight>
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>长亮</p></td>
上面的设置是把Alpine-Linux_ip=192.168.100.200保存到内核启动参数里,由/etc/init.d/friendlyelec_firstuse.sh脚本去读取并初始化网络设置。
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td>
==登录Alpine-Linux网页后台==
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td>
在网页浏览器输入 https://192.168.1.200:8006, 浏览器可能会弹出隐私错误的提示,点击 "高级",选择 "继续访问" 即可。<br />
+
</tr>
默认帐号: <br />
+
<tr style="border: 1px solid black; border-collapse: collapse;" class="even">
<syntaxhighlight lang="bash">
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>系统启动</p></td>
用户名: root
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>慢闪</p></td>
密码: fa
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td>
</syntaxhighlight>
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td>
普通用户:
+
</tr>
<syntaxhighlight lang="bash">
+
<tr style="border: 1px solid black; border-collapse: collapse;" class="odd">
用户名: pi
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>正在烧写</p></td>
密码: pi
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>快闪</p></td>
</syntaxhighlight>
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td>
本文在测试时使用root用户访问。
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>灭</p></td>
==通过ssh登录==
+
</tr>
<syntaxhighlight lang="bash">
+
<tr style="border: 1px solid black; border-collapse: collapse;" class="even">
ssh root@192.168.1.200
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>烧写完成</p></td>
</syntaxhighlight>
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>慢闪</p></td>
root用户的初始密码为fa, pi用户初始密码为pi
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>长亮</p></td>
==创建虚拟机==
+
<td style="border: 1px solid black; border-collapse: collapse;"><p>长亮</p></td>
仅支持EFI ACPI的虚拟机。
+
</tr>
===使用iso文件创建虚拟机===
+
</table>
本文以安装debian为例。<br />
+
先从debian官网下载live iso文件:[https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/ debian-12.7.0-arm64-netinst.iso],然后使用scp命令上传到开发板的对应目录, Windows用户可以使用WinScp软件上传:
+
<syntaxhighlight lang="bash">
+
scp debian-12.7.0-arm64-netinst.iso root@192.168.1.200:/var/lib/vz/template/iso/
+
</syntaxhighlight>
+
点击右上角 “创建虚拟机” 按钮,然后在向导界面上对虚拟机进行配置,重要的设置项如下,其余的使用默认值即可:
+
{| class="wikitable"
+
! Section !! Content !! Description
+
|-
+
| 常规 || '''名称''': 随意填写 ||
+
|-
+
| 操作系统 || '''EFI Storage''': local<br />'''ISO镜像''': debian-12.7.0-arm64-netinst.iso || 选择Debian安装所需的iso文件
+
|-
+
| 系统 || '''机型''': virt<br />'''BIOS''': OVMF (UEFI)<br />'''SCSI控制器''': VirtIO-SCSI ||
+
|-
+
| 磁盘 || '''存储''': local ||
+
|-
+
| CPU || '''核心''': 1 || 这里使用单核心
+
|-
+
| 内存 || '''内存(MiB)''': 512<br />'''最小内存(MiB)''': 512 || Memory allocation for the VM
+
|-
+
| 网络 || '''桥接''': wan<br />'''模型''': VirtIO (paravirtualized) || 可以选择wan和br-lan
+
|}
+
* 建议先使用单核的CPU配置完成系统的安装,再尝试更改成多核
+
* 需要注意的是,由于不支持异端架构,CPU大小核不能混用,要么全用大核,要么全用小核, 具体做法是明确指定虚拟机使用的核心,序号从0开始,比如某些CPU序号0-3是大核, 虚拟机要使用4个核心,就填写'''0,1,2,3'''
+
* 默认情况下系统已经创建好wan和br-lan两个网桥,虚拟机绑定到wan,则虚拟机和开发板处于同一网段,会从上游路由器分配IP地址 (本例中分配得到192.168.1.0/24网段的地址),虚拟机绑定网络到lan,则会从本机的dhcp server分配得到网段为192.168.2的IP地址
+
====启动虚拟机====
+
在左边导航区选择新创建的虚拟机,点击“控制台”,再点"Start Now"
+
===使用qcow2磁盘映像文件创建虚拟机===
+
下面演示使用命令行来创建虚拟机,将qcow2磁盘映像文件导入到虚拟机,  请将下面的example.qcow2替换成真实的文件名,当你在网上下载qcow2文件时,注意选用文件名含有aarch64和efi字样的版本:
+
<syntaxhighlight lang="bash">
+
# download 
+
wget https://github.com/xxx/yyy/releases/download/armv8/example.qcow2 -O example.qcow2
+
 
+
# create vm with id(200)
+
qm create 200 --name example --memory 1024 --net0 virtio,bridge=wan --bios ovmf --cores 1 --cpu host
+
 
+
# create EFI disk for id(200)
+
qm set 200 --bios ovmf
+
qm set 200 --efidisk0 local:1
+
qm set 200 --boot c --bootdisk scsi0
+
qm set 200 --scsihw virtio-scsi-pci
+
 
+
# import img file into vm
+
qm importdisk 200 example.qcow2 local
+
</syntaxhighlight>
+
回到界面,可以看到多了一个 “example“ 的虚拟机,<br />
+
选中它,点“硬件“,双击“未使用的磁盘”, 在弹出的对话框中更改如下选项:<br />
+
总线/设备:'''SCSI'''<br />
+
SCSI控制器: '''VirtIO SCSI'''<br />
+
最后点 “添加”<br />
+
回到管理界面,点 “控制台”, 点 “Star Now" 启动虚拟机<br />
+
显示 "Display output is not active" 时需要耐心等待。
+
==其他==
+
===增加Swap空间===
+
建议内存2G及以下机器进行该设置
+
<syntaxhighlight lang="bash">
+
dd if=/dev/zero of=/swapfile bs=1M count=4096
+
chmod 600 /swapfile
+
mkswap /swapfile
+
swapon /swapfile
+
echo "/swapfile none swap sw 0 0" >> /etc/fstab
+
</syntaxhighlight>
+
查看状态
+
<syntaxhighlight lang="bash">
+
swapon --show
+
free -h
+
</syntaxhighlight>
+
===切换国内软件源===
+
请参考 [https://mirrors.ustc.edu.cn/help/Alpine-Linux.html Alpine-Linux中文源]
+
===检查内核是否开启了KVM===
+
<syntaxhighlight lang="bash">
+
root@prox4nanopi:~# ls -l /dev/kvm
+
crw-rw---- 1 root kvm 10, 232 Oct 11 04:23 /dev/kvm
+
root@prox4nanopi:~# dmesg | grep kvm
+
[    7.796613] kvm [1]: IPA Size Limit: 40 bits
+
[    7.796627] kvm [1]: GICv3: no GICV resource entry
+
[    7.796631] kvm [1]: disabling GICv2 emulation
+
[    7.796642] kvm [1]: GIC system register CPU interface enabled
+
[    7.796755] kvm [1]: vgic interrupt IRQ9
+
[    7.796959] kvm [1]: VHE mode initialized successfully
+
</syntaxhighlight>
+

Revision as of 02:53, 14 March 2025

English

1 Alpine Linux 系统的简单介绍

Alpine Linux 是一个轻量级、基于 musl libc 和 busybox 的 Linux 发行版,专为安全性、简洁性和高效性设计。它的核心非常小巧,仅包含最基本的功能,适合嵌入式设备、容器(如 Docker)以及其他资源受限的应用场景。Alpine 的包管理器 apk 提供快速、简单的包安装和更新,支持广泛的软件包。
为方便友善电子开发板的用户使用Alpine Linux,我们提供了Github Action在线构建的Alpine Linux镜像,用户可以直接下载使用,亦可通过fork仓库按需定制。

2 支持的开发板

  • RK3328
  • RK3399
  • RK3528
  • RK3566
  • RK3568
  • RK3588

3 下载系统映像

你可以从这里下载到针对友善电子开发板,使用Github Action在线构建的Alpine Linux镜像:
https://github.com/friendlyarm/Actions-Alpine-Linux
根据所用开发板的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灯(绿灯)

上电开机

长亮

系统启动

慢闪

正在烧写

快闪

烧写完成

慢闪

长亮

长亮