[求助] Yoga 14s ACPI Bug反馈与硬件信息请求

发表于 2020-8-31 19:12   |   来自PC浏览器 [复制链接]   
1936 5  

在14s上装Linux的时候注意到一个报错:

  1. [    0.349127] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.LPC0.EC0], AE_NOT_FOUND (20200717/dswload2-162)
  2. [    0.349138] fbcon: Taking over console
  3. [    0.349755] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20200717/psobject-220)
复制代码

disasm出dsl看了一眼,ssdt11 DeviceObj的 Remote Reference写错了,写的是: EC0

  1.     External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
复制代码


但是dsdt里设备的名字应该是: EC
  1.                 Device (EC)
  2.                 {
  3.                     Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */)  // _HID: Hardware ID
  4.                     Name (_GPE, 0x03)  // _GPE: General Purpose Events
  5. ......
  6.                 }
复制代码


另外,我尝试在系统中控制风扇,但是实在找不到风扇是什么机制在控制,SMU MP2强制PWM Level并不能改变风扇状态,ACPI ERAM的定义里也没有找到疑似的寄存器,不知道联想工程师放不方便透露一下相关的设计,有无系统中override风扇的寄存器,或者如果能BIOS实现ACPI PNP0C0B _FSC那再好不过了。

  1.                     OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
  2.                     Field (ERAM, ByteAcc, NoLock, Preserve)
  3.                     {
  4.                         XDSB,   1,
  5.                         XEGA,   1,
  6.                         XEHY,   1,
  7.                         XFNE,   1,
  8.                         XSEM,   1,
  9.                         XN3R,   1,
  10.                         XEBY,   1,
  11.                         XETM,   1,
  12.                             ,   1,
  13.                             ,   1,
  14.                         PFLG,   1,
  15.                         Offset (0x02),
  16.                             ,   1,
  17.                         PLED,   1,
  18.                             ,   1,
  19.                         MSET,   1,
  20.                         Offset (0x03),
  21.                         DSHP,   1,
  22.                         IGPK,   1,
  23.                         CHGR,   1,
  24.                         LNON,   1,
  25.                         CBAT,   1,
  26.                         ADO0,   1,
  27.                         ADO1,   1,
  28.                         Offset (0x04),
  29.                         Offset (0x0B),
  30.                         TPSE,   2,
  31.                             ,   1,
  32.                         L65C,   1,
  33.                         G75C,   1,
  34.                         Offset (0x0C),
  35.                         Offset (0x0D),
  36.                         XONE,   1,
  37.                             ,   1,
  38.                         XONM,   2,
  39.                         XCBK,   4,
  40.                         XFNS,   2,
  41.                             ,   1,
  42.                         XSCS,   1,
  43.                         XSDS,   1,
  44.                         Offset (0x0F),
  45.                         XBCG,   1,
  46.                         YBCG,   1,
  47.                         XBRF,   1,
  48.                         Offset (0x10),
  49.                         Offset (0x21),
  50.                         XNHB,   16,
  51.                         Offset (0x24),
  52.                         XR24,   8,
  53.                         Offset (0x26),
  54.                         Offset (0x2A),
  55.                         HATR,   8,
  56.                         HT0H,   8,
  57.                         HT0L,   8,
  58.                         HT1H,   8,
  59.                         HT1L,   8,
  60.                         Offset (0x34),
  61.                             ,   3,
  62.                         XDCT,   1,
  63.                             ,   1,
  64.                         Offset (0x35),
  65.                             ,   1,
  66.                         XBCT,   1,
  67.                         Offset (0x38),
  68.                         XB0S,   7,
  69.                         XBTS,   1,
  70.                         Offset (0x3A),
  71.                             ,   1,
  72.                             ,   1,
  73.                             ,   1,
  74.                             ,   1,
  75.                         XCBD,   1,
  76.                         XCWL,   1,
  77.                         XCWW,   1,
  78.                         Offset (0x3B),
  79.                             ,   1,
  80.                         XBLH,   1,
  81.                             ,   1,
  82.                         BTDH,   1,
  83.                         USBN,   1,
  84.                             ,   2,
  85.                         S3FG,   1,
  86.                         Offset (0x46),
  87.                             ,   1,
  88.                             ,   1,
  89.                         XPLD,   1,
  90.                         XTCC,   1,
  91.                         XCPW,   1,
  92.                         XKAC,   1,
  93.                         XYAC,   1,
  94.                         XCKI,   1,
  95.                             ,   1,
  96.                             ,   1,
  97.                             ,   1,
  98.                             ,   1,
  99.                             ,   1,
  100.                             ,   1,
  101.                             ,   1,
  102.                         XLNK,   1,
  103.                             ,   1,
  104.                         XSTS,   1,
  105.                             ,   2,
  106.                             ,   1,
  107.                         XOKI,   1,
  108.                             ,   1,
  109.                         Offset (0x49),
  110.                         Offset (0x4E),
  111.                             ,   1,
  112.                         ACOV,   1,
  113.                         RMCS,   1,
  114.                             ,   1,
  115.                         X4E4,   1,
  116.                         X4E5,   1,
  117.                         Offset (0x50),
  118.                         SMPR,   8,
  119.                         SMST,   8,
  120.                         SMAD,   8,
  121.                         SMCM,   8,
  122.                         SMD0,   100,
  123.                         Offset (0x74),
  124.                         BCNT,   8,
  125.                         SMAA,   8,
  126.                         BATD,   16,
  127.                         XTM0,   8,
  128.                         XTM1,   8,
  129.                         XTM2,   8,
  130.                         Offset (0x7C),
  131.                         TSR2,   8,
  132.                         TSR4,   8,
  133.                         Offset (0x7F),
  134.                         TSR3,   8,
  135.                         TSR5,   8,
  136.                         HIID,   8,
  137.                         Offset (0x89),
  138.                         XGHM,   8,
  139.                         Offset (0x8C),
  140.                             ,   1,
  141.                             ,   1,
  142.                             ,   2,
  143.                         XPME,   1,
  144.                             ,   1,
  145.                         NSAD,   1,
  146.                         Offset (0x8D),
  147.                         Offset (0x90),
  148.                         Offset (0x91),
  149.                         Offset (0x92),
  150.                         Offset (0x93),
  151.                         Offset (0x94),
  152.                         XMSB,   8,
  153.                         Offset (0x96),
  154.                         Offset (0xA0),
  155.                         XAIF,   128,
  156.                         Offset (0xB4),
  157.                         YBTS,   8,
  158.                         Offset (0xB6),
  159.                         Offset (0xB7),
  160.                         Offset (0xC0),
  161.                         VCMD,   8,
  162.                         VDAT,   8,
  163.                         VST1,   8,
  164.                         Offset (0xC5),
  165.                             ,   1,
  166.                             ,   1,
  167.                             ,   1,
  168.                             ,   1,
  169.                             ,   1,
  170.                         QKCH,   1,
  171.                         Offset (0xC9),
  172.                         AC65,   8,
  173.                         Offset (0xCB),
  174.                         XFUD,   1,
  175.                         Offset (0xCC),
  176.                         XWMH,   8,
  177.                         XWML,   8,
  178.                         Offset (0xCF),
  179.                         XSID,   8,
  180.                         Offset (0xD2),
  181.                         BHCD,   8,
  182.                         BAHL,   8,
  183.                         BAHH,   8,
  184.                         BATL,   8,
  185.                         BATH,   8,
  186.                         Offset (0xD8),
  187.                         ECLV,   8,
  188.                         WLSE,   1,
  189.                         BTDE,   1,
  190.                         CCDE,   1,
  191.                         WWAE,   1,
  192.                             ,   1,
  193.                             ,   1,
  194.                             ,   1,
  195.                         KBMF,   1,
  196.                         Offset (0xE0),
  197.                         XCRC,   16,
  198.                         XCAC,   16,
  199.                         XCVO,   16,
  200.                         Offset (0xEB),
  201.                             ,   1,
  202.                             ,   1,
  203.                         NOPD,   1
  204.                     }
