另外,此方法从理论上讲不仅仅能刷入Gentoo,别的发行版如Arch等也可以,只不过需要把stage3包换成别的发行版的rootfs,再省略Gentoo相关的操作。

前言

本文部分命令参考“自己制作N1的Linux镜像”中的脚本。自己也曾用这个文章中的方法自己制作了一个Gentoo的镜像,也引导启动成功了,然而苦于Gentoo的stage3没有办法设置自动联网不能ssh,而我又没有usb键盘,因此没法操作这个系统。另外想到即使制成了这个系统,以后想要刷入emmc也挺麻烦的,为什么不直接把系统安装进emmc呢?

方法是通过烧录有armbian的启动优盘启动n1,然后使用armbian给emmc分区,写入系统。目前遇到的缺点有两个:

emmc只有8G空间,不大够用,或许可以通过大神硬改来解决,我对硬件毫无研究;

编译相对于pc还是太慢了,这个实在是无解,慢慢等吧,但成功后系统绝对超级稳定。

至于为什么选择n1,因为它的性价比高呀!我的n1是80咸鱼包邮买来的,而它的配置呢:1.5GHz四核处理器,吊打树莓派3B+,还记得当时用树莓派编译个Glibc花了十多个小时都不行最后不得不放弃,而n1也就花了一个多小时;2G内存,继续吊打;千兆以太网,接着吊打;emmc,凌虐树莓派的sd卡;只有无线网卡和树莓派3B+打平,同款。

另外再吹一波n1的散热,我用树莓派(有散热片无风扇)编译安装Gentoo时温度能上80摄氏度,而用n1(自带散热片无风扇)最高似乎也只在编译cmake的时候达到了68摄氏度,平时则稳定在50度左右。有图为证,额,截图太大无法上传。

至于为什么选Gentoo系统呢?你们在电脑上安一遍Gentoo,安好后自己体验一下就知道它比别的发行版牛逼在哪了。简单说说吧,Gentoo几乎所有软件包都需要自己编译,而编译时候会设置USE,这使得它完全是针对你特定的机器进行优化的,肯定比ubuntu那些各个机器通用的发行版稳定且性能好。另外它也不会像Arch那样整天滚动升级且有概率滚挂。

废话不多说了,开始教程:

准备工作

刷好官改系统的n1一台

烧录有armbian系统的优盘一个

前两个准备工作,可参考前一篇博文

电脑一台

电影几部,或者床一个(等待编译用)

emmc分区、格式化

首先,通过优盘启动armbian,ssh连接上它,自行设置root密码,之后输入

fdisk /dev/mmcblk1

然后仔细阅读这一段,根据提示输入括号中的黑体字,每输入一个按一下回车确认。这里切记磁盘一定要用mbr分区表而不是gpt分区表(输入o)。自行创建两个分区。第一个分区分128M(n 1 默认 +128M ),作为启动分区(t c),第二个分区作为root分区(n 2 默认 默认)。最后看一眼分区是否正确(p),正确的话确认退出(w),不确认的话退出重来(q)。

分区完毕后进行格式化。

mkfs.ext4 /dev/mmcblk1p2

mkfs.vfat -F32 /dev/mmcblk1p1

下载解压stage3,设置make.conf

先挂载分区并下载解压stage3

mkdir /mnt/gentoo

mount /dev/mmcblk1p2 /mnt/gentoo

cd /mnt/gentoo

wget https://mirrors4.tuna.tsinghua.e ... 64-20180907.tar.bz2

tar vxpf stage3-* --xattrs-include='.*' --numeric-owner

然后编辑make.conf

nano /mnt/gentoo/etc/portage/make.conf

CFLAGS="-O2 -pipe -march=armv8-a+crc+fp+simd -mabi=lp64 -mcpu=cortex-a53+crc+fp+simd"

CHOST="aarch64-unknown-Linux-gnu"

MAKEOPTS="-j4"

GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo/"

GENTOO_MIRRORS="https://mirrors.ustc.edu.cn/gentoo/"

L10N="en_US en zh zh_CN"

LC_MESSAGES=C

PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles"

PKGDIR="/usr/portage/packages"

ACCEPT_LICENSE="*"

EMERGE_DEFAULT_OPTS="--ask --verbose=y --keep-going --with-bdeps=y --load-average"

配置portage镜像源

mkdir /mnt/gentoo/etc/portage/repos.conf

nano /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

[gentoo]

location = /usr/portage

sync-type = rsync

