1

I would like to know if I have in my folder /lib/firmware/ the firmware to use correctly a wifi driver.

The general problem is:

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

I suspect the firmware is not correctly loaded.

So, I don't know if it's possible to know what is the firmware needs the driver bcmdhd.

Some informations with this driver loaded:

# 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.

The chip is AP6212, with inside wifi&BT.

The wifi chip is a Broadcom BCM43438

Edit:

Here is the dmesg after loading the driver:

[ 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

Then, later:

 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
  • 1
    Check the dmesg output after booting (or after loading the module). The driver will complain when it can't find the necessary firmware file(s). – Martin von Wittich Jun 4 '16 at 19:01
  • Thanks for your answer. I have edited my question with the dmesg log after loading the driver – Guillaume Jun 6 '16 at 9:32
  • Looks like it's unsuccessfully trying to load /lib/firmware/ap6212/fw_bcm43438a0.bin. – Martin von Wittich Jun 6 '16 at 10:20
  • Yes, I have tried to download it from another board (nanopi), but I had to rename /lib/firmware/nvram_ap6212.txt to /lib/firmware/nvram.txt. I was my origin error. It's now solved ! Thank you very much – Guillaume Jun 6 '16 at 10:29
-1

You could try this to restart all your networking interfaces.

sudo service networking restart

Here's the link that might help you Ubuntu Form

-2

Use sudo

sudo ifconfig wlan0 up
  • 2
    Welcome to StackExchange! The problem shows that the command was run by root, so sudo won't make any difference. – JigglyNaga Sep 23 '18 at 18:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.