zoukankan      html  css  js  c++  java
  • N1, T1刷机记录

    硬件配置

    N1和T1使用的是晶晨Amlogic方案的芯片, 配置明细分别如下, 都是现在盒子的主流配置

    N1
    CPU: Amlogic S905, ARM Cortex-A53 四核 up to 2.0GHz
    GPU: ARM Mali™-450, 5core
    ETH: RTL8211F 100/1000M
    WLAN: Broadcom CYW43455 2.4GHz + 5GHz + BT4.1
    ROM: Samsung KLM8G1GEME or FORESEE NCEMAM6G-08G,eMMC5.1 MLC = 8GB
    RAM: Samsung K4B4G1646E-BYMA, 4Gb(512MB) DDR3-1866MHz * 4 = 2GB

    T1
    CPU: Amlogic S912, ARM Cortex-A53 八核 1.5GHz up to 2.0GHz
    GPU: ARM Mali-T820MP3 up to 750MHz
    ROM: 三星KLMAG1JENB 16GB eMMC5.1 MLC闪存颗粒
    RAM: 三星K4B4G1646E 4Gb(512MB) DDR3-1866MHz, 正反4颗, 总内存2GB
    WLAN: AW-CM256SM
    BT: RTL8726A, ARM Cortex M0、256KB eFlash、80KB RAM

    工具准备

    硬件上, 需要准备一根双公头的USB连接线

    软件上, 目前晶晨的烧录工具, 在Linux下只支持Ubuntu14和16, 对18.04还不支持, 安装时会直接提示在18.04下未验证, 所以未能尝试在Ubuntu下烧录. 除此以外其他的工具adb, fastboot在Ubuntu18.04下都是可以正常使用的.

    在Win7下需要使用的工具有 adb, fastboot, 这两个是Android的标准调试工具, USB Burning Tool 这个是晶晨的烧录工具

    另外需要准备的是用于给N1和T1降级使用的引导区固件, boot.img, bootloader.img 和 recovery.img

    以上需要的软件, 都可以从这里下载 https://pan.baidu.com/s/14i4HcbfyqyYVXYo-a0PZLg 提取码: 1hjy

    以及用于烧录的系统固件 -- 这个比较大, 500~700MB, 需要提前下载

    系统降级

    N1: 在运行界面的版本号上点击4次, 至出现"打开adb", 这个状态重启后会保持
    T1: 在配置中, 开启"远程调试"

    记下IP地址, 然后在命令行使用adb连接

    adb connect 192.168.1.170
    

    显示连接成功后, 这一步是要使设备启动到fastboot模式以便于写入那三个img, 执行命令后将usb连接到电脑

    adb shell reboot fastboot
    

    这时候系统会显示找到新硬件, 待其自动安装驱动, 直至完成. 如果完成后显示硬件有问题(黄色感叹号), 重启电脑, 然后再重复一遍上面的操作

    硬件正常工作后, 可以在命令行通过fastboot devices看到连接的硬件

    fastboot devices -l
    

    这时候就可以通过fastboot flash 写入img了, 注意N1和T1的img是不同的, 不要搞混.

    fastboot flash bootloader bootloader.img
    fastboot flash boot boot.img
    fastboot flash recovery recovery.img
    
    # 结束后重启设备
    fastboot reboot
    

    .

    烧录过程

    安装USB Burning Tool, 最后会弹出驱动安装, 一路继续安装

    在系统设备管理中, 手动添加过时设备, 选取Install the hardware that I manually select from a list, 选取 libusb-win32 Usb Devices, 选取 WorldCup Device

    这时候最好重启一下电脑, 以便驱动生效

    N1的烧录

    打开USB Burning Tool, 导入需要烧录的img, 去掉Erase flash 和 Erase bootloader 这两项的勾选

    盒子断开USB, 断电, 然后加电(不需要连接USB), 待其进入系统获得IP地址后, 使用adb让其重启

    adb connect 192.168.1.170
    # 这一步执行时要先拿好USB插头
    adb shell reboot update
    

    在敲下最后这行命令回车时, 系统会立即重启, 这时候请立即将USB连上电脑, 并立即点击USB Burning Tool的Start按钮, 如果能看到进度条, N1就已经开始烧录了. 

    T1的烧录

    有些固件需要预先将密匙放到USB Burning Tool安装目录 license 子文件夹下才能正常烧录, 如果子目录不存在则新建目录

    盒子断电, 断开usb, 然后USB Burning Tool点击开始后, 立即加电, 同时连上USB, 这时候USB Burning Tool就会直接识别开始烧录

    烧录结束后, 保险起见, 先点击Stop, 关闭USB Burning Tool程序, 然后再给N1或者T1断电.

    运行Armbian Linux

    准备好一个大于4G的U盘, 下载Armbian Linux的img.xz文件, 下载地址

    https://yadi.sk/d/pHxaRAs-tZiei
    国内的可以访问 https://share.weiyun.com/5eCvcvS (部分搬运)密码:mivmcn

    在Ubuntu18.04下, 使用系统自带的Disk Image Writer (在img文件上右键菜单就能看到, 或者运行Disk, 选中TF卡盘, 在界面右上角的菜单里点Restore Disk Image), 这个速度较快.
    不要用dd, 速度非常慢. usb3.0的读卡器写tf卡, Disk Image Writer能到18MB/s, 而dd只有1/5的速度.

    从 https://github.com/yangxuan8282/phicomm-n1/releases 中找到对应n1的dtb文件, 下载.
    路径是 https://github.com/yangxuan8282/phicomm-n1/releases/download/dtb/meson-gxl-s905d-phicomm-n1.dtb

    将这个文件复制到U盘的boot分区的dtb文件夹, 并修改boot分区的uEnv.ini文件, 将其中的dtb文件改成这个文件, 同时修改extlinux 目录下的extlinux.conf, 把里面的dtb文件也改掉

    关于使用U盘启动

    有些教程说直接将U盘插入USB口后, 加电即可从U盘启动, 但是在我这里并不是这样, 加电后还是进入了自带的Android系统. 这时候需要断电把U盘拔下来.
    检查一下N1此时的IP, 通过 adb connect IP 连接一下, 再执行 adb shell reboot update , 在执行这个命令让N1重启的同时, 将U盘插入, 这时候就会从U盘启动了. 而且这次启动之后, 再开关机都会从U盘启动. 即使N1自带存储已经写入了Armbian系统, 还会先从U盘启动

    测试过的版本:
    5.67 20181207
      Armbian_5.67_Aml-s9xxx_Debian_stretch_default_4.19.6_desktop_20181207.img.xz 图形界面正常
      Armbian_5.67_Aml-s9xxx_Ubuntu_bionic_default_4.19.6_desktop_20181207.img.xz 图形界面无法启动, 命令行正常
      Armbian_5.67_Aml-s9xxx_Ubuntu_bionic_default_4.19.6_20181207.img.xz 工作正常, WIFI工作正常

    如果要写入N1, 以后从N1直接启动, 直接在/root/目录下执行 install.sh 就可以了. 看了命令明细, 就是把U盘里的文件往 /dev/mmcblk1p1 和 /dev/mmcblk1p2 这两个分区里写.

    关于配置WiFi

    建议通过执行自带的armbian-config, 在其界面总进行配置. 有时候连接会不太正常, 重试就好了. 重启系统后不会自动连接WiFi, 这个还不知道如何配置

    Update 2019-11-15 执行 nmtui, 选择第二个Activate a connection,按提示选择并输入密码即可, 若Activate a connection中没有Wi-Fi选项卡则说明内核尚未开启wifi_dummy和dhd模块,执行如下指令

    modprobe dhd && echo dhd >> /etc/modules
    modprobe wifi_dummy && echo wifi_dummy >> /etc/modules
    

    如何从Armbian Linux 刷回 Android TV

    手里这个N1, 断电重启, umount /dev/mmcblk1p1 格式化后再重启, 都不会进入线刷状态. 看来是必须要通过类似于 reboot update 这样的命令才能实现了.

    实现的途径是: 用U盘制作一份 CoreELEC 的系统, 将系统写入N1(启动后进入ssh, 在/flash目录下执行installtoemmc, 都选y), 再从N1中执行 root update 命令, 这时候就会进入线刷状态.

    Update 2019-11-15: 4.18+的内核刷入eMMC后会改变分区, 无法再通过U盘重新覆盖安装回到3.14的版本, 也无法再直接刷回盒子的系统. 这个问题的解决方法两种,一种是通过ddbr恢复分区备份, 恢复至原版安卓系统,再刷入其他版本, 另一种是线刷

    ddbr恢复

    从U盘armbian系统启动, 注意系统尽量选择3.x内核的系统,4.x部分需要打dtb网络补丁也可能无法挂载eMMC, 首先记下系统的mac地址, 以便ddbr恢复后写回

    ssh下执行ddbr指令, 首先输入b (backup), 在进度条开始后即可Ctrl+C取消, 这样可以获取到ddbr备份的文件的名称, 因为不同版本的Armbian备份出来的包名有不同

    打开winscp用sftp加你的ssh登录信息登陆, 进入/ddbr目录, 可以看到一个*-emmc.img.gz文件, 将它用原版系统ddbr包替换掉(保持此文件名).

    ssh下执行ddbr指令, 键入r (restore), 会询问是否使用了压缩 DID YOU USED COMPRESSION, 选择y即可

    成功后直接键入 poweroff 拔电拔U盘重启

    当然这个ddbr也可以备份你现有的armbian系统,装好了合适的系统ddbr一下把镜像留下, 留作以后崩了之后恢复

    恢复后, 修改/etc/network/interfaces 文件。添加如下内容,改为之前保存的mac地址, 修改完保存重启
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    hwaddress ether 00:90:45:56:45:12

    You can set a custom MAC address during start-up by editing /etc/network/interfaces or /etc/network/interfaces/eth0 and adding a line starting with hwaddress :
    auto eth0
    iface eth0 inet dhcp
    hwaddress ether XX:XX:XX:XX:XX:XX

    ddbr文件下载
    #1 镜像状态: N1, 2.1x 版本,刷了rush的极限精简固件,没有装任何其他软件。可能在/dev/data区有上次安装Armbian的残留文件.
    理论上,用TTL连接之后,通过dd命令,直接恢复到/dev/mmcblk0是有一定救砖能力的,尚未测试。试过用Armbian自带的ddbr脚本恢复,可用。
    链接: https://pan.baidu.com/s/15aiLxlpB30dgrthpejZ38w 密码: cp7i

    #2 https://cnone.lty.fun/home/%E5%B7%A5%E5%85%B7%E5%BA%93/N1/ddbr/ 原版Android, 已开启adb

    线刷

    1.先把USB对公线链接到电脑USB口与N1的第二个口(靠HDMI口),N1不要通电
    2.打开USB_Burning_Tool,导入固件WEBPAD大的2.2的线刷包,验证通过后,出现开始字样
    3.勾选擦除FLASH,不要勾选擦除bootloader,USB_Burning_Tool点击开始运行刷机,3秒钟内速度让N1通电。
    4.USB_Burning_Tool开始正常识别N1线刷模式,刷机开始。
    5.烧录完成后,拔电重启,N1恢复了原来的样子,可以正常ADB连接,进入线刷,重新安装ARMBIAN。

    运行OpenWRT

    参考

    https://www.right.com.cn/forum/thread-665125-1-1.html

    https://www.right.com.cn/forum/thread-673287-1-1.html

  • 相关阅读:
    mysql自动增长怎么恢复从1开始
    Python 中的多维字典
    如何将JS里变量的值赋给文本框
    使用nagios+python监控nginx进程数
    python getopt使用
    Nagios安装完后status map,trends等页面访问出错之解决
    nagios监控3306端口
    AdventureWorks Databases 2008 下载地址
    multiselect获取选中的多个下拉项的值(逗号分割的字符串)
    用CSS让网页背景图片居中的方法
  • 原文地址:https://www.cnblogs.com/milton/p/10130592.html
Copyright © 2011-2022 走看看