Armadilloフォーラム

WLAN+BTコンボモジュールを換装したらwlan0を認識しない

takeuchi.

2023年3月31日 17時16分

竹内です。
お世話になります。

Linuxカーネル、Debianユーザーカーネルを更新後、
借用している新しいWLAN + BT コンボモジュールに換装したところwlan0を認識しなくなりました。

NetworkManagerの管理下からwlan0を外そうとすると以下エラーが表示されます。
ifconfigで確認したところ、wlan0は表示されておりました。

$ nmcli device set wlan0 managed no
[dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
[dhd] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if : P2P interface unregistered

また、phy情報を取得しようとすると失敗してしまいます。

対処方法をご教授いただけますでしょうか。

コメント

溝渕です。

> Linuxカーネル、Debianユーザーカーネルを更新後、
> 借用している新しいWLAN + BT コンボモジュールに換装したところwlan0を認識しなくなりました。

再現環境を教えていただけますか?

- softwareのバージョン
- 再現手順

最新のインストールディスクイメージ
https://armadillo.atmark-techno.com/files/downloads/armadillo-x1/image/…

でインストールを行い再起動後、以下のコマンドを入力しただけでしょうか?

nmcli device set wlan0 managed no

> 溝渕です。
>
> > Linuxカーネル、Debianユーザーカーネルを更新後、
> > 借用している新しいWLAN + BT コンボモジュールに換装したところwlan0を認識しなくなりました。
>
> 再現環境を教えていただけますか?
>
> - softwareのバージョン
> - 再現手順
>
> 最新のインストールディスクイメージ
> https://armadillo.atmark-techno.com/files/downloads/armadillo-x1/image/…
>
> でインストールを行い再起動後、以下のコマンドを入力しただけでしょうか?
>
>

> nmcli device set wlan0 managed no
> 

>

- softwareのバージョン(at12からat28へUpdate)
Linux(stretch)o 4.9.133-at28
uImage-x1-v4.9-at28
弊社でビルドしたimageを書き込んでおります。

- 再現手順
imageを書き込んで再起動後、下記コマンドを入力

$nmcli device set wlan0 managed no
[dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
[dhd] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if : P2P interface unregistered
 

また、create_apを実行させるとget_phy_device()でエラーとなるようです。
at12→at28の差分によるエラーでしょうか。
※一部*でマスクしています。

/***/******/**/create_ap -n wlan0 xxxx yyyy &
[1] 2017
root@armadillo:/***/******/**/# Failed to get phy interface
ERROR: Your adapter does not support AP (master) mode
 
[1]+  Exit 1                  /***/******/**/create_ap -n wlan0 xxxx yyyy
 

溝渕です。

> imageを書き込んで再起動後、下記コマンドを入力
>

> $nmcli device set wlan0 managed no
> [dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
> [dhd] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if : P2P interface unregistered
>  

すみません。こちらで再現できていないのですが、このコマンドを入力する前にアクセスポイントへの接続等の操作を行っていますか?

> 借用している新しいWLAN + BT コンボモジュールに換装したところwlan0を認識しなくなりました。

これ自体は、NetworkManagerからwlan0を明示的に管理対象外に指定しているので問題無いかと思います。

> ifconfigで確認したところ、wlan0は表示されておりました。

とありますように、NetworkManager以外からwlan0を扱う場合に、管理対象外とします。

> また、create_apを実行させるとget_phy_device()でエラーとなるようです。
> at12→at28の差分によるエラーでしょうか。

いえ。無線LANモジュールのドライバの仕様による違いです。

新しいWLAN + BT コンボモジュールで利用可能なバージョンは、create_apの0.4.6-4以降になります。もしパッケージが古い場合はアップグレードしてください。

[aramdillo]# apt update
[aramdillo]# apt install create-ap

また、仮想I/Fの作成に非対応である為、create_apを実行する際に、オプション"--no-virt"を付与してください。

> 溝渕です。
>
>
> > imageを書き込んで再起動後、下記コマンドを入力
> >

> > $nmcli device set wlan0 managed no
> > [dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
> > [dhd] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if : P2P interface unregistered
> >  

>
> すみません。こちらで再現できていないのですが、このコマンドを入力する前にアクセスポイントへの接続等の操作を行っていますか?
いえ、行っておりません。

>
> > 借用している新しいWLAN + BT コンボモジュールに換装したところwlan0を認識しなくなりました。
> これ自体は、NetworkManagerからwlan0を明示的に管理対象外に指定しているので問題無いかと思います。
> > ifconfigで確認したところ、wlan0は表示されておりました。
> とありますように、NetworkManager以外からwlan0を扱う場合に、管理対象外とします。
承知しました。ありがとうございます。

>
> > また、create_apを実行させるとget_phy_device()でエラーとなるようです。
> > at12→at28の差分によるエラーでしょうか。
>
> いえ。無線LANモジュールのドライバの仕様による違いです。
>
> 新しいWLAN + BT コンボモジュールで利用可能なバージョンは、create_apの0.4.6-4以降になります。もしパッケージが古い場合はアップグレードしてください。
>
>

> [aramdillo]# apt update
> [aramdillo]# apt install create-ap
> 

>
> また、仮想I/Fの作成に非対応である為、create_apを実行する際に、オプション"--no-virt"を付与してください。
>

確認したところ、下記となっておりましたので問題ない認識です。

root@armadillo:~# apt list create-ap
Listing... Done
create-ap/stretch 0.4.6-4 all

オプション"--no-virt"をつけたところ、同様のエラーが発生しました。

/***/******/**/create_ap --no-virt -n wlan0 xxxx yyyy &
[1] 4242
root@armadillo:/***/******/**/# Failed to get phy interface
ERROR: Your adapter does not support AP (master) mode
 
[1]+  Exit 1                  /***/******/**/create_ap --no-virt -n wlan0 xxxx yyyy

溝渕です。

> オプション"--no-virt"をつけたところ、同様のエラーが発生しました。
>

> /***/******/**/create_ap --no-virt -n wlan0 xxxx yyyy &
> [1] 4242
> root@armadillo:/***/******/**/# Failed to get phy interface
> ERROR: Your adapter does not support AP (master) mode
>  
> [1]+  Exit 1                  /***/******/**/create_ap --no-virt -n wlan0 xxxx yyyy
> 

create_apがPATH指定されていたので気になったのですが、create_apをカスタマイズされていますか?

次のコマンドの出力が一致するか確認してみてください。
# 伏せ字の部分は、create_ap実行時のパスに修正してください。

[armadillo]# grep -A 10 "get_phy_device()" /***/******/**/create_ap
get_phy_device() {
    local x
    if [[ -e "/sys/class/net/$1/phy80211/name" ]]; then
        cat "/sys/class/net/$1/phy80211/name"
        return 0
    fi
    for x in /sys/class/ieee80211/*; do
        [[ ! -e "$x" ]] && continue
        if [[ "${x##*/}" = "$1" ]]; then
            echo $1
            return 0
[armadillo]# 

> 溝渕です。
>
> > オプション"--no-virt"をつけたところ、同様のエラーが発生しました。
> >

> > /***/******/**/create_ap --no-virt -n wlan0 xxxx yyyy &
> > [1] 4242
> > root@armadillo:/***/******/**/# Failed to get phy interface
> > ERROR: Your adapter does not support AP (master) mode
> >  
> > [1]+  Exit 1                  /***/******/**/create_ap --no-virt -n wlan0 xxxx yyyy
> > 

>
> create_apがPATH指定されていたので気になったのですが、create_apをカスタマイズされていますか?
>
> 次のコマンドの出力が一致するか確認してみてください。
> # 伏せ字の部分は、create_ap実行時のパスに修正してください。
>
>

> [armadillo]# grep -A 10 "get_phy_device()" /***/******/**/create_ap
> get_phy_device() {
>     local x
>     if [[ -e "/sys/class/net/$1/phy80211/name" ]]; then
>         cat "/sys/class/net/$1/phy80211/name"
>         return 0
>     fi
>     for x in /sys/class/ieee80211/*; do
>         [[ ! -e "$x" ]] && continue
>         if [[ "${x##*/}" = "$1" ]]; then
>             echo $1
>             return 0
> [armadillo]# 
> 

>
コマンドの出力は以下になりました。

root@armadillo:# grep -A 10 "get_phy_device()" /***/******/**/create_ap
get_phy_device() {
    local x
    for x in /sys/class/ieee80211/*; do
        [[ ! -e "$x" ]] && continue
        if [[ "${x##*/}" = "$1" ]]; then
            echo $1
            return 0
        elif [[ -e "$x/device/net/$1" ]]; then
            echo ${x##*/}
            return 0
        elif [[ -e "$x/device/net:$1" ]]; then

溝渕です。

> コマンドの出力は以下になりました。
>

> root@armadillo:# grep -A 10 "get_phy_device()" /***/******/**/create_ap
> get_phy_device() {
>     local x
>     for x in /sys/class/ieee80211/*; do
>         [[ ! -e "$x" ]] && continue
>         if [[ "${x##*/}" = "$1" ]]; then
>             echo $1
>             return 0
>         elif [[ -e "$x/device/net/$1" ]]; then
>             echo ${x##*/}
>             return 0
>         elif [[ -e "$x/device/net:$1" ]]; then
> 

これは、create_ap v0.4.6-4ではありません。恐らくv0.4.6-3以前(またはそれをカスタマイズしたもの)を利用していると思います。

"/usr/bin/create_ap"を利用すると正常に実行できませんか?

> 溝渕です。
>
> > コマンドの出力は以下になりました。
> >

> > root@armadillo:# grep -A 10 "get_phy_device()" /***/******/**/create_ap
> > get_phy_device() {
> >     local x
> >     for x in /sys/class/ieee80211/*; do
> >         [[ ! -e "$x" ]] && continue
> >         if [[ "${x##*/}" = "$1" ]]; then
> >             echo $1
> >             return 0
> >         elif [[ -e "$x/device/net/$1" ]]; then
> >             echo ${x##*/}
> >             return 0
> >         elif [[ -e "$x/device/net:$1" ]]; then
> > 

>
> これは、create_ap v0.4.6-4ではありません。恐らくv0.4.6-3以前(またはそれをカスタマイズしたもの)を利用していると思います。
>
> "/usr/bin/create_ap"を利用すると正常に実行できませんか?
>

create_apに下記tarに含まれるパッチ(0002-Driver-not-using-struct-ieee80211_hw-can-t-find-phy.patch)を当てたところ、get_phy_device()のエラーが発生せず、wifiの接続が可能となりました。
http://download.atmark-techno.com/debian/pool/main/c/create-ap/create-a…

弊社のcreate_apは0.4.6-4以前の物を用いていたようです。(2020/6/23)
https://github.com/oblique/create_ap/blob/master/create_ap

しかし、端末起動時に以下のdhdメッセージが表示されるようになりました。
こちらのメッセージは問題無いでしょうか。

[dhd] dhd_conf_set_chiprev : devid=0x449d, chip=0xaae8, chiprev=2, svid=0x14e4, ssid=0xaae8
[dhd] dhd_attach(): thread:dhd_watchdog_thread:b9 started
pcieh 0000:01:00.0: Direct firmware load for bcmdhd/config.txt failed with error -2
[dhd] dhd_conf_read_config : Ignore config file bcmdhd/config.txt
[dhd] dhd_conf_read_country : ccode = JP
[dhd] dhd_conf_set_path_params : Final fw_path=bcmdhd/fw_bcm43752a2_pcie_ag_apsta.bin
[dhd] dhd_conf_set_path_params : Final nv_path=bcmdhd/nvram_ap6275p_mp.txt
[dhd] dhd_conf_set_path_params : Final clm_path=bcmdhd/clm_bcm43752a2_pcie_ag.blob
[dhd] dhd_conf_set_path_params : Final conf_path=bcmdhd/config.txt
[dhd] dhd_conf_set_country : set country JP, revision 0
[dhd] dhd_conf_set_country : Country code: JP (JP/0)
~中略~
armadillo login: EXT4-fs (mmcblk2p2): re-mounted. Opts: data=ordered
[dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
[dhd] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if : P2P interface unregistered
IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[dhd] CFG80211-ERROR) wl_cfg80211_deinit_p2p_discovery : Disabling P2P Discovery Interface
[dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized

溝渕です。

> こちらのメッセージは問題無いでしょうか。
>
>

> [dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
> [dhd] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if : P2P interface unregistered
> IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
> [dhd] CFG80211-ERROR) wl_cfg80211_deinit_p2p_discovery : Disabling P2P Discovery Interface
> [dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
> 

動的にNetworkManagerの対象外にした際に出るエラーですね。恐らく問題無いと思います。

製品マニュアルに記載の通り、"/etc/NetworkManager/NetworkManager.conf"に"unmanaged-devices"を追記する手順だとエラーが出ないと思います。

https://manual.atmark-techno.com/armadillo-x1/armadillo-x1_product_manu…

> 溝渕です。
>
> > こちらのメッセージは問題無いでしょうか。
> >
> >

> > [dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
> > [dhd] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if : P2P interface unregistered
> > IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
> > [dhd] CFG80211-ERROR) wl_cfg80211_deinit_p2p_discovery : Disabling P2P Discovery Interface
> > [dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
> > 

>
> 動的にNetworkManagerの対象外にした際に出るエラーですね。恐らく問題無いと思います。
>
> 製品マニュアルに記載の通り、"/etc/NetworkManager/NetworkManager.conf"に"unmanaged-devices"を追記する手順だとエラーが出ないと思います。
>
> https://manual.atmark-techno.com/armadillo-x1/armadillo-x1_product_manu…

ご回答ありがとうございます。問題ない旨承知致しました。

念のため1点追加で質問させて下さい。
create_ap0.4.6-4以降というのは、0.4.6以上のverのcreate_apにcreate-ap_0.4.6-4.debian.tar.xz 内に含まれるpatchを適用した状態のことを指している認識でよろしいでしょうか。

溝渕です。

> create_ap0.4.6-4以降というのは、0.4.6以上のverのcreate_apにcreate-ap_0.4.6-4.debian.tar.xz 内に含まれるpatchを適用した状態のことを指している認識でよろしいでしょうか。

概ね上記ご認識で良いです。

新しいWLAN + BT コンボモジュールでcreate-apを使う上で重要なのは、以下のパッチで、
0002-Driver-not-using-struct-ieee80211_hw-can-t-find-phy.patch

アットマークテクノからリリースするArmadillo-X1向けのcreate-apには、今後必ず上記対応を入れるという意味で、「create_ap0.4.6-4以降」と表現しました。

> 溝渕です。
>
> > create_ap0.4.6-4以降というのは、0.4.6以上のverのcreate_apにcreate-ap_0.4.6-4.debian.tar.xz 内に含まれるpatchを適用した状態のことを指している認識でよろしいでしょうか。
>
> 概ね上記ご認識で良いです。
>
> 新しいWLAN + BT コンボモジュールでcreate-apを使う上で重要なのは、以下のパッチで、
> 0002-Driver-not-using-struct-ieee80211_hw-can-t-find-phy.patch
>
> アットマークテクノからリリースするArmadillo-X1向けのcreate-apには、今後必ず上記対応を入れるという意味で、「create_ap0.4.6-4以降」と表現しました。
>

返信が遅くなり申し訳ございません。
上記、承知いたしました。

度々申し訳ございません。1点ご教授ください。

弊社製造時、起動時の以下のメッセージから現在の状態を検知しておりました。

IPv6: ADDRCONF(NETDEV_CHANGE): ap0: link becomes ready

しかし、create_apにパッチを当てた後、起動時のメッセージがap0→wlan0に変更されておりました。

IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

こちらメッセージが変更されてしまっておりますが問題はないでしょうか。
AP接続可能で、ifconfigも特に変わりない状態です。
ご確認お願いいたします。

溝渕です。

> 弊社製造時、起動時の以下のメッセージから現在の状態を検知しておりました。
>

> IPv6: ADDRCONF(NETDEV_CHANGE): ap0: link becomes ready
> 

>
> しかし、create_apにパッチを当てた後、起動時のメッセージがap0→wlan0に変更されておりました。
>

> IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
> 

>
> こちらメッセージが変更されてしまっておりますが問題はないでしょうか。

問題無いと思います。

先に述べました通り、新しいWLAN + BT コンボモジュールでは仮想I/Fの作成に非対応です。その為、ap0では無くwlan0となっています。

> 溝渕です。
>
> > 弊社製造時、起動時の以下のメッセージから現在の状態を検知しておりました。
> >

> > IPv6: ADDRCONF(NETDEV_CHANGE): ap0: link becomes ready
> > 

> >
> > しかし、create_apにパッチを当てた後、起動時のメッセージがap0→wlan0に変更されておりました。
> >

> > IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
> > 

> >
> > こちらメッセージが変更されてしまっておりますが問題はないでしょうか。
>
> 問題無いと思います。
>
> 先に述べました通り、新しいWLAN + BT コンボモジュールでは仮想I/Fの作成に非対応です。その為、ap0では無くwlan0となっています。
>

ご回答ありがとうございます。メッセージの変更に問題ない旨承知いたしました。

新たに疑問点が発生しまして、新しいWLAN + BT コンボモジュールでは仮想I/Fの作成に非対応とのことですが、ifconfigを叩くとap0が作成されているのが確認できます。
これはどういうことでしょうか。

root@armadillo:/etc/hostapd# ifconfig
ap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.12.1  netmask 255.255.255.0  broadcast 192.168.12.255
        inet6 fe80::e:8eff:fea2:9e34  prefixlen 64  scopeid 0x20<link>
        ether 02:0e:8e:a2:9e:34  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 31  bytes 4003 (3.9 KiB)
        TX errors 0  dropped 7 overruns 0  carrier 0  collisions 0
 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.101  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::b6cf:bb5a:454e:d356  prefixlen 64  scopeid 0x20<link>
        ether 00:11:0c:22:22:cc  txqueuelen 1000  (Ethernet)
        RX packets 214  bytes 21883 (21.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 801  bytes 44364 (43.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 263665  bytes 208915191 (199.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 263665  bytes 208915191 (199.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0e:8e:a2:9e:34  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

溝渕です。

> 新たに疑問点が発生しまして、新しいWLAN + BT コンボモジュールでは仮想I/Fの作成に非対応とのことですが、ifconfigを叩くとap0が作成されているのが確認できます。
> これはどういうことでしょうか。

私の手元では確認できませんでしたが、どのような手順で実行されていますか?

以下のコマンドを実行しました。

root@armadillo:~# create_ap -c "10" -w 2 --country JP --freq-band 2.4 --driver nl80211 -n wlan0 "TEST_AP" "12345678" --no-virt &
root@armadillo:~# ifconfig | grep ap
root@armadillo:~# 

> 溝渕です。
>
> > 新たに疑問点が発生しまして、新しいWLAN + BT コンボモジュールでは仮想I/Fの作成に非対応とのことですが、ifconfigを叩くとap0が作成されているのが確認できます。
> > これはどういうことでしょうか。
>
> 私の手元では確認できませんでしたが、どのような手順で実行されていますか?
>
> 以下のコマンドを実行しました。
>
>

> root@armadillo:~# create_ap -c "10" -w 2 --country JP --freq-band 2.4 --driver nl80211 -n wlan0 "TEST_AP" "12345678" --no-virt &
> root@armadillo:~# ifconfig | grep ap
> root@armadillo:~# 
> 

>

以下コマンドを使用しました。
「--no-virt」無しの挙動を確認していた次第です。「--no-virt」を使用した場合、ap0は作成されていませんでした。

nmcli device set wlan0 managed no
/***/***********/**/create_ap -n wlan0 xxxx yyyy &

弊社が使用しているcreate_apは以下の最新で、patch適用済みです。
https://github.com/oblique/create_ap

溝渕です。

> 「--no-virt」無しの挙動を確認していた次第です。「--no-virt」を使用した場合、ap0は作成されていませんでした。

失礼しました。上記手順で、ap0が作成されている事が確認できました。

仮想I/Fの作成に非対応は、私の誤認でした。すみません。

> 溝渕です。
>
> > 「--no-virt」無しの挙動を確認していた次第です。「--no-virt」を使用した場合、ap0は作成されていませんでした。
>
> 失礼しました。上記手順で、ap0が作成されている事が確認できました。
>
> 仮想I/Fの作成に非対応は、私の誤認でした。すみません。
>

上記、ap0作成は問題ない旨承知しました。

となると、以前返答いただいた、起動時のメッセージがap0→wlan0に変更されてしまう件についてですが、また別の理由で変更されてしまっているのでしょうか。
恐れ入りますが、ご確認お願いいたします。

>>先に述べました通り、新しいWLAN + BT コンボモジュールでは仮想I/Fの作成に非対応です。その為、ap0では無くwlan0となっています。

溝渕です。

大変申し訳ございません。WLANコンボモジュールを取り違えて(古いものを利用して)おりました。

インストールディスク実行直後の状態からだと、次のようになると思いますが、違いはありますか?

root@armadillo:~# vi /etc/NetworkManager/NetworkManager.conf
  :snip
[keyfile]
unmanaged-devices=interface-name:wlan0
root@armadillo:~# reboot
root@armadillo:~# apt install create-ap
root@armadillo:~# create_ap -c "10" -w 2 --country JP --freq-band 2.4 --driver n
l80211 -n wlan0 "TEST_AP" "12345678"
Config dir: /tmp/create_ap.wlan0.conf.4kFsYJre
PID: 4957
command failed: Input/output error (-5)
Network Manager found, set ap0 as unmanaged device... DONE
Creating a virtual WiFi interface... [dhd] CFG80211-ERROR) wl_cfg80211_add_virtu
al_iface : device is not ready
command failed: No such device (-19)
 
ERROR: Maybe your WiFi adapter does not fully support virtual interfaces.
       Try again with --no-virt.

> 溝渕です。
>
> 大変申し訳ございません。WLANコンボモジュールを取り違えて(古いものを利用して)おりました。
>
> インストールディスク実行直後の状態からだと、次のようになると思いますが、違いはありますか?
>
>

> root@armadillo:~# vi /etc/NetworkManager/NetworkManager.conf
>   :snip
> [keyfile]
> unmanaged-devices=interface-name:wlan0
> root@armadillo:~# reboot
> root@armadillo:~# apt install create-ap
> root@armadillo:~# create_ap -c "10" -w 2 --country JP --freq-band 2.4 --driver n
> l80211 -n wlan0 "TEST_AP" "12345678"
> Config dir: /tmp/create_ap.wlan0.conf.4kFsYJre
> PID: 4957
> command failed: Input/output error (-5)
> Network Manager found, set ap0 as unmanaged device... DONE
> Creating a virtual WiFi interface... [dhd] CFG80211-ERROR) wl_cfg80211_add_virtu
> al_iface : device is not ready
> command failed: No such device (-19)
> 
> ERROR: Maybe your WiFi adapter does not fully support virtual interfaces.
>        Try again with --no-virt.
> 

>

はい、同様の結果になることを確認できました。

root@armadillo:~# create_ap -c "10" -w 2 --country JP --freq-band 2.4 --driver nl80211 -n wlan0 "TEST_AP" "12345678"
Config dir: /tmp/create_ap.wlan0.conf.Wn1ogFNO
PID: 4670
command failed: Input/output error (-5)
Network Manager found, set ap0 as unmanaged device... DONE
Creating a virtual WiFi interface... [dhd] CFG80211-ERROR) wl_cfg80211_add_virtual_iface : device is not ready
command failed: No such device (-19)
 
ERROR: Maybe your WiFi adapter does not fully support virtual interfaces.
       Try again with --no-virt.
 
 
Doing cleanup.. done

/etc/NetworkManager/NetworkManager.conf のunmanaged-devices=interface-name: にap0が追加された状況ですと以下のようになるようです。

Config dir: /tmp/create_ap.wlan0.conf.pfEYnImA
PID: 4049
Network Manager found, set ap1 as unmanaged device... DONE
Creating a virtual WiFi interface... [dhd] CFG80211-ERROR) wl_cfg80211_bss_up : 'bss 0' failed with -19
[dhd] CFG80211-ERROR) wl_cfg80211_stop_ap : bss down error -19
[dhd] CFG80211-ERROR) wl_cfg80211_stop_ap : WLC_UP error (-19)
[dhd][ap0] AEXT-ERROR) wl_ext_ioctl : cmd=86, ret=-19
[dhd] CFG80211-ERROR) wl_cfg80211_iface_state_ops : ndev null. skip iface state ops
[dhd] CFG80211-ERROR) wl_cfg80211_deinit_p2p_discovery : Disabling P2P Discovery Interface
[dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
ap1 created.
No Internet sharing
hostapd command-line interface: hostapd_cli -p /tmp/create_ap.wlan0.conf.pfEYnImA/hostapd_ctrl
Configuration file: /tmp/create_ap.wlan0.conf.pfEYnImA/hostapd.conf
ap1: interface state UNINITIALIZED->COUNTRY_UPDATE
Using interface ap1 with hwaddr 02:0e:8e:a2:9e:34 and ssid "TEST_AP"
ap1: interface state COUNTRY_UPDATE->ENABLED
ap1: AP-ENABLED

竹内です。お世話になっております。

情報を整理いたしました。
新しいWLANコンボモジュールではどちらで運用するのが正しいでしょうか。
どちらもWIFI接続可能な状態です。
ご確認お願い致します。

①NetworkManager.confにap0を追加し、ap0をAPとして起動
(起動時、wlan0: link becomes readyのメッセージが表示される)

root@armadillo:~#create_ap -n wlan0 "xxxx" "yyyyyyyy" &
[1] 3541
root@armadillo:~# Config dir: /tmp/create_ap.wlan0.conf.hHOxu1Jp
PID: 3541
Network Manager found, set ap0 as unmanaged device... DONE
Creating a virtual WiFi interface... [dhd] CFG80211-ERROR) wl_cfg80211_deinit_p2p_discovery : Disabling P2P Discovery Interface
[dhd] CFGP2P-ERROR) wl_cfgp2p_disable_discovery :  do nothing, not initialized
[dhd] CFG80211-ERROR) wl_escan_handler : escan is not ready. drv_scan_status 0x0 e_type 69 e_status 4
[dhd] CFG80211-ERROR) wl_escan_handler : [Repeats 0 times]
ap0 created.
No Internet sharing
hostapd command-line interface: hostapd_cli -p /tmp/create_ap.wlan0.conf.hHOxu1Jp/hostapd_ctrl
Configuration file: /tmp/create_ap.wlan0.conf.hHOxu1Jp/hostapd.conf
Using interface ap0 with hwaddr 02:0e:8e:**:**:** and ssid "xxxx"
ap0: interface state UNINITIALIZED->ENABLED
ap0: AP-ENABLED

②NetworkManager.confにwlan0を追加し、wlan0をAPとして起動
(起動時、wlan0: link becomes readyのメッセージは表示されない)

root@armadillo:~#create_ap --no-virt -n wlan0 "xxxx" "yyyyyyyy" &
[1] 3238
root@armadillo:~# Config dir: /tmp/create_ap.wlan0.conf.ZJy89z3V
PID: 3238
command failed: Input/output error (-5)
No Internet sharing
hostapd command-line interface: hostapd_cli -p /tmp/create_ap.wlan0.conf.ZJy89z3V/hostapd_ctrl
Configuration file: /tmp/create_ap.wlan0.conf.ZJy89z3V/hostapd.conf
Using interface wlan0 with hwaddr 00:0e:8e:**:**:** and ssid "xxxx"
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED

溝渕です。

> 新しいWLANコンボモジュールではどちらで運用するのが正しいでしょうか。

後者(②NetworkManager.confにwlan0を追加し、wlan0をAPとして起動)をおすすめします。

新しいWLANコンボモジュールのデバイスドライバは、network I/Fが利用可能状態かつ一切利用されていない状況でなければvirtual I/Fを作成する事ができない仕様になっています。

drivers/net/wireless/bcmdhd/wl_cfgvif.c:
wl_cfg80211_add_virtual_iface(struct wiphy *wiphy,
 :snip
	if (unlikely(!wl_get_drv_status(cfg, READY, primary_ndev))) {
		WL_ERR(("device is not ready\n"));
		return ERR_PTR(-ENODEV);
	}

virtual I/Fを作ってap0を利用したところで、wlan0を使う事ができないので、--no-virtを使った運用が良いかと思います。

> 溝渕です。
>
> > 新しいWLANコンボモジュールではどちらで運用するのが正しいでしょうか。
>
> 後者(②NetworkManager.confにwlan0を追加し、wlan0をAPとして起動)をおすすめします。
>
> 新しいWLANコンボモジュールのデバイスドライバは、network I/Fが利用可能状態かつ一切利用されていない状況でなければvirtual I/Fを作成する事ができない仕様になっています。
>
>

> drivers/net/wireless/bcmdhd/wl_cfgvif.c:
> wl_cfg80211_add_virtual_iface(struct wiphy *wiphy,
>  :snip
> 	if (unlikely(!wl_get_drv_status(cfg, READY, primary_ndev))) {
> 		WL_ERR(("device is not ready\n"));
> 		return ERR_PTR(-ENODEV);
> 	}
> 

>
> virtual I/Fを作ってap0を利用したところで、wlan0を使う事ができないので、--no-virtを使った運用が良いかと思います。
>
竹内です。お世話になっております。
返信が大変遅くなりました。

上記検討させていただきます。
本件については目途が立ちました為、Closeとさせてください。
ご教授ありがとうございました。