Thinkpad T4x 風扇轉速檔位控制

來源:互聯網
上載者:User

Thinkpad T4x的風扇轉速在一般的情況下由BIOS負責自動調整,其實我們也可以通過讀寫內嵌控制器的0x62、0x66號連接埠實現對其的手動控制,這可以用來解決某些BIOS不盡如人意所導致的問題,如抑制轉動雜音、預熱風扇電機等。*自編程式控制制風扇轉速具有一定危險性,可能損壞硬體,請謹慎使用!*

[常數定義]
#define EC_DATAPORT    0x62 //控制連接埠號碼
#define EC_CTRLPORT    0x66 //資料連接埠號碼
#define EC_CMD_WRITE   0x81 //寫指令位元組
#define TP_FAN_CONTRL  0x2F //寫指令參數1,設定風扇轉速檔位
#define TP_FAN_LEVELS     n //寫指令參數2,風扇檔位的具體取值

[設定步驟]
1.  輪詢控制連接埠,確保輸入、輸出緩衝區為空白
2*. 向控制連接埠寫入一個寫指令位元組,其值為EC_CMD_WRITE
3.  輪詢控制連接埠,直到輸入緩衝區為空白,確保寫指令位元組被取走
4*. 向資料連接埠寫入一個位元組,該位元組為寫指令的第一個參數,其值為TP_FAN_CONTRL
5.  輪詢控制連接埠,直到輸入緩衝區為空白,確保第一個參數被取走
6*. 向資料連接埠寫入一個位元組,該位元組為寫指令的第二個參數,其值為TP_FAN_LEVELS
7.  輪詢控制連接埠,直到輸入緩衝區為空白,確保第二個參數被取走
8.  設定完畢,把耳朵趴在鍵盤上聽聽風扇的聲音吧!

[附加說明A] 關於TP_FAN_LEVELS的取值
a. 從低速檔到高速檔,通常取值為0x0-0x7,0為風扇停轉
b. 特殊值0x80表示由Thinkpad BIOS自動調節轉速,推薦值
c. 特殊值0x40表示風扇超高速運轉,某些機型不支援,可能會損壞風扇,慎用
d. 其他取值產生的結果要麼沒定義,要麼尚未確定,慎用

[附加說明B] 檢驗輸入或輸出緩衝區為空白的方式
#define EC_STAT_OBF 0x01   //輸出緩衝區滿標誌
#define EC_STAT_IBF 0x02   //輸入緩衝區滿標誌

從控制連接埠中讀取出一個DWORD,將其低位位元組分別與上述標誌位相與,若為0,則對應緩衝區為空白,反之則緩衝區滿。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.