首页 > 编程知识 正文

linux嵌入式开发,嵌入式linux

时间:2023-05-05 19:54:46 阅读:274290 作者:4498

原文网址:http://www.nasyun.com/forum.php?mod=viewthread&tid=39736&fromuid=106494
(出处: NAS云论坛)

 

第三讲 教学演示黑威联通启动工具母盘的使用方法

 

为了便于大家学习掌握嵌入式linux逆向工程,实践出真知,只读一读我上一讲的内容,而不自己动手实践的话,是不能掌握嵌入式linux逆向工程技术的。为此我以破解威联通固件为例,为大家制作了一个教学演示启动工具母盘。方便大家做实验。这个启动工具母盘是一个集黑威联通启动盘创建,黑威联通系统启动引导,威联通固件破解,三位一体的工具母盘。母盘中并不包含任何威联通固件。创建启动盘时,该母盘会从威联通官网下载指定的发布的固件。通过破解,打补丁来生成符合当前机种硬件的黑威联通系统启动引导。该盘的设计理念,系统结构,所包含的程序代码均为老骥伏枥本人独家原创已及合法使用开源的TinyCore系统。全部是拥有自主知识产权的本人作品。基本上实现了一键安装。请坛友们遵守 GNU General Public License, 未经授权禁止用于商业用途。 该演示用工具母盘仅仅为的是进行教学, 研究和技术交流。 禁止用于任何商业目的。


该盘的提取地址是: https://pan.baidu.com/s/1bqlAwOn

潇湘居士,如果您要查看本帖隐藏内容请回复


压缩包中包含了两个文件:QNAP-BOOT.qcow2 和QNAP-BOOT.vmdk
它们的md5校验码如下:
d0fdffcc4d3c4c07ca00cf33262b153d  QNAP-BOOT.qcow2
cdaa3760de25480c0d12289402815e73  QNAP-BOOT.vmdk


qcow2格式的文件是KVM虚机用的启动盘。vmdk格式的文件是其它虚机用的启动盘。这次没有提供img格式文件,因为不需要这种格式文件。使用任何一个虚机启动盘,都可以方便容易地制作USB实体机用的启动盘。后面会详细教大家如果做。


下面以KVM虚机为例,详细讲解如何创建黑威联通启动盘。实体机,其它类型的虚机使用方法是完全相同的。首先要用QNAP-BOOT.qcow2盘建立一个KVM虚机。这个盘最好接在IDE总线控制器上。再创建一个数据盘,至少要30G以上,因为威联通系统的部分应用也要装在每块数据盘上,至少会占用16G的空间。这个盘最好要接在SATA总线控制器上,当然也可以接在SCSI或IDE总线控制器上,但与启动盘接在不同的控制器上比较好。以免在安装系统时产生混淆。内存要设定为2G以上。截图如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

启动KVM虚机。启动KVM虚机。你将看到如下截屏:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

启动TinyCore工具母盘。为了防止误操作,这时会要求你输入用户名,默认用户:admin,和默认密码:admin。进入TinyCore系统。
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

点击终端图标,打开一个终端。终端的当前目录是/home/tc。我的程序是以这个目录为基准设计的。千万不要切换目录,以免程序运行出错。


如果你想为实体机制作UBS启动盘,不需要安装虚机的黑威联通。现在就可以插入USB盘。将它连接到虚机。这时你需要用fdisk -l 命令,查一下QNAP-BOOT.qcow2盘和USB盘的盘符。千万不要搞反了,反了会把QNAP-BOOT.qcow2盘给破坏的。然后使用命令:(括号中是我的提示,不要输入到命令中)
 

dd if=/dev/sd? (QNAP-BOOT.qcow2盘) of=dev/sd? (USB盘) bs=1M count=481 复制代码

注意:这里只需要设备名,不需要设备名的分区号。

