你看这理财产品,它真的可以用诶,值了值了
树莓派什么的,你就自己找个地方吃灰去吧
垃圾的校园网同时只能有一个设备在线,寝室一堆米家的设备,账号用在路由器上了,而且是开启了断线自动重连,在实验室上网就是一个问题了。
不过好在学校的IPV6服务不需要验证,还很快,之前的做法是找一台主机上面开了个某不可描述的软件,所有流量从国外绕一圈,但是电脑上要设一堆代理,像spark这样的程序还不支持设置代理,就很麻烦。最近发现了斐讯N1,瞬间种草啊。千兆网口,双频无线,2G内存,A53的CPU是差了那么一点,但是做路由器足够了,关键功耗贼低呀(虽然丢实验室不用掏电费)。
目前只有某多多有货,80包邮,包装薄都没撕开,外观看起来很喜欢的样子。
固件降级
下载2.19版本固件
对刷机这块不太懂,据恩山上帖子所说,2.19以上版本线刷模式有点问题,我拿到的N1版本是2.27,所以需要先降级。
首先要下载2.19版本的固件,密码是nzwy53
,为了避免分享被取消,我在OneDrive留了个备份。解压后可以得到四个文件。
开启adb调试
如果电脑上没有装过adb的话,可以通过以下命令来安装。
1 | brew cask install android-platform-tools |
Windows 系统可以在官方网站下载。
给N1接上显示器(HDMI接口),用双头USB刷机线连接电脑和N1盒子,接上鼠标(鼠标建议接在靠近HDMI的那个USB口,原因后面说),插上网线(断开网络连接,避免自动升级),然后通电。
如果是通过转接头接的显示器,需要接上单独的供电,N1的电源电压是12V,可能带不动,无法重启。
进入系统后可以看到如下界面,在固件版本
这一行字上用鼠标连点四下,可以看到有一个很小的文字弹出,显示adb已开启。
进入fastboot模式
找到N1盒子的ip地址,然后在电脑上执行以下命令进入fastboot模式
1 | adb connect $N1_IP:5555 |
把$N1_IP
换成N1的ip地址
刷入boot等固件
等N1重启后,输入以下命令来把2.19版本的固件刷入到N1上。注意要一一对应,不要直接复制粘贴,并且后面的固件地址要写对,不然会被刷成砖哦。
刷成砖哦。
1 | fastboot flash boot boot.img |
等待完成后,重新一下。
1 | fastboot reboot |
重启之后固件版本看上去没有什么变化,(据说)是因为我们只是降级了固件,其实已经刷成功了。
降级的时候不会降版本号,2.28降级后还是2.28。就好像给手机刷机刷入第三方recovery但原系统不会变一样。
这时候刷机线还是要一直插着的
刻录系统盘
Armbian镜像下载
斐讯N1盒子是arm架构的,所以x86的镜像不支持,可以使用Armbian,有debian和ubuntu系统,可以在这里下载镜像。
网盘下载的东西看起来不是很靠谱的样子,但是根据架构不同,支持的镜像也不一样,搞不清它们之间有什么区别,所以还是屈服了orz
有很多版本可以选择,可以根据自己的爱好选,随着时间流逝,版本也会变,不过听说5.44版本以下开启热点会有问题,所以尽量选高一点的。
我是直接选择了最高版本的5.89,然后要选择S9xxx
,接下来就可以根据自己喜好下载了,平时一般debian用的多,所以选了无桌面版的debian,Armbian_5.89_Aml-s905_Debian_buster_default_5.1.0_20190617.img.xz
,下载完之后,解压。
刻录启动盘
找一个U盘,因为N1的USB接口是2.0,所以有的U盘可能会不支持。
Windows上刻录U盘可以用UltraISO
或者是Win32DiskImager
,Mac下直接用dd
就行。
首先通过命令diskutil list
来确认你的U盘盘符,一般是/dev/disk2
,如果不是的话后面的命令记得对照着改。
然后取消挂载
1 | diskutil unmountDisk /dev/disk2 |
使用dd命令把img镜像文件刻录到U盘中
1 | sudo dd if=~/Downloads/Armbian_5.89_Aml-s905_Debian_buster_default_5.1.0_20190617.img of=/dev/rdisk2 bs=1m |
别急着拔U盘
修改dtb文件
因为具体的型号众多,需要根据机器型号来指定对应的dtb (Device Tree Blob)文件。
在U盘根目录下可以找到一个uEnv.ini
文件,将meson-gxl-s905x-khadas-vim.dtb
换成meson-gxl-s905d-p230.dtb
(新版本可能名字变了,叫uEnv.txt
什么的,然后修改FDT=/dtb/amlogic/meson-g12b-odroid-n2.dtb
这行)
5.62后的版本:修改根目录下的uEnv.ini文件,将meson-gxl-s905x-khadas-vim.dtb换成N1对应的meson-gxl-s905d-p230.dtb
之前的版本:复制dtb/meson-gxl-s905d-p230.dtb到根目录,并重命名为dtb.img
启动新系统
接下来一步是考验你身体灵活性的一步^_^,教程里说不能直接把U盘插到运行中的安卓系统中,会破坏启动盘文件。
第一步:把鼠标拔下来,刷机线别拔。这块需要注意的是要留出离HDMI接口近的那个接口,因为实践中发现只有这个USB口可以加载U盘里的系统。
第二步:在电脑终端上输入adb shell reboot update
,别急着回车。
第三步:一只手准备敲回车,另一只手准备好插入U盘,先重启设备,然后另一只手再以迅雷不及掩耳响叮当之势在黑屏的那一刹那把U盘插进去。
如果没有进入Linux系统,请重试。甚至可能要重刻录U盘。
如果成功进入新系统,恭喜你。
通过 ssh 连接进Armbian系统,默认账号是root,密码是1234,需要先修改默认密码。
进入成功之后就不需要刷机线了。
把Linux系统写到N1
现在已经有了一个运行着Linux系统的N1盒子了,但是一直插着U盘总是很麻烦,我们可以把U盘里的系统移到斐讯N1盒子自带的EMMC存储中去,这样就可以脱离U盘使用了,而且重启也不需要U盘来引导。
首先要备份一下EMMC原本的文件,这样万一玩腻了,还能刷回去。
输入ddbr
,然后选择b
,后面全部同意,备份的时间有点久,可以出去喝杯茶啥的。
(备份是放在U盘里的,别删了。这个我是咋知道的呢?为了确认流程,我又刻录了一次镜像,后来想刷回去的时候发现备份不见了。。。)
当前目录下有一个install.sh
文件,执行它就可以了,需要等几分钟。(新版本可能是其他的文件名,比如install-aml.sh
)
大概看了一下内容,基本就是把U盘里有用的文件都拷贝到EMMC上了,这要得益于Linux一切都是文件的特点。
下次重启就可以单独用盒子启动了,不过记得提前把U盘拔了。至于怎么拔出来,可以在重启的瞬间拔出来,可以先断电然后拔出来,也可以直接拔,看你的心情。
至此,一个运行着Linux系统、可以单独运行的小主机就完成了。(又多了一台吃灰神器)
跑个测试脚本看看,IO一般,不过比上次买的蜗牛星际的SSD要好很多了。
路由器改造
本来是打算参考树莓派开启热点的脚本来配置的,但是一直不成功,后来发现armbian系统自带了初始化工具,直接用自带的工具就行。
在终端输入armbian-config
,然后选择Network
,然后Hotspot
,等待一段时间(需要安装dnsmasq等程序)后返回、退出即可。(需要选择接口的话就是wlan0无线网卡接口)
这时候,就能看到多了一个名为ARMBIAN
的Wi-Fi热点了,密码是12345678
,可以在/etc/hostapd.conf
文件中修改相关配置。
此外dnsmasq
默认配置里使用了8.8.8.8
作为dns解析,可能会有影响,在/etc/dnsmasq.conf
文件里删除server=
这一行然后重启服务。
实际测试的时候,发现首次连入很慢,重启之后就正常了。
如果无法连接外网,需要配置iptables。
1 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
中文显示问题
默认中文输入和显示有问题,在/etc/environment
文件中添加以下两行。
1 | ARCH=arm64 |
WLAN 网卡mac冲突问题
本来实验室只有这一台n1,跑得很欢快,直到某一天另一台n1出现,热点突然连不上。一通排查之后发现是两个n1的无线网卡竟然拥有相同的mac地址。。。
修改mac地址可以解决。
1 | sudo vim /lib/firmware/brcm/brcmfmac43455-sdio.txt |
(改完之后发现无线搜不到,可能是哪里的配置有问题,有时间再看看)
然后发现有时会出现一些奇怪的问题,把无线网卡的ipv6禁用掉。
1 | echo 'net.ipv6.conf.wlan0.disable_ipv6 = 1' >> /etc/sysctl.conf |
N1连接Wi-Fi无线网络
很多人家里房间里没有预留网口,如果想要用N1联网,可以采用Wi-Fi的形式。或者也可以采用新增路由器无线桥接,不过实际测试N1的无线也是挺稳的。
1 | # 搜索Wi-Fi信号 |
1 | nmtui-connect SSID # SSID 是Wi-Fi名 |
可以用nmtui
来进行可视化的管理。
最后,感谢恩山大佬们的辛勤奉献。