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

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

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

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

准备工作

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

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

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

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

U 盘分区和格式化

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

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

清空U盘分区表:sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync

进入 fdisk 交互界面:sudo LANG=C fdisk ${devPath}

输入o创建 DOS 分区表

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

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

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

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

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

执行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 mount -o umask=0077 ${part1Path} /tmp/archlinux-arm/boot

解压系统文件到根分区:sudo bsdtar -xpf ~/ArchLinuxARM-aarch64-latest.tar.gz -C /tmp/archlinux-arm

解压引导文件到启动分区:sudo bsdtar -xpf ~/n1-boot.tar.gz -C /tmp/archlinux-arm/boot

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

UUID=${part2UUID} / ext4 rw,relatime 0 1

UUID=${part1UUID} /boot vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2

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

执行sudo sed -i 's/@{UUID}/${part2UUID}/' /tmp/archlinux-arm/boot/uEnv.txt指定内核引导参数的根分区,将${part2UUID}替换为第二个分区的 UUID。

安装内核

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

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

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

一般只需要下载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 docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

运行 ArchLinux 容器 (x86_64) :sudo docker run --rm --privileged -it -v /tmp/archlinux-arm:/tmp/archlinux-arm -w /root archlinux

运行 ArchLinuxARM 容器 (aarch64) :sudo docker run --rm --privileged -it -v /tmp/archlinux-arm:/tmp/archlinux-arm -w /root agners/archlinuxarm

以下命令均在容器内运行

安装 Arch 安装脚本:pacman -Sy --noconfirm arch-install-scripts

切换到U盘的系统:arch-chroot /tmp/archlinux-arm

初始化 pacman 密钥:pacman-key --init && pacman-key --populate archlinuxarm

更新软件包数据库:pacman -Sy

安装内核软件包:yes | pacman -U /linux-amlogic-*.pkg.tar.zst

删除内核软件包文件:rm -f /linux-amlogic-*.pkg.tar.zst

退出U盘的系统环境:exit

退出容器环境:exit

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

默认 root 用户密码是root

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

默认已启用 SSH

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

如果你有任何问题或不懂的地方,欢迎与我交流。

n1运行linux,斐讯 N1 运行 ArchLinuxARM相关推荐

  1. n1运行linux,斐讯N1折腾记:运行 Linux 及优化

    此教程同样适用于斐讯 P1 咳咳咳,上篇教程教大家给斐讯 N1 降级并且刷了官改系统,可以当作一个电视盒子和下载机来使用. 有些小伙伴可能不想把它当作电视盒子,就想把它当作 NAS 或者是服务器,但是 ...

  2. armbian n1 桌面_斐讯N1折腾记:运行 Linux 及优化 | 米V米

    最后更新时间:2019年03月25日 此教程同样适用于斐讯 P1 咳咳咳,上篇教程教大家给斐讯 N1 降级并且刷了官改系统,可以当作一个电视盒子和下载机来使用. 有些小伙伴可能不想把它当作电视盒子,就 ...

  3. n1 armbian php,斐讯N1盒子armbian 5.77蓝牙连接详细步骤斐讯N1刷入armbian 5.77写入emmc...

    斐讯N1盒子Armbian 5.77蓝牙连接详细步骤 1. 首先下载Armbian-5.77镜像包,因为做服务器用,所以我选的是debian无桌面版.斐讯N1刷入armbian 5.77写入emmc ...

  4. 斐讯路由器设置linux,斐讯N1盒子如何做主路由器的详细教程

    以下内容来自于:一个大草包 一.安装和配置 本帖测试基于 Armbian_5.67_Aml-s9xxx_Ubuntu_bionic_default_4.19.7_20181228 这个镜像 下载地址: ...

  5. 斐讯N1 – 完美刷机Armbian教程

    斐讯N1 – 完美刷机Armbian教程 原文 :鱼儿的博客 为什么买斐讯N1? 购买斐讯N1 降级关键分区 制作Armbian U盘 进入U盘armbian 刷armbian到emmc 坑爹问题-1 ...

  6. linux树莓派和n1,树莓派 斐讯N1 搭建NFS

    什么是NFS? 1台Linux主机的磁盘可以通过网络挂载到其他Linux主机上,实现云盘效果. NFS是一套软件和协议,同时也是一种文件系统,可以直接把远程的磁盘挂载到本地使用. 我用NFS做什么? ...

  7. 斐讯n1 linux升级内核,斐讯N1盒子OpenWRT固件升级全记录

    斐讯N1盒子OpenWRT固件升级全记录 2021-02-18 17:10:02 178点赞 1890收藏 208评论 前言 hello~大家好!时隔一周的时间,我又来分享我的折腾日记了.过年这段时间 ...

  8. debian重启ssh服务_秒变万能家庭服务器!斐讯N1 armbian安装指南

    一直以来,我都想配置一台小型服务器放在家里玩一玩,但是x86架构的主机体积大功耗高,价格也不低.而树莓派的话,价格便宜一点,性能对于轻度使用也基本够用.可是树莓派仍然要两三百块钱,感觉还是有点贵.于是 ...

  9. armbian 斐讯n1_树莓派/斐讯N1/ARMBIAN/安装HOME ASSISTANT

    1.树莓派更换国内apt源(可选,中国大陆必须) sudo su echo 'deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ st ...

最新文章

  1. 360前端星学习笔记-深入CSS
  2. Calendar的获取变化日期
  3. android打包规范包含第三方库aar,Android Studio 打包AAR和第三方静态库(示例代码)
  4. MySQL Replication Error 处理一例
  5. Kubernentes
  6. 01、微信公众平台简介及资料文档
  7. 为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量。为什么栈的大小有限制?
  8. L1-02 聪明的高斯 (5 分)
  9. 《算法图解》——狄克斯特拉算法
  10. 【字节跳动】数据分析师面经
  11. vue自定义组件总结
  12. netty原理之蔚蓝天空
  13. 打开conda环境报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x9a in position 317: illegal multibyt
  14. 实现营业执照注册号校验
  15. android 默认输入法,踩坑之Android默认输入法配置
  16. 全网最全软件测试面试题含答案(性能测试+功能测试+接口测试+自动化测试)
  17. scala中case的用法
  18. 手把手教你 Tableau 绘制堆积柱状图(二)
  19. 如何检查和处理“ ARP 欺骗”木马的方法
  20. 运动目标检测(GMM、Code Book、Vibe)

热门文章

  1. 地表最强mysql命令行连接工具mycli
  2. java开发工作经历_开发人员在寻找第二份工作时会经历什么
  3. 打破双亲委派么,怎么打破_打破它。 然后告诉我们您是如何打破它的。
  4. 停在Z的危险:用苏斯博士的话,为什么孩子应该编码
  5. SonarQube搭建和使用教程
  6. Python高级——协程
  7. `if __name__ == __main__`模块运行代码管理
  8. Asp.net如何生成html静态页面
  9. ASP.Net请求处理模式
  10. [深度学习-实践]GAN基于手写体Mnist数据集生成新图片