Hi ,
we used kernel version 3.14.28 .we compiled broad com bcm4329 module out side of kernel, and generated bcm_dhd.ko,and we copied fw.bin and nvram.txt files into /lib/modules and /lib/firmware path .
3.14.28 kernel is support? for bcm 4329 module.we got below error.can you anybody help me.
insmod bcmdhd.ko firmware_path=fw_bcmdhd.bin nvram_path=nvram.txt iface_name=wlan
we inserted above all those things.
root@imx6qsabresd:~# insmod /lib/modules/bcmdhd.ko
bcmdhd: Unknown symbol sdio_reset_comm (err 0)
insmod: ERROR: could not insert module /lib/modules/bcmdhd.ko: Unknown symbol in module
root@imx6qsabresd:~#
Thanks & Regards
veeranjaneyului
Could you copy on this thread the result of "uname -r" as well as "modinfo bcmdhd.ko"?
hi ,
Thanks for your reply.
I attached modinfo below.please find below modinfo .and uname -r you are asking system kernel version? or yocto setup kernel version.uname -r system is 3.13 and my kernel version is 3.14.28.we compiled bcm4329 module from out side kernel. kernel built with yocto setup.Than we copy zImage and imx6q-sabresd.dtb into boot partions.
modinfo bcmdhd.ko
filename: /bcmdhd.ko
license: GPL v2
srcversion: F1F61E00A653D4E5628FBA5
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:
vermagic: 3.14.28-1.0.0_ga+g91cf351 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: info_string:string
parm: op_mode:int
parm: dhd_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: 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: passive_channel_skip: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
we are waiting for your valuable reply and suggestions.
Thanks & Regards
veeranjaneyulu
When you log on your i.MX platform execute the following command: "uname -r" this will print the kernel release. Check it matches the vermagic 3.14.28-1.0.0_ga+g91cf351 from your module. If it does not match it does explain why you have the error message when you try to load the module.
Hi ,
Thanks for your reply.
In the below I copied uname -r and modinfo bcmdhd.ko .please find below things.
i copied bcm_dhd.ko into /lib/modules/ and /lib/modules/nvram.txt ,, /lib/firmware/fw_bcmdhd.bin.
root@imx6qsabresd:~# uname -r
3.14.28-1.0.0_ga+g91cf351
root@imx6qsabresd:/lib/modules# modinfo bcmdhd.ko
filename: | /lib/modules/bcmdhd.ko |
license: | GPL v2 |
srcversion: | F1F61E00A653D4E5628FBA5 |
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: | |
vermagic: | 3.14.28-1.0.0_ga+g91cf351 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: | info_string:string |
parm: | op_mode:int |
parm: | dhd_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: | 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: | passive_channel_skip: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 |
We are waiting for your valuable reply and suggestions.
Thanks & Regards
veeranjaneyulu
Ok the vermagic of the module matches your kernel version.
Now this is how I load the module:
insmod /lib/modules/3.14.38-6UL_ga+ge4944a5/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko firmware_path=/lib/firmware/bcm/fw_bcmdhd.bin nvram_path=/lib/firmware/bcm/bcmdhd.cal dhd_msg_level=0xffff
You want to have the bcmdhd.ko stored under: /lib/modules/[YOUR_KERNEL_VERSION]/kernel/drivers/net/wireless/bcmdhd/
The firmware should be named: fw_bcmdhd.bin and stored under: /lib/firmware/bcm/
The nvram file should be called: bcmdhd.cal and stored under: /lib/firmware/bcm/ (same place as above)
You can turn on logs with dhd_msg_level
Hi ,
Thanks for your reply.
nvram.txt is same as bcmdhd.cal file? and how to change the crystal frequency and all in nvram.txt file.
we are waiting for your reply and suggestions.
Thanks & regards
veeranjaneyulu
Hi,
we used command above your guidelines .but we got below error .logs copied below find below logs.
root@imx6qsabresd:~#
ram_path=/lib/firmware/bcm/nvram.txt dhd_msg_level=0xffffre/bcm/fw_bcmdhd.bin nv
bcmdhd: disagrees about version of symbol alloc_etherdev_mqs
bcmdhd: Unknown symbol alloc_etherdev_mqs (err -22)
bcmdhd: disagrees about version of symbol __nlmsg_put
bcmdhd: Unknown symbol __nlmsg_put (err -22)
bcmdhd: Unknown symbol cfg80211_scan_done (err 0)
bcmdhd: disagrees about version of symbol consume_skb
bcmdhd: Unknown symbol consume_skb (err -22)
bcmdhd: disagrees about version of symbol sdio_register_driver
bcmdhd: Unknown symbol sdio_register_driver (err -22)
bcmdhd: disagrees about version of symbol __netif_schedule
bcmdhd: Unknown symbol __netif_schedule (err -22)
bcmdhd: disagrees about version of symbol unregister_netdev
bcmdhd: Unknown symbol unregister_netdev (err -22)
bcmdhd: Unknown symbol cfg80211_remain_on_channel_expired (err 0)
bcmdhd: Unknown symbol sdio_reset_comm (err 0)
bcmdhd: disagrees about version of symbol __netlink_kernel_create
bcmdhd: Unknown symbol __netlink_kernel_create (err -22)
bcmdhd: disagrees about version of symbol sched_setscheduler
bcmdhd: Unknown symbol sched_setscheduler (err -22)
bcmdhd: Unknown symbol cfg80211_new_sta (err 0)
bcmdhd: disagrees about version of symbol unregister_netdevice_queue
bcmdhd: Unknown symbol unregister_netdevice_queue (err -22)
bcmdhd: Unknown symbol cfg80211_disconnected (err 0)
bcmdhd: disagrees about version of symbol wake_up_process
bcmdhd: Unknown symbol wake_up_process (err -22)
bcmdhd: disagrees about version of symbol eth_type_trans
bcmdhd: Unknown symbol eth_type_trans (err -22)
bcmdhd: Unknown symbol cfg80211_ready_on_channel (err 0)
bcmdhd: Unknown symbol cfg80211_inform_bss_width_frame (err 0)
bcmdhd: disagrees about version of symbol kfree_skb
bcmdhd: Unknown symbol kfree_skb (err -22)
bcmdhd: Unknown symbol wiphy_register (err 0)
bcmdhd: Unknown symbol __cfg80211_alloc_reply_skb (err 0)
bcmdhd: Unknown symbol wiphy_new (err 0)
bcmdhd: disagrees about version of symbol __alloc_skb
bcmdhd: Unknown symbol __alloc_skb (err -22)
bcmdhd: Unknown symbol cfg80211_put_bss (err 0)
bcmdhd: Unknown symbol cfg80211_roamed (err 0)
bcmdhd: disagrees about version of symbol sdio_unregister_driver
bcmdhd: Unknown symbol sdio_unregister_driver (err -22)
bcmdhd: disagrees about version of symbol init_net
bcmdhd: Unknown symbol init_net (err -22)
bcmdhd: Unknown symbol cfg80211_ibss_joined (err 0)
bcmdhd: disagrees about version of symbol skb_pull
bcmdhd: Unknown symbol skb_pull (err -22)
bcmdhd: disagrees about version of symbol netlink_unicast
bcmdhd: Unknown symbol netlink_unicast (err -22)
bcmdhd: Unknown symbol cfg80211_michael_mic_failure (err 0)
bcmdhd: Unknown symbol wiphy_apply_custom_regulatory (err 0)
bcmdhd: disagrees about version of symbol dev_close
bcmdhd: Unknown symbol dev_close (err -22)
bcmdhd: Unknown symbol cfg80211_connect_result (err 0)
bcmdhd: disagrees about version of symbol skb_push
bcmdhd: Unknown symbol skb_push (err -22)
bcmdhd: disagrees about version of symbol nla_put
bcmdhd: Unknown symbol nla_put (err -22)
bcmdhd: disagrees about version of symbol register_netdev
bcmdhd: Unknown symbol register_netdev (err -22)
bcmdhd: Unknown symbol wiphy_unregister (err 0)
bcmdhd: disagrees about version of symbol free_netdev
bcmdhd: Unknown symbol free_netdev (err -22)
bcmdhd: disagrees about version of symbol netlink_kernel_release
bcmdhd: Unknown symbol netlink_kernel_release (err -22)
bcmdhd: disagrees about version of symbol __pskb_copy
bcmdhd: Unknown symbol __pskb_copy (err -22)
bcmdhd: Unknown symbol cfg80211_get_bss (err 0)
bcmdhd: Unknown symbol __ieee80211_get_channel (err 0)
bcmdhd: disagrees about version of symbol netif_rx_ni
bcmdhd: Unknown symbol netif_rx_ni (err -22)
bcmdhd: Unknown symbol cfg80211_vendor_cmd_reply (err 0)
bcmdhd: disagrees about version of symbol netif_rx
bcmdhd: Unknown symbol netif_rx (err -22)
bcmdhd: disagrees about version of symbol __netdev_alloc_skb
bcmdhd: Unknown symbol __netdev_alloc_skb (err -22)
bcmdhd: Unknown symbol cfg80211_mgmt_tx_status (err 0)
bcmdhd: disagrees about version of symbol skb_realloc_headroom
bcmdhd: Unknown symbol skb_realloc_headroom (err -22)
bcmdhd: Unknown symbol cfg80211_find_ie (err 0)
bcmdhd: Unknown symbol cfg80211_unregister_wdev (err 0)
bcmdhd: Unknown symbol cfg80211_del_sta (err 0)
bcmdhd: disagrees about version of symbol __dev_kfree_skb_any
bcmdhd: Unknown symbol __dev_kfree_skb_any (err -22)
bcmdhd: Unknown symbol ieee80211_channel_to_frequency (err 0)
bcmdhd: Unknown symbol cfg80211_rx_mgmt (err 0)
bcmdhd: Unknown symbol ieee80211_frequency_to_channel (err 0)
bcmdhd: Unknown symbol wiphy_free (err 0)
bcmdhd: disagrees about version of symbol register_netdevice
bcmdhd: Unknown symbol register_netdevice (err -22)
insmod: ERROR: could not insert module /lib/modules/3.14.28-1.0.0_ga+g91cf351/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko: Invalid paramete
Thanks
veeranjaneyulu
Hi
Finally we solve that issue .That is kernel mismatch issue.we built fresh out side the kernel.
First we changed <yocto_kernel _source/git>/drivers/mmc/core/sdio.c file we added one dummy function as per community guidence.
on target board we run below command
insmod /lib/modules/3.14.28-1.0.0_ga+g91cf351/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko firmware_path=/lib/firmware/bcm/fw_bcmdhd.bin nvram_path=/lib/firmware/bcm/nvram.txt
finally we got below error.please find below log and then give me suggestions and idea on that issue.
dhd_module_init in
no wifi platform data, skip
DHD wifi platform data is required for Android build
dhd_module_init: Failed to load the driver, try cnt 3
no wifi platform data, skip
DHD wifi platform data is required for Android build
dhd_module_init: Failed to load the driver, try cnt 2
no wifi platform data, skip
DHD wifi platform data is required for Android build
dhd_module_init: Failed to load the driver, try cnt 1
no wifi platform data, skip
DHD wifi platform data is required for Android build
dhd_module_init: Failed to load the driver, try cnt 0
dhd_module_init: Failed to load driver max retry reached**
dhd_module_init out
insmod: ERROR: could not insert module /lib/modules/3.14.28-1.0.0_ga+g91cf351/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko: Invalid parameters
plz give me idea.we are waiting for your suggestions.
Thanks & Regards
veeranjaneyulu
Make sure that your card is detected as a mmc device first.
You should get a log similar to this. My wifi card is on usdhc1.
mmc0: queuing unknown CIS tuple 0x91 (3 bytes)
mmc0: new high speed SDIO card at address 0001
I have seen those logs before and in my case that would happen when the driver is loaded and the radio is not available or detected over SDIO.
How do you connect your Broadcom radio to the i.MX6? Do you have an evaluation boards? please provide as many details as possible.