Enabling WIFI support in custom Linux kernel and rootfs

I am having difficulty getting wifi working when I build my own kernel and rootfs. No matter what I try I can’t seem to get the wifi on the dragonboard to start up! I suspect it’s something to do with the filesystem, and not having the wcn36xx-platform-tools.ko file based on a post on this forum - but I’m not sure.

I am using the following process to create the kernel and filesystem:
1 - using kernel 4.4.23 downloaded from linaro and using the defconfig provided. In this I can see that the wcn36xx support is selected as a LKM, but I have tried it built into the kernel too (I have also tired it building the kernel manually as described on the linaro download page).
2 - using buildroot tell it to build the kernel from my local source, from step 1. The file system is configured to use minimal ‘stuff’: busybox and that’s about it!
3 - Using the initramfs, dt.img provided by linaro use the mkbootimg tool on my new kernel source.
4 - dcfldd the kernel and the rootfs into their respective sections of the SD card.

On the dragonboard:
5 - After booting the dragonboard I can see that it’s my new kernel through the uname command, and that it’s my new filesystem because of the custom login message.
6 - using ifconfig I can only see the lo interface.
If the wifi support in the kernel build was specified as a LKM I can navigate to /lib/modules/4.4.23/kernel/drivers/wireless/ath/wcn23xx and see the file wcn36xx.ko present

I have got the latest BSP from qcom, but I’m not sure what to do with this, so it could be that I’m not using it? Though I always thought that was part of the kernel source provided by Linaro.

Can anybody point me in the right direction to get it up and running? I suspect it’s a quick thing that I’m forgetting or not aware of in how to port Linux.

Thanks!

Did you copy the firmware from one of the other rootfs images (/lib/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin)?

No I haven’t done this - though I notice it’s in the BSP from qcom. Do I need to put this into lib/firmware/prima/ on my new rootfs?

Yes. Without a firmware the driver cannot start up.

also, we have a systemd init script that runs a bit of commands to ‘start’ the wlan core. you will need that too. the exact design/implementation in this area is likely to change in the mid term, but for now you still need to manually start the wlan core. it is implemented here

https://git.linaro.org/landing-teams/working/qualcomm/wcnss-config.git

which we had in Debian and OE in our builds.

@ndec thanks for the input - I have edited the kernel config lines:

CONFIG_EXTRA_FIRMWARE="WCNSS_qcom_wlan_nv.bin"
CONFIG_EXTRA_FIRMWARE_DIR="<the path to that file"

Which now gives the error
can't run '/etc/init.d/rcS': No such file or directory
on start up of the device.This seems to be stopping the kernel from starting as I would expect it to.

Is that where the config script you linked comes in, or do I need to put it somewhere else?

@danielt @mintramp819
where to copy these images/command as told by you @mitramp819 even on mine dragonboard 410c wi-fi is not working and i just booted linux by linaro using sd card what to do? earlier when i had android O.S WI-FI works fine and now it is showing the available network but not able connect why ? is there any reason behind ?please give us solution.

Thanks in Advance

If you are running Debian you do not need any of the instructions above… the instructions were for a custom build rootfs, not for one of the released images.

hello @danielt
so what to do as my dragonboard 410c is not booting up or when i turned power on it just shows the wifi and bluetooth led remained on state and no user led glows why ? i searched a lot but not getting exact solution please tell?is it destroyed ? but if it is then its wifi and bluetooth led will not show up right may be ?

thanks in advance

What happened when you followed the board recovery documentation: https://www.96boards.org/documentation/ConsumerEdition/DragonBoard-410c/Installation/BoardRecovery.md/

hello @danielt

sir its not working i tried to boot android using recovery method as mentioned in the android user guide in dragonboard using sd card method but it is not showing any display . it just shows the bluetooth and wifi LED indicator in on position till the time the board gets power. the display,power cable are okay as i checked on someone’s board . :sob::sob: Please provide the solution ,it would be highly appreciated .

Can you let us know which .zip file you downloaded and exactly what step in the recovery instructions you have got stuck?

sir i download the android image and debian image both thinking that might be android or debian will work on it but no operating system works on dragonboard it might be corrupted or destroyed or in bricked state.:sob::sob:
board is not showing any user led in on state and wi-fi and bluetooth led remains in on state.no display of operating system on monitor/dislay.
what to do now i tried all possible options. Project is ruined because of this .Got stuck in this.

SD CARD IMAGE
Stable Snapshot 99 Download

Sorry you are stuck but I’m afraid you have only answered half the question so I’m stuck too.

The other half was:

In other words which of our installation guides are you following, and at what step does your observation differ from what you expect?

You posted in another topic today that you are able to run debian on Dragonboard 410c. I don’t think we need take this topic any further.

If you’ve got the old board running now then great! If you’ve got a second working board then try to run the recovery process on the second board; if the first board behaves differently then it is almost certainly faulty.