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);
沒有留言:
張貼留言