Open natsumerinchan opened 1 year ago
感觉,这个就差一步之遥。
Claude是这么说的
这些错误是因为代码使用了WMI(Windows管理规范)函数,但是Linux内核并不支持这些函数。
需要将这些WMI函数替换为ACPI(高级配置和电源接口)的等价函数。对应关系如下:
- wmi_evaluate_method -> acpi_evaluate_object
- wmi_install_notify_handler -> acpi_install_notify_handler
- wmi_has_guid -> acpi_guid_to_object_list
- wmi_remove_notify_handler -> acpi_remove_notify_handler
所以,需要将代码中的WMI函数调用替换为:
c
status = acpi_evaluate_object(LENOVO_GSENSOR_DATA_GUID, 0, method_id, &input, &output);
status = acpi_install_notify_handler(YOGA_MODE_CHANGE_EVENT_GUID, wmi_notify, NULL);
if (! acpi_guid_to_object_list(LENOVO_GSENSOR_DATA_GUID) || ! acpi_guid_to_object_list(YOGA_MODE_CHANGE_EVENT_GUID)) {
acpi_remove_notify_handler(YOGA_MODE_CHANGE_EVENT_GUID);
完成替换后,需要重新编译内核,错误应该会消失。
这是因为代码原本应该是为Windows系统编写的,使用了WMI接口。要移植到Linux/Chrome OS,需要使用Linux内核支持的ACPI接口来替换WMI调用。
完成上述替换后,代码应该可以正确编译通过。Let me know如果你还有其它问题!
呃呃呃。 看来,没有一处好弄的。
https://github.com/openFyde/kernel/tree/chromeos-5.4/drivers/platform/x86
报错的,是联想 yoga。
可是别的几个文件,也有 WMI,怎么没报错呢?
如果只有 yoga 有问题,大不了删掉 yoga。
https://github.com/hmtheboy154/kernel_ksu/tree/ksu_5.15/drivers/platform/x86
这个好像是 BlissOS 的内核,里面就没 yoga 那个文件。 删掉 yoga,试试。 如果其他的,也编译失败。 大不了创建分支,把驱动部分全换成 blissOS 的。
我看了别的内核,好像都没有 yoga 的那个文件。 drivers/platform/x86/yoga-usage-mode.c
那个补丁应用失败的原因是什么啊? 该不会是谷歌的内核更新了以后,代码有所出入,无法被补丁删删减减吧?
https://community.fydeos.com/t/topic/35065
暂时先不搞 fydeOS 啵。
官方客服说,
基于 Android 11 的 ArcHeroNG 方案已经在某些 openFyde 发行分支上提供了,稳定之后会并入 FydeOS。
那也就是说,这次大跨版本改动比较大。
到时候看看,ArcHeroNG 是个什么内核的。
之前内核编译失败,有可能就是官方在改动。
下次弄个 tag 的源代码试试。
@natsumerinchan 我记得你好像也用 BlissOS 的, https://github.com/M-L-P/grub2-androidx86
@natsumerinchan
这个人是不是你啊?
问下你,我用了 你的 actions 最新的,结果打不开。 你自己的,打开了吗? https://github.com/natsumerinchan/KernelSU/actions/runs/5583471314
@natsumerinchan
这个人是不是你啊?
yes
问下你,我用了 你的 actions 最新的,结果打不开。 你自己的,打开了吗? https://github.com/natsumerinchan/KernelSU/actions/runs/5583471314
我更新chromeos后没动过内核一样打不开
我的,先是打不开,然后再换的内核。
该不会是,做得太张扬了,被谷歌发现了,然后谷歌搞了点操作塞到OTA更新里吧?
我的,先是打不开,然后再换的内核。
该不会是,做得太张扬了,被谷歌发现了,然后谷歌搞了点操作塞到OTA更新里吧?
试试我刚编译的,记得连管理器一起,这个仓库的内核用的是我的签名
内核还要看管理器的签名的吗?
内核还要看管理器的签名的吗?
KernelSU靠管理器签名来确认app是否有权管理root
打不开,
你这个内核版本号,还蛮新的,
目前,都不知道 115 的ARCVM 内核的版本号多少。
我酷安关注你了,还发了私信。 有别的事,酷安上聊。
编译成功的经验:
git apply ./031-hid-sensor-cros-compat.patch
git apply ./034-silid-touchscreen-dmi.patch
git apply ./035-add-iwlwifi-new-firmware-support.patch
git apply ./036-fix-nl80211-for-wpa.patch
git apply ./bluetooth.patch
git apply ./intel_old_graphic.patch
git apply ./mxc6655.patch
git apply ./overlayfs.patch
git apply ./weibu_panel_orientation.patch
git apply ./wireless.patch
git apply ./x86.patch
过段时间比较忙,过年的时候再过来看看。
https://community.fydeos.com/t/topic/39713
fydeOS 可以移植 brunch 的 6.6 内核,有人成功了。 直接 kernelsu 修补 brunch 框架的内核,来得方便。
感觉,这个就差一步之遥。![Screenshot_2023-06-26-21-49-20-777_com android browser](https://github.com/natsumerinchan/KernelSU/assets/69227436/661be33b-b9a4-407c-beb4-8859a8b1aaa6)