[N1盒子]斐讯N1刷入ArchLinuxARM容器,N1盒子启动运行ArchLinuxARM容器系统

2021-08-13
0评论
/
974阅读
爱搜啊

之前教大家斐讯 N1 如何运行 Linux,当时用的发行版是 Armbian,由于它有镜像文件,操作起来也比较简单。

不过 Armbian 只有 Debian 和 Ubuntu 两个版本可以选择,虽然 Ubuntu 可以满足大多数人的需求,不过还是有些人喜欢像 ArchLinux 这样的滚动发行版。

让 N1 运行其他的 Linux 发行版并不是什么难事,支持 ARM 的发行版都能在 N1 运行。这篇文章就以 ArchLinuxARM 为基础,教大家如何让 N1 运行其他 Linux 发行版。

虽然我会使用一些 ArchLinux 独有的东西,比如 ArchLinux 的包管理器,不过只要理解了其中的原理,运行其他发行版并不是什么难事。

斐讯 N1 运行 ArchLinuxARM准备工作

你需要在 Linux 系统完成以下操作,虚拟机或物理机都可以,虚拟机需要可以直接访问你的 U 盘,不是共享文件的那种访问。

系统架构需要是 x86_64 或 aarch64,执行uname -m查看系统架构。

需要有 Docker,因为要用到 ArchLinux(ARM) 的容器。

基础的 Linux 和 ArchLinux(ARM) 知识 ,我并不会教你 ArchLinux(ARM) 怎么用,以及装好之后要做些什么。

U 盘分区和格式化

执行

sudo fdisk -l

查看 U 盘的设备路径,如果你的 U 盘是刚插入的,通常是最后一个设备。如下图示例:

斐讯N1刷入ArchLinuxARM容器

记得替换以下命令的${devPath}为U盘的设备路径

清空U盘分区表:

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync

进入 fdisk 交互界面:

sudo fdisk ${devPath}

1、输入o创建 DOS 分区表

2、输入n创建新分区,提示Partition type按回车,提示Partition number按回车,提示First sector按回车,提示Last sector输入+256M并按回车。

3、输入t修改第一个分区类型,提示Hex code输入c并按回车。

4、输入n创建新分区,提示Partition type按回车,提示Partition number按回车,提示First sector按回车,提示Last sector按回车。

5、输入p查看分区表,如果输出类似下图,输入w保存分区表并退出。分区表

6、执行

sudo mkfs.fat -F 32 ${part1Path}

格式化第一个分区为 FAT32,替换${part1Path}为第一个分区路径。示例:sudo mkfs.fat -F 32 /dev/sdd1

7、执行

sudo mkfs.ext4 ${part2Path}

格式化第二个分区为 ext4,替换${part2Path}为第二个分区路径。示例:sudo mkfs.ext4 /dev/sdd2

写入系统文件

下载 ArchLinuxARM 系统文件:

curl -L -o ~/ArchLinuxARM-aarch64-latest.tar.gz https://mirrors.163.com/archlinuxarm/os/ArchLinuxARM-aarch64-latest.tar.gz

下载 N1 引导文件:

curl -o ~/n1-boot.tar.gz https://cdn.mivm.cn/www.mivm.cn/archives/phicomm-n1-archlinuxarm/boot.tar.gz

创建根分区挂载点:

sudo mkdir /tmp/archlinux-arm

挂载第二个分区:

sudo mount ${part2Path} /tmp/archlinux-arm

创建启动分区挂载点:

sudo mkdir /tmp/archlinux-arm/boot

挂载第一个分区:

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync0

解压系统文件到根分区:

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync1

解压引导文件到启动分区:

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync2

编辑/tmp/archlinux-arm/etc/fstab文件,添加以下内容:

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync3

分别替换${part1UUID}${part2UUID}为第一个分区和第二个分区的 UUID,可以使用sudo blkid查看所有分区的 UUID。

执行

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync4

指定内核引导参数的根分区,将${part2UUID}替换为第二个分区的 UUID

安装内核

ArchLinuxARM 默认附带的内核不适用于 N1,所以要安装新的内核。

内核安装操作可以手动完成,不过为了方便,推荐使用 ArchLinux(ARM) 的容器 chroot 到U盘的系统进行安装。

内核下载地址:https://share.weiyun.com/9oPFDBtB

备用地址:http://dl.iqqoz.com/f/1397394-506205636-6e1028

备用地址: https://pan.baidu.com/s/1JIt_dN3IhuBS7h5yVS7tyw提取码: c94k

一般只需要下载linux-amlogic-xxx-aarch64.pkg.tar.zst就够了,除非有编译内核模块的需求才需要linux-amlogic-headers-xxx-aarch64.pkg.tar.zst。这些是 ArchLinux 的软件包,你也可以提取软件包的内核文件供其他系统使用。内核修改自 ArchLinuxARM 的 linux-aarch64 软件包,已应用 N1 负载异常修复补丁。内核编译文件可在我的 Github 找到。

下载完成后复制软件包到/tmp/archlinux-arm/

如果你的系统架构是 x86_64,需要用 QEMU 模拟运行 aarch64 架构的程序。

执行括号内与你系统架构一致的命令

注册 QEMU 处理程序 (x86_64) :

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync5

运行 ArchLinux 容器 (x86_64) :

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync6

运行 ArchLinuxARM 容器 (aarch64) :

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync7

以下命令均在容器内运行

安装 Arch 安装脚本:

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync8

切换到U盘的系统:

sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync9

初始化 pacman 密钥:

sudo fdisk ${devPath}0

更新软件包数据库:

sudo fdisk ${devPath}1

安装内核软件包:

sudo fdisk ${devPath}2

删除内核软件包文件:

sudo fdisk ${devPath}3

退出U盘的系统环境:

sudo fdisk ${devPath}4

退出容器环境:

sudo fdisk ${devPath}4

现在可以卸载分区并移除U盘,插入 N1 进行测试了,如果没有意外,应该可以成功进入系统。

默认 root 用户密码是root

还有一个名为 alarm 的普通用户,默认密码是alarm

默认已启用 SSH

默认使用 systemd-netword 管理网络,为所有网卡开启 DHCP。


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2021-08-13发布