在 device 模式下,我们拿个 U 盘怼上去,然后 lsusb 看看有没有显示出来,那个口就是我们要找的 OTG 口了。
修改 BIOS 隐藏选项
进去系统之后,我们 ls /sys/class/ 可以看到设备上的设备类型,但是,偏偏没有 udc,这个 udc 是什么东西呢?是 USB Device Controller 的缩写,有这个你才有机会跑 OTG。
但我们前面已经提到这个 CPU 明明是支持 OTG 的,为什么没有呢?根据文章提示,要去 BIOS 里面改选项,然而,,,这个 HP 的 BIOS 似乎被极端精简了,很多选项都消失了,也完全没看到与 USB OTG 相关的选项,什么 OTG Support 什么 xDCI 通通没有。
这时候有些人可能就放弃,但我想了想,要不试试干 BIOS,反正别人也试着干了,于是我就去 hp 的支持页面找 BIOS,幸好,恰巧有一个 BIOS 下载,于是我就拉了下来,然后尝试了一下刷 BIOS,你猜怎么着,刷不上!(乐
不过,既然都下载下来了,也不是完全没有研究价值,至少先看看能不能有没有相关的选项好吧。
我们请出了 UEFITool , IFRExtractor-RS , UEFI-Editor 还有 AMIBCP 试图修改 BIOS,经过一番翻找啊,他确实有那么一堆隐藏选项,但是不知道怎么解锁,其中有一项叫做 USB OTG Support 这似乎有戏,但又没戏,毕竟你还得小心人家 BIOS 有什么签名验证之类的。
最后我还是放弃了,毕竟我没这个能耐,我也不想把它搞坏。
翻了翻几个工具的文档,发现 UEFI-Editor 底下的文档里面有一项 How to change hidden settings without flashing a modded BIOS 哦吼,翻译过来就是 如何在不刷修改过的BIOS的情况下修改隐藏设置,(后面翻看开头那位 thinkpad 互联大佬也是走的这招),这不正合我意,反正主板上的 BIOS 和我现在下载到的这个 BIOS 是一样的也不是不行嘛。
首先前提是你的 BIOS 得是 AMI 家的出品或者变种,如果不是的话,你就没戏了。
首先是到 UEFITool NE 这里下载一个最新的 UEFITool_NE_A**_win64.zip 如果没看到这个文件,你需要点一下 show all ** assets,这里星号代表任意数字,请仔细注意名字,如果你是其他系统,可以把 win64 换成相应的,但一般是 win64,下载解压后,我们得到一个 UEFITool.exe 的文件,我们打开,把前面拿到的 BIOS 文件拽进去,按下Ctrl+F选 Text 输入above 4g搜索。
apt-get install build-essential libncurses-dev apt-get build-dep linux apt-get source linux cd linux-6.1.133 export MAKEFLAGS=-j$(nproc) export DEB_BUILD_PROFILES='pkg.linux.nokerneldbg pkg.linux.nokerneldbginfo' make -f debian/rules.gen setup_amd64_none_amd64 make -C debian/build/build_amd64_none_amd64 nconfig make -C debian/build/bui1d_amd64_none_amd64 clean make -C debian/build/build_amd64_none_amd64 bindeb-pkg
在 nconfig 这一步时,找到 Device Drivers -> USB Support -> USB Gadget Support 选中 USB Gadget Support、 DesignWare USB3 DRD Core Support
2>D:\a\DesktopLricsFix\DesktopLricsFix\DesktopLricsFix.cpp(10,15): warning C4566: character represented by universal-character-name '\u7F51' cannot be represented in the current code page (1252) [D:\a\DesktopLricsFix\DesktopLricsFix\DesktopLricsFix.vcxproj]