本文主要探索了 WS1408 上刷入 OpenWrt 的方式,以及对该设备上 Armbian 的展望
OpenWrt 固件制作及输入流程,Ctrl+F 搜索关键字 “实现流程” 跳跃至正文 – 开始操作
⚠阅前须知⚠
本文是从一个对嵌入式开发一无所知的使用者的角度,对一款不太热门的设备的研究过程,冗长而无趣,但有用?轻喷
TODO
1. 解决知乎 markdown 有序列表间插入代码块,编号不连续的问题

本次研究缘起 赚钱宝1代2代3代openwrt官网固件线刷包 by dybjxx,正好我杂物堆里又翻出了一台迅雷赚钱宝一代,那不得整起?

迅雷赚钱宝初代,板代号 WS1408,配置如下:

CPU:amologic s805 (Meson8 Family, Meson8b, Quad 32bit Cortex-A5, ARMv7, 28nm, 1.5GHz)
RAM:Nanya DDR3 256MB
ROM: Spansion S34ML01G100TF100 1Gb SLC NAND FLASH
USB:USB2.0-OTG
T-Flash:最高支持Class-10,64GB
网口:IC+ IP101GR 100Mbps
电源:12V/1A
TTL波特率:115200

除开百兆网口以外,这配置做一台 Linux 小主机还是8错的,甚至可以做一台弱鸡单臂路由。

一些拆机
blog.ich8.com/post/5994

官方固件有什么

先来看看官方固件。据我所知,迅雷并没有公开提供过赚钱宝的线刷固件,所以只能求助万能的网友了。

从网上收集到两个线刷固件

收集物x2
thunder-miner-rom_445.img miner_rom_V1.3.1330.img

固件解析

整理了一些分析工具的输出结果

文件名: miner_rom_V1.3.1330.img
文件大小: 28.3 MB (29,742,256 字节)
MD5: B19C7C0F117265225EB9AC521939FE47
SHA1: 8832C416D91AE428FFF1FA9811BB06CA7520F082
SHA256: 5ACF38186A50337D96EF6E22ECB56434A1F2C23EFDE6FD4EFD2B5003A4391328
SHA512: BECFBD2E0C717D3C39E4B440DA6B9B021A7933801832D993E09FCB5035075BE3067EE39812843098659B4D0040F800A44FE7179424F694D69B2BCBA935C8E5AA
CRC32: 3F483A2E

# binwalk.diff
425352        0x67D88         uImage header, header size: 64 bytes, header CRC: 0xD6ADBBD4, created: 2015-07-20 05:49:31, image size: 4792105 bytes, Data Address: 0x208000, Entry Point: 0x208000, data CRC: 0xDD4AD31F, OS: Linux, CPU: ARM, image type: OS Kernel Image, image name: "Linux-3.10.33"
5217672       0x4F9D88        gzip compressed data, maximum compression, has original file name: "rootfs.cpio", from Unix, last modified: 2015-07-20 05:49:39

# linux-amlogic-toolkit
[Msg]Unpack item [USB         ,              DDR] to (output/image/DDR.USB) size:13640 bytes
[Msg]Unpack item [USB         ,       UBOOT_COMP] to (output/image/UBOOT_COMP.USB) size:391871 bytes
[Msg]Unpack item [conf        ,         platform] to (output/image/platform.conf) size:116 bytes
[Msg]Unpack item [dtb         ,            meson] to (output/image/meson.dtb) size:16201 bytes
[Msg]Unpack item [conf        ,             keys] to (output/image/keys.conf) size:0 bytes
[Msg]Unpack item [PARTITION   ,             boot] to (output/image/boot.PARTITION) size:6292439 bytes
[Msg]Unpack item [PARTITION   ,          upgrade] to (output/image/upgrade.PARTITION) size:22601728 bytes
[Msg]Unpack item [PARTITION   ,       bootloader] to (output/image/bootloader.PARTITION) size:424640 bytes

# U-boot banner
U-boot-00000-g094c33d-dirty(m8b_m201_v1@) (Jul 27 2016 - 17:18:23)

another 应该是旧一点的

文件名: thunder-miner-rom_445.img
文件大小: 21.6 MB (22,650,996 字节)
MD5: F58048BFE42885C27D7FD799512882EA
SHA1: 078981FB9CF6CF813C3427DE8377ACE8EBEDCB61
SHA256: EC0D532474D7384AD06A719AF3830C6470560912EF284D62193D39C6CB103D3B
SHA512: E829FA622372C23CDDBAB6FF523CE892ADDD8DF32F4884658C9C84E75B8F06E43F8EF5BEE6DE3798AEF58CC2D3D0B5818427A2C5A922E99944511159D75B6417
CRC32: D829A6E7

# binwalk.diff
424680        0x67AE8         uImage header, header size: 64 bytes, header CRC: 0xDBF0C66F, created: 2014-12-23 02:38:32, image size: 4691103 bytes, Data Address: 0x208000, Entry Point: 0x208000, data CRC: 0x780B54DC, OS: Linux, CPU: ARM, image type: OS Kernel Image, image name: "Linux-3.10.33"
5116648       0x4E12E8        gzip compressed data, maximum compression, has original file name: "rootfs.cpio", from Unix, last modified: 2014-12-23 02:38:42

# linux-amlogic-toolkit
[Msg]Unpack item [USB         ,              DDR] to (output/image/DDR.USB) size:13640 bytes
[Msg]Unpack item [USB         ,       UBOOT_COMP] to (output/image/UBOOT_COMP.USB) size:391235 bytes
[Msg]Unpack item [conf        ,         platform] to (output/image/platform.conf) size:116 bytes
[Msg]Unpack item [dtb         ,            meson] to (output/image/meson.dtb) size:16167 bytes
[Msg]Unpack item [conf        ,             keys] to (output/image/keys.conf) size:0 bytes
[Msg]Unpack item [PARTITION   ,             boot] to (output/image/boot.PARTITION) size:6186156 bytes
[Msg]Unpack item [PARTITION   ,          upgrade] to (output/image/upgrade.PARTITION) size:15618048 bytes
[Msg]Unpack item [PARTITION   ,       bootloader] to (output/image/bootloader.PARTITION) size:424016 bytes

可见,WS1408 的固件中只有三个分区:bootloader, boot, 以及 upgrade。

分区名 描述 备注
bootloader 启动引导 U-Boot
boot Android bootimg 包括 boot header,kernel,ramdisk
upgrade 工作分区 文件系统为ubifs,启动后会 switch_root 到这里