复制代码





从ERAM中可以看到EC有XTM0~2 3组温度传感器,但是ACPI ThemalZone中只暴露了XTM0,未免有些可惜,希望可以最大化的利用硬件能力。


通过追踪Windows版联想管家的行为我大致确定 省电,均衡,野兽 三种模式的控制是通过ACPI的DYTC Method进行的,我大概摸清了用法,但在没有文档支持的情况下不敢upstream。如果联想方便发布相关文档的话,我可以为Linux上游的ideapad-acpi驱动增加相关的功能,让Linux用户也获得同等体验。



谢谢。



5条回复
来自PC浏览器 发表于 2020-9-1 07:42:30
YOGA14S的风扇控制机制太奇葩了,AIDA64都检测不到风扇转速
回复 支持 反对

使用道具 举报

来自PC浏览器 发表于 2020-9-1 15:48:58
对于非Windows系统的支持投入,这点在商务系列里的比重是最多的。
近期ThinkPad上出现了针对Linux预装系统的产品。
而Lenovo消费系列(拯救者、YOGA、小新)定位于娱乐场景,因而在非Windows环境下不太可能会有投入。
ThinkPad fans | ThinkPad X1 series fans
X1 Carbon 4th - Intel i7 6600U vPro CPU,16GB RAM,1TB Samsung 960EVO PCIe/NVMe SSD,2K Dolby HDR,Intel 9260-AC Wireless,Windows 10 Pro 64
X1 Yoga 2nd - Intel i5 7300U vPro CPU,8GB RAM,512GB Intel 600p PCIe/NVMe SSD,FHD IPS Touchscreen,Windows 10 Pro 64
拯救者Y7000 - Intel i7 8750H CPU,NVIDIA Geforce GTX1050Ti,72% NTSC FHD IPS,Windows 10 Pro 64
无论发生什么,请不要后悔与我相遇。
淡泊以明志,宁静以致远。
不忘初心,方得始终。
回复 支持 反对

