* wl1251 build woes (compat-wireless 3.3.1-1, 3.1.1 as well as 2.6.39)
@ 2012-04-21 0:02 Mr Dash Four
2012-04-21 5:03 ` Luciano Coelho
0 siblings, 1 reply; 4+ messages in thread
From: Mr Dash Four @ 2012-04-21 0:02 UTC (permalink / raw)
To: linux-wireless
I am trying to build the wl1251 driver from compat-wireless 3.3.1-1, using a separate (Android-based) kernel as a base, but I am encountering a few snags:
>From the base compat-wireless-3.3.1-1 (CCOMPILER environemnt variable is set to the toolchain directory prefix I use for ARM):
[mockbuild@test1 compat-wireless-3.3.1-1]$ ./scripts/driver-select wl1251
[mockbuild@test1 compat-wireless-3.3.1-1]$ make ARCH=arm CROSS_COMPILE=$CCOMPILER KLIB=<android_kernel_dir> KLIB_BUILD=<android_kernel_dir>
/builddir/compat-wireless-3.3.1-1/config.mk:212: "WARNING: CONFIG_CFG80211_WEXT will be deactivated or not working because kernel was compiled with CONFIG_WIRELESS_EXT=n. Tools using wext interface like iwconfig will not work. To activate it build your kernel e.g. with CONFIG_LIBIPW=m."
[...]
Building modules, stage 2.
MODPOST 3 modules
CC /builddir/compat-wireless-3.3-1/compat/compat.mod.o
LD [M] /builddir/compat-wireless-3.3-1/compat/compat.ko
CC /builddir/compat-wireless-3.3-1/net/mac80211/mac80211.mod.o
LD [M] /builddir/compat-wireless-3.3-1/net/mac80211/mac80211.ko
CC /builddir/compat-wireless-3.3-1/net/wireless/cfg80211.mod.o
LD [M] /builddir/compat-wireless-3.3-1/net/wireless/cfg80211.ko
make[1]: Leaving directory `<android_kernel_dir>'
Should I be worried about the above warning? I do *not* have "CONFIG_WIRELESS_EXT" anywhere in my (android kernel) .config, but do have CONFIG_WIRELESS=y as well as CONFIG_CFG80211_WEXT=y. Also, I can't see any of the wl1251 drivers from compat-wireless (located in drivers/net/wireless/wl1251) being built at all! Am I missing something?
On a slightly different note, I also tried to use previous versions of compat-wireless - 3.1.1 as well as 2.6.39-1 - but things got even more hairy. After executing make, I got this:
make[3]: *** No rule to make target `/builddir/compat-wireless-3.1.1-1/net/wireless/db.txt', needed by `/builddir/compat-wireless-2.6.39-1/net/wireless/regdb.c'. Stop.
After the above error I just copied db.txt from wireless-regdb-2011.04.28.tar.bz2 to net/wireless, but then got this next:
make[3]: *** No rule to make target `/builddir/compat-wireless-3.1.1-1/net/wireless/genregdb.awk', needed by `/builddir/compat-wireless-3.1.1-1/net/wireless/regdb.c'. Stop.
So, again, I copied genregdb.awk from the 3.3.1-1 version of compat-wireless, but that wasn't enough, unfortunately:
WARNING: "reg_regdb_size" [/builddir/compat-wireless-3.1.1-1/net/wireless/cfg80211.ko] undefined!
WARNING: "reg_regdb" [/builddir/compat-wireless-3.1.1-1/net/wireless/cfg80211.ko] undefined!
The wl1251 drivers are not built here either - drivers/net/wireless/wl1251 is untouched! Any help or advice as to how can I resolve this would very much appreciated, thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: wl1251 build woes (compat-wireless 3.3.1-1, 3.1.1 as well as 2.6.39) 2012-04-21 0:02 wl1251 build woes (compat-wireless 3.3.1-1, 3.1.1 as well as 2.6.39) Mr Dash Four @ 2012-04-21 5:03 ` Luciano Coelho 2012-04-21 12:31 ` Mr Dash Four 0 siblings, 1 reply; 4+ messages in thread From: Luciano Coelho @ 2012-04-21 5:03 UTC (permalink / raw) To: Mr Dash Four; +Cc: linux-wireless On Sat, 2012-04-21 at 01:02 +0100, Mr Dash Four wrote: > I am trying to build the wl1251 driver from compat-wireless 3.3.1-1, using a separate (Android-based) kernel as a base, but I am encountering a few snags: > > From the base compat-wireless-3.3.1-1 (CCOMPILER environemnt variable is set to the toolchain directory prefix I use for ARM): > > [mockbuild@test1 compat-wireless-3.3.1-1]$ ./scripts/driver-select wl1251 > [mockbuild@test1 compat-wireless-3.3.1-1]$ make ARCH=arm CROSS_COMPILE=$CCOMPILER KLIB=<android_kernel_dir> KLIB_BUILD=<android_kernel_dir> > /builddir/compat-wireless-3.3.1-1/config.mk:212: "WARNING: CONFIG_CFG80211_WEXT will be deactivated or not working because kernel was compiled with CONFIG_WIRELESS_EXT=n. Tools using wext interface like iwconfig will not work. To activate it build your kernel e.g. with CONFIG_LIBIPW=m." > [...] > Building modules, stage 2. > MODPOST 3 modules > CC /builddir/compat-wireless-3.3-1/compat/compat.mod.o > LD [M] /builddir/compat-wireless-3.3-1/compat/compat.ko > CC /builddir/compat-wireless-3.3-1/net/mac80211/mac80211.mod.o > LD [M] /builddir/compat-wireless-3.3-1/net/mac80211/mac80211.ko > CC /builddir/compat-wireless-3.3-1/net/wireless/cfg80211.mod.o > LD [M] /builddir/compat-wireless-3.3-1/net/wireless/cfg80211.ko > make[1]: Leaving directory `<android_kernel_dir>' > > Should I be worried about the above warning? I do *not* have "CONFIG_WIRELESS_EXT" anywhere in my (android kernel) .config, but do have CONFIG_WIRELESS=y as well as CONFIG_CFG80211_WEXT=y. Also, I can't see any of the wl1251 drivers from compat-wireless (located in drivers/net/wireless/wl1251) being built at all! Am I missing something? No, don't worry. This is harmless if you don't use WEXT. Just remove the CONFIG_CFG80211_WEXT from your .config and the warning should go away. > On a slightly different note, I also tried to use previous versions of compat-wireless - 3.1.1 as well as 2.6.39-1 - but things got even more hairy. After executing make, I got this: > > make[3]: *** No rule to make target `/builddir/compat-wireless-3.1.1-1/net/wireless/db.txt', needed by `/builddir/compat-wireless-2.6.39-1/net/wireless/regdb.c'. Stop. > > After the above error I just copied db.txt from wireless-regdb-2011.04.28.tar.bz2 to net/wireless, but then got this next: > > make[3]: *** No rule to make target `/builddir/compat-wireless-3.1.1-1/net/wireless/genregdb.awk', needed by `/builddir/compat-wireless-3.1.1-1/net/wireless/regdb.c'. Stop. > > So, again, I copied genregdb.awk from the 3.3.1-1 version of compat-wireless, but that wasn't enough, unfortunately: > > WARNING: "reg_regdb_size" [/builddir/compat-wireless-3.1.1-1/net/wireless/cfg80211.ko] undefined! > WARNING: "reg_regdb" [/builddir/compat-wireless-3.1.1-1/net/wireless/cfg80211.ko] undefined! Sometimes compat-wireless breaks, when syncing with the latest upstream sourcers. If the newest works for you, use that. ;) > The wl1251 drivers are not built here either - drivers/net/wireless/wl1251 is untouched! Any help or advice as to how can I resolve this would very much appreciated, thanks! If this is a recent compat-wireless, then the wl1251 driver was moved to drivers/net/wireless/ti/wl1251. Can you check that? -- Cheers, Luca. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: wl1251 build woes (compat-wireless 3.3.1-1, 3.1.1 as well as 2.6.39) 2012-04-21 5:03 ` Luciano Coelho @ 2012-04-21 12:31 ` Mr Dash Four 2012-04-24 22:37 ` Mr Dash Four 0 siblings, 1 reply; 4+ messages in thread From: Mr Dash Four @ 2012-04-21 12:31 UTC (permalink / raw) To: Luciano Coelho; +Cc: linux-wireless >> Should I be worried about the above warning? I do *not* have "CONFIG_WIRELESS_EXT" anywhere in my (android kernel) .config, but do have CONFIG_WIRELESS=y as well as CONFIG_CFG80211_WEXT=y. Also, I can't see any of the wl1251 drivers from compat-wireless (located in drivers/net/wireless/wl1251) being built at all! Am I missing something? >> > > No, don't worry. This is harmless if you don't use WEXT. Just remove > the CONFIG_CFG80211_WEXT from your .config and the warning should go > away. > OK, I'll do that, thanks! >> WARNING: "reg_regdb_size" [/builddir/compat-wireless-3.1.1-1/net/wireless/cfg80211.ko] undefined! >> WARNING: "reg_regdb" [/builddir/compat-wireless-3.1.1-1/net/wireless/cfg80211.ko] undefined! >> > > Sometimes compat-wireless breaks, when syncing with the latest upstream > sourcers. If the newest works for you, use that. ;) > That doesn't appear to be the case, unfortunately - see below. >> The wl1251 drivers are not built here either - drivers/net/wireless/wl1251 is untouched! Any help or advice as to how can I resolve this would very much appreciated, thanks! >> > > If this is a recent compat-wireless, then the wl1251 driver was moved to > drivers/net/wireless/ti/wl1251. Can you check that? > I initially used compat-wireless-3.3.1-1 as it was the latest "stable" kernel edition released. The wl1251 drivers are in net/wireless/wl1251, not drivers/net/wireless/ti/wl1251. That is also the case with the latest released compat-wireless - 3.4-rc3-1. I did a bit of hacking/tweaking, but ran into much bigger problems and simply gave up in the end. When I looked at various compat-wireless makefiles I saw that, somehow the inclusion of wl1251 as well as wl12xx depends on CONFIG_CRC7 and CONFIG_WL12XX_PLATFORM_DATA being set (the latter also depends on wl12xx, so if I wanted it included, I had to switch to "wl12xx" instead of "wl1251"). So, I did the following: ./scripts/driver-select restore ./scripts/driver-select wl12xx make ARCH=arm CROSS_COMPILE=$CCOMPILER KLIB=<android_kernel_dir> KLIB_BUILD=<android_kernel_dir> CONFIG_CRC7=y CONFIG_WL12XX_PLATFORM_DATA=y I then get the following errors: /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c: In function 'wl12xx_sdio_power_on': /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c:126:2: error: implicit declaration of function 'pm_runtime_enabled' [-Werror=implicit-function-declaration] /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c:132:7: error: void value not ignored as it ought to be /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c: In function 'wl12xx_sdio_power_off': /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c:153:6: error: void value not ignored as it ought to be cc1: some warnings being treated as errors make[4]: *** [/builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.o] Error 1 make[3]: *** [/builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx] Error 2 make[2]: *** [/builddir/compat-wireless-3.3-1/drivers/net/wireless] Error 2 make[1]: *** [_module_/builddir/compat-wireless-3.3-1] Error 2 make[1]: Leaving directory `<android_kernel_dir>' make: *** [modules] Error 2 Apparently, "pm_runtime_enabled" is defined in include/linux/pm_runtime.h, but this is for the 3.0+ version of the kernel - I am using 2.6.37! Something seems to be seriously screwed up! The above is valid for all 3.x versions of compat-wireless I tried! I was under the impression that compat-wireless is backward-compatible with "older" kernel versions, like mine, is that not the case?! When I tried the latest compat-wireless before 3.x (2.6.39-1) I don't get the first error, but get the other two, albeit with modified function names (wl1271_sdio_* instead of wl12xx_sdio_*). In addition to the above, for some reason when I run compat-wireless for versions prior to 3.x (I tried 2 such versions - 2.6.39-1 and 2.6.38-2) I also get a weird error that "<android_kernel_dir>//builddir/compat-wireless-XXX/net/wireless/db.txt cannot be found" - the search path there is completely wrong, it should either be <android_kernel_dir>" or "/builddir/compat-wireless-XXX/net/wireless/db.txt" and not this weird concatenated path containing both! Again, this only happens with the 2 releases prior to 3.x I tried and only when I have "db.txt" and "genregdb.awk" from 3.3.1-1 manually copied to net/wireless. Any help? Luciano, seeing as you work for TI, I have one more query for you, if I may - the need for me to turn to build compat-wireless was borne out of my continuous, *completely fruitless* and *extremely frustrating* attempts for me to build a decent version of wpa_supplicant for my android device, which uses the "native" TI-supplied wireless driver for that device (tiwlan) - it proved an absolutely impossible task as the TI-supplied driver refuses to build with wpa_supplicant which has version any other than v5.11 (I have tried *all* released versions after this one - 6.11, 0.7.1, 0.7.3, 1.0-rc, 1.0 as well as the latest from git)! "Newer" TI-supplied drivers do *not* work with my TI-1251 device at all! Is there a decent driver for TI-1251 which could be integrated with a relatively recent/decent version of the wpa_supplicant? It is imperative that I build a decent version of wpa_supplicant for my device and it is the sole reason why I have chosen this route and turned to the Linux-based wireless stack, but unfortunately my assumption that the process there would be more straight-forward proved to be rather naive and my earlier optimism completely misplaced! :-( ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: wl1251 build woes (compat-wireless 3.3.1-1, 3.1.1 as well as 2.6.39) 2012-04-21 12:31 ` Mr Dash Four @ 2012-04-24 22:37 ` Mr Dash Four 0 siblings, 0 replies; 4+ messages in thread From: Mr Dash Four @ 2012-04-24 22:37 UTC (permalink / raw) To: Luciano Coelho; +Cc: linux-wireless >> If this is a recent compat-wireless, then the wl1251 driver was moved to >> drivers/net/wireless/ti/wl1251. Can you check that? >> > I initially used compat-wireless-3.3.1-1 as it was the latest "stable" > kernel edition released. The wl1251 drivers are in > net/wireless/wl1251, not drivers/net/wireless/ti/wl1251. That is also > the case with the latest released compat-wireless - 3.4-rc3-1. > > I did a bit of hacking/tweaking, but ran into much bigger problems and > simply gave up in the end. When I looked at various compat-wireless > makefiles I saw that, somehow the inclusion of wl1251 as well as > wl12xx depends on CONFIG_CRC7 and CONFIG_WL12XX_PLATFORM_DATA being > set (the latter also depends on wl12xx, so if I wanted it included, I > had to switch to "wl12xx" instead of "wl1251"). So, I did the following: > > ./scripts/driver-select restore > ./scripts/driver-select wl12xx > make ARCH=arm CROSS_COMPILE=$CCOMPILER KLIB=<android_kernel_dir> > KLIB_BUILD=<android_kernel_dir> CONFIG_CRC7=y > CONFIG_WL12XX_PLATFORM_DATA=y > > I then get the following errors: > > /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c: In > function 'wl12xx_sdio_power_on': > /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c:126:2: > error: implicit declaration of function 'pm_runtime_enabled' > [-Werror=implicit-function-declaration] > /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c:132:7: > error: void value not ignored as it ought to be > /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c: In > function 'wl12xx_sdio_power_off': > /builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.c:153:6: > error: void value not ignored as it ought to be > cc1: some warnings being treated as errors > > make[4]: *** > [/builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx/sdio.o] > Error 1 > make[3]: *** > [/builddir/compat-wireless-3.3-1/drivers/net/wireless/wl12xx] Error 2 > make[2]: *** [/builddir/compat-wireless-3.3-1/drivers/net/wireless] > Error 2 > make[1]: *** [_module_/builddir/compat-wireless-3.3-1] Error 2 > make[1]: Leaving directory `<android_kernel_dir>' > make: *** [modules] Error 2 > > Apparently, "pm_runtime_enabled" is defined in > include/linux/pm_runtime.h, but this is for the 3.0+ version of the > kernel - I am using 2.6.37! Something seems to be seriously screwed > up! The above is valid for all 3.x versions of compat-wireless I > tried! I was under the impression that compat-wireless is > backward-compatible with "older" kernel versions, like mine, is that > not the case?! > > When I tried the latest compat-wireless before 3.x (2.6.39-1) I don't > get the first error, but get the other two, albeit with modified > function names (wl1271_sdio_* instead of wl12xx_sdio_*). > > In addition to the above, for some reason when I run compat-wireless > for versions prior to 3.x (I tried 2 such versions - 2.6.39-1 and > 2.6.38-2) I also get a weird error that > "<android_kernel_dir>//builddir/compat-wireless-XXX/net/wireless/db.txt > cannot be found" - the search path there is completely wrong, it > should either be <android_kernel_dir>" or > "/builddir/compat-wireless-XXX/net/wireless/db.txt" and not this weird > concatenated path containing both! > > Again, this only happens with the 2 releases prior to 3.x I tried and > only when I have "db.txt" and "genregdb.awk" from 3.3.1-1 manually > copied to net/wireless. Any help? I've had somewhat limited success with this - I was able to build 2.6.38-2 compat-wireless by manually copying "db.txt" as well as "genregdb.awk" to <android_kernel_dir>//builddir/compat-wireless-XXX/net/wireless (yeah, I created it manually) as well as forcing CONFIG_CRC7=y and CONFIG_WL12XX_PLATFORM_DATA=y. "make modules-install" gives me 6 modules: compat, cfg80211, mac80211, wl1251, wl12xx_platform_data and wl1251_sdio. I "modprobe" them in that order, but then I get this error: Compat-wireless backport release: compat-wireless-2.6.38.2-2 Backport based on linux-2.6-allstable.git v2.6.38.2 cfg80211: Calling CRDA to update world regulatory domain cfg80211: World regulatory domain updated: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) ***1 wl12xx_platform_data: module license 'unspecified' taints kernel. ***1 Disabling lock debugging due to kernel taint ***1 - this happens when I execute "modprobe wl12xx_platform_data". As evident from the above also, the firmware does not load either. Here is what I have: localhost ~ # lsmod Module Size Used by Tainted: P wl1251_sdio 3315 0 wl12xx_platform_data 540 1 wl1251_sdio wl1251 67238 1 wl1251_sdio mac80211 199498 2 wl1251_sdio,wl1251 cfg80211 140370 2 wl1251,mac80211 compat 3729 2 mac80211,cfg80211 localhost ~ # ls -las /etc/firmware/ 2 drwxr-xr-x 1 root root 2048 Apr 22 00:18 . 2 drwxr-xr-x 1 root root 2048 Mar 28 00:33 .. 14 -rw-r--r-- 1 root root 14087 Aug 1 2008 brf6300.bin 190 -rw-r--r-- 1 root root 194188 Apr 21 23:07 wl1251-fw.bin 1 -rw-r--r-- 1 root root 752 Apr 21 23:07 wl1251-nvs.bin localhost ~ # iwconfig wlan0 wlan0 No such device localhost ~ # iwconfig wlan0 power on Error for wireless request "Set Power Management" (8B2D) : GET failed on device wlan0 ; No such device. I have also tried to build the latest snapshot (tried the one from 21 April 2012), but things there got a bit more messy - the ti drivers were indeed moved to the ti/ directory, the Makefile, however, after selecting "ti" (or any of the TI drivers - TI1251 or TI12XX) is completely empty. I did a bit of investigation and it turns out that the offending part of the code is in the select-driver script, which executes "egrep WL1251|WL12XX" on the original Makefile and since the Makefile CONFIG_* setting does not contain either of these values for the ti/ directory (it has something like CONFIG_TI_*) that results in an empty Makefile. Even if I correct this and leave just the ti-related settings in that Makefile, I am still faced with my original problem I already pointed out above - wl1251, wl1251_sdio and wl12xx are not built - just compat, mac80211 and cfg80211 are compiled, so I am stuck - good and proper, again. Luciano, anyone? ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-04-24 22:38 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-04-21 0:02 wl1251 build woes (compat-wireless 3.3.1-1, 3.1.1 as well as 2.6.39) Mr Dash Four 2012-04-21 5:03 ` Luciano Coelho 2012-04-21 12:31 ` Mr Dash Four 2012-04-24 22:37 ` Mr Dash Four
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).