无忧启动论坛

标题: (长贴)安卓手机启动制作经验小结,U启兼容性杂谈 [打印本页]

作者: wuwuzz    时间: 2015-2-10 08:58
标题: (长贴)安卓手机启动制作经验小结,U启兼容性杂谈
本帖最后由 wuwuzz 于 2015-2-10 09:12 编辑

一、开场白
(一)首先,向chenall致敬,不仅因为其在G4D上的突出贡献,还因为其在卡碟机、安卓手机启动
等方面的实践总结,为理论论证提供素材依据。

plutoshen、gaowazou也要表扬,他们的帖子
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=356652
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=355324
分别从内置SD0卡、外置SD1卡2种制作方式宣传推广了安卓手机启动。

本贴例子,是以笔者的华为A199麦芒手机做的,其内置SD0卡用户实际可用容量5G;外置SD1卡
容量4G,为Sandisk C4低速卡(用户可根据自己需要,换装其他新的高速大容量卡扩展)。
所测试的环境有AMI BIOS;Phoenix BIOS;Insyde BIOS/UEFI...等;

如果读者要用手机做启动,因为涉及到格式化、写MBR/PBR之类的操作,所以应先备份SD0、SD1
上的数据!切记!


(二)我仅做最简单、最原始的MSDOS启动盘。然后可以根据需要增加放置G4D,PE,UEFI shell等。
之所以没有做UD、U+...等流行格式,1、我不想增加MBR/PBR复杂性,2、更进一步的原因
参考三、关于U启兼容性


