查看: 5388|回复: 44

[讨论] Lumia 950 XL刷Windows 10教程 翻译版

[复制链接]

签到天数: 323 天

连续签到: 1 天

[LV.8]以坛为家I

62

主题

1863

积分

6

支持

发表于 2018-5-15 14:58:17 来自手机 | 显示全部楼层 |阅读模式

马上注册,享受积分奖励和更多功能,让您轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 CooperYJ 于 2018-5-15 15:03 编辑

感谢@wherewhere提供原文地址。

个人翻译,欢迎指正。转载请注明出处。

EDK2 Implementation for Lumia 950 XL

What's this?
这是什么?

This package demonstrates an AArch64 UEFI implementation for hacked Lumia 950 XL. Currently it is able to boot Windows 10 ARM64 (with a minor patch). Booting Linux is also possible if seven cores are disabled in ACPI tables (due to the TZ implementation).
这个包是用来执行破解Lumia 950 XL的AArch64 UEFI的。当前,它可以启动ARM64的Windows 10(需要小调整)。启动Linux也是有可能的,前提是7个核心在ACPI控制器中被禁用(取决于TZ实施表)。

Build
If you are familar with EDK2, you don't need to use my build script.
Checkout a copy of EDK2, then checkout this repository under EDK2's worktree.
如果你对EDK2熟悉的话,你不需要用我的脚本。检查一下EDK2副本,再注意一下EDK2工作目录在哪里。

Install Linaro AArch64 GCC toolchains, my build script uses gcc-linaro-7.2.1-2017.11. Then untar them. I place everything under /opt directory, so I have directories like /opt/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-elf/bin. If you placed it somewhere else, modify build scripts.
安装Linaro AArch64 GCC工具包,我的脚本用的是gcc-linaro-7.2.1-2017.11版。然后解压它们。我把所有东西都放在/opt目录下,所以我有/opt/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-elf/bin这个目录。如果你放在其他地方的话,用部署脚本。

Copy rundbbuild.sh in Tools directory to your EDK2 worktree root directory.
把rundbbuild.sh从工具目录复制到你的EDK2工作目录的根目录下。

Export variable GCC5_AARCH64_PREFIX to your GCC directory with prefix (e.g. /opt/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-elf/bin/aarch64-elf-)
启用变量GCC5_AARCH64_PREFIX到你的GCC目录,和补丁文件一起。(比如,/opt/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-elf/bin/aarch64-elf-)

Enable -mfix-cortex-a53-835769 -mfix-cortex-a53-843419 flags in GCC will make you day better.
在GCC中启用-mfix-cortex-a53-835769和-mfix-cortex-a53-843419标志,会可以让你稍微舒服一点。

Start build: . rundbbuild.sh --950XL --development
运行命令:(如上)

Run
运行

Per UEFI specification, ARM32 UEFI cannot boot ARM64 binaries directly. To run this UEFI build on Lumia 950 XL, the following procedure is required:
每个UEFI的规格都不同,ARM32位UEFI是没法用64位的二进制引导启动的。要在950 XL上运行这个版本的UEFI,这些操作是需要的:

Check out Boot Shim. This Boot Manager Application implements a simple ELF loader for the kickstarter (LK).
检查启动补偿。这个启动助手程序为启动器执行一个简单的ELF加载。

Check out LK. You need msm8994-test-2 branch. Build MSM8994,target, then you will get a emmc_appsboot.mbn file.
检查LK。你需要msm8994-test-2分支(PS:似乎是个依赖关系)。部署MSM8994作为目标后,你会得到一个emmc_appsboot.mbn文件。

Re-partition your Lumia 950XL, shrink Data partition, create a new partition with GPT name boot, and another uefi_vars (reserved for further use). 4MB for both partition is okay. Tools like cgdisk is recommended.
重启分区你的950 XL存储(PS:前方高能),缩减Data分区,创建一个GPT分区表的启动名,另外一个uefi_vars(给深度使用的)。每个分区4MB都行。像是cgdisk之类的工具,也是要的。

Place emmc_appsboot.mbn in the WP EFIESP root directory, copy Boot Shim EFI appliction to the EFIESP partition, create a new BCD entry for it.
把emmc_appsboot.mbn放在手机的EFIESP分区的根目录里,把补偿程序复制到ESPEFI分区,为其创建一个新的BCD引导。

Boot to this BCD entry, you should enter Android Fastboot mode.
Connect to your computer, flash the build: fastboot flash boot UEFI.elf
启动这个引导,进入安卓Fastboot mode。连接电脑,刷机:fastboot flash boot UEFI.elf。

Continue to UEFI: fastboot continue
继续到UEFI:继续Fastboot

To re-flash UEFI, press volume down until Fastboot device shows up (like flashing Android phones).
通过长按音量下键来刷新UEFI,直到显示Fastboot设备显示(就和安卓设备一样)。

