|
前言
2019年3月份以后,有人开始在淘宝、闲鱼上开始大量抛售一种名为“蜗牛星际” 的矿渣机。抛售价急跌至200元左右。该机配置为英特尔赛扬J1900四核处理器;4G内存;四盘位SATA机箱。估计单机的实际生产成本应该在600到800元之间。可以说它是一款改机为低功耗NAS(Network Attached Storage:网络存储器)的高性能价格比的硬件。网络上流传着不少为它安装黑群晖文章。但很少有为它安装黑威联通文章。为此坛友希望我能为该“蜗牛星际矿渣机”出一个制作黑威联通专版的教程。为了答谢坛友们的厚爱,我再次出手以该机为例深入浅出地介绍了嵌入式linux逆向工程的概念,原理及制作蜗牛星际矿渣机专版黑威联通的技术细节。
需要强调的是,我不是一个黑客。资源来自于威联通官网公布的系统包和发布的固件。参考文献中注明所有引用的出处。本文深入浅出地介绍如何把握嵌入式linux逆向工程与特定硬件设备的关联关系。并为教学实践提供了演示用的在蜗牛星际矿渣机上创建黑威联通的通用安装盘。此安装盘的理念和启动引导的基础架构设计均绝对是老骥伏枥本人独创,并合法利用开源项目 (Tiny Core Linux Project) [1] 开发的。 也是老骥伏枥通过 NASYUN 论坛在全球独家首发。该演示用通用安装盘已实施了加密防扩散处理,为的是进行教学, 研究和技术交流。 禁止用于任何商业目的。
第一讲 蜗牛星际矿渣机的硬件分析
嵌入式设备固件代码的逆向解析常常被用于破解固件或将固件升级维护及关键电子设备的功能解读和安全防护, 因此学习,研究固件代码逆向解析技术是软件工程中的一个重要领域。
当我们企图将威联通系统的固件移植到蜗牛星际矿渣机上去的时候,首先要做的是必须详细了解,分析蜗牛星际矿渣机的硬件。目前市面上抛售的蜗牛星际矿渣机,主要有如下4种型号的机箱。主板虽然都是英特尔赛扬J1900四核处理器。但其它的配置就稍有不同。下图是不完全统计的4种型号的一些基本配置的列表:
这张表是从网上获得的,表中的一些信息不一定完全准确无误,仅供参考。
为了制作专门用于英特尔赛扬J1900四核处理器的专版黑威联通。必须要了解的是4种型号的机箱内的各类主板的比较细致的配置情况。(据说不止这4种,还有一种“E款双I211网卡”的主板。机箱是仿GEN 8的)。总之,我会尽量为大家提供我所能了解到的信息。
在广大坛友的热心帮助下,我收集到了一些主板信息。下面将从“A款单I211网卡”这个主板开始,对蜗牛星际矿渣机的硬件进行详细分析。下图是这款主板的顶视图:
英特尔赛扬J1900四核处理器最多仅支持2个SATA3在(SoC)上。顶视图中黄色框标出了它们的位置。顶视图中蓝色框是一个没有安装器件的网卡位置。顶视图中红色框是扩展SATA2阵列芯片 MARVELL 的 88SE9215控制器转接PCI-E 2.0 to SATA2芯片接口,最多可以是12个。但“A款单I211网卡”这个主板只有4个。其它位置没有安装器件(没有器件可以减少功耗,以J1900这个处理器的功能而言,也足够用了)。板上共有8个USB接口。
紧接着让我们看看“C款双I211网卡” 这个主板的顶视图,并与上述“A款单I211网卡”比较一下。
我们立即可以看出来,这两款主板的结构完全一样。区别是它把板位上的所有器件都装上了。这样的话功耗肯定比“A款单I211网卡”要大一些。两款的CPU散热板是一样尺寸的。采用风冷散热,从尺寸上估计大约10W左右。
再让我们来看看“A款单82583V网卡”主板的结构。从这个主板的顶视图看,它与“A款单I211网卡”和“C款双I211网卡”的结构完全不同。
紧接着让我们看看“B款双82583V网卡”主板的结构的顶视图。可以看出这款主板的结构与“A款单82583V网卡”完全一样。只是把板位上空位的器件装上了一些。但并没有像“C款双I211网卡”那样,把所有扩展的SATA2的器件全部都装上。但也可能有某种型号的这种结构的板子是把所有器件都安装上去的吧。只是我没有收集到它的信息而已。
以下是详细的介绍:
数码标号(1)(2) 音频芯片和音频座,带 mic,接口顺序应该是标准的 数码标号(3) 网口指示灯接口 数码标号(4) USB 2.0 接口,2个,接到前面板 数码标号(5) USB 2.0 hub 芯片,一拖四,实际拖了(4)两组,音频座旁边的 USB 2.0 座一组 ,(14)上面的接口一组,下面的我确定为空的,可能是工程师怕插 USB 设备和芯片干涉 数码标号(6) (7) RS232 芯片和接口,这个接口对于调试嵌入式Linux系统很有用。可以接上ttyS0 端口,查看一下启动过程的log 看看发生了什么问题。 数码标号(8) 网口芯片 82583V的存储器 数码标号(9) (11) 都是电源芯片 数码标号(10) 新塘 mcu 主要是控制开关机风扇等等 数码标号(12) 四针风扇接口 数码标号(13) SATA LED接口 数码标号(15) 控制线和灯接口,从上往下数 数码标号(16) (17) SATA2 阵列芯片 MARVELL 的 88SE9215,接口一共四个,其中的SATA2接口是 PCIe 转的,82583V网卡口也是 PCIe 转的。只有2 个SATA3是采用J1900处理器(SoC)给出的原生SATA3 ,一个给mSATA 16G SSD固态硬盘。另一个中间的(18) SATA3 座是空着的。
这两种款型也是风冷的。但CPU散热板尺寸比较小。从尺寸上估计大约7-8W左右。
据说还有一种“E款双I211网卡”的主板。机箱是仿GEN 8的。这款板子没有VGA口,只有一个HDMI口。风冷的CPU散热板尺寸更小。估计也就5-6W吧。这款主板的结构顶视图如下:
其中的SATA2阵列芯片 MARVELL 的 88SE9215接口是 PCIe 转的,I211网卡口也是 PCIe 转的。
接下来我要简单介绍一下关于主板的基本知识。主板的功能是什么?就是提供各种硬件的【安装基座】,把各种【硬件连接】起来。 很多年以前的传统主板[3],主板上的CPU处理器芯片是通过两颗被称作【北桥】和【南桥】芯片把各种外设与处理器连接起来的。按照连接的硬件种类不同,统称“芯片组”,比如780G北桥 + SB710南桥。通常在画主板芯片逻辑示意图的时候,总是处理器放在最上方,靠近CPU的下方是北桥,北桥的下方是南桥。还记得我们看地图的时候总是说“上北下南”,南北桥名称的来历就沿用了这个习惯性的说法。
北桥靠近CPU,通常用来连接【高速的硬件】,传统北桥的功能包括内存控制、显卡PCI-E控制、集成显卡以及显输出等。
南桥通常在主板右下角,用来连接【低速的硬件】,最主要提供SATA硬盘/光驱控制、IDE硬盘/光驱控制、USB接口、音频和PCI控制。
目前世面主流是【单芯片】,比如: 蜗牛星际矿渣机的英特尔赛扬J1900四核处理器单芯片。南北桥芯片组设计已经被市场淘汰,单芯片设计下,【CPU吞并了北桥】大部分功能,包括内存控制、显卡PCI-E控制、集成显卡以及显输出,而单芯片基本上就是传统南桥功能,只是多了传统北桥的低速PCI-E扩展。现在的单芯片CPU一般都会吃掉了北桥,但有些不会吃掉南桥。实际上蜗牛星际矿渣机的英特尔赛扬J1900四核处理器单芯片就是这种设计。它采用低功耗、板载CPU设计,CPU除了具备传统北桥功能,还具备传统南桥功能,所以主板上只有一颗芯片,但需要一个较大功率的散热板,才能保证处理器的高速性能。在进行BIOS配置的时候,你还会看到有【北桥】和【南桥】的配置项目。请不要见怪,这仅仅是沿用传统的用法而已。让你比较容易找到需要配置的项目而已。
硬件的基本情况介绍完了,接下来要看看如何将威联通移植到蜗牛星际矿渣机上来。
由于NASYUN的篇幅限制,请看楼下,第二讲 【破解威联通固件制作蜗牛星际矿渣机专版】,精彩继续! |