SIOCSIFFLAGS:不允许操作(wifi 固件)

SIOCSIFFLAGS:不允许操作(wifi 固件)

我想知道我的文件夹中是否有/lib/firmware/正确使用 wifi 驱动程序的固件。

一般问题是:

root@bananapim2plus:/home/guillaume# ifconfig wlan0 up
SIOCSIFFLAGS: Operation not permitted

我怀疑固件没有正确加载。

所以,我不知道是否可以知道固件需要什么驱动程序bcmdhd

加载此驱动程序的一些信息:

# iwconfig
lo        no wireless extensions.

tunl0     no wireless extensions.

wlan0     IEEE 802.11  Access Point: Not-Associated   
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  invalid crypt:0  invalid misc:0

eth0      no wireless extensions.

p2p0      IEEE 802.11bg  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

# modinfo bcmdhd
filename:       /lib/modules/3.4.112-sun8i/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko
license:        GPL v2
alias:          sdio:c00v*d*
alias:          sdio:c*v02D0dA8E7*
alias:          sdio:c*v02D0d4324*
alias:          sdio:c*v02D0d4334*
alias:          sdio:c*v02D0d4330*
alias:          sdio:c*v02D0d4319*
alias:          sdio:c*v02D0d4329*
alias:          sdio:c*v02D0d0493*
alias:          sdio:c*v02D0d0492*
alias:          sdio:c*v02D0d0000*
depends:        
intree:         Y
vermagic:       3.4.112-sun8i SMP preempt mod_unload modversions ARMv7 p2v8 
parm:           dhd_doflow:uint
parm:           dhd_dpcpoll:uint
parm:           clockoverride:SDIO card clock override (int)
parm:           sd_msglevel:uint
parm:           sd_power:uint
parm:           sd_clock:uint
parm:           sd_divisor:uint
parm:           sd_sdmode:uint
parm:           sd_hiok:uint
parm:           sd_f2_blocksize:int
parm:           g_assert_type:int
parm:           dhd_oob_gpio_num:DHD oob gpio number (int)
parm:           info_string:string
parm:           op_mode:int
parm:           dhd_msg_level:int
parm:           iw_msg_level:int
parm:           wl_dbg_level:int
parm:           android_msg_level:int
parm:           config_msg_level:int
parm:           dhd_arp_enable:uint
parm:           dhd_arp_mode:uint
parm:           disable_proptx:int
parm:           firmware_path:string
parm:           nvram_path:string
parm:           config_path:string
parm:           dhd_watchdog_ms:uint
parm:           dhd_console_ms:uint
parm:           dhd_slpauto:uint
parm:           dhd_pkt_filter_enable:uint
parm:           dhd_pkt_filter_init:uint
parm:           dhd_master_mode:uint
parm:           dhd_watchdog_prio:int
parm:           dhd_dpc_prio:int
parm:           dhd_rxf_prio:int
parm:           dhd_dongle_ramsize:int
parm:           instance_base:int
parm:           iface_name:string
parm:           dhd_idletime:int
parm:           dhd_poll:uint
parm:           dhd_intr:uint
parm:           dhd_sdiod_drive_strength:uint
parm:           dhd_txbound:uint
parm:           dhd_rxbound:uint
parm:           dhd_deferred_tx:uint
parm:           dhd_pktgen:uint
parm:           dhd_pktgen_len:uint

# iwlist wlan0 scan
wlan0     Interface doesn't support scanning.

该芯片是AP6212,带有内置wifi和BT。

wifi芯片是Broadcom BCM43438

编辑:

这是dmesg加载驱动后的情况:

[ 3554.318513] dhd_module_init: in
[ 3554.318606] ======== bcm_wlan_set_plat_data ========
[ 3554.318628] bcm_wlan_get_oob_irq enter.
[ 3554.318726] gpio [202] map to virq [10] ok
[ 3554.318737] host_oob_irq: 10 
[ 3554.318747] host_oob_irq_flags=4
[ 3554.318761] dhd_wifi_platform_load: Enter
[ 3554.318798] Power-up adapter 'DHD generic adapter'
[ 3554.318881] wifi_platform_set_power = 1
[ 3554.318891] ======== PULL WL_REG_ON HIGH! ========
[ 3554.318905] [wifi_pm]: set wl_reg_on 1 !
[ 3554.620077] wifi_platform_bus_enumerate device present 1
[ 3554.620094] ======== Card detection to detect SDIO card! ========
[ 3554.620170] [mmc]: sdc1 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 3554.621769] [mmc]: sdc1 power_supply is null
[ 3554.640176] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 3554.663569] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 3554.666448] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 3554.669198] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 3554.681097] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 3554.683035] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3554.684883] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3554.688154] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 3554.794874] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 3554.795309] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 3554.795918] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 3554.801215] mmc1: new high speed SDIO card at address 0001
[ 3554.803707] *******************sdio init ok*******************
[ 3554.820313] bcmsdh_register: register client driver
[ 3554.820838] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter
[ 3554.821258] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter
[ 3554.821307] bus num (host idx)=1, slot num (rca)=1
[ 3554.821349] found adapter info 'DHD generic adapter'
[ 3554.824019] F1 signature read @0x18000000=0x1540a9a6
[ 3554.835758] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4
[ 3554.838490] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
[ 3554.838903] wifi_platform_get_mac_addr
[ 3554.838947] dhd_custom_get_mac_address Enter
[ 3554.838996] dhd_custom_get_mac_address wifi_mac=
[ 3554.842332] wl_create_event_handler(): thread:wl_event_handler:48f6 started
[ 3554.842386] tsk Enter, tsk = 0xca361430
[ 3554.846837] p2p0: P2P Interface Registered
[ 3554.847434] dhd_attach(): thread:dhd_watchdog_thread:48f7 started
[ 3554.847818] dhd_attach(): thread:dhd_dpc:48f8 started
[ 3554.848101] dhd_attach(): thread:dhd_rxf:48f9 started
[ 3554.848170] dhd_deferred_work_init: work queue initialized 
[ 3554.849269] dhd_custom_get_mac_address Enter
[ 3554.849327] dhd_custom_get_mac_address wifi_mac=
[ 3554.849376] Dongle Host Driver, version 1.201.34.2 (r491657)
[ 3554.849401] Compiled in drivers/net/wireless/bcmdhd on May 31 2016 at 18:59:58
[ 3554.857790] Register interface [wlan0]  MAC: 00:90:4c:11:22:33

