User Tools

Site Tools

blog:2024-10-29-001



2024-10-29 Windows下透過SMBus與裝置通信

Notes

  • 在Github,注意到了一個開源專案叫OpenRGB,閱讀其readme檔案了解到這個專案的作用是替代個人家用主機中亂七八糟各品牌的RGB燈光驅動軟體,可以使用該軟體來統一調度不同品牌的ddr 、顯示卡、主機板、滑鼠等RGB燈光。更進一步了解到市面上的廠商的RGB燈光控制大部分使用SMBus協議,於是覺得這個項目可以有不小的參考。
  • 幸運的是,該專案的文檔寫的很好,其中對SMBus部分有簡要的介紹。這裡簡單介紹了一下有關的拓撲結構,也提到了Linux平台下有現成的i2c庫支持你訪問主機板上的i2c/SMBus設備,而Windows並沒有類似的東西,所以作者重新寫了Windows平台下的驅動(我也是在此刻深刻感受到了Windows平台開發的不容易)。總之,我反覆閱讀了作者的文檔之後知道了我可能會用上一個庫叫WinRing0。
  • 於是我接著去翻閱WinRing0的文檔,了解到其可以用來access到x86/64 Windows下的IO port, MSR, PCI,再聯想到之前有在設備管理器看到過SMBus Controller是位於PCI上的,覺得WinRing0將會是一個很有用的工具。之後從Intel官網取得到了PCH datasheet,上面詳細介紹了SMBus Controller的PCI設定資訊以及其IO Space的資訊。透過重複閱讀datasheet終於理清了實現我想要的功能的程式步驟。

TAGS

  • 9 person(s) visited this page until now.

Permalink blog/2024-10-29-001.txt · Last modified: 2024/10/29 10:56 by jethro

oeffentlich