大部分细节内容被精简,描述不会太详细,仅为内容记录。
一、准备
网线
PC + N1
键盘(备用)
双公头 USB 线
HDMI 线 + 显示器
二、注意事项
任何情况都不要把做好的 Armbian 系统 U 盘插入盒子自带的 Android 系统,否则该 U 盘镜像权限会被更改。
联网后路由器后台查看盒子 lan 和 wlan 的 MAC 地址,后期会被恢复系统等操作更改,以防不测。
三、降级
连接盒子。
① 插电、网线、双公头线 USB + HDMI(显示器)
② adb 连接 N1(IP 地址会在 HDMI 屏幕显示)adb connect 192.168.0.92:5555 * daemon not running; starting now at tcp:5037 * daemon started successfully connected to 192.168.0.92:5555
切换到线刷模式
adb reboot fastboot
确认设备状态
fastboot devices # 输入后显示一串序列号。如无法识别,win10 在设备管理器,右键该设备自动更新安装即可。
刷入各降级分区(2.19 版本提取)
fastboot flash bootloader bootloader.img fastboot flash boot boot.img fastboot flash recovery recovery.img
重启设备,正常开机一次
fastboot reboot
kill 掉 adb 服务(可选)
adb kill-server
四、准备 Armbian
先备份原系统,再把 Armbian 刷入 eMMC 分区脱离 U 盘引导。
制作 U 盘 Armbian 镜像
1.当前选择 Armbian_5.99_Aml-g12_Debian_buster_default_5.3.0。 2.rufus 刻录 U 盘,完成后电脑会显示 boot 分区。 3.修改 uEnv.ini 为 meson-gxl-s905d-phicomm-n1.dtb 这是针对 N1 的启动钥匙(类似驱动和硬件引导信息)。 4.某版本开始内置斐讯 dtb,负载数值显示 2.0,需反编译打包修改才正常(仅是显示问题,不影响使用)。
进入 U 盘系统(两种方法)
方法 1:执行命令,立刻把 U 盘插入 USB 口adb shell reboot update
方法 2:关机状态插好 U 盘,上电开机自动引导,也可能会失败,如果失败马上拔掉 U 盘。
接下来在 U 盘系统操作
1.进入 Armbian 后,屏幕 SSH 界面可能不显示 IP。 2.用户 root,密码 1234 3.重复当前密码 4.新密码 5.重复新密码 6.按下 Ctrl+C 跳过新建用户 7.使用 root 登陆 # 检查 U 盘目录情况,全部都是 root 权限才正常。如多个 Android 文件夹,必须重做 U 盘。 ls -l /
备份原系统(重要)
1.开始备份,输入命令顺序 ddbr -> b -> y -> y ===================== DO YOU WANT TO BACKUP OR RESTORE ? BACKUP=(b) RESTORE=(r) b AVAILABLE DEVICES: mmcblk1 sda1 sda2 YOU ARE RUNNING buster FROM sda2 INTERNAL EMMC IS: mmcblk1 SIZE: 7634944 ROOT (sda2) FREE SPACE IS: 13179140 DO YOU WANT COMPRESSION ? YES=(y) NO=(n) y SAVING AND COMPRESSING mmcblk1 TO /ddbr/BACKUP-s9xxx-emmc.img.gz... 3.01GiB 0:09:08 [7.21MiB/s] [============> ] 40% ETA 0:12:59 2.确认备份 cd /ddbr && ls -lht -rw-r--r-- 1 root root 613M Jul 10 15:26 BACKUP-s9xxx-emmc.img.gz # 提取备份(在 U 盘系统 /ddbr 目录里)。 # 可以通过 FlashFXP 或 WinSCP 下载到本地。 3.恢复备份(测试通过),重新进入 U 盘系统执行 ddbr -> r -> y -> y
SSH 操作须有 IP 地址,如何获取盒子 IP?
SSH 直接输入:`ifconfig eth0 | grep -w inet | awk '{print $2}'` 路由器后台 ip ad ifconfig nslookup aml 或 nslookup amlogic (win 命令) 拿不到 IP 检查网口,网线 拿到 IP 但无法联网,手动给盒子设置 DNS。
安装 Armbian
注意:刷入 eMMC 内置分区,需了解利弊再操作!当然,前面备份好 eMMC 分区系统想怎么折腾都行。lsblk # 查看是否有 mmcblk1 才能安装,看不到 emmc 分区会安装失败。 cd ~ && ls。 ./install.sh # 安装命令,2019 老版本 ./install-aml.sh # 安装命令,2020 新版本 poweroff # 刷完执行,避免拔电丢失配置
上面 5 个步骤操作完,断电、拔 U 盘,上电引导 eMMC 分区 Armbian 系统。
五、优化处理
可以在进 U 盘系统时优化好,装到 eMMC 分区就是优化过的系统。
syslog 中每 10s 出现一次 ttyS0 服务启动失败的日志:
systemctl disable serial-getty@ttyS0 systemctl stop serial-getty@ttyS0 #systemctl disable syslog.service #systemctl stop syslog.service
MAC 地址随机变动解决办法:
# 修改 /etc/network/interfaces,添加: [二选一] hwaddress ether FC:xx:xx:xx:xx:xx pre-up ifconfig eth0 hw ether FC:xx:xx:xx:xx:xx # 或直接修改 uEnv.ini 添加: ethaddr=FC:xx:xx:xx:xx:xx
禁用无线网卡 ipv6(可选):
echo 'net.ipv6.conf.wlan0.disable_ipv6 = 1' >> /etc/sysctl.conf
SSH 无法显示和输入中文(可选):
nano /etc/environment ARCH=arm64 LC_ALL=″en_US.utf-8″ # 生效 source /etc/environment
设置时区 x2:
[二选一] 1.armbian-config => personal => Timezone => Asia => Shanghai 2.rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && Asia/Shanghai" > /etc/timezone
删除默认 DNS(可选):
rm /etc/resolvconf/resolv.conf.d/head && touch /etc/resolvconf/resolv.conf.d/head reboot # 查看当前 DNS cat /etc/resolv.conf
国内 apt 源,修改 2 个位置
1.执行 armbian-config,选择 personal,选择 Mirror China。 # 等同于修改 /etc/apt/sources.list.d/armbian.list # mirrors.tuna.tsinghua.edu.cn/armbian 2.快速修改: mv /etc/apt/sources.list /etc/apt/sources.list.bak tee /etc/apt/sources.list <<-'EOF' # Debian 10-Buster deb https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free deb https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free deb https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free #deb-src https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free #deb-src https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free #deb-src https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free EOF tee /etc/apt/sources.list <<-'EOF' # Debian 9-Stretch deb http://mirrors.aliyun.com/debian stretch main contrib non-free deb http://mirrors.aliyun.com/debian stretch-updates main contrib non-free deb http://mirrors.aliyun.com/debian-security stretch/updates main contrib non-free #deb-src http://mirrors.aliyun.com/debian stretch main contrib non-free #deb-src http://mirrors.aliyun.com/debian stretch-updates main contrib non-free #deb-src http://mirrors.aliyun.com/debian-security stretch/updates main contrib non-free EOF # 执行 apt update && apt upgrade -y # 最后 reboot 重启。 # 更多国内源:https://leeyr.com/105.html
连接 WiFi:
部分 2.4GHz 信号无法显示,只能找到 5GHz,原因未知(突然又能显示原因未知,信号差,断流)。# 执行 armbian-config(或 nmtui) # 选择 network -> wlan0 选择 wifi 输入密码
当 Activate a connection 没有 WiFi 选项,开启模块:
modprobe dhd && echo dhd >> /etc/modules modprobe wifi_dummy && echo wifi_dummy >> /etc/modules
关闭 / 打开 / 扫描 WiFi:
nmcli radio wifi off nmcli radio wifi on iwlist wlan0 scan
系统负载监测:
armbianmonitor -m # 不显示温度修复(未测试):ln -s /sys/devices/virtual/thermal/thermal_zone0/temp /etc/armbianmonitor/datasources/soctemp
挂载 NTFS:
apt-get install ntfs-3g mkdir /mnt/Disk mount -t ntfs-3g /dev/sda1 /mnt/Disk # 编辑 fstab #/dev/sda1 /mnt/Disk ntfs defaults 0 0 #/dev/sda1 /mnt/Disk ext4 defaults 0 0 # 执行 mount -a
挂载 U 盘:
fdisk -l # 查看磁盘情况 mkfs.ext4 /dev/sdb # u 盘是 sdb,执行格式化 sdb mkdir /mnt/USB # 创建目录供挂载使用 mount -v /dev/sdb /mnt/USB # 挂载 U 盘 df -h # 查看挂载状态 umount -v /dev/sdb # 解除挂载 # 备用方法 parted /dev/sda mklabel gpt yes mkpart logical 0 -1 ignore print quit mkfs.ext4 -F /dev/sda2
安装 samba:
apt-get update apt-get install samba -y # 提示 Modify smb.conf to use WINS settings from DHCP? # 选择 YES # https://www.linuxquestions.org/questions/linux-software-2/samba-profiles-and-wins-608694/ cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak nano /etc/samba/smb.conf ########################## [N1] comment = N1 共享 available = yes browseable = yes create mode = 0664 directory mmode = 0775 force create mode = 0775 force directory mode = 0775 path = /media/C/SMB public = yes read only = no writable = yes # 高级玩法 https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html # 授权 chmod 777 -R /mnt/Disk service smbd restart # 此时可读可写,完成安装。 # https://www.techrepublic.com/article/how-to-set-up-quick-and-easy-file-sharing-with-samba/
禁用红外(可选,部分固件默认未安装):
systemctl stop lircd.service lircd-setup.service lircd.socket lircd-uinput.service lircmd.service apt autoremove -y lirc && apt autoremove lirc -y
禁用 NFS 服务(可选):
systemctl disable nfs-server
Armbian 允许 PING(可选):
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf
Read only filesystem
解决方法(未测试):# 运行 e2fsck /dev/mmcblk1p2 # 修改 install.sh parted -s "${DEV_EMMC}" mkpart primary fat32 700M 828M parted -s "${DEV_EMMC}" mkpart primary ext4 829M 100% # 改成 parted -s "${DEV_EMMC}" mkpart primary fat32 1024M 1152M parted -s "${DEV_EMMC}" mkpart primary ext4 1153M 100% # 验证方式 sync echo s >/proc/sysrq-trigger echo u >/proc/sysrq-trigger fsck.ext4 -fvy /dev/mmcblk1p2
系统自带状态面板,交互式实时查看温度,CPU 使用率,任务详情,Kill 进程。命令:
htop
查看 CPU 支持的指令集
cat /proc/cpuinfo
修复无法获取 IP
原因:两边网卡的工作状态不统一,网络不通,自动协商不生效。Padavan => 内部网络 (LAN) => LAN x => 以太网交换机 => 速度和双工模式:选择 <100 Mbps, Half Duplex: [AN]> 提示: 设置完 N1 马上就能拿到 IP。 最后,检查所有局域网设备是否正常上网,有些设备自动协商可能会出现兼容问题。
和 DTB 无关。
使用 Padavan 新版本并且 LAN 口为百兆,问题可能会存在。
和 Armbian 系统版本有关,原始系统可能会发生。第三方编译固件可能会被修复。
解决办法
修复连接千兆路由,但 N1 只显示百兆,了解参数后谨慎操作。
# 查看修改前信息 ethtool eth0 # 快速修改 ethtool -s eth0 speed 1000 duplex full autoneg off -eth0 网卡 -speed 速率 -duplex 双工模式:full-全双工,half-半双工 -autoneg 自动协商 # 查看修改后信息 ethtool eth0 ------------
修复无线网卡 mac 地址。脚本 FixWlanMAC.sh:
#!/bin/bash #update:2019-11-11 #author:alon2000 #LAN_MAC=`ifconfig eth0 | grep -w ether | awk '{print $2}'` LAN_MAC=`cat /sys/class/net/eth0/address` MAC_HEAD=`echo $LAN_MAC|cut -c1-15` MAC_TAIL=`echo $LAN_MAC|cut -c16-17` MAC_TAILn=$((16#${MAC_TAIL}-1)) WLAN_MAC="$(printf '%s%02x ' $MAC_HEAD $[MAC_TAILn])" if [[ -f "/lib/firmware/brcm/brcmfmac43455-sdio.phicomm,n1.txt" ]] ; then sed -i -e "s/^macaddr=b8:27:eb:74:f2:6c$/macaddr=$WLAN_MAC/" "/lib/firmware/brcm/brcmfmac43455-sdio.phicomm,n1.txt" fi if [[ -f "/lib/firmware/brcm/brcmfmac43455-sdio.txt" ]] ; then sed -i -e "s/^macaddr=b8:27:eb:74:f2:6c$/macaddr=$WLAN_MAC/" "/lib/firmware/brcm/brcmfmac43455-sdio.txt" fi WiFi MAC address modified successfully! reboot..." reboot
六、编译 dtb
说明:
dtb => 设备树二进制 Device Tree Binary(Blob?)
dts => 设备树源码 Device Tree Source
先安装
apt install device-tree-compiler
反编译 dtb => n1.dts
# 旧版本(5.98 之前) cd /boot/ dtc -I dtb -O dts -o n1.dts meson-gxl-s905d-phicomm-n1.dtb # 新版本(5.98 之后) cd /boot/dtb/amlogic/ dtc -I dtb -O dts -o n1.dts meson-gxl-s905d-phicomm-n1.dtb
编辑 n1.dts 代码
# 编辑 *.dts nano n1.dts bus@c1100000 { compatible = "simple-bus"; reg = < 0x00 0xc1100000 0x00 0x100000 >; #address-cells = < 0x02 >; #size-cells = < 0x02 >; ranges = < 0x00 0x00 0x00 0xc1100000 0x00 0x100000 >; interrupt-controller@9880 { compatible = "amlogic,meson-gpio-intc amlogic,meson-gxl-gpio-intc"; reg = < 0x00 0x9880 0x00 0x10 >; interrupt-controller; #interrupt-cells = < 0x02 >; amlogic,channel-interrupts = < 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 >; status = "okay"; #phandle = < 0x1e >; // 旧版本(5.98 之前) #phandle = < 0x21 >; // 新版本(5.98 之后) }; };
打包 n1.dts => n1.dtb
dtc -I dts -O dtb -o n1.dtb n1.dts rm n1.dts
保证 n1.dtb 在响应目录,最后修改 uEnv.ini 文件对应 dtb 名字。
#cp -av n1.dtb /boot/dtb/n1.dtb #cp -av n1.dtb /boot/dtb/amlogic/n1.dtb
重启
reboot
深入 DTB
linux 设备树笔记 --dts 基本概念及语法
Linux DTS(Device Tree Source) 设备树详解之一 (背景基础知识篇)
Linux DTS(Device Tree Source) 设备树详解之二 (dts 匹配及发挥作用的流程篇)
Linux DTS(Device Tree Source) 设备树详解之三 (高通 MSM8953 实例分析篇)
DTB 对应版本
Amlogic S905 = p200/p201
Amlogic S905X = p212
Amlogic S905D = p230/231
Amlogic S905W = p281
Amlogic S912 = q200/q201
存在问题:内存只有 1.8 GB,剩余的去哪里了?未影响使用暂不深入研究:
linux,cma { compatible = "shared-dma-pool"; reusable; size = < 0x00 0x38000000 >; alignment = < 0x00 0x400000 >; linux,cma-default; }; # 学习资料:http://www.wowotech.net/memory_management/cma.html
七、其它
1. 内核更新
https://apt.armbian.com/pool/main/l/ (搜索 aml)
2.Armbian 镜像
https://yadi.sk/d/pHxaRAs-tZiei
https://mega.nz/#F!j9QSDQSQ!6WpasOlbZYIInfw6yo4phQ
https://github.com/150balbes/Amlogic_s905/wiki
https://mega.nz/#F!fotgQS6J 备份
4.adb 工具
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
5. 其它固件
https://www.right.com.cn/forum/thread-428599-1-1.html
https://github.com/yangxuan8282/phicomm-n1
https://www.youtube.com/watch?v=MhFGNHEe3NY
6. 跑个分
# 单核 openssl speed md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 # 四核 openssl speed -multi 4 md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048
8. 如何救砖
https://www.right.com.cn/forum/thread-362781-1-1.html
9. 如何把 N1 搞坏
https://www.right.com.cn/forum/thread-627425-3-1.html
版权声明
1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)
- 上一篇: Fiddler 超详细教程,新手必看
- 下一篇: Excel从F1到F12所有快捷键功能作用
发表评论