前言
博主入手了斐讯N1,这里记录一下斐讯N1刷机的方法。
操作
准备工作
-
-
- 一台带HDMI接口的显示设备(显示器,电视机均可)
- 双公头USB
- 一台电脑
- 斐讯N1
- USB烧录工具:https://pan.baidu.com/s/1LNxx7CC0KajW-0OisRONRg,密码:5dx7,选择工具→ USB_Burning_Tool_v2.1.6.zip,下载即可
- N1降级recovery和ADB工具:https://share.weiyun.com/5vAkZ7p,密码:nzwy53
- 盒子操作系统:webpad:https://www.right.com.cn/forum/thread-338759-1-1.html,或yyf:http://www.yyfrom.com/cms/index.html,webpad固件功能更多,yyf固件更为精简。
注意:
1.双公头的USB可以从网上买,也可以自己制作。自己制作的话,找两条不要的手机数据线,剪掉连接手机端的插头,可以看到里面有四种颜色的线,小心的去皮(可以用火先烧一下,然后用手捏掉烧焦的部分,注意不要烫到手),然后将对应颜色的线连起来,用绝缘胶布包好即可。
2.recovery下载N1的即可,该连接里面包含N1和T1的文件,不要下错了,下载好后放在某个文件夹备用,ADB文件也解压放在同目录备用。 -
降级recovery
开启ADB:先启动盒子,插上网线,插上鼠标(插到远离HDMI口的那个USB口),并将盒子和显示器用HDMI线连接,盒子启动后用鼠标连点四次版本号,即可开启ADB,开启ADB后可移除鼠标。
操作步骤:
1.打开存放recovery和ADB的文件夹,在地址栏输入cmd进入,命令提示符。
2.输入adb connect 盒子IP地址
。
3.盒子插上USB双公头线连接电脑,尽量使用电脑原生的USB口,N1端使用靠近HDMI的USB口。
4.命令提示符中输入adb shell reboot fastboot
,盒子会重启,重启后会安装驱动。
5.命令提示符中按下“ctrl+c”,恢复到终端,运行输入fastboot devices -l
查看盒子是否已经正确识别未fastboot设备,若正确识别会显示盒子的序列号。
6.烧录相应的recovery,boot,bootloader分区
fastboot flash bootloader bootloader.img fastboot flash boot boot.img fastboot flash recovery recovery.img
7.降级完毕,重启盒子,输入fastboot reboot
。
自此,我们已经完成了相应的降级操作,下面就是刷入电视盒子操作系统了。
电视盒子
现在我们的N1已经回到了开启的界面。开始具体的刷机操作。
1.安装USB_Burning_Tool
2.鼠标右键点击我的电脑→管理→设备管理器→菜单栏的操作→添加过时设备→下一步→安装我手动从列表选择的硬件→下一步→libusb-win32 Usb Devices→WorldCup Device→下一步→下一步→完成。
3.连接盒子的ADB并且进入刷机界面:
adb connect 盒子IP地址 adb shell reboot update
4.打开USB_Burning_Tool,菜单栏文件,选择你需要刷入的固件,并且在右边取消擦除flash,擦除bootloader复选框,点击开始,等待刷写完成。
5.刷写完成后,可关掉USB_Burning_Tool,拔掉电源再插电重启,然后N1就可以作为电视盒子进行使用了。
自此N1已经可以作为电视盒子使用,但是我的目标是,将他作为NAS使用,所以下面介绍启动ARMBIAN,并且配置smb。
启动armbian
armbian是为arm编译的debian系统,通过它,我们可以完成很多的事情。
1.下载armbian社区支持的镜像:https://www.armbian.com/amlogic-s9xx-tv-box/(历史版本可以在:https://archive.armbian.com/aml-s9xx-box/archive下载)(也可以使用https://github.com/ophub/amlogic-s9xxx-armbian,具体安装方法看该页面)
2.将镜像写入U盘(注意,这一步操作会使U盘上所有文件被删除,注意做好备份。):
Linux:
xzcat --keep 你的镜像文件 | sudo dd of=/dev/sdX bs=1M && sync
上面的/dev/sdx中的X代表你U盘的设备文件,使用fdisk -l 查看,根据实际情况修改。
windows:
下载镜像写入软件:usbit.zip。
解压XZ格式的镜像,解压出来的IMG格式镜像备用。
解压usbit.zip,并打开USB Image Tool
插入U盘,在USB Image Tool上选中U盘,先点击RESET,重置U盘,然后点击Restore,选择镜像文件写入。
注:有的U盘可能无法写入,或者写入后无法正常启动,可以换U盘试试,或者换软件(balenaEtcher,Rufus之类)试试。
3.新版本的armbian(20.08以上)的默认参数无法直接启动n1,需要修改U盘boot分区的extlinux/extlinux.conf
,
# aml s9xxx #将原有的FDT行修改如下 FDT /dtb/amlogic/meson-gxl-s905d-phicomm-n1.dtb #下面这行参数为150balbes编译镜像需要,armbian社区编译的镜像无需修改 #APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
并且复制u-boot-s905x-s912
为u-boot.ext
。
由于armbian的目录结构经常发生变化,150balbes的最新的内容可以参考:https://forum.armbian.com/topic/12162-single-armbian-image-for-rk-aml-aw-aarch64-armv8/,armbian社区支持可以参考:https://forum.armbian.com/topic/33676-installation-instructions-for-tv-boxes-with-amlogic-cpus
4.将写好armbian的U盘插入关机状态的n1,通电启动,armbian就运行起来了(根据U盘读写速度不同,初次启动可能需要较长时间,为观察初次启动是是否正常,可以使用HDMI接口连接到显示器)。
注:这里可能需要设置U盘启动,有两种方法可以实现这个目的,a.首先还是ADB连接盒子,输入adb shell
,进入成功命令提示符会变成:p230:/$
,准备好U盘,再执行reboot update
,此时迅速的插上U盘到靠近HDMI口的USB口,b.如果电视盒子的系统里面自带了终端模拟器,可以直接在终端模拟器中输入reboot update
,然后将U盘插入靠近HDMI口的USB口。
此时可以通过外接显示器与键盘进行操作,也可以通过putty进行操作。
putty下载:https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe
打开pytty,输入盒子的IP地址,点击open,用户名“root”,初始密码:“1234”,可在路由器中为盒子分配一个固定IP,方便日后远程操作。
初次运行时会提示修改root密码和创建一个常规用户,初始root密码为:1234,如果不想新建普通用户可按ctrl+c跳过。
5.解决系统负载过高的问题,在Putty终端中操作(armbian社区支持镜像无需修改)
反编译原始n1 dtb文件为n1.dts
dtc -I dtb -O dts -o n1.dts /boot/dtb/amlogic/meson-gxl-s905d-phicomm-n1.dtb
如果出现错误,根据dtb文件所在的实际位置修改上面的命令。
编辑n1.dts,将第183行注释掉(5.9以上版本可能不是这个,是第212行的phandle = <0x21>
,为interrupt-controller这段里面的配置)。修改前:phandle = <0x1e>
修改后: #phandle = <0x1e>
nano n1.dts
编译新的n1.dtb
dtc -I dts -O dtb -o n1.dtb n1.dts
复制n1.dtb到/boot/dtb中并修改相应extlinux.conf文件
sudo cp -av n1.dtb /boot/dtb/amlogic/meson-gxl-s905d-phicomm-n1-zorz.dtb sudo sed -i -e 's/-n1/-n1-zorz/' /boot/extlinux/extlinux.conf
如果出现错误,则根据dtb文件夹所在的实际位置修改上面的命令。
重启系统
sudo reboot
6.修改armbian的源
自带的源连接速度很慢,这里修改为国内的源地址。
具体可以参考:https://mirrors.tuna.tsinghua.edu.cn/help/
修改可以在putty终端中进行。
7.安装samba
apt-get update apt-get install samba
8.添加用户,如果你在初次启动的时候已经添加了一个普通用户,可以不用进行这一步。
adduser n1
按照相应的提示输入即可。
9.挂载移动硬盘,你可以直接使用U盘作为NAS的储存,也可以外接一个移动硬盘。
如果你直接使用U盘进行SMB,那么可以不用进行挂载,直接编辑samba配置即可。
使用fdisk -l
查看硬盘信息。根据大小等信息判断分区信息,查看/dev/sdX与你移动硬盘分区的对应关系。
建立挂载目录,有几个分区就建立几个目录,可以1,2,3,4依次递加。
mkdir /home/n1/1
查看分区的UUID,并记下相应的UUID
sudo blkid
实现开机自动挂载移动硬盘
nano /etc/fstab
添加以下内容,有几个则添加几个
UUID=你的UUID /home/n1/1 ntfs(文件系统类型,可能是ntfs,fat32等,按照实际情况填写) defaults 0 0
当然你也可以手动挂载
mount /dev/你的硬盘 /home/n1/1
挂载完成后设置权限,实现对移动硬盘文件的可读可写。
chmod -R 777 /home/n1
配置samba。
nano /etc/samba/smb.conf
添加以下内容
[n1] path = /home/n1 available = yes browseable = yes public = yes writable = yes
为SMB用户添加密码,该用户必须是系统已有用户,按照提示输入密码即可。
smbpasswd -a n1
重启smb服务
service smbd restart
在Windows下面,同时按下windows+R
键,输入\\盒子的IP
,输入用户名密码,即可查看已经通过网络共享的文件。
补充:
有的时候用的有线连接,不想使用无线,可以关闭无线
nmcli radio wifi off
如果想要再次开启,使用
nmcli radio wifi on
syslog中每10s出现一次ttyS2服务启动失败的日志。不理它也没关系(armbian社区支持镜像无此问题),也可以通过以下方式解决:
sudo systemctl disable serial-getty@ttyS2
安装docker
curl -fsSL https://get.docker.com | bash
如果想要换个电视盒子系统,直接adb进入shell update即可,前提是,你没有把ARMBIAN刷入EMMC。
备份与还原
armbian中带有ddbr
工具,根据提示输入b
进行系统备份,输入r
进行系统恢复。
备份的文件可以放到本地电脑上,以备后用
刷入EMMC
N1使用install-aml.sh
而非install-aml-s905-emmc.sh
。
如果需要还原到电视盒子系统使用ddbr还原备份即可,部分armbian系统安装到EMMC时会删除ddbr
工具,此时可以使用dd
工具。
首先使用fdisk
查看当前分区的情况,将备份还原到emmc。
以下仅为示例,参数错误将会导致设备变砖。
zcat --keep 备份文件 | sudo dd of=/dev/mmcblk1 bs=1M
备份文件如果是xxx.img.gz使用zcat
,备份文件如果是xxx.img.xz使用xzcat
,mmcblk1
是emmc设备。
参考连接:
https://www.right.com.cn/forum/thread-322223-1-1.html
https://www.right.com.cn/forum/thread-338759-1-1.html
https://www.right.com.cn/forum/thread-510423-1-1.html
https://www.right.com.cn/forum/thread-430903-1-1.html
https://forum.armbian.com/topic/12162-single-armbian-image-for-rk-aml-aw-aarch64-armv8/