Patch for booting Windows ARM64
为启动ARM64的Windows配置
Go to your EDK2 worktree, find MdePkg/Include/AArch64/ProcessorBind.h:
- #define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x10000)
+ #define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000)
This issue will be addressed with improved memory allocation in the future.
到你的EDK2工作目录,找到:MdePkg/Include/AArch64/ProcessorBind.h
以文本方式打开,去除:
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x10000)
增加:
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000)
这个故障以后会在提升内存分配时定位到。

TZ Implementation Notes
TZ执行注意事项:
Qualcomm Snapdragon MSM8992/MSM8994 implements a subset of PSCI interface for multi-processor startup. However, required commands like PSCI_SYSTEM_OFF and PSCI_SYSTEM_RESET are not implemented. Hence we use PMIC to shutdown platform (there's a bug in RT that will be fixed) instead of PSCI. Additionally, 8992/8994 uses HVC call for PSCI commands instead of SMC call. It seems that Linux encounters some troubles during MP startup.
高通骁龙MSM8992/MSM8994实现了多处理器启动 PSCI 接口的子集。但是, 不执行诸如 PSCI_SYSTEM_OFF 和 PSCI_SYSTEM_RESET 之类的必需命令。因此, 我们使用 PMIC 关闭平台 (有一个 bug, 将在RT修复), 而不是 PSCI。另外, 8992/8994 使用 HVC 调用 PSCI 命令而不是 SMC 调用。似乎 Linux 在 MP 启动过程中遇到了一些麻烦。

Linux Notes
Linux注意事项
The ACPI tables are copied from stock Windows Phone FFU, hence these device IDs are likely not be recognized by Linux. A proper device tree is still required to boot Linux. If you are interested, you are welcome to contribute.
ACPI的相关设置是从FFU里弄来的,所以Linux可能无法识别这些设备的ID。启动Linux还需要一个设备树。如果感兴趣的话,欢迎贡献。

以上为全部翻译。其中某些没看懂的未做改动。

来自:Lumia 950 Win10新机-智机社区客户端

签到天数: 517 天

连续签到: 125 天

[LV.9]以坛为家II

21

主题

1853

积分

12

支持

发表于 2018-5-15 15:35:34 来自手机 | 显示全部楼层
为楼主点赞是必须的,辛苦啦!

来自:Lumia 950 XL Win10旗舰-智机社区客户端
2 人支持
[你知道吗]:

签到天数: 675 天

连续签到: 5 天

[LV.9]以坛为家II

12

主题

3391

积分

0

支持

发表于 2018-5-15 15:34:38 来自手机 | 显示全部楼层
懒得折腾,但对楼主的贡献点赞。

来自:Lumia 950 Win10新机-智机社区客户端
2 人支持
[你知道吗]:

签到天数: 45 天

连续签到: 1 天

[LV.5]常住居民I

1

主题

56

积分

0

支持

发表于 2018-5-15 15:13:10 来自手机 | 显示全部楼层
看到标题好感动就进来了,虽然没看懂,但还是想说,太TM棒了。看哪位大神弄好之后再说吧。

来自:Lumia 950 XL Win10旗舰-智机社区客户端

签到天数: 1117 天

连续签到: 1 天

[LV.10]以坛为家III

12

主题

1343

积分

78

支持

彩虹勋章

发表于 2018-5-15 15:14:14 来自手机 | 显示全部楼层
真能实现的话,WP的春天就来了

来自:Lumia 950 XL Win10旗舰-智机社区客户端
[你知道吗]:

签到天数: 125 天

连续签到: 58 天

[LV.7]常住居民III

88

主题

3348

积分

12

支持

发表于 2018-5-15 15:48:57 来自手机 | 显示全部楼层
楼主威武。

来自:Lumia 920 -智机社区客户端 WP8.1

签到天数: 397 天

连续签到: 1 天

[LV.9]以坛为家II

47

主题

6858

积分

10

支持

发表于 2018-5-15 16:14:06 来自手机 | 显示全部楼层
顶一下

来自:Lumia 1520 AT&T-智机社区客户端
[你知道吗]:

签到天数: 223 天

连续签到: 1 天

[LV.7]常住居民III

2

主题

328

积分

2

支持

发表于 2018-5-15 16:18:02 | 显示全部楼层
虽然没看懂,但是觉得不得了

签到天数: 1031 天

连续签到: 120 天

[LV.10]以坛为家III

4

主题

5708

积分

3

支持

UWP初心者,智机网膜法师

发表于 2018-5-15 16:39:21 来自手机 | 显示全部楼层
可以可以,衷心感谢热心网友
[你知道吗]:

签到天数: 1558 天

连续签到: 186 天

[LV.Master]伴坛终老

46

主题

9224

积分

355

支持

QQ
发表于 2018-5-15 16:41:30 来自手机 | 显示全部楼层
撸过  谢谢分享

来自:Lumia 1520 -智机社区客户端
您需要登录后才可以回帖 登录 | 注册

本版积分规则

        

网站地图| 小黑屋|京ICP证150706号|京B2-20160045| 京公网安备11010802018258号

Powered by Discuz! X3.4 / Copyright 2010-2017 © 智机网 WFUN.COM Inc. All rights reserved.

快速回复 返回顶部 返回列表