斐讯P1刷armbian变身linux小型服务器
前情提要
斐讯P1即之前的N1天天链矿机,N1翻车后不到一年的时间内被玩机圈硬生生搞成了SBC(单板电脑),玩出了电视盒子、Linux服务器、NAS、路由器等多种花样,连官方也受到启发把N1改头换面成P1电视盒子,线上销售清库存。以70~90的价格来看,这玩意的性价比远超树莓派,300元以性能内无敌手的称号可以说当之无愧。除了没有GPIO,也就是说不能玩嵌入式开发以外,其最大的缺点就是需要折腾,毕竟不是开源硬件,刷机之类的得需要上网多搜搜教程。好在已经有恩山论坛的各种大牛铺路,对于计算机背景的人来说,折腾起来也不算麻烦。在此过程中的一个感受是,不论软件还是硬件,拥抱开源才是正道。
准备
- 双头USB线一根
- 降级到2.19的分区固件
- armbian for Amlogic S905固件
- 为N1适配优化的dtb文件(可选)
- Linux 5.0.2适配版:meson-gxl-s905d-phicomm-n1-xiangsm.dtb,地址
- adb调试工具
- 下载地址 SDK Platform Tools
- u盘及u盘刻录软件
降级
N1/P1盒子开机,进入android系统
- 联网
- 打开远程调试
电脑端远程降级
解压 adb调试工具
将分区固件 bootloader.img 、boot.img 、 recovery.img 拷贝到 adb所在目录
远程连接盒子,重启进入fastboot模式
1
2adb connect 192.168.10.127 #盒子ip
adb shell reboot fastboot验证设备能够被正常识别
1
fastboot devices
刷入降级镜像
1
2
3fastboot flash bootloader bootloader.img
fastboot flash boot boot.img
fastboot flash recovery recovery.img重启盒子
1
fastboot reboot
制作armbian启动盘
将armbian for Amlogic S905固件烧入u盘
打开u盘,替换dtb文件(可选,这一步可以在启动armbian之后再执行)
将适配版dtb文件放入/boot/dtb
修改/boot/uEnv.ini文件
1
2修改前的uEnv.ini:dtb_name=/dtb/meson-gxl-s905x-khadas-vim.dtb
修改后的uEnv.ini:dtb_name=/dtb/meson-gxl-s905d-phicomm-n1-xiangsm.dtb
u盘启动armbian
N1/P1盒子断电
将启动盘插入N1/P1盒子靠近hdmi口的usb口
N1/P1盒子插入电源
初次启动会仍然进入原android系统,这时候仍然采用adb方式远程连接并重启
1
2adb connect 192.168.1.184
adb shell reboot update重启后进入armbian系统,初始登录用户名密码root/1234
armbian常用配置
armbian-config
可以用来配置网络、时区、语言、常用软件等内容nmcli
查看/配置网络端口uptime
系统使用状况,如运行时长、负载armbianmonitor -m
实时查看系统负载/etc/update-motd.d/30-armbian-sysinfo
查看系统运行情况汇总解决syslog中每10s出现一次ttyS0服务启动失败的日志
systemctl disable serial-getty@ttyS0
systemctl stop serial-getty@ttyS0
ddbr
备份/恢复emmc写入的系统手动修改国内源(首选基于自带向导armbian-config修改)/etc/apt/sources.list
将debian的官方源修改为国内源(如mirror.tuna.tsinghua.edu.cn)1
sed -i "s@http://\(deb\|security\).debian.org@https://mirrors.aliyun.com@g" /etc/apt/sources.list
apt update && apt upgrade
启用bbr
/etc/sysctl.conf
末尾添加下面两行1
2net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbrsudo sysctl -p
修复静态无线MAC地址
由于所有N1盒子出厂后的无线MAC地址是一样的,所以多个盒子同时连接相同路由器的时候IP相同,可利用脚本进行修复
可以暂时通过配置静态MAC地址的方式解决1
2
3
4vi /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet dhcp
hwaddress ether XX:XX:XX:XX:XX:XX
自动挂载U盘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git clone http://github.com/rbrito/usbmount.git
cd usbmount
sudo apt-get update && sudo apt-get install -y debhelper build-essential
sudo dpkg-buildpackage -us -uc -b
sudo dpkg -i usbmount_0.0.24_all.deb
# Probably first time also with
sudo apt-get install lockfile-progs
sudo apt --fix-broken install
# Clean
rm ../usbmount_*
https://askubuntu.com/questions/1074909/usbmount-fails-to-automount默认可以在/media/usb下查看自动挂载的u盘,支持vfat ext2 ext3 ext4等格式
如果想要支持ntfs等其他格式,需要修改配置文件/etc/usbmount/usbmount.conf
将系统刷入emmc
执行
lsblk
命令查看能否正常识别mmcblk1分区,若不能识别则无法刷入emmc执行
ddbr
对emmc上原android系统进行备份,备份文件为/ddbr/BACKUP-s9xxx-emmc.img.gz
(文件名可能会因固件版本而异)执行
./root/install.sh
命令将u盘中的armbian系统复制到emmc其中的install脚本可参考MY SCRIPT FOR INSTALLING ARMBIAN 5.67 INTO PHICOMM N1
注意其中最后会将ddbr命令删除,介意者可以注释掉
1
2
3
4rm $DIR_INSTALL/usr/bin/ddbr
rm $DIR_INSTALL/usr/bin/ddbr_backup_nand
rm $DIR_INSTALL/usr/bin/ddbr_backup_nand_full
rm $DIR_INSTALL/usr/bin/ddbr_restore_nand
执行
shutdown now
关机断电,拔掉u盘后插电即可直接进入armbian
利用ddbr进行系统的备份和恢复
- ddbr是一个利器,原理上不论是原厂android还是新刷入的armbian系统,只要有其emmc备份文件,就可以直接一键恢复:
- 仍然通过u盘启动到armbian系统
- 备份文件必须仍放到原路径下
/ddbr/BACKUP-s9xxx-emmc.img.gz
- ddbr恢复
- 甚至基于ddbr来进行新盒子的系统刷入也是可行的
运行docker
安装docker
首选基于自带向导:armbian-config -> Software -> Softy -> Docker来安装
或采用docker官方步骤 https://docs.docker.com/install/linux/docker-ce/debian/
1
2curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
镜像加速
创建并且编辑配置文件:vi /etc/docker/daemon.json
1
2
3
4
5
6
7{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com"
]
}安装docker-compose
1
2
3
4sudo apt-get install -y libssl-dev python3-setuptools
sudo apt install python3-dev
sudo apt-get install -y python3-pip
sudo pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simpledocker镜像清理
1
2
3systemctl stop docker
rm -rf /var/lib/docker
systemctl start dockerdocker开机自启
1
sudo systemctl enable docker
添加用户
1
sudo usermod -aG docker $USER
清理Docker占用空间
- 命令查看磁盘使用情况
du -hs /var/lib/docker/
- 查看docker磁盘使用情况
docker system df
- 删除关闭的容器、无用的数据卷和网络,以及dangling镜像
docker system prune
- 命令查看磁盘使用情况
安装Aria2和Samba
- Aria2
1 | docker run -d \ |
需要在hostname:8080->AriaNg设置->Aria2 RPC密钥
中配置RPC_SECRET
- Samba docker安装
1 | docker run \ |
- Samba 本地安装
1 | apt-get install samba |
- 共享文件路径,配置
/etc/samba/smb.conf
1 | [n1] |
- 给用户设置 Samba 密码
1 | smbpasswd -a root |
- 磁盘挂载
1 | blkid |
开机自动挂载,配置/etc/fstab
1 | UUID=0733-17E8 /media/smb vfat defaults,nofail 0 0 |
蓝牙音箱
https://bbs.hassbian.com/thread-11956-1-1.html
https://www.right.com.cn/forum/thread-517710-1-1.html
https://wukong.hahack.com/#/run
参考
- 斐讯N1刷Linux教程整合优化
- 斐讯N1折腾记:运行 Linux 及优化
- 斐讯n1刷入armbian记录
- 斐讯N1刷armbian
- N1稳定版Armbian来了【首发】
- Armbian-5.77 on N1, so far so good
- Armbian for Amlogic S9xxx kernel 4.1x (>= ver 5.55)
扩展
电视盒子系统
android和armbian双系统并存
openwrt
homekit
armbian 新版本
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8188954&extra=page%3D2%26filter%3Dtypeid%26typeid%3D21
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=4057309
https://www.right.com.cn/forum/thread-4052345-1-1.html
https://www.right.com.cn/forum/thread-5683531-1-1.html
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=4053939&extra=page%3D2%26filter%3Dtypeid%26typeid%3D21
https://users.armbian.com/balbes150/arm-64/