rfkill 出力のデバイス名が ip のデバイス名と一致しません。

rfkill 出力のデバイス名が ip のデバイス名と一致しません。

rfkill コマンドでリストされるデバイス名は、ip コマンドでリストされるデバイス名とはまったく異なります。

> rfkill
ID TYPE DEVICE              SOFT      HARD
 0 wwan tpacpi_wwan_sw unblocked   blocked
 1 wlan phy0           unblocked   blocked
 8 wlan phy7           unblocked unblocked

> ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 1d:28:4c:95:e6:9b brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 22:5e:9b:23:24:86 brd ff:ff:ff:ff:ff:ff
25: wwp0s20u4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 2e:e1:3b:d9:bc:b2 brd ff:ff:ff:ff:ff:ff
26: wlxda2487111f99: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether da:24:87:11:1f:99 brd ff:ff:ff:ff:ff:ff

なぜこれが起こり、どのように一致するのかをどうやって知ることができますか?

IPを使用してデバイス名を割り当てる方法を説明するこの記事を読んでください。私のEthernetインターフェイス名がeth0ではなくenp0s10であるのはなぜですか? しかし、rfkillが使用するデバイス名はどのように割り当てられますか?

ベストアンサー1

ワイヤレスには2つの側面があります。

  • ワイヤレスハードウェアデバイス物理層、一般的に名前が付けられている物理学X
  • 接続されたネットワークインタフェース開発者一般的に命名ワイヤレスネットワーク

特定のワイヤレスハードウェアデバイスphyXの場合でも可能です。接続された追加のネットワークインターフェイスの作成、そうする能力がある時。そのため、同じカード(可能な場合)を使用してクライアントとアクセスポイントの役割の両方を実行することができます。おそらく追加のレイヤーがある理由でしょう。この下位層は、最終的なネットワークインタフェースを制御するコマンドiw以外のコマンドで管理されます。ip link

これに加えて、システムには名前を変更するオプションがあります(ワイヤレスネットワーク) これネットワークインターフェースいわゆるによると一貫したネットワークインタフェースデバイスの命名またはとも呼ばれる予測可能なネットワークインターフェイス名。これは、2つの項目間の相関関係についてより良い推測につながらないため、関連性のないトピックです。物理学X(通常動的)とどの名前。

iwマニュアルページはほとんど空ですが、コマンドにはまだ(非常に)大きなヘルプページがあります。

# iw help | less

[...]
        dev
                List all network interfaces for wireless hardware.

        dev <devname> info
                Show information for this interface.
[...]

特定のネットワークインタフェースの場合ワイヤレスネットワークを使用すると、名前付きアイテムとiw dev wlanY info結果にwiphyインデックスが表示されます。これは一致するインデックスXです。物理層相互作用。だからあなたは得ることができますワイヤレスネットワーク->物理学X関係。

例:

# iw dev wlan1 info
Interface wlan1
    ifindex 45
    wdev 0x300000001
    addr 16:c3:0c:a5:63:62
    type managed
    wiphy 3
    txpower 0.00 dBm

phy#Xあるいは、phyXと一致するネットワークインターフェイスでソートされたハードウェアデバイスのリスト(表示)を取得することもできます。たとえば、

# iw dev
phy#4
    Interface wlan2
        ifindex 46
        wdev 0x500000001
        addr 2a:5f:7f:7a:30:1b
        type managed
        txpower 0.00 dBm
phy#3
    Interface wlan1
        ifindex 45
        wdev 0x300000001
        addr 16:c3:0c:a5:63:62
        type managed
        txpower 0.00 dBm
phy#0
    Interface wlan0
        ifindex 3
        wdev 0x1
        addr be:2d:23:03:29:c5
        type managed
        txpower 0.00 dBm

そしてrfkillの関係を見せてください。rfkillZそして物理学X(LTEモデムとBluetoothを除く)

# rfkill -o ID,TYPE,DEVICE,SOFT,HARD list
ID TYPE      DEVICE      SOFT      HARD
 0 wlan      phy0   unblocked unblocked
 4 wlan      phy3   unblocked unblocked
 5 wlan      phy4   unblocked unblocked
 9 bluetooth hci0     blocked unblocked

シンボリックリンクに移動し、/sys/class/情報で利用可能なコンテンツをお読みください。この情報は、できるだけ多くの方法で使用できます。

~から無線LAN到着物理層到着rfkill:

$ ls -l /sys/class/net/wlan1/phy80211
lrwxrwxrwx. 1 root root 0 Sep  1 20:58 /sys/class/net/wlan1/phy80211 -> ../../ieee80211/phy3
$ grep ^ /sys/class/net/*/phy80211/name 
/sys/class/net/wlan0/phy80211/name:phy0
/sys/class/net/wlan1/phy80211/name:phy3
/sys/class/net/wlan2/phy80211/name:phy4

$ ls -1d /sys/class/net/*/phy80211/rfkill*
/sys/class/net/wlan0/phy80211/rfkill0
/sys/class/net/wlan1/phy80211/rfkill4
/sys/class/net/wlan2/phy80211/rfkill5

~からrfkill到着物理層到着無線LAN:

$ ls -l /sys/class/rfkill/rfkill4/device
lrwxrwxrwx. 1 root root 0 Sep  1 21:05 /sys/class/rfkill/rfkill4/device -> ../../phy3
$ grep ^ /sys/class/rfkill/rfkill*/device/name
/sys/class/rfkill/rfkill0/device/name:phy0
/sys/class/rfkill/rfkill4/device/name:phy3
/sys/class/rfkill/rfkill5/device/name:phy4
$ ls -1d /sys/class/rfkill/rfkill*/device/device/ieee80211/*
/sys/class/rfkill/rfkill0/device/device/ieee80211/phy0
/sys/class/rfkill/rfkill4/device/device/ieee80211/phy3
/sys/class/rfkill/rfkill5/device/device/ieee80211/phy4

(上記のBluetoothデバイスはレイアウトが異なるため、この方法では表示されません)

ls -1d /sys/class/rfkill/rfkill*/device/device/net/* 
/sys/class/rfkill/rfkill0/device/device/net/wlan0
/sys/class/rfkill/rfkill4/device/device/net/wlan1
/sys/class/rfkill/rfkill5/device/device/net/wlan2

# iw phy phy4 interface add onemorewlan type managed addr 12:34:56:78:ab:cd

$ ls -1d /sys/class/ieee80211/phy*/device/net/*
/sys/class/ieee80211/phy0/device/net/wlan0
/sys/class/ieee80211/phy3/device/net/wlan1
/sys/class/ieee80211/phy4/device/net/onemorewlan
/sys/class/ieee80211/phy4/device/net/wlan2

あなたは理解しました。

おすすめ記事