sync-uri = rsync://mirrors.tuna.tsinghua.edu.cn/gentoo-portage/

#sync-uri = rsync://rsync.mirrors.ustc.edu.cn/gentoo-portage/

auto-sync = yes

挂载虚拟文件系统并chroot

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

mount -t proc /proc /mnt/gentoo/proc

mount --rbind /sys /mnt/gentoo/sys

mount --make-rslave /mnt/gentoo/sys

mount --rbind /dev /mnt/gentoo/dev

mount --make-rslave /mnt/gentoo/dev

test -L /dev/shm && rm /dev/shm && mkdir /dev/shm

mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

chmod 1777 /dev/shm

chroot /mnt/gentoo /bin/bash

source /etc/profile

export PS1="(chroot) ${PS1}"

mount /dev/mmcblk1p1 /boot

emerge-webrsync #网速快的大佬可省略

emerge --sync

时区地区设置

echo "Asia/Shanghai" > /etc/timezone

emerge --config sys-libs/timezone-data

echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen

echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen

locale-gen

eselect locale list

eselect locale set "en_US.utf8" #命令行一定要用英文!!中文可能乱码。

env-update && source /etc/profile && export PS1="(chroot) $PS1"

安装网络管理器,这一步如果没正常进行,就etc-update一下,按提示先后输入-3和y后再来。

emerge networkmanager

安装内核

这里我们偷懒不自己编译了,直接用别人弄好的现成的。以后我再发自己编译内核的方法,因为我现在还不知道dtb文件怎么生成。这一段摘抄自这里,安装的是4.18.7内核及模块。

wget https://github.com/yangxuan8282/ ... 8.7_20180922.tar.gz

tar xvf kernel*

