# 介紹 在 Linux 與無線通訊的背景下,「**CRDA 功率表(power table)**」指的是中央管制域代理(Central Regulatory Domain Agent, CRDA)所使用的**無線電規範資料庫**,用來判定 Wi-Fi 裝置在特定地理區域內可使用的**最大全功率(TX power)**。以下是 CRDA 與功率表的重點說明: --- ### 1. 法規遵循(Regulatory Compliance) 無線裝置必須遵守其所在國家或地區的**無線電規範**。這些規範會規定: * 最大可用的發射功率 * 允許使用的頻道 * 其他避免干擾與確保安全運作的參數 --- ### 2. CRDA 的角色(CRDA's Role) CRDA 是一個 **使用者空間工具**,主要職責是: * 將**無線電規範資料庫**(`wireless-regdb`)載入 Linux 核心的 **cfg80211** 子系統 * 此資料庫包含各國的頻道與功率限制規則,例如: * 各頻段允許的最大發射功率 * 頻道使用限制與模式(如室內/室外) --- ### 3. 功率規則(Power Rules) 在無線電規範資料庫中,「功率規則」會定義: * 指定頻率範圍內的 **最大等效全向輻射功率(EIRP)** * 某些情況下,還會限制 **天線增益(antenna gain)** 這些規則會**直接影響 Wi-Fi 網卡可使用的發射功率(TX power)**。 --- ### 4. 法規處理的演進(Evolution of Regulatory Handling) * 過去 CRDA 對於載入規範資料非常重要 * **從 Linux Kernel v4.15 開始**,核心可以直接將規範資料庫當作\*\*韌體檔(firmware)\*\*載入(通常位於 `/lib/firmware`) * 這降低了對獨立 CRDA 工具的依賴 --- ### 5. 對 Wi-Fi 效能的影響(Impact on Wi-Fi Performance) * 規範資料庫中設定的功率上限會**直接影響 Wi-Fi 的訊號強度與覆蓋範圍** * 功率越高通常代表更遠的覆蓋與更好的穿透力 * 但**超過法規限制是違法行為**,並可能造成無線干擾 --- ### 6. 總結 **「CRDA 功率表」**指的是 Linux 無線電規範資料庫中,針對各國或管制域(regulatory domain)所定義的**Wi-Fi 最大发射功率規則集合**。 雖然載入規則的方式已由傳統 CRDA 工具演進為核心直接載入韌體,但這些規則在**控制 Wi-Fi 發射功率與法規遵循**方面仍然至關重要。 --- ![ChatGPT Image 2025年8月4日 下午10_27_58](https://hackmd.io/_uploads/HJb2QBRvlg.jpg) # 在 Linux 環境下,Wi-Fi 裝置的 **TX Power(發射功率)** 是受到法規與硬體限制的。若你想調整或改變 TX Power 強度,需要考慮下列作法與限制: --- ## 1. **透過合法方式調整 TX Power** 這是建議的作法,符合當地無線電規範: ### (1) 使用 `iw` 命令 * 查詢目前裝置的 TX Power: ```bash sudo iw dev wlan0 info # 或 sudo iwconfig wlan0 ``` * 設定發射功率(單位 dBm,通常 1 dBm ≈ 1.26 mW): ```bash sudo iw dev wlan0 set txpower fixed 2000 ``` > **2000 表示 20 dBm(100 mW)** > 注意:若超過裝置與法規上限,命令可能無效。 --- ### (2) 切換地區(Regulatory Domain) Wi-Fi 功率與可用頻道由 **管制域**(Regulatory Domain)決定: * 查詢當前設定: ```bash sudo iw reg get ``` * 切換國家(例如設定為 US): ```bash sudo iw reg set US ``` > **注意**: > > * 有些國家允許更高功率(如美國的室外 30 dBm) > * 但**隨意切換國家可能違反當地法律** > * 部分驅動會忽略變更或被硬體鎖定(硬體 eeprom 硬性限制) --- ### (3) 編輯無線電規範資料庫(wireless-regdb) 如果必須在合法範圍內自訂功率表: 1. 安裝 `wireless-regdb` 原始碼 2. 編輯對應國家的頻段與功率限制(db.txt) 3. 重新編譯並安裝 4. 重新載入 cfg80211(或重開機) > 適用於有特別授權的情境,例如測試或特定認證環境。 --- ## 2. **非官方/進階作法(風險高、可能違法)** 若需要突破硬體或法規限制(例如測試環境): ### (1) Patch 驅動或核心 * 修改驅動程式的 **功率上限** * 重新編譯核心模組或整個驅動 * 可能需 patch `cfg80211` 或 `ath9k` 等驅動程式 --- ### (2) 修改 EEPROM / 固件 * 某些網卡的功率上限存於 EEPROM(硬體韌體) * 可使用專用工具(如 `flashrom`、`ath9k eeprom tools`)更改 * 風險: * 錯誤寫入可能導致網卡變磚 * 違反當地法規 --- ### (3) 使用 SDR 或高功率外接設備 * 使用軟體無線電(SDR)或外接放大器 * 不受限於標準 Wi-Fi 卡 * 僅適用於研究或封閉測試環境 --- ## 3. **限制與注意事項** 1. **法律風險**:超出法規功率上限屬於非法行為 2. **硬體風險**:高功率長時間發射可能損傷網卡 3. **干擾風險**:過高功率會干擾鄰近無線設備 4. **驅動限制**:新核心與韌體可能鎖死 TX Power --- ## 4. **總結** * **合法調整**:建議透過 `iw` + 切換國家 + 調整 wireless-regdb * **進階調整**:需 patch 核心或修改 EEPROM,但有風險且可能違法 * **實務建議**:若需更高功率,使用經認證的高功率 AP 或外接放大器 --- # 參考資料 * [Regulatory rules processing](https://wireless.docs.kernel.org/en/latest/en/developers/regulatory/processing_rules.html) * [wireless-regdb](https://wireless.docs.kernel.org/en/latest/en/developers/regulatory/wireless-regdb.html) * [About iw](https://wireless.docs.kernel.org/en/latest/en/users/documentation/iw.html) * [Official Linux Wireless documentation](https://wireless.docs.kernel.org/en/latest/index.html) * [How to increase txpower of my wifi device](https://askubuntu.com/questions/1165300/how-to-increase-txpower-of-my-wifi-device)