二、安卓手机启动制作经验小结
(一)用外置SD1卡,像普通U盘一样。优点是简单、不需ROOT。
平时手机插电脑,连接方式为USB Mass Storage Device大容量存储设备时,一般默认就是这个SD1
以可移动磁盘面目出现。
制作启动盘时,建议使用rufus(这是DriveDroid官方推荐的软件,下载地址http://rufus.akeo.ie),
FAT/FAT32,快速格式化、做MSDOS启动盘。下面的图是4G的SD1格式化设置。




(二)用内置SD0卡,需要ROOT、使用DriveDroid软件。优点是:
1、在支持多驱(Lun)的手机上,可虚拟出多个设备。例如,chenall的手机,支持3个LUN,可虚拟
出软驱、光驱、磁驱;plutoshen的手机支持2个LUN,可虚拟出2个磁驱;本人的手机不支持多驱,
只有1个LUN,磁驱。
2、磁驱可方便地建立多个IMG,虚拟多个不同容量的U盘,方便地切换。
对虚拟出的多个U盘IMG,制作启动盘时,建议使用HPUSBFW格式化工具,FAT/FAT32,快速格式化、
做MSDOS启动盘。下面的图是在SD0卡上,用DriveDroid建立了1个100M的IMG(虚拟U盘),然后用
HPUSBFW格式化做启动盘。



(三)关于速度
本人的实践经历,这并不是大问题,以plutoshen的Win7PE为例,内置卡、C4外置卡跟普通
USB2.0 U盘速度区别不大。如果追求高速,那就得上高速卡、USB3.0。


读者可能注意到了,我没有像官方说的那样使用U启制作工具:
rufus本来应该用在SD0上,而我用在了SD1上;
plutoshen使用Ultraiso硬盘映像写入方式、gaowazou使用BOOTICE不格式化写MBR/PBR方式,
我没有这样做。

原因是:按照上面官方的做法,A199手机启动全完蛋,各种不成功。只有像我上面那样使用U启
制作工具,各种BIOS/UEFI环境才能成功。更深层次的原因,不得不说说U启兼容性原理。



三、关于U启兼容性
基于流出的Phoenix BIOS,AMI BIOS源码学习,我认为:
U启兼容性最本质的决定因素,是固件(主板固件BIOS/UEFI和USB设备固件),而不是MBR/PBR...
这类东西(尽管MBR/PBR...也重要),当固件问答这个流程走完后,才到MBR/PBR处理阶段。
如果固件很差的话,很可能未到MBR/PBR处理阶段,就已经GAME OVER了。

理论上,如果你能满足BIOS要求,实现固件参数--比如CHS--的锁死优化,那么,后续
你使用什么U启制作软件折腾MBR/PBR,并不十分重要。而反之,如果你实现不了固件参数优化,
那么,无论你再怎么折腾U启制作软件,本质上就是在撞大运。

现实中,固件参数优化很难实现,因为它是内幕底层的东西,厂商不给你修改的入口。
因此,我们的迂回战术是这样的:

1、优化主板固件,升级BIOS/UEFI;
2、优化USB设备固件。
手机,你自己修改Linux内核,深度定制ROM;
U盘,利用量产工具修改/激活预设固件参数。前提条件是,固件实做命令支持部分,
量产工具支持修改那些至关重要的参数。

3、实在不行,才折腾U启制作软件,撞大运。


四、结语
接前面手机的问题:
1、固件威力的直接体现:多LUN设备支持。chenall、plutoshen的手机支持多LUN,
而我的不支持。首当其冲的根源就是手机ROM的Multi-Lun支持配置不同。

2、我没有能力修改优化A199手机ROM固件参数,因此,不得不折腾U启制作软件。
撞大运的结果,就是:Ultraiso、BOOTICE...各种不行,HPUSBFW用在SD0上、
rufus用在SD1上才能得到满意结果。

作者: 2011xiongdeyuan    时间: 2015-2-10 09:46
不错,好文章
作者: happysong21    时间: 2015-2-10 13:53
学习一下,以备用。
顶楼主!
作者: captain_g    时间: 2015-2-10 13:59
我在外置SD卡上做了UD启动盘,在SD卡的可见区放了UEFI启动文件,实机测试了一下,最近几年的机器均能成功启动(BIOS/UEFI)进PE。

但有一台10多年前的台式机(BIOS启动)不行,UD启动成功,出了GRLDR菜单,但选择进PE时,提示读盘错误。进GRLDR命令模式,用find命令查看,没有列出SD卡的可见区。

将手机拿到今年配的机器上再实验,成功进入PE!

看来仍然有兼容性问题。
作者: 2010hly    时间: 2015-2-10 17:02
能完全代替量产吗,话说量产对老机子兼容性也不怎么样
作者: wuwuzz    时间: 2015-2-12 07:22
本帖最后由 wuwuzz 于 2015-2-12 07:30 编辑
captain_g 发表于 2015-2-10 13:59
我在外置SD卡上做了UD启动盘,在SD卡的可见区放了UEFI启动文件,实机测试了一下,最近几年的机器均能成功启 ...


在老BIOS下,不做UD、U+等,用最简单的MSDOS+GRUB.EXE组合,看能不能正常启动PE
作者: wuwuzz    时间: 2015-2-12 07:29
2010hly 发表于 2015-2-10 17:02
能完全代替量产吗,话说量产对老机子兼容性也不怎么样


这里的“量产”,是指做CD光驱吧。本帖中,手机是采用磁驱启动,与光驱启动不存在替代关系,
因为两者性质不同。chenall的手机支持光驱,倒是可以比较一下。
=====================================================

顺便说两句:

U盘量产工具最大的作用是“激活/修改固件参数”,而不是做CD光驱
(实际上做CD光驱,也是激活/修改固件参数的一种)。

即使不做CD光驱,仍保持U盘出厂单DISK状态,如用作启动用途,
仍然需要修改固件参数来优化,例如VID/PID, CHS等固件参数。

作者: captain_g    时间: 2015-2-12 08:52
wuwuzz 发表于 2015-2-12 07:22
在老BIOS下,不做UD、U+等,用最简单的MSDOS+GRUB.EXE组合,看能不能正常启动PE

可能我没说清楚,我的SD卡是插在手机上的,用数据线连接手机与电脑后,然后重启电脑,从BIOS中选择从手机中的SD卡启动。

这台电脑是能从U盘上的UD启动进入PE/DOS等工具的。

如果用SD卡制成的启动工具不是插在手机上使用的,则就不够特别了。
作者: feiyike    时间: 2015-2-12 09:08
我就没那么复杂
bios:
我用的也是华为A199,百度云系统,使用DriveDroid软件
直接在内置卡\DOWNLOAD\IMAGES目录下放置.img镜像,打开DriveDroid软件就可以调用,
但是发现XPE/03PE不好用,电脑风扇狂叫,也不启动
7pe、8pe没问题
uefi:
直接复制efi目录及相关pe文件到外置卡(fat)根目录
作者: wuwuzz    时间: 2015-2-12 09:13
@8楼:说的就是手机+sd卡,做dos+grub.exe,方法在1楼。而不是u盘。
作者: wuwuzz    时间: 2015-2-12 09:16
本帖最后由 wuwuzz 于 2015-2-12 12:09 编辑

@9楼:这恰好说明了固件rom的威力。虽同为a199,rom不同,启动表现差异较大。

我用的是官方B130固件,直接DriveDroid 启动ISO/IMG用的不是很顺,需要HP格式化中转;

而你的百度云应该是B130基础之上的改进版,最起码7PE,8PE用的较顺。
作者: devilma    时间: 2015-2-13 17:46
我试试你的方法,谢谢




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3