ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2014年12月12日 星期五

rfkill

rfkill 好像是用來開關所有Wireless 裝置的架構 (Bt, wifi, ..etc)

l$ sudo rfkill list
0: phy0: Wireless LAN
 Soft blocked: yes
 Hard blocked: no
1: tpacpi_bluetooth_sw: Bluetooth
 Soft blocked: no
 Hard blocked: no
2: hci0: Bluetooth
 Soft blocked: no
 Hard blocked: no
列出所有的裝置,和開關狀態。
其中 Hardware 好像是說有些 nb 有實際的switch, button 控制 wifi, bluetooth.
Software 就是軟體的設定狀態。

rfkill 的開/關是用 unblock, block

rfkill block 0 -- 關掉第一個裝置 (phy0 : Wireless LAN)

rfkill 在 kernel 有一個專門的 driver:
net/rfkill/

之後,所有support rfkill 的 driver ,都要寫一個 rfkill 的註冊城市。

        rfkill->rfkill_dev = rfkill_alloc("csrbt-8311", &pdev->dev,
                                          RFKILL_TYPE_BLUETOOTH,
                                          &rfkill_gpio_ops, rfkill);
        if (!rfkill->rfkill_dev) {
                ret = -ENOMEM;
                goto fail_reset;
        }

        ret = rfkill_register(rfkill->rfkill_dev);
        if (ret < 0)
                goto fail_rfkill;

        platform_set_drvdata(pdev, rfkill);

沒有留言:

標籤

網誌存檔