分类 Network 下的文章

斐讯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 把他替换掉,一下就清净了。

数据安全,从异地备份开始

话说我的 blog 也 down 了有数次了,每次 down 掉以后都好久起不来,其中很大程度上是 blog 的数据没有及时备份出来,用以前的备份开的话,中间的就都丢了,回头合并又是个麻烦事情。

最近有点时间,在北京机器上的 MySQL 配置了一下,让他作为从库从唐山机器的 MySQL 同步下来 blog 的数据,只要网络不是太烂,基本可以做到实时备份了。

当然,从公网上用 MySQL 复制存在各种风险,不过实际能做的事情不多,只能用 iptables 保护,只对同步机器开放 MySQL 端口;关闭除同步账户之外其他所有用户的网络访问权限;同时使用 MySQL 内建的 SSL 功能防止监听;最后复制用的账户要求 SSL 发行者校验,只相信北京机器发过来的 SSL 连接请求。

不过现在异地备份还是太近,不满足 1000km 的基本要求,无法抵抗华北平原地震,要不要再在美国买个便宜空间专门定期上载打包后 gpg 加密的备份数据呢?

郁闷,折腾了这么久,才发现居然是双工的问题

这个机器最早刚拿到机房的时候,发现不知道为啥,启动时候总是协商成 10M 半双工,但是交换机和网卡显然都是 100M 的,于是只好在 rc.local 里面加了一条 mii-tool -F 100baseTx-FD eth0 , 这么一直用了一年多也没有太大问题。后来因为一些原因,这个机器 down 了又有一年多,再起来以后就总觉得这个机器网络慢,在 shell 上面执行比较大输出的操作,都会一卡一卡的,一直没搞明白是为什么。这段时间为了解决访问 blog 慢的问题,对 web 进行了不少优化,gzip, expire 啥的都设了一遍,有一点提升,但是没有特别明显的效果。因为没有太多时间,所以就懒得管了。

今天稍微清闲了一点,就仔细研究了下这个问题,发现从同一内网用 ab 压 17K 的静态文件最好情况下只能到 40 个每秒左右,大文件则是只能到 1.8MB/s,这明显有问题。但是 ping 也看不到什么丢包。

习惯性的看 dmesg 的时候,发现网卡每次启动时候还是会协商成 10M 半双工,这就奇怪了,机器经过这两次倒腾,机箱换了,网卡也换了,网线也换了,交换机上网口也换了,为啥还是 10M 半双工,莫非这个交换机其实只能上半双工?于是 mii-tool 重新调整为 10M 半双工,马上 shell 就不卡了。

但是 10M 半双工虽然 shell 不卡,带宽实在比较不能够接受,于是尝试了一下 100M 半双工,貌似效果很好, HTTP 大文件同一内网能到 8MB/s, ab 那个 17K 的静态文件可以压到 400 个左右,这样看起来就还算凑合了,虽然总的来说不是很高,但对这个破机器,还是可以接受的结果。

最后的结果就是 rc.local 里面改了一行

mii-tool -F 100baseTx-HD eth0

至于为什么不能上百兆全双工,这问题也懒得研究了,先这样用着好了,我要求不高。

另,这机器以前的网卡是 3C905B(3c59x),后来用了几天 8139(8139too), 现在是 DFE-530TX(via_rhine),都不是什么特别好的网卡,不过都协商成 10M 半双工也真是够那个的了。。

最近评论

时光机

其他