分类 Tech Notes 下的文章

斐讯N1刷CentOS7最简操作

准备工具

  • N1 一台
  • USB 双公口线一条
  • 4G 以上 U 盘一个,越老越好,新 U 盘可能有兼容性问题
  • 可以运行安卓adb工具的电脑一台,win/mac/linux都行

降级 bootloader 

首先下载文件 

微云:https://share.weiyun.com/5vAkZ7p 密码:nzwy53

将N1接上网线,HDMI线接显示器,离HDMI口远的那个USB口接一个鼠标。连上网以后,等个五分钟左右,待其自动升级到最新版,中间可能会多次重启升级,直到不再升级为准。否则如果正在刷的过程中N1重启可能会有点麻烦。

接下来用鼠标点击屏幕上版本号的地方三次,屏幕中间会显示一下开启 adb。

将 N1 上距离 HDMI 口近的那个 USB 口和电脑之间用 USB 双公头线连接,并让电脑和N1处于同一局域网下,首先执行

adb connect <N1的IP地址,可以在N1屏幕上看到>

adb shell reboot fastboot

此时应该可以看到N1重启黑屏,接下来在电脑上执行

fastboot devices

如果能够显示出一行设备信息,说明 USB 连接正常,将最开始下载的文件包中 boot.img bootloader.img recovery.img 三个文件放在当前目录下,并执行

fastboot flash bootloader bootloader.img

fastboot flash boot boot.img

fastboot flash recovery recovery.img

fastboot reboot

如此便完成了bootloader 降级

刷入 Armbian

首先从 https://yadi.sk/d/pHxaRAs-tZiei 下载最新的版本,因为我们最后还是要刷成 CentOS,所以下个最小的就行,比如Debian不带 desktop 的版本。将 .xz 文件解开以后是个 .img 文件。将这个文件用 Win32Imager 或者 USB Image Tool ,或者在 linux 下 dd 直接写入 U 盘。

接下来打开第一个分区,在 Windows 上面应该是一个 BOOT 分区,下载

https://github.com/yangxuan8282/phicomm-n1/releases/download/dtb/meson-gxl-s905d-phicomm-n1.dtb

这个文件到 dtb 目录下, 用文本编辑器编辑根目录下面的 uEnv.ini ,将里面 dtb 一行替换成这个文件的名字并保存,Armbian 启动 U 盘就做好了

接下来N1的两个 USB 口一个接 U 盘,一个接 USB 键盘。HDMI 线接显示器,加电启动。屏幕会先出现启动画面,之后

如果进入了原系统,那么第一时间把电拔了重启!!!!!否则 U 盘可能会被原来的安卓系统写乱。

这里如果多次重复,还是无法进入Linux系统,那么请换个 U 盘再试,基本这里不成功都是因为 U 盘兼容性问题导致的。最好是 USB 2.0 的 U 盘。

进入 Armbian 以后用 root:1234 登录,会被要求修改密码和创建普通用户。完成以后会留在一个 root shell 里面。下面执行

./install.sh

完成以后,拔掉 U 盘重启,应该就可以看到 Armbian 系统启动了。

刷成CentOS

首先N1 继续插上 U 盘启动,这样进入的还是 U 盘上的系统,把网线接上保持网络通畅。执行

cd /root

wget 
https://mirrors.tuna.tsinghua.edu.cn/centos-vault/altarch/7.4.1708/isos/aarch64/CentOS-7-aarch64-rootfs-7.4.1708.tar.xz 

mkdir /root/x

e2fsck -y /dev/mmcblk1p2

mount /dev/mmcblk1p2 /root/x

cd x

rm -rf *

cd /root

tar –numeric-owner -xpJf 
CentOS-7-aarch64-rootfs-7.4.1708.tar.xz -C /root/x

cd x/lib

rm -rf modules firmware

cp -rp /lib/modules .

cp -rp /lib/firmware .

cd /root

umount x

之后关机拔掉 U 盘,重启即可进入 CentOS, root 密码是 centos

参考资料

  • http://www.right.com.cn/forum/thread-322223-1-1.html
  • http://www.right.com.cn/forum/thread-322991-1-1.html
  • https://github.com/umiddelb/aarch64/wiki/Install-CentOS-7-on-your-favourite-ARMv8-ARM64-AArch64-board

北京联通宽带时不时出现苹果AppStore无法连接的解决方法

这个问题其实好多年了,一旦出现以后短时间以内就很难解决,除非断开家里 WiFi 改用 4G. 今天正好又出现了,借着 ROS 可以远程抓包的功能顺手调试了一下,发现这个问题原来是网宿弱智导致的。

AppStore 在启动和工作中会连接很多域名,其中下面这些(在 iOS 12 beta4 上测试,不保证其他版本)

client-api.itunes.apple.com
init-p01st.push.apple.com
play.itunes.apple.com
apps.mzstatic.com
api-edge.apps.apple.com
init.itunes.apple.com
bag.itunes.apple.com
search.itunes.apple.com

用国内的 DNS 解析会统一 CNAME 到 applewsashark.dtwscache.ourwebcdn.com

这个域名一看就是网宿的。如果去解析这个域名会发现,大多数时候只能解析出来一个 IP 。这个 IP 轮换的速度也挺快,可能几分钟就会换一个。然而出问题的时候解析到的 IP 经常都是不好使的,表现为 443 端口完全连不上,或者连上以后丢包非常严重,根本无法使用。奇怪的是,这些有问题的 IP,从其他地方访问有可能就是好用的,不知道是因为 anycast 到了不同的机器,还是网宿 peer 的带宽不足。

找到了症结就好办了,因为国内各大 DNS 解析出来都是同样的不好使的 IP ,于是直接从 8.8.8.8 解析了一个出来,在路由器上面把刚才一堆域名统统绑定到这个 IP,AppStore 秒开。

最后鄙视一下网宿,这问题这么多年了,居然一直都没有修好,跟大姨妈似的经常出现。

对 firewalld 终于失去信心了

各种坑,比如 iptables 命令执行一旦出错,后面的不会执行,如果内核少个模块,就会导致防火墙完全封死外面进不去的状态。在 openvz 主机上面简直是灾难。

从其他 fw 框架里面随便挑了一个 shorewall 把他替换掉,一下就清净了。

最近评论

时光机

其他