cp -R --no-preserve=mode,ownership kernel_*/boot/* /boot/

cp -a kernel_*/lib/* /lib/

rm -rf kernel_*

安装uboot引导

这一段也是摘抄的别人的,我对uboot的原理一无所知,也完全看不懂这段代码两个dd命令的含义,有人看到了还请帮忙留言讲解一下,谢谢。但这段代码亲测可用。

wget https://github.com/yangxuan8282/ ... 20180917/u-boot.bin

dd if=u-boot.bin of=/mnt/mmcblk1 bs=1 count=442 conv=fsync

dd if=u-boot.bin of=/mnt/mmcblk1 bs=512 skip=1 seek=1 conv=fsync

rm -f u-boot.bin

重启前的操作

重启前我们需要添加Networkmanager和sshd的自启动服务:

rc-update add sshd default

rc-update add NetworkManager default

同时我们要修改两个和启动有关的文件。先blkid查看并记住/dev/mmcblk1两个分区的UUID,然后修改下面的文件,自行替换黑体字部分:

nano /etc/fstab

第一分区的UUID   /boot   vfat    defaults        0 2

第二分区的UUID   /   ext4    defaults,noatime    0 1

nano /boot/uEnv.ini

bootargs=root=UUID=第一分区UUID rootflags=data=writeback  rw console=ttyAML0,115200n8 console=tty0 no_console_suspend  consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

重启后的操作

exit退出chroot环境,然后poweroff关机,拔掉优盘重新插一遍电源等待它启动新刷入的系统。

建议先更新一遍系统

eslelect profile list

eslelect profile set N #这里选你自己喜欢的profile即可

emerge -avuDN @world #现在电影和床派上用场了,耐心等着吧

斐讯t1刷入linux系统,斐讯phicomm n1刷入Gentoo系统斐讯N1刷Linux系统教程相关推荐

  1. PS3手柄连接斐讯T1盒子

    斐讯T1用U盘启动一个emuelec系统,启动界面提示要连接手柄才能进入,就去闲鱼上20块收了一个PS3手柄,然后就有了后面的一系列问题. 收到手柄发现没有数据线,而且PS3手柄数据线是miniUSB ...

  2. phicomm虚拟服务器怎么设置方法,斐讯phicomm.me登入界面设置

    问:斐讯phicomm.me登入界面怎么打开?phicomm.me路由器怎么设置才能上网? 答:phicomm.me路由器,这种叫法其实有问题,因为phicomm.me只是斐讯路由器的设置网址,并不是 ...

  3. 解密:斐讯N1为何火了?分享全套N1救砖指南!值得收藏

    我的斐讯N1好久不用想刷个电视盒子, 刚开始usb burning tool发现不了设备. 根据B站视频解决解密:斐讯N1为何火了?分享全套N1救砖指南!值得收藏_哔哩哔哩_bilibili 但烧录不 ...

  4. 腾讯T1~T9级别工程师分别需要具备哪些能力你知道吗?

    前言 2020年秋招已经结束了,很多没拿到满意offer的同学已经在备战2021年春招了.腾讯在国内无论是知名度还是体量都是当之无愧的的巨无霸,本身也是很多朋友的目标,就跟清北之于高考生一样,先不说能 ...

  5. linux 垃圾箱位置,如何将Linux rm命令删除的文件放入垃圾箱

    因为rm命令删除的文件是不会放入垃圾箱的,所以无法恢复,下面小编就给大家介绍一种方法,通过替换Linux rm命令的方法,从而将rm命令删除的文件放入垃圾箱. 方法: 1. 在/home/userna ...

  6. 小米android系统分享,重温的手机分享 篇一:90hz高刷?45w快充?双扬声器?你不知道的酷安重制版小米9魔改教程...

    重温的手机分享 篇一:90hz高刷?45w快充?双扬声器?你不知道的酷安重制版小米9魔改教程 2021-05-14 14:47:30 6点赞 13收藏 10评论 大家上午好啊,我是重温,有幸能拿到这款 ...

  7. 凤凰os可以运行linux软件吗,把凤凰系统装进U盘里,打造PC上的可移动android系统...

    你试过在电脑上流畅体验"吃鸡"等手游大作吗?而且还可以随身携带,即插即用? 那就来体验下凤凰系统吧,之前也给伙伴们安利过: 手机玩游戏不爽?来试试Phoenix OS凤凰系统 凤凰 ...

  8. linux会自动平板电脑,GitHub - Dysonnnn/linux-chuwi_Vi10: 驰为Vi10 平板电脑装linux系统

    linux-chuwi_Vi10 让ubuntu 在 驰为 chuwiVi10 上运行 windows.安卓二合一平板:驰为Vi10 平板介绍 CPU/GPU 处理器架构X86架构 处理器技术英特尔芯 ...

  9. linux服务器垃圾箱,如何将Linux rm命令删除的文件放入垃圾箱

    因为rm命令删除的文件是不会放入垃圾箱的,所以无法恢复.通过替换Linux rm命令的方法,从而将rm命令删除的文件放入垃圾箱,这样就能将误删的文件恢复,一起来学习下吧. 方法: 1. 在/home/ ...

  10. 装linux系统时键盘用不了怎么办_图吧垃圾佬的LINUX体验

    图吧垃圾佬的LINUX体验并不舒服 最近呢因为要搞树莓派(并没有,其实是还是之前无意中发现MAC对EPSON打印机的驱动效果可以在打印多页纸的时候不掉速所以会想要在台式机上用别的系统试试看驱动打印机) ...

最新文章

  1. android 定位的几种方式介绍
  2. apktool+dex2jar+jd_gui
  3. sublime打开文本时会记忆上次关闭时鼠标停留的位置
  4. 动态规划-重叠区间2020.3.30
  5. 是什么专业_自考什么专业容易就业
  6. 仅坚持了9天:京东今日宣布暂停火车票代购业务
  7. Oracle数据库查询优化
  8. 自己动手写Docker系列 -- 5.1实现容器的后台运行
  9. java并发面试题整理
  10. Go程序设计语言读书笔记-1
  11. QQ坦白说BUG 找出对方
  12. FMI飞马网 | 在人工智能时代,如何更好地发挥大数据的价值?
  13. 用Taichi(python)实现星际穿越特效
  14. 如何用光盘自动安装win7操作系统
  15. 永磁同步电机力矩控制(十一):SVPWM进阶篇
  16. C# json解析字符串总是多出双引号_json从立地到成佛
  17. C# Settings.settings的用处
  18. Ajax传递数组乱码,layUI批量删除时乱码
  19. python初中必背语法_全初中必背英语语法知识汇总
  20. 基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)

热门文章

  1. Exadata一体机故障回顾
  2. SpringBoot整合tkMybatis基础教程
  3. 【信号与系统】Multisim 仿真信号合成与分解
  4. 游戏BOSS关卡的设计
  5. Android JNI HIDL 简单实例学习
  6. 【C语言】Linux 文件读写
  7. 【板栗糖GIS】GIS如何导出obj格式的建筑白膜数据
  8. 【SQL基础】SQLzoo练习
  9. 指纹识别 源代码中带有大量注解
  10. 系统集成项目管理之何为系统集成