2022.04.25 从 Macbook Pro 2018 的 macOS 平台换回了 Thinkbook 16p 的 Windows 平台,记录一下为 Thinkbook 16p 装系统的过程。
2023.03.09 准备在接下来的几个月内购置 i7-13700KF + RTX4090 的 PC,预先在虚拟机内配置安装能够进行大小核分配的 Windows 11。
2023.05.16 Thinkbook 16p 升级至 Windows 11。由于 AMD 的 R7-5800H 开启睿频时待机温度都会在 80°C 左右,所以干脆关闭睿频用性能换静音了。同时台式机的配置修改为 i7-13900K + Palit RTX4090 + Palit RTX4070,购买已经基本完成。
2023.10.03 由于键盘按键损坏、机器过重和续航糟糕等问题,在一周前将 Thinkbook 16p 卖了,换到了吾空凌云 x16。虽然是小厂出的机子,但是 7840HS + 32GB 5600MHz + 2.5K@240Hz 的配置确实是已经拉到顶了,而且 BIOS 也凑合,问题不大。不过这篇记录则变成了为 Thinkbook 16p 而记录的 Windows 安装教程结果连原本 Thinkbook 16p 都不存在了的情况。
写这份记录的原因起初单纯只是为了记录,但现在觉得确实有必要做一个无论在何时都能以最快速度恢复的指令列表。
系统与驱动安装
开机进入 BIOS,启动 Ventoy 或者系统安装盘,选择合适的 Windows 版本在格式化之后的硬盘上安装。
安装完重启进入配置界面,此时选择脱机账户而非微软账户。原因在于这里如果直接使用微软账号,系统内个人文件夹的名字会跟随微软账号的名称,相当容易出问题;同时,微软账户完全可以在进入系统之后再绑上,这时个人文件夹的名称已经确定,不会带来任何可能的负面影响。
但 Windows 11 的安装中可见的只有使用在线的微软账户选项,而使 Windows 11 能够在断网的情况下安装的操作非常麻烦。针对这个问题有个小技巧:在登录个人微软账户的页面使用账户(邮箱:i@i.i,密码:i),此时安装会提醒该账号已有过多错误的登录尝试而被锁定,直接点击下一步就可以进入脱机账户的设置。
个人文件夹的名字一般习惯直接取 i,不仅自指而且由于不包含中文和空格,以后安装其他程序(例如 nodejs)的时候不会报错,否则会很麻烦。
进入系统,登录微软账号,激活 Windows 11:
激活码:tb 或者正版购买的 Retail 激活码直接激活即可,注意和店家声明要 Retail 版而非 MAK 版或者 OEM 版的。如果电脑登录了微软账号,那会在微软账号内关联上一个基于硬件 ID(主板)的数字许可证。
基于硬件 ID (HWID)的数字许可证:
手动 HWID:先装 Windows 10,用便宜的 Windows 10 激活码激活后绑定微软账户,升级至 Windows 11。这样微软账户上就会有一个基于硬件 ID(主板型号)的数字许可证。之后重装系统既可。
第三方程序 HWID:通过执行脚本
irm https://get.activated.win | iex
生成欺骗文件使 Microsoft 以为本机的 Windows 11 是从 Windows 10 升级而来,从而授予微软账户一个基于硬件 ID(主板)的数字许可证。不需要重装系统。
靠谱程度:Retail 激活码 > 手动 HWID > 第三方程序 HWID,但一般直接用脚本都完全没问题。
在 Powershell 中使用
slmgr /dlv
或者slmgr /dli
检查 Windows 激活的具体信息。
通过 Windows Update 安装基本驱动。
在 Windows Update 的基本驱动安装完成之后需要安装官网上相应型号的特有驱动(不包括 AMD/NVIDIA 这类通用驱动),笔记本-本身型号、台式机-主板型号。
通过后面安装的 ccleaner 更新驱动程序集。
上述三者的驱动安装顺序不推荐更改,否则驱动的控制面板程序容易出问题。
重启后再次进行 Windows Update 的更新直到所有更新完成。
软件安装
先安装中文、西文、日文字体。
手动安装 v2ray 或者直接挂上局域网内的代理,之后的程序安装不少需要梯子进行。
软件安装一共由五部分构成:包管理器 scoop + 包管理器 winget + Windows 命令行 & Microsoft Store 应用商店 + 正常安装 + 破解版软件。
包管理器 scoop
Windows 下的包管理器。名称 scoop 的本意是指用来挖桶装冰淇淋的比较深的勺子。
优点:
所有程序都不会安装在
C:\Program Files
或者C:\Program Files (x86)
内而造成混乱。默认安装路径为
~\scoop
,即C:\Users\your-user-name\scoop
并可随意修改。scoop 安装的 CLI 程序在安装会将快捷方式置于 scoop 的
PATH
文件夹,从而可以最大程度避免污染系统PATH
。基本上的安装包都无需
sudo
权限,安装的软件版本以便携版为主。包索引网页 Scoop - A command-line installer for Windows 做得很棒。
缺点:
- scoop 无法检测到程序的自我更新,因此不适合用于安装程序自我更新频繁的软件。
本体安装
打开 PowerShell,检查系统内 PowerShell 的版本,要求大于等于 5 即可。Windows 10 和 Windows 11 自带的都是版本 5。
1 | $psversiontable.psversion.major |
允许 PowerShell 执行本地脚本。
1 | set-executionpolicy remotesigned -scope currentuser |
(可选)设置环境变量,即改变 scoop 安装路径。
1 | $env:SCOOP='D:\scoop' |
安装脚本被设置为只在非管理员的 PowerShell 中才能运行,因此直接打开 PowerShell 执行安装脚本。
1 | irm get.scoop.sh | iex |
设置代理与程序安装
根据 v2ray 界面内的端口信息,为 scoop 设置 HTTP 代理。
1 | scoop config proxy localhost:10809 |
先安装基本工具 git,之后添加 scoop(勺子)的官方 bucket(冰淇淋桶),即官方提供的各种软件包列表。个人推荐只添加 extra 和 versions 这两个列表并指安装这两个列表内的程序,因为这两个列表能保证所有通过 scoop 安装的软件的最高清洁度。
1 | scoop install git |
安装 CLI 程序。
1 | scoop install git adb argyllcms aria2 cacert cmake cuda curl cwrsync cygwin dark exiftool fastfetch ffmpeg frp go gpg gsudo innounp-unicode iperf3 lux mambaforge nodejs nssm pandoc phantomjs python311 r rhash rclone tdm-gcc telnet vim winget yt-dlp |
CLI | 备注 |
---|---|
git | 确保已经装上,以及需要修改代理 |
aria2 | 多线程可断点续传,scoop config aria2-warning-enabled false 关闭终端提示 |
—————— | |
adb | 安卓工具 |
argyllcms | 注意笔记本上的 DisplayCAL 有时候无法适配最新版本的 argyllcms,使用其默认下载的即可 |
cacert | |
cmake | |
cuda | 果然还是有必要装上 |
curl | 查看当前 ip 地址:curl ipinfo.io / curl cip.cc / curl myip.ipip.net |
cwrsync | |
cygwin | 手动安装 procps-ng 以添加 watch 、安装 chere 后参考手册页面管理员权限执行 chere -i -t cmd |
dark | |
exiftool | |
fastfetch | 推荐仓库内的预设 /presets/paleofetch.jsonc |
ffmpeg | |
frp | 作为客户端,修改 frpc.ini 并用 nssm 添加系统服务,参见后文部分 |
go | |
gpg | |
gsudo | |
innounp-unicode | innounp 原版本可能报错 decompress error |
iperf3 | |
lux | 支持各大在线视频网站的下载工具 |
mambaforge | conda/mamba,必须安装在 python 之前,否则有可能会覆盖 python 的调用程序 |
nodejs | 安装录制工具 npm install -g minyami 和博客工具 npm install -g hexo-cli |
nssm | 用于将特定程序安装为系统服务,详细命令会在最后部分叙述 |
pandoc | 用 pip 安装时 pandoc 的可执行文件不在 PATH 里,不如用 scoop 装 |
phantomjs | yt-dlp 的可选依赖 |
python311 | |
r | |
rhash | |
rclone | 自 2022.10 起使用 Google Drive 上传时需要加上参数 --drive-upload-cutoff 1000T |
tdm-gcc | Windows 适配,在 scoop 的 versions 列表而非 main 列表内 |
telnet | |
vim | |
winget | 与其使用系统内自带的无法自我更新的 winget,不如直接交给 scoop 来安装 |
yt-dlp | 原 youtube-dl 已停止更新,yt-dlp 为其派生(fork) |
如果用 ssh 连接 git 的时候(ssh -T git@github.com
)出现端口报错,虽然开 TUN 模式可以绕过,但一般还是推荐指定 443 端口连接。
1 | vim ~\.ssh\config |
git 修改代理、检查代理以及取消代理:
1 | git config --global http.proxy http://127.0.0.1:2080 |
cwrynsc 调用系统 ssh 时会出现兼容问题,报错如下:
1 | rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] |
需要手动指定 cwrynsc 文件夹内自带的 ssh 文件,即 -e
后面跟 ssh 文件的路径:
1 | -e "C:\Users\i\scoop\apps\cwrsync\current\bin\ssh.exe" |
Conda
环境管理:Conda 用于创建、管理和激活不同的环境。每个环境可以有不同的Python版本和一组包,这些都是相互隔离的。
基本包管理:虽然Conda也可以用于包的安装、更新和移除,但在处理大型环境或复杂的依赖关系时,它的速度可能不如Mamba。
Mamba
包管理:一旦进入了一个Conda环境(无论是用Conda还是MambaForge创建的),Mamba可以用来快速安装、更新和移除包。Mamba在这方面比Conda快,因为它使用了C++编写的更快的依赖解析器和包管理器。
环境兼容性:Mamba与Conda环境完全兼容,这意味着可以在任何Conda环境中使用Mamba来管理包。
mamba 相当于 conda 的执行速度上位,但并不是所有 conda 的命令都可以直接替换为 mamba。
1 | Currently, only install, create, list, search, run, info, clean, activate and deactivate are supported through mamba. |
同时,mamba 在处理环境时并不如 conda 顺手。这也可以在其执行 mamba init
时,在 Powershell 的启动配置文件 profile.ps1
内写入的内容和 conda init
写入的完全一样这个方面有所体现。
1 | #region conda initialize |
mambaforge 安装后需要使用命令开启 conda activate 功能,同时需要关闭打开终端时自动进入 base 环境功能。
1 | conda init powershell |
也可以通过以下命令回改:
1 | conda init --reverse powershell |
由于所有 conda/mamba 包全都是直接属于 MambaForge 版本内的,因此为了不造成混乱,不推荐使用 conda update conda
来更新。只需要等 MambaForge 大版本更新即可。
MambaForge persist 的只有 env 文件夹,因此 base 环境是不会保存的。
安装 GUI 程序:
1 | scoop install 7zip blender blender-launcher capture2text calibre cheat-engine eac hourglass locale-emulator makemkv megasync moonlight mpc-hc-fork nosleep obs-studio screentogif sumatrapdf capframex crystaldiskinfo crystaldiskmark cpu-z ddu dismplusplus everything fancontrol fiddler furmark revouninstaller gpu-z hwinfo nekoray ocat quickcpu rainmeter rufus spacesniffer twinkle-tray wox-beta github mobaxterm rstudio termius texstudio vscode |
管理员模式下打开 PowerShell 安装 GUI 程序。
1 | sudo scoop install winaero-tweaker vcredist |
GUI | 备注 |
---|---|
7zip | 安装右键菜单 |
blender | 安装 mmd-tools 插件 |
blender-launcher | Blender 的多版本管理程序,特别适合于安装备用的旧版本 |
calibre | 配合 DeDRM tools 使用,可以解除 pdf 的 ADE 加密 |
capture2text | 本地 OCR |
cheat-engine | 添加 zh-cn 语言包 |
eac | |
hourglass | |
locale-emulator | 打开 Locale Emulator Installer 进行安装 |
makemkv | |
megasync | |
moonlight | 串流工具,配合 Sunshine 一起使用,NV Geforce Experience 已经不适用 |
mpc-hc-fork | 管理员模式关联格式,需要启动两遍 |
nosleep | |
obs-studio | |
screentogif | |
sumatrapdf | |
—————— | |
capframex | 配合后文的 ocat 和 RTSS 使用 |
crystaldiskinfo | |
crystaldiskmark | |
cpu-z | |
ddu | |
dismplusplus | |
everything | 设置开机自启,安装服务 |
fancontrol | 对于笔记本不适用,笔记本的风扇策略基本是写死在主板里的 |
fiddler | 点击 WinConfig,为 Windows Store、To Do 和动态主题配置直连 |
furmark | |
revouninstaller | revo 比 geek 要卸载得更干净,比如 AMD 芯片组用 revo 就能检测到没被删除的文件 |
gpu-z | |
hwinfo | 中文翻译略有纰漏,如果有疑问可以修改语言为英文 |
nekoray | 在使用 v2ray 安装结束后推荐更换为 nekoray,其使用 singbox 内核时会有更好的 TUN 模式支持 |
ocat | 记录 fps 用的工具 |
quickcpu | 在 POWER 顶部栏选项中,可以调整电源模式的各种细节,详见后文 |
rainmeter | 设置开机自启,右键高分辨率屏幕适配,推荐添加皮肤:SA Weather Cast |
rufus | |
spacesniffer | |
twinkle-tray | 调整连接台式机显示器的亮度,安装在笔记本上时主要用于调整外接显示器 |
vcredist | 会安装到系统路径内,主要使用 winget 安装的 vcredist 在更新的时候经常会出现 x86 和 x64 版本打架的情况 |
winaero-tweaker | |
wox-beta | 手动添加 python3 路径以启用拼音搜索,添加 有道词典插件 |
—————— | |
github | |
mobaxterm | |
rstudio | 如果出现报错,手动修改 C:\Users\i\AppData\Roaming\RStudio\config.json 的 R 路径 rExecutablePath |
termius | 有学生教育优惠所以好使 |
texstudio | |
vscode |
包管理器 winget
Windows 下的包管理器。
优点:
即使软件初始并非使用 winget 安装,winget 依旧能够对其检测并管理。
软件的自我更新也会也可以被 winget 检测,因此完美弥补了 scoop 的缺陷。
非常适合 Windows 内的必要组件如 .Net Runtime 等的安装。
缺点:
winget 有可能出现程序安装的版本名和源内版本名不同的情况,从而即使更新后仍然显示需要更新。
没有统一的安装路径,采用的均为软件自身的默认安装路径。
安装 CLI 程序时很可能会污染系统
PATH
,因此完全不推荐使用 winget 安装 CLI 程序。安装 GUI 程序时必须加上
-i
参数以调用交互式安装界面,否则完全无法调整安装程序的选项。无法像 scoop 以一条
winget install app1 app2
简易命令安装或卸载多个软件。
本体安装
在 Windows 11 已经内置,本无需特别安装,但由于其很少更新,所以通常还是推荐之前使用 scoop 安装的版本,可以保证 winget 不会缺少类似 winget pin 的固定包版本的功能。
设置代理与程序安装
winget 会自动调用系统的代理设置,在 v2ray 内配置即可。
由于 winget 一行命令只能安装一个程序,winget 的安装命令会较长。
安装无 GUI 的 Windows 内必要组件:
1 | winget install Microsoft.WindowsAppRuntime.1.4 |
组件 | 备注 |
---|---|
App Runtime | 1.4,管理模组的 JASM 需要用 |
.NET DesktopRuntime | 6+8,7 版本已经终止服务 |
.Net Framework | 4.8,旧版 3.5 需要去微软官网手动下载安装 |
DirectX 9 | Windows 10/11 预装了 DirectX 12,但未包含部分旧版 DirectX 9 的库文件,以及安装过程有附带 bing 工具栏需要手动取消 |
VisualStudio BuildTools | 最好先安装 cuda 再安装 VS 2022,安装时需要指定 -i 参数调出可交互界面,只需选择 C++ 桌面开发 |
安装 GUI 程序:
1 | winget install -i FinalWire.AIDA64.Extreme |
GUI | 备注 |
---|---|
aida64extreme | AIDA64 许可证密钥 正版序列号 v7.35.7000 |
Bandizip | |
BlueScreenView | 可以查看蓝屏的具体 dump 文件内容,Windows 11 系统有默认打开系统失败的小内存转储(256 KB),存储在 %SystemRoot%\Minidump\ |
Capcut/JianyingPro | 大陆版的剪映专业版负责人声伴奏分离,海外版的剪映负责自动字幕 |
Discord | scoop 上的 discord 已经不更新非常久了 |
DisplayCAL | 手动指定 scoop 安装的 ArgyllCMS 可执行文件路径,配合 ColorChecker Display 进行校色 |
foobar2000 | 安装 歌词面板插件 |
foobar2000 Free Encoder Pack | |
Google Chrome | |
Internet Download Manager | 下载并执行 J2TEAM/idm-trial-reset(原 IDM-Activation-Script 已失效) |
LAV Filters | 配合 PotPlayer 使用 |
Logi Options+ | 和 Master 2S 配合使用 |
Microsoft Edge WebView2 | Windows 11 已经内置 |
Mozilla Firefox | Firefox 没问题,但是 Thunderbird 最新的 115 版本过于糟糕,需要手动安装 102 版本 |
MSI Afterburner | CPU 使用率可视化,以及 CapFrameX 所需的监控软件 RTSS 会附赠安装 |
Notion | |
NVIDIA GeForce Experience | 更新 NVIDIA 驱动 |
PotPlayer | |
PowerShell | 安装时去除使用 Windows Update 更新的选项,按照 此说明 添加 Cygwin |
PowerToys | 若报错则去 GitHub 下载。根据 GitHub #20255 删除右键菜单内重复出现的“调整图片大小” |
Sandboxie-Plus | |
Spotify | |
StartAllBack | Windows 11 界面配置 |
Steam | |
Sunshine | scoop 版本需要另外安装插件并配置,不如直接用 winget |
Tailscale | 由于 scoop 安装时每次均需要再命令行中指定管理员权限,不如直接用 winget 版本 |
Telegram | 和 Chrome 等一样,由于自我更新频繁,用 winget 管理更合适 |
TencentMeeting | 开始菜单程序栏内快捷方式多余,需要删除一个 |
TIM | 使用软链接修改个人聊天记录文件夹位置 |
Virtual Desktop Streamer | 配合 Pico 4 使用 |
Vivaldi | Google Pay 浏览器 |
使用软链接修改个人聊天记录文件夹位置 | |
ZeroTier | 系统服务和 UI 独立生效 |
scoop 和 winget 的日常更新命令
1 | scoop update * && winget upgrade -i -r -u --verbose |
Windows 命令行 & Microsoft Store 应用商店
Windows 命令行
安装 Windows Subsystem for Linux(WSL)。
1 | wsl --install |
注意事项:
目前在 Windows 内使用 Linux 通常使用的是 wsl2。wsl2 依赖于 Windows 功能内的虚拟机平台(Virtual Machine Platform),执行
wsl --install
的时候会自动配置并启用。虚拟机平台是 Hyper-V 的一个子集,但在 Windows 功能列表内是和 Hyper-V 并列出现的。使用 wsl2 时可以不打开 Hyper-V,只需要保证虚拟机平台已经开启即可。如果没有其他 Hyper-V 需求,则推荐只打开虚拟机平台。
Windows 家庭版的 Windows 功能一栏内是没有 Hyper-V 的,不过由于前述,同样是可以使用 wsl2 的。参考来源:Is Hyper-V necessary or not for WSL2? Can it be activated on Windows 10 Home? #899
Windows 10 和 11 使用
wsl --install
安装的是 Microsoft Store 应用商店中 Windows Subsystem for Linux 而不是 Windows 功能中的“适用于 Linux 的 Windows 子系统”。因此安装后 Windows 功能中的“适用于 Linux 的 Windows 子系统”也依旧是未勾选状态的,这完全没有问题也并不需要手动勾起这个选项。参考来源:A preview of WSL in the Microsoft Store is now available!。
WSL 可以识别多块 GPU,但无法同时读取多块,每一次只能读取其中的单独一块。参考来源:Get started with GPU acceleration for ML in WSL。
Microsoft Store 应用商店
应用 | 备注 |
---|---|
Microsoft To-Do | |
MSI Center | 安装,在关闭所有主板相连设备的灯光后即可卸载 |
QuickLook | 可以在 GitHub 页面 下载安装必要的插件 |
Snipaste | |
TranslucentTB | |
Dynamic Theme | 动态主题,用于接管 Windows 聚焦 |
Battery Percentage Icon | 笔记本在 Windows 中无法直接在任务栏中显示电量百分比,故使用插件 |
正常安装
可执行文件部分
- 确定安装部分
程序 | 备注 |
---|---|
Alternative A2DP Driver | Windows 自带驱动不支持 AptX |
ATK V HUB | VGN 键盘驱动软件 |
BlueStacks | 使用 winget 下载的版本为 Nougat 32,再切换至 Android 11 会出现卡机 bug,手动安装无问题 |
Corsair Link 4 | 监控 AX1600i 的插口电流情况,以最大程度避免 4090 烧接口 |
Daemon Tools Lite | |
Equalizer APO | 配合 AutoEQ 使用,调整耳机的 EQ 曲线 |
FreeFileSync | 捐赠版 |
honeyview | winget 的版本为韩文版,无法更改语言,因此手动安装并需要加 winget pin |
Microsoft Office 2019 | 正版的 Office 家庭与学生版,如果激活有问题就用 ohook,删除多授权参考 |
QTTabBar | 使用保存的 xml 文件直接恢复 |
Sunlogin | 向日葵远程控制,比 TeamViewer 好使多了 |
Synology Active Backup For Business | 配合 NAS 备份,以及台式机有线网备份会报错 |
Synology Drive | 多终端的数据同步工作就交给群晖了 |
Mozilla Thunderbird | 手动安装 102 版本并阻止其进行更新,如果是从 115 版本降级则可参考本帖 |
texlive | 管理员模式安装完整版 TeX 到 C:\Program Files\texlive ,TeXworks 可以不装 |
百度云管家 | 安装在 Sandboxie 内防止对主系统进行修改 |
夸克网盘 | 安装在 Sandboxie 内防止对主系统进行修改 |
火绒 | 虽然写在后面,这项最好要先装以防 Windows Defender 误删文件 |
米哈游全家桶 | miHoYo 启动器和 HoYoPlay,目前转移游戏已经非常方便 |
游戏推流助手 | Pico 4 的官方推流软件,但是效果似乎不如 Virtual Desktop Streamer |
- 可选安装部分
程序 | 备注 |
---|---|
Adobe Digital Editions | ProQuest 的书籍需要通过这个打开 |
Brother Suite | DCP-7180DN 的打印机驱动 |
EarMaster Pro 7 | 以前购买的正版序列号:71009-40B97-TXMKA |
Google Japanese Input | 防止污染默认微软输入法词汇 |
renderBeamer | 渲染农场试用 |
Ninja Ripper | 3D 游戏的模型提取 |
WPS Office | Microsoft Office 糟糕的 UI 绘制策略使得其运行速度缓慢,相较之下 WPS Office 的处理速度要快不少,但要注意其修改默认程序 |
VMware Workstation | 密钥:MC60H-DWHD5-H80U9-6V85M-8280D |
ThunderMaster | Palit 的显卡管理程序 |
FireStorm | Zotac 的显卡管理程序 |
压缩包解压部分
- 确定安装部分
程序 | 备注 |
---|---|
Aegisub | Daydream Cafe Edition 9215 |
AlphaROMdiE | 绕过 Gal 的正版请求 |
Cheat Menu | RPG 游戏的修改工具 |
DLsite 重命名工具 | |
Edgeless Hub | Win PE |
kemono-dl | |
livedl | 直播平台录像工具,特用于 niconico |
MacType | 更新终端之后使用 exe 的旧版会持续报不兼容,最新版为解压即用。使用服务模式 + LCD 配置即可 |
mpv-lazy | 可以一键启用 RIFE 插帧超分的懒人播放器,GitHub 项目地址,下载 exe 本体安装包和 Mega 拓展包后合并使用 |
miflash unlock | |
v2rayN | 用于生成订阅链接 |
zentimings | AMD 平台查看时序信息 |
鲁大师 5.21 | |
日文乱码处理软件 | |
图吧工具箱 202405 | |
小丸工具箱 |
- 可选安装部分
程序 | 备注 |
---|---|
argyllcms | v2.3.1,一些笔记本在使用 v3.0.0 以及最新版的 argyllcms 进行校色的时候会报错,所以备用 |
baidupcs-go | 设置系统 PATH 环境变量,修改下载路径 config set -savedir D:\Download |
sd-webui-aki | 在百度网盘获取更新 |
sd-comfyui-aki | 在百度网盘或者夸克网盘获取更新,后者提取码 284q |
tsMuxeR | |
Windows Update Blocker | 简称 wub,备用 |
破解版软件
程序 | 备注 |
---|---|
3D LUT Creator | v1.5.4,经测试在台式机上使用配置不相同的双显卡(4090+4070)的时候会报错,而双 4090 不会 |
Adobe 全家桶 | Acrobat 在安装之后需要添加 winget pin 以阻止更新 |
ccleaner | 解压版,同时用以安装和更新驱动 |
DiskGenius | 单文件版,但是不稳定,不推荐用 |
Duplicate Cleaner Pro | v5.19.0 |
Marvelous Designer 12 | v7.2.209.43690 x64 |
RStudio | 恢复文件的 RStudio |
sublime text | 用包内已经破解的 exe 替换原生 exe |
Wolfram Mathematica |
软件配置
包管理器 scoop 部分
exiftool
添加对图片右键后的 exiftool 菜单,单击既可直接在终端内显示图片的所有 exif 信息。
1 | Windows Registry Editor Version 5.00 |
若报错则手动添加。
- 在
HKEY_CLASSES_ROOT\*\shell\
内新建项ExifTool
。 ExifTool
项内新建字符串icon
,值为C:\Users\i\scoop\apps\exiftool\current\exiftool(-k).exe
。ExifTool
项内新建项command
。- 修改
command
项内的“默认”字符串值为C:\Users\i\scoop\apps\exiftool\current\exiftool(-k).exe "%1"
。
frp-nssm
使用 nssm 添加并启用 frp 的客户端模式为系统服务。
1 | nssm.exe install frpc "C:\Users\i\scoop\apps\frp\current\frpc.exe" |
python-nssm
使用 pip 安装 jupyter notebook。
1 | pip install notebook |
使用 nssm 添加并启用 jupyter notebook 为系统服务。
1 | nssm.exe install notebook C:\Users\i\scoop\persist\python310\scripts\jupyter-notebook.exe |
之后 WSL-Ubuntu 的 PyTorch 中也会有 Jupyter Notebook,两者共存是没问题的:Windows 内的支持 Pandoc + TeX,而 WSL-Ubuntu 的就专心负责 PyTorch 的机器学习。
rclone
将备份的 rclone.conf
文件替换掉 C:\Users\i\scoop\apps\rclone\current
下的默认空 rclone.conf
文件。
blender-nssm
使用 nssm 添加并启用 blender 的命令行渲染为系统服务。
1 | nssm.exe install render "C:\Users\i\scoop\apps\blender\current\blender.exe" |
设定渲染参数。
1 | nssm.exe set render AppParameters '-b "D:\3DCG\test-project.blend" -o "D:\test-####" -E CYCLES -x 1 -F PNG -f 1230 -- --cycles-device OPTIX' |
获取当前设定的渲染参数。
1 | nssm.exe get render AppParameters |
quickcpu
无论是 Intel 平台还是 AMD 平台,在使用 Windows 11 的时候一律使用平衡+更长的电池使用时间(系统-电源-最佳能效)即可。
Intel 平台
从平衡+最大性能叠加(系统-电源-最佳性能)起,Intel SpeedStep(EIST)会逐渐不生效。以 P5.1+E3.9 的 i5-12600KF 在待机状态下为例:
平衡+更长的电池使用时间(系统-电源-最佳能效):每个核心频率都常低于 1GHz,功耗在 9W 左右。
平衡+Balanced Power (No Overlay):每个核心频率都在 1GHz 附近浮动,且更积极地进行最大睿频,功耗在 15W 左右。
平衡+最大性能叠加(系统-电源-最佳性能):每个核心频率极少低于 1GHz,大部分时间保持为 5.1GHz+3.9GHz,功耗在 25W 左右。
高性能及以上:核心频率持续保持为 5.1GHz+3.9GHz,功耗在 28W 左右。
而这些电源模式在满载的时候的表现都是完全相同的,所以完全没有必要启用更高的电源计划。
AMD 平台
电源计划上和 Intel 平台的表现大致相同,因此没有必要启用更高的电源计划,但是需要修改电源策略。
AMD 平台上由于只有在早年农企时代有和 Intel SpeedStep(EIST)类似的 Cool’n’Quiet,最新的锐龙处理器都不支持,从而即使打开了平衡+最大性能叠加(系统-电源-最佳性能),所有核心依旧会保持至少 3GHz 的高频率,从而在待机时相比于 Intel 平台会更耗电。
最新的 Windows 10/11 会将 AMD 的全大核根据 cppc v2 规范所描述的核心特性的优先级(体质)进行排序,然后将位于末尾的核心视为小核,进行强行大小核的调度。具体而言,单 CCD 的八大核 CPU 会被视为 7P+1E。双 CCD 的十六核 CPU 的具体调度尚未确定。
与之相关联的有两个电源策略:“异类线程调度策略”(93b8b6dc-0698-4d1c-9ee4-0644e900c85d)和“异类短运行线程调度策略”(bae08b81-2d5e-4688-ad6a-13243356654b)。
异类线程调度策略:决定了异构调度中,重要线程该使用哪种核心。
异类短运行线程调度策略:决定了异构调度中,重要线程但运行时间短该使用哪种核心。
两个策略都有六个选项,其选项的具体含义如下:
所有处理器 / All (0)
:所有核心可用。高性能处理器 / Large (1)
:只有大核可用。首选高性能处理器 / LargeOrIdle (2)
:大核或者闲置核心可用。高效处理器 / Small (3)
:小核可用。首选高效处理器 / SmallOrIdle (4)
:小核或者闲置核心可用。自动 / Dynamic (5)
:根据优先级或者其他数据来决定。
Windows 内的默认值与其问题:
异类线程调度策略:默认为
自动 / Dynamic (5)
。体质稍弱的大核会一直闲置,而基于其本身为实实在在的大核而非小核,我们希望它参与计算。异类短运行线程调度策略:默认为
首选高性能处理器 / LargeOrIdle (2)
。短运行线程会被优先分配到体质更好的大核上,没有问题。
比较好的处理方式是:
异类线程调度策略:从
自动 (5)
调整为所有处理器 (0)
。这样体质稍弱的大核也会参与计算。异类短运行线程调度策略:保持
首选高性能处理器 / LargeOrIdle (2)
。
winaero-tweaker
这款程序能修改 Windows 的地方实在太多太多了,自己常用的几项如下:
Context Menu-File Hash Menu
Context Menu-Take Ownership
Context Menu-View Owner
File Explorer-Customize This PC Folders-Restore Windows 10 Folders
File Explorer-File Explorer Starting Folder-This PC
注:打开 Windows 11-Disable Bakcground Apps 会使更换锁屏壁纸的 Windows 聚焦无法正常使用,当然一般用的是 store 的动态主题罢了。
包管理器 winget
winget pin
由于 winget 内的版本错误以及阻止 winget 对软件自动更新,为以下软件添加 winget pin。
1 | winget pin add Microsoft.VCRedist.2005.x64 |
DisplayCAL
由于 DisplayCAL 自 2019 年末的 v3.8.9.3 起已停止更新,其自动下载的 argyllcms 也一直是旧的 v2.3.1。
如果先通过 scoop 安装 argyllcms,则在使用 winget 安装 DisplayCAL 时会自动调用 scoop 所安装的最新版的 argyllcms。
如果 argyllcms 的安装在 DisplayCAL 之后,则需要为其手动指定 argyllcms 路径:点击文件-定位 ArgyllCMS 可执行文件,选择
C:\Users\i\scoop\apps\argyllcms\current\bin
路径即可。
不过在一些笔记本上最新版本的 argyllcms 会出现异常报错,此时将最新版本的 argyllcms 卸载后使用 DisplayCAL 自动下载的 v2.3.1 老版本即可正常运行校色。
Google Chrome
Chrome 的个人配置文件全部储存在
%LocalAppData%\Google\Chrome\User Data
文件夹内。新系统中恢复旧配置时,只需将新系统内的个人文件夹清空后,放入旧配置文件夹内的所有文件既可。账号是需要重新登陆的,不过扩展程序和其配置都会被保留。
Mozilla Firefox
Firefox 的个人配置文件全部储存在
%AppData%\Mozilla\Firefox\Profiles\arufwjt6.default-release
文件夹内,其中arufwjt6
部分为每位用户特有的八位辨识码。新系统中恢复旧配置时,只需将新系统内的个人文件夹清空后,放入旧配置文件夹内的所有文件既可。注意别删除末尾不带-release
的文件夹,以及最好清空放入而不是删除随后放入重命名后的文件夹,至少这样的一定不会报错的。颜色管理:
打开
about:config
,搜索框内搜索color_management
。将
gfx.color_management.mode
的值从2
调整为1
,这样没有嵌入 tag 的图片也能按 sRGB 正常显示。
Mozilla Thunderbird
Thunderbird 和 Firefox 的逻辑完全一致,个人配置文件同样全部储存在 %AppData%\Thunderbird\Profiles\iriktu0w.default-release
文件夹内。恢复时的操作也都一致。
StartAllBack
修改如下:
“开始”菜单-启用
“开始”菜单-使用大图标-大
“开始”菜单-覆盖项目排序-无偏好
资源管理器-使用 Win10 Ribbon UI
Windows 命令行
修改 Windows 默认动态端口
目前安装的 Windows(2024.06)还在使用旧版的动态端口 1024-13977
,因此会造成开机时 nekoray 提示 2080 端口被占用。此时推荐根据新的 IANA 标准需要手动修改 Windows 内的动态端口为 49152-65535
:
1 | PS C:\Users\i> netsh int ipv4 show dynamicport tcp |
笔记本禁用 Modern Standby 睡眠模式
使用 powercfg /a
可以检查当前电脑的睡眠模式。
对于笔记本而言,存在一种由微软在 2018 年推出的名为 Modern Standby (S0ix) 的睡眠模式。这种睡眠模式在 powercfg /a
的名称为 “待机(S0 低电量待机)连接的网络”,原本是想模拟出类似手机锁屏但仍然可以接收消息的状态,但实际实现则非常非常糟糕,特别体现在合盖进入这种“睡眠”之后依旧有非常高的发热,耗电就不用说了,更要命的是很容易损伤屏幕等设备,从包里拿出机器都烫手得要命,要是更严重的情况下只能说后果不堪设想。
通常使用下面这行命令禁用 Modern Standby 睡眠模式。
1 | sudo reg add HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride /t REG_DWORD /d 0 |
如果需要恢复,则使用以下命令。
1 | sudo reg delete HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride |
WSL-Ubuntu 运行时报错
安装完成的 Ubuntu 运行时有可能出现类似以下的报错:
libcuda.so.1 is not a symbolic link
<3>WSL (11) ERROR: UtilTranslatePathList:2671: Failed to translate
第一个错误通常执行以下命令以排除报错。参考自 #5548。
1 | echo -e "[interop]\nappendWindowsPath = false" | sudo tee -a /etc/wsl.conf |
第二个错误通常较少发生,以下命令为应急措施。参考自 #9360。
1 | echo -e "[interop]\nappendWindowsPath = false" | sudo tee -a /etc/wsl.conf |
WSL-Ubuntu 在关闭终端后自动退出
可以在 Windows 主机上运行以下代码使 WSL-Ubuntu 持续在后台运行。
1 | wsl screen |
WSL-Ubuntu 无法连接 Windows 宿主机
防火墙的问题。通常将当前网络从公有转为私有即可。
以及要非常谨慎任何重置网络配置的操作。很有可能出现重置之后有些项目就非常再难以添加,从而无法回到重置之前,导致 WSL-Ubuntu 既连不上 Windows 宿主机也连不上外网。
安装与配置 PyTorch
由于在 Windows 内已经安装好 NVIDIA 的图形驱动的情况下,WSL2 的 Ubuntu 内无需另装驱动即可支持 nvidia-smi
命令显示 NVIDIA 界面,我们选择通过 NVIDIA Docker 的方式来安装 PyTorch。
安装 NVIDIA Docker
可以直接参考官网的安装步骤。
NVIDIA Docker 实际上是通过安装原版 Docker + 添加 NVIDIA 配置部分实现的。
1 | curl https://get.docker.com | sh |
安装并配置 PyTorch
NVIDIA 官方有提供 PyTorch 镜像目录,在 Tags 子页面中可以查看最新版本。
下载 PyTorch 的 Docker 镜像。
1 | sudo docker pull nvcr.io/nvidia/pytorch:23.05-py3 |
为了方便使用 Jupyter Notebook,选择使用密码而非 token。首先在 Windows 内进入 Python 准备加密后的密码,以 test
四个字符作为密码为例,单引号引起的 argon2 开头的即是加密后的密码。
1 | PS C:\Users\i> python.exe |
使用 Dockerfile 以修改原镜像。在 Dockerfile 内填入加密后的密码。
1 | vi pytorch_dockerfile |
1 | # Start with the nvidia pytorch base image |
建立新镜像 my_pytorch:23.05-py3:
-t
为指定源 Docker 镜像,通常格式为<name>:<version>
。-f
为指定特定路径下的 Dockerfile 文件。.
为指定建立该镜像所需要文件的目录。
1 | sudo docker build -t my_pytorch:23.05-py3 -f pytorch_dockerfile . |
通过新镜像建立带有指定密码的 PyTorch 容器:
--gpus all
使容器能访问所有的 GPU。-d
为detached
,使容器运行在后台的分离模式。--restart=unless-stopped
使 Docker 在 PyTorch 容器退出时自动重启容器,使其始终运行。-p 8889:8888
将 Windows 主机的 8889 端口映射到容器的 8888 端口,这样可以通过直接通过 来访问 PyTorch 容器内的 Jupyter Notebook。不用主机的 8888 端口是因为其已经被主机的 Jupyter Notebook 使用了。-v /mnt/d:/workspace
由于 Windows 的硬盘都被装载在/mnt
目录下,此处将 Windows 的 D 盘映射为 PyTorch 容器内 Jupyter Notebook 的工作目录。--ipc=host
设定容器的网络模式为host
,从而 PyTorch 容器内进程(如 Jupyter Notebook)可以和 Windows 主机内的所有进程进行通信。ipc
意为进程间通信。--ulimit memlock=-1
和--ulimit stack=67108864
为 NVIDIA 官方推荐的 PyTorch 容器的资源限制量。
1 | sudo docker run --gpus all -d --restart=unless-stopped -p 8889:8888 -v /mnt/d:/workspace --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 my_pytorch:23.05-py3 |
这样每次开机后,打开 WSL-Ubuntu 的终端,PyTorch 容器和其之内的 Jupyter Notebook 就会在后台运行,且不会受终端关闭的影响而关闭。
另附 Docker 常用命令少许:
1 | sudo docker ps |
附录:scoop 常用命令介绍
对单个 bucket 的命令
列出所有 scoop 的官方 bucket。
1 | scoop bucket known |
为 scoop 添加 bucket。这里的 main 为 scoop 的自带默认 bucket,个人不推荐添加维护和更新不一定稳定的非官方 bucket,在此就先略过。
1 | scoop bucket add extra |
删除该 bucket。
1 | scoop bucket rm extra |
对单个程序的命令
在 scoop 的官方 bucket 中搜索某个程序(例如 7zip),虽然通常更推荐使用 Scoop - A command-line installer for Windows。
1 | scoop search 7zip |
查看该程序在 scoop 上的各种信息。
1 | scoop info 7zip |
安装该程序,偶尔有些程序会需要管理员权限才能完成安装,可以在用 scoop 安装 gsudo 之后使用 sudo
命令。
1 | scoop install 7zip |
可以通过强制更新这个操作来达到不卸载的情况下重装程序。
1 | scoop update -f 7zip |
卸载该程序,有时会出现程序安装出现报错的情况,最好先对不完全的安装进行卸载再重新安装。
1 | scoop uninstall 7zip |
不想升级该程序时,可以固定该程序的版本。
1 | scoop hold 7zip |
解除对该程序的版本固定。
1 | scoop unhold 7zip |
对 scoop 本体、bucket 和安装程序的命令
设置 scoop 的 HTTP 代理。
1 | scoop config proxy 127.0.0.1:10809 |
解除 scoop 的 HTTP 代理。
1 | scoop config rm proxy |
是否使用 aria2 进行下载的开关。
1 | scoop config aria2-enabled true |
每次使用 aria2 进行下载时是否进行通知的开关。
1 | scoop config aria2-warning-enabled false |
列出所有使用 scoop 安装的程序。
1 | scoop list |
单独更新 scoop 自身和 bucket 信息。
1 | scoop update |
通过和本地的 bucket 信息对比,检查当前 scoop 自身和使用 scoop 安装的程序是否需要更新并给出列表。
1 | scoop status |
同时更新 scoop 自身、bucket 和所有程序。
1 | scoop update * |
清理 scoop 已更新程序的旧版本文件。
1 | scoop cleanup * |
清理 scoop 下载的程序安装包。
1 | scoop cache rm * |
检查 scoop 本体、bucket 和安装的程序是否有问题。
1 | scoop checkup |
如果是 Windows 11,通常此处会提示有两个潜在的问题,其中一个问题需要进入设置-系统-开发者选项并打开来解决;而另一个运行建议的命令就可以解决。
1 | scoop checkup |
更详尽的说明
官方在 GitHub 的 Command 页面 里写得很不具体,对各项命令的使用方法都只是一笔带过。我个人比较推荐 @nimzo6689 在 Qiita 上写的这四篇文章,每个命令都附带有具体例子说明,很详尽。
Scoop で利用できる Bucket の解説(scoop bucket known
限定)
已弃用的内容存档:处理 intel 的大小核
对于台式机 + 13 代 CPU 的大小核架构,要调整到完全发挥性能是一件比较头疼的事情。
以下参考自二川二水的资料室的专栏文章《反驳关于英特尔大小核的一些传统看法&Windows大小核调度策略的注释》,提取了核心观点并进行了简单加工。
前提知识
微软自 Windows 10 起引入了大小核异构调度,Heterogeneous scheduling (big.LITTLE)。
大小核异构调度启用的前提条件:
CPU 本身拥有大小核。
CPU 本身全大核,但在注册表内手动指定一部分核心为小核。
大小核异构调度的启用状况:
和大小核异构调度的变量 PpmHeteroPolicy 有关。
电源策略中“生效的异类策略”(7f2f5cfa-f10c-4823-b5e1-e93ae85f46b5)与之完全等效。
通常这个变量不会在注册表内编辑,而是直接在 QuickCPU 的电源计划内修改。
这个变量的值决定了 Windows 系统是否会使用异构调度以及使用哪种异构调度。
一共有五个值:
None (0):不使用异构调度。
Manual (1):手动指定使用核心的异构调度。
SmallOnly (2):只使用小核的异构调度。
LargeOnly (3):只使用大核的异构调度。
Dynamic (4):由系统决定使用哪种核心的异构调度。
启用由系统决定的异构调度 Dynamic (4) 时,可以调整的变量:
KiDynamicHeteroCpuPolicyMask
值代表了评判线程是否重要中有哪些考量标准。
在电源策略中没有与之等效的修改项,因此只能添加注册表项。
值为以下预备使用的若干个评判标准之和:
前台状态:1
优先度:2
期望运行时间:4
KiDefaultDynamicHeteroCpuPolicy
值决定了异构调度中,非重要线程该使用哪种核心。
在电源策略中没有与之等效的修改项,因此只能添加注册表项。
一共有八个值:
All (0):所有核心可用。
Large (1):只有大核可用。
LargeOrIdle (2):大核或者闲置核心可用。
Small (3):小核可用。
SmallOrIdle (4):小核或者闲置核心可用。
Dynamic (5):根据优先级或者其他数据来决定。
BiasedSmall (6):根据优先级或者其他数据来决定,但是优先调用小核。
BiasedLarge (7):根据优先级或者其他数据来决定,但是优先调用大核。
KiDynamicHeteroCpuPolicyImportant
值决定了异构调度中,重要线程该使用哪种核心。
电源策略中“异类线程调度策略”(93b8b6dc-0698-4d1c-9ee4-0644e900c85d)与之完全等效。
和上个变量相同,一共有八个值。
KiDynamicHeterCpuPolicyImportantShort
值决定了异构调度中,重要线程但运行时间短该使用哪种核心。
电源策略中“异类短运行线程调度策略”(bae08b81-2d5e-4688-ad6a-13243356654b)与之完全等效。
和上个变量相同,一共有八个值。
KiDynamicCpuPolicyExpectedRuntime
值代表了评判运行线程短或长的标准。
电源策略中“短与长时间运行线程阈值”(d92998c2-6a48-49ca-85d4-8cceec294570)与之完全等效。
小于该值即为短运行线程,大于该值即为长运行线程。
可以在十进制的 0-100000 之间随意指定,单位为微秒。
KiDynamicHeteroCpuPolicyImportantPriority
值代表了如果在变量 KiDynamicHeteroCpuPolicyMask 中有考虑优先度时,判断线程是否重要的标准。
在电源策略中没有与之等效的修改项,因此只能添加注册表项。
在考虑优先度的情况下,大于该值即立即判定为重要线程。
可以在十进制的 1-31 之间随意指定。
变量 | 默认值 |
---|---|
KiDynamicHeteroCpuPolicyMask | 7 |
KiDefaultDynamicHeteroCpuPolicy | Small (3) |
KiDynamicHeteroCpuPolicyImportant | LargeOrIdle (2) |
KiDynamicHeterCpuPolicyImportantShort | Small (3) |
KiDynamicCpuPolicyExpectedRuntime | 5,200 msec |
KiDynamicHeteroCpuPolicyImportantPriority | 8 |
正式修改
我们有两种选择:
直接弃用大小核异构调度。
全程手动修改异构调度的变量:将
KiDynamicHeteroCpuPolicyMask
修改为 6,从而不将前后台状态作为线程重要性的考量标准。
第一种选择对应的操作很简单:
点击 QuickCPU 顶部的电源控制按钮,跳出单独的电源计划管理页面。
进入左侧 Power Settings 的第一栏 Power plan settings,修改“生效的异类策略”(7f2f5cfa-f10c-4823-b5e1-e93ae85f46b5)的外接供电和电池供电为
使用异类策略 0 (0)
。关闭 QuickCPU 重启既可。
我们详细来叙述第二种对应的操作:
在 QuickCPU 中确保“生效的异类策略”(7f2f5cfa-f10c-4823-b5e1-e93ae85f46b5)的外接供电和电池供电为
使用异类策略 4 (4)
。在注册表
HKLM\System\CurrentControlSet\Control\Session Manager\Kernel
内新建项KGroups
,随后再在其内新建项00
。00
代表的是使用的拥有大小核的单颗 CPU,若有多颗 CPU 则按顺序01
等添加即可。在
00
项下新建名为SmallProcessorMask
的 DWORD 值。数值数据为十六进制下的 CPU 亲和掩码(Affinity mask)。这个掩码在二进制下为从左往后,以每个小核心的线程为 1,每个大核心的线程为 00 组成。之后将这个数字转为十六进制即可。比如:i9-13900K,8 大核 16 小核 32 线程:
二进制:11111111111111110000000000000000,16 位 1 + 16 位 0。
十六进制:FFFF0000。
i7-12700K,8 大核 4 小核 20 线程:
二进制:11110000000000000000,4 位 1 + 16 位 0。
十六进制:F0000。
配置异构调度的六个变量:
返回
KGroups
所在的Kernel
添加变量与值,注意变量开头的 Ki 字母需要去除(以下示例中已去除 Ki)。添加
DynamicHeteroCpuPolicyMask
的 DWORD 值为 6。添加
DefaultDynamicHeteroCpuPolicy
的 DWORD 值为 3。添加
DynamicHeteroCpuPolicyImportant
的 DWORD 值为 2。添加
DynamicHeterCpuPolicyImportantShort
的 DWORD 值为 3。添加
DynamicCpuPolicyExpectedRuntime
的 DWORD 值为 5200(十进制)。添加
DynamicHeteroCpuPolicyImportantPriority
的 DWORD 值为 8。
因为有三个变量在电源策略类有完全等效的选项,保险起见,检查与之对应的三个电源策略使其保持一致。
进入 QuickCPU 的电源计划。
对应变量
KiDynamicHeteroCpuPolicyImportant
,修改“异类线程调度策略”(93b8b6dc-0698-4d1c-9ee4-0644e900c85d)的外接供电和电池供电为“首选高性能处理器 (2)”。对应变量
KiDynamicHeterCpuPolicyImportantShort
,修改“异类短运行线程调度策略”(bae08b81-2d5e-4688-ad6a-13243356654b)的外接供电和电池供电为“高效处理器 (3)”。对应变量
KiDynamicCpuPolicyExpectedRuntime
,修改“短与长时间运行线程阈值”(d92998c2-6a48-49ca-85d4-8cceec294570)的外接供电和电池供电的值为“5200”。
注:
以相同的方式,可以将 Intel 或 AMD 的非大小核 CPU 模拟为大小核 CPU 来使用。以笔记本的 AMD R7-5800H 为例,将 8 大核 16 线程模拟为 4 大核 4 小核 16 线程(注意因为是模拟小核,所以是双线程小核,而非 Intel 的单线程小核),CPU 的亲和掩码则为 1111111100000000,即 FF00。
有兴趣的可以再核对一下微软的官方文档的 286-287 页,即第四章线程-线程调度-异构调度(大小核):Catlin, B., Hanrahan, J.E., Russinovich, M.E., Solomon, D.A. and Ionescu, A. (2017). Windows Internals, Part 1: System architecture, processes, threads, memory managment, and more. Redmond: Microsoft, pp. 286-287.