[ 3554.857945] dhd_prot_ioctl : bus is down. we have nothing to do
[ 3554.858147] bcmsdh_oob_intr_unregister: Enter
[ 3554.858190] bcmsdh_oob_intr_unregister: irq is not registered
[ 3554.858249] dhd_txglom_enable: enable 0
[ 3554.858284] dhd_bus_devreset:  WLAN OFF DONE
[ 3554.858433] wifi_platform_set_power = 0
[ 3554.858470] ======== PULL WL_REG_ON LOW! ========
[ 3554.858508] [wifi_pm]: set wl_reg_on 0 !
[ 3554.858843] dhd_module_init: Exit err=0

然后,后来:

 3582.385697] dhd_open: Enter eeb0f000

[ 3582.385725] Dongle Host Driver, version 1.201.34.2 (r491657)
[ 3582.385732] Compiled in drivers/net/wireless/bcmdhd on May 31 2016 at 18:59:58
[ 3582.385746] wl_android_wifi_on in 1
[ 3582.385757] wl_android_wifi_on in 2: g_wifi_on=0
[ 3582.385768] wifi_platform_set_power = 1
[ 3582.385777] ======== PULL WL_REG_ON HIGH! ========
[ 3582.385788] [wifi_pm]: set wl_reg_on 1 !
[ 3582.690095] sdio_reset_comm():
[ 3582.690121] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 3582.692314] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 3582.693424] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B
[ 3582.694492] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B
[ 3582.719356] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 3582.723753] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3582.728098] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3582.736031] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 3582.993042] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 3582.993574] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 3582.994313] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B


[ 3582.995842] dhd_bus_devreset: == WLAN ON ==
[ 3582.996150] F1 signature read @0x18000000=0x1540a9a6
[ 3583.003433] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4
[ 3583.005948] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
[ 3583.006979] dhd_conf_read_config: Ignore config file /lib/firmware/ap6212/config.txt
[ 3583.007056] dhd_conf_set_fw_name_by_chip: firmware_path=/lib/firmware/ap6212/fw_bcm43438a0.bin
[ 3583.007111] Final fw_path=/lib/firmware/ap6212/fw_bcm43438a0.bin
[ 3583.007153] Final nv_path=/lib/firmware/ap6212/nvram.txt
[ 3583.007191] Final conf_path=/lib/firmware/ap6212/config.txt
[ 3583.009955] dhdsdio_download_code_file: Open firmware file failed /lib/firmware/ap6212/fw_bcm43438a0.bin
[ 3583.010180] _dhdsdio_download_firmware: dongle image file download failed
[ 3583.010332] dhd_net_bus_devreset: dhd_bus_devreset: -35
[ 3583.010386] dhd_prot_ioctl : bus is down. we have nothing to do
[ 3583.010436] dhd_net_bus_devreset: dhd_bus_devreset: -35
[ 3583.010591] wifi_platform_set_power = 0
[ 3583.010630] ======== PULL WL_REG_ON LOW! ========
[ 3583.010671] [wifi_pm]: set wl_reg_on 0 !
[ 3583.010715] wl_android_wifi_on: Failed
[ 3583.010756] dhd_open : wl_android_wifi_on failed (-35)
[ 3583.010803] dhd_stop: Enter eeb0f000
[ 3583.010839] wl_android_wifi_off in 1
[ 3583.010876] wl_android_wifi_off in 2: g_wifi_on=0
[ 3583.010913] wl_android_wifi_off out
[ 3583.010946] dhd_stop: Exit
[ 3583.010992] dhd_open: Exit ret=-1
[ 3583.080833] dhd_ioctl_entry: Interface is down 
[ 3583.177057] dhd_ioctl_entry: Interface is down 
[ 3583.177092] dhd_ioctl_entry: Interface is down 
[ 3583.177108] dhd_ioctl_entry: Interface is down 
[ 3583.177127] dhd_ioctl_entry: Interface is down 
[ 3583.177145] dhd_ioctl_entry: Interface is down

相关内容