USB盘只要512M就够了。没有用1G的代替也可以。不过也不要过大。USB盘启动盘其他多余的地方也不能用是个浪费。USB盘需要品质比较好一点的。品质差的USB盘,会出现不可预见的启动错误。


继续讲如何创建黑威联通启动盘。首先需要确定的是数据盘的总线控制器是什么。我的例子中是SATA。因为威联通默认是SATA。我的硬件检测程序的默认值,就也是SATA。如果你的数据盘是接在SCSI, IDE,或其他总线控制器上,你就要编辑修改我的hardware_check脚本程序中第六行的CONTROLLER="SATA"定义。这一点非常重要,弄错了会出现无法检测到硬盘的问题。


接着需要确定机器网卡能正常工作并可以上网。可以使用命令:ping  download.qnap.com

看看能不能连到威联通官网的下载地址。因为创建黑威联通启动盘时需要从官网下载固件。


如果不能连接官网,你也可以把固件预先下载到自己的服务器中。然后编辑修改我的create_qnap_boot脚本程序中第11行的
 

DOWNLOAD_URL=https://download.qnap.com/Storage/TS-X82S/ 复制代码

指向自己的服务器地址。注意最后的反斜杠一定要有。


教学演示盘默认的威联通固件是“TS-X82S_20171117-4.3.3.0378”。
默认的model 类型是“QY410_QY450_10_10”。


威联通的每一个固件,可能会有很多个不同的model 类型。我的教学演示盘可以破解所有的类型。只要你选一个自己喜欢的就好。这个定义在我的create_qnap_boot脚本程序中第8-9行中。你也可以任意选定。好了,如果一切就绪。就可以执行命令:

sudo  ./create_qnap_boot  (一定不要忘记执行 sudo)

复制代码



如果一切正常,执行完成后的截屏如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 


黑威联通的启动盘就做成了。这时你就可以重启机器,开始安装黑威联通系统了。这里我还要教你一点小技巧。你可以执行命令:ifconfig 查看一下这个机器的IP地址。这样重启机器后就可以直接用浏览器输入该IP地址安装系统了。不需要安装威联通Qfinder软件来捡索机器。截屏如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

作为教学演示盘,我还要再介绍一些功能。黑威联通的启动盘就做成后,我会在当前目录中创建一个initrd的子目录。这里包含所有威联通Linux初始RAM磁盘的文件。你可以看看我是如何给文件打补丁的。你也可以添加自己的外挂模块(例如:网卡,hyperV虚机的外挂模块,等等)。总之,可以做任何需要的黑威联通启动盘改造。打造你自己喜欢的黑Q。


这个initrd的子目录是个“沙箱式”的目录,你可以放心地随便查看,修改都没关系。不要执行./re_packing命令,一旦重启机器,这个沙箱就消失了。


如果你需要保留修改,也很简单。只要执行./re_packing命令。你自己版本的黑Q启动盘就做成了。


还有要注意的就是。威联通系统具有硬件关联性。当然黑Q也不例外。如果你拿这个硬件机器生成的黑Q启动盘到另外的硬件上去用。可能就会出现无法检测到硬盘的问题。我的工具母盘在制作时,注意到了这个问题。更换硬件机器后,只要启动进入TinyCore系统。点击终端图标,打开一个终端。重新执行一次命令:

sudo  ./create_qnap_boot  (一定不要忘记执行 sudo)

复制代码



就能让这个黑Q启动盘适应新硬件了。这时不会再去威联通官网下载固件。只会做硬件的pci控制器检测调整,以适应新硬件。截屏如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 


好了,现在就重启机器,安装黑威联通系统。重启机器后就会出现如下截屏:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">


发一张我在KVM虚机上安装成功的全景截屏给你看看。同时祝你好运,也能一次安装成功。
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

由于NASYUN的篇幅限制,请看楼下,第四讲 【关于威联通, 群晖的逆向工程技术的讨论】,精彩继续!

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。