使用道具 举报

来自PC浏览器  楼主| 发表于 2020-9-1 21:05:56
傲雪吟霜白如冰 发表于 2020-9-1 15:48
对于非Windows系统的支持投入,这点在商务系列里的比重是最多的。
近期ThinkPad上出现了针对Linux预装系统 ...

谢谢大佬回复~联想最近在Linux上的投入大家都能看到,有很多相关的新闻,是个好消息~

我这里提出的Bug主要问题是BIOS没有严格遵守ACPI规范,ACPI compliant应该是每一个PC厂商的义务,虽然目前对Windows和Linux都没有功能上的影响,但也算一个瑕疵吧。

而后是关于Linux下其他驱动的支持,我觉得联想自己也没必要做出更多的投入,联想只需要提供必要的信息,社区可以完成很多开发工作。今天我更细致的研究了Windows下联想VPC(Virtual Power Controller?)的细节,发现功能上还是非常强大的。目前Linux版本的ideapad-laptop驱动完全是社区逆向工程在写,所以很多地方有处理不当,比如rfkill依赖DMI名单,比如很多Unknown EC Event。如果联想可以发布ACPI VPC设备的相关文档的话,社区可以做出很多改善,加入更多的功能。我认为联想内部一定有相关的规范文档,应该去除一些敏感信息就能发布。
回复 支持 反对

使用道具 举报

来自PC浏览器  楼主| 发表于 2020-9-1 21:08:33
本帖最后由 FlyGoat 于 2020-9-1 21:20 编辑
傲雪吟霜白如冰 发表于 2020-9-1 15:48
对于非Windows系统的支持投入,这点在商务系列里的比重是最多的。
近期ThinkPad上出现了针对Linux预装系统 ...

我给thinkpad-acpi和ideapad-laptop都提交过一些补丁,对整体情况和技术细节都还算有些了解,如果联想在这方面有兴趣的话,我很欢迎各种探讨~

4789952

4789952


回复 支持 反对

使用道具 举报

来自安卓客户端 发表于 2020-9-2 20:50:39
大佬我支持你
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则