All of lore.kernel.org
 help / color / mirror / Atom feed
* Cross compiling currently broken?
@ 2009-08-25 18:46 Ed W
  2009-08-25 19:08 ` Luis R. Rodriguez
  2009-09-03 16:14 ` Philip Prindeville
  0 siblings, 2 replies; 4+ messages in thread
From: Ed W @ 2009-08-25 18:46 UTC (permalink / raw)
  To: linux-wireless

It would appear that there is something broken with the current Makefile 
when crosscompiling - I need a bit of help figuring out a proper solution.

In this case it's barely cross compiling, I just want to use a kernel I 
compiled somewhere, but isn't installed (I'm also in a chroot).  
According to the docs (http://linuxwireless.org/en/users/Download) I 
should do something like:

  make KLIB=/home/mcgrof/kernels/linux-2.6.27.22 \
   KLIB_BUILD=/home/mcgrof/kernels/linux-2.6.27.22

However, the makefile then installs the files in completely the wrong 
location, eg the following puts the files in 
/usr/src/linux/lib/modules/2.6.30.5-grsec-wrap/ !!

  make KLIB=/usr/src/linux \
   KLIB_BUILD=/usr/src/linux install-modules

So KLIB should apparently be something like /lib/modules/xyz.  However, 
this is still wrong because the line below puts the files in: 
/lib/modules/2.6.30.5-grsec-wrap/lib/modules/2.6.30.5-grsec-wrap/

  make KLIB=/lib/modules/2.6.30.5-grsec-wrap/ \
    KLIB_BUILD=/usr/src/linux  install-modules


Adding unsetting KMODPATH_ARG seems to do the trick (but seems unintended?):

  make KLIB=/lib/modules/2.6.30.5-grsec-wrap/ \
    KLIB_BUILD=/usr/src/linux KMODPATH_ARG= install-modules


But I still get repeated errors while building (where this is the 
currently running kernel, but the modules dir is unavailable in this 
chroot):

  FATAL: Could not load 
/lib/modules/2.6.29.6-grsec2.1.14-vs2.3.0.36.14/modules.dep: No such 
file or directory
  FATAL: Could not load 
/lib/modules/2.6.29.6-grsec2.1.14-vs2.3.0.36.14/modules.dep: No such 
file or directory


This appears to be caused by these lines at the top of the makefile:
  MADWIFI=$(shell $(MODPROBE) -l ath_pci)
  OLD_IWL=$(shell $(MODPROBE) -l iwl4965)

Clearly these need some parametrisation to include the running kernel 
name.  Something like this might pluck out the correct
uname:
KERNELRELEASE = $(cat $(KLIB_BUILD)/include/config/kernel.release 2> 
/dev/null)


I'm not quite clear what all the KLIB/KLIB_BUILD vars are supposed to be 
achieving, but at present they aren't working correctly when overridden 
to build a non installed kernel.  I'm surprised more people aren't 
hitting this?

Grateful if someone with a bit more experience could suggest a proper fix?

Thanks

Ed W


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Cross compiling currently broken?
  2009-08-25 18:46 Cross compiling currently broken? Ed W
@ 2009-08-25 19:08 ` Luis R. Rodriguez
  2009-08-25 19:26   ` Ed W
  2009-09-03 16:14 ` Philip Prindeville
  1 sibling, 1 reply; 4+ messages in thread
From: Luis R. Rodriguez @ 2009-08-25 19:08 UTC (permalink / raw)
  To: Ed W; +Cc: linux-wireless

On Tue, Aug 25, 2009 at 11:46 AM, Ed W<lists@wildgooses.com> wrote:
> /lib/modules/xyz.

I use /lib/modules/xyz/build just fine.

mcgrof@tux ~/devel/compat-wireless-2.6 (git::master)$
./scripts/driver-select ath9k
Processing new driver-select request...
Backing up makefile: Makefile.bk
Backing up makefile: drivers/net/wireless/Makefile.bk
Backing up makefile: drivers/net/wireless/ath/Makefile.bk
Backing up makefile: net/wireless/Makefile.bk
Backing up makefile: drivers/ssb/Makefile.bk
Backing up makefile: drivers/net/usb/Makefile.bk
Backing up makefile: drivers/misc/eeprom/Makefile.bk

mcgrof@tux ~/devel/compat-wireless-2.6 (git::master)$ make
KLIB=/lib/modules/2.6.27-02062726-generic/build/
KLIB_BUILD=/lib/modules/2.6.27-02062726-generic/build/
./scripts/gen-compat-autoconf.sh config.mk > include/linux/compat_autoconf.h
make -C /lib/modules/2.6.27-02062726-generic/build/
M=/home/mcgrof/devel/compat-wireless-2.6 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.27-02062726-generic'
  LD      /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/built-in.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/main.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/regd.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath.o
  LD      /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/built-in.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/hw.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/eeprom.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/eeprom_def.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/eeprom_4k.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/eeprom_9287.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/mac.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/calib.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/ani.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/phy.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/beacon.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/main.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/recv.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/xmit.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/virtual.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/rc.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/pci.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/ath9k.o
  LD      /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/built-in.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/main.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/sta_info.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/wep.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/wpa.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/scan.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/ht.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/agg-tx.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/agg-rx.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/ibss.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mlme.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/iface.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/rate.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/michael.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/tkip.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/aes_ccm.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/aes_cmac.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/cfg.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/rx.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/spectmgmt.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/tx.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/key.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/util.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/wme.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/event.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/led.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/debugfs.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/debugfs_sta.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/debugfs_netdev.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/debugfs_key.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mesh.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mesh_pathtbl.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mesh_plink.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mesh_hwmp.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/pm.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/rc80211_pid_algo.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/rc80211_pid_debugfs.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/rc80211_minstrel.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/rc80211_minstrel_debugfs.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mac80211.o
  LD      /home/mcgrof/devel/compat-wireless-2.6/net/rfkill/built-in.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/rfkill/core.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/rfkill/input.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/net/rfkill/rfkill_backport.o
  LD      /home/mcgrof/devel/compat-wireless-2.6/net/wireless/built-in.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/core.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/sysfs.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/radiotap.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/util.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/reg.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/scan.o
/home/mcgrof/devel/compat-wireless-2.6/net/wireless/scan.c: In
function ‘cfg80211_bss_update’:
/home/mcgrof/devel/compat-wireless-2.6/net/wireless/scan.c:422:
warning: unused variable ‘used’
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/nl80211.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/mlme.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/ibss.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/sme.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/chan.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/wext-compat.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/wext-sme.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/compat-2.6.28.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/compat-2.6.29.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/compat-2.6.30.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/compat-2.6.31.o
  CC [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/compat-2.6.32.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/cfg80211.o
  LD      /home/mcgrof/devel/compat-wireless-2.6/built-in.o
  Building modules, stage 2.
  MODPOST 5 modules
  CC      /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath.mod.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath.ko
  CC      /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/ath9k.mod.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/drivers/net/wireless/ath/ath9k/ath9k.ko
  CC      /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mac80211.mod.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/net/mac80211/mac80211.ko
  CC      /home/mcgrof/devel/compat-wireless-2.6/net/rfkill/rfkill_backport.mod.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/net/rfkill/rfkill_backport.ko
  CC      /home/mcgrof/devel/compat-wireless-2.6/net/wireless/cfg80211.mod.o
  LD [M]  /home/mcgrof/devel/compat-wireless-2.6/net/wireless/cfg80211.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.27-02062726-generic'

  Luis
  Luis

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Cross compiling currently broken?
  2009-08-25 19:08 ` Luis R. Rodriguez
@ 2009-08-25 19:26   ` Ed W
  0 siblings, 0 replies; 4+ messages in thread
From: Ed W @ 2009-08-25 19:26 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless

Hi

> I use /lib/modules/xyz/build just fine.
>   

Can you adapt your environment to be a little closer to mine?

For example if you don't have /lib/modules/'uname -r` available do you 
get the nasty errors that I see?

> mcgrof@tux ~/devel/compat-wireless-2.6 (git::master)$ make
> KLIB=/lib/modules/2.6.27-02062726-generic/build/
> KLIB_BUILD=/lib/modules/2.6.27-02062726-generic/build/
>   

Is the above all on one line?  Assuming so then can you please try this:

> mcgrof@tux ~/devel/compat-wireless-2.6 (git::master)$ make
> KLIB=/lib/modules/2.6.27-02062726-generic/build/
> KLIB_BUILD=/lib/modules/2.6.27-02062726-generic/build/ install-modules
>   

I would expect your modules to end up in

/lib/modules/2.6.27-02062726-generic/build/lib/modules/2.6.27-02062726-generic/build/

(If you read the above you can presumably see what has happened)
 

Is this the case for you?

Your make output varies from mine (compat-wireless-2009-8-24), one of us 
obviously has somewhat newer build file - perhaps the make file just 
changed?

Thanks for your comments

Ed W

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Cross compiling currently broken?
  2009-08-25 18:46 Cross compiling currently broken? Ed W
  2009-08-25 19:08 ` Luis R. Rodriguez
@ 2009-09-03 16:14 ` Philip Prindeville
  1 sibling, 0 replies; 4+ messages in thread
From: Philip Prindeville @ 2009-09-03 16:14 UTC (permalink / raw)
  To: Ed W; +Cc: linux-wireless

Ed W wrote:
> It would appear that there is something broken with the current Makefile 
> when crosscompiling - I need a bit of help figuring out a proper solution.
>
> In this case it's barely cross compiling, I just want to use a kernel I 
> compiled somewhere, but isn't installed (I'm also in a chroot).  
> According to the docs (http://linuxwireless.org/en/users/Download) I 
> should do something like:
>
>   make KLIB=/home/mcgrof/kernels/linux-2.6.27.22 \
>    KLIB_BUILD=/home/mcgrof/kernels/linux-2.6.27.22
>
> However, the makefile then installs the files in completely the wrong 
> location, eg the following puts the files in 
> /usr/src/linux/lib/modules/2.6.30.5-grsec-wrap/ !!
>
>   make KLIB=/usr/src/linux \
>    KLIB_BUILD=/usr/src/linux install-modules
>
> So KLIB should apparently be something like /lib/modules/xyz.  However, 
> this is still wrong because the line below puts the files in: 
> /lib/modules/2.6.30.5-grsec-wrap/lib/modules/2.6.30.5-grsec-wrap/
>
>   make KLIB=/lib/modules/2.6.30.5-grsec-wrap/ \
>     KLIB_BUILD=/usr/src/linux  install-modules
>
>
> Adding unsetting KMODPATH_ARG seems to do the trick (but seems unintended?):
>
>   make KLIB=/lib/modules/2.6.30.5-grsec-wrap/ \
>     KLIB_BUILD=/usr/src/linux KMODPATH_ARG= install-modules
>
>
> But I still get repeated errors while building (where this is the 
> currently running kernel, but the modules dir is unavailable in this 
> chroot):
>
>   FATAL: Could not load 
> /lib/modules/2.6.29.6-grsec2.1.14-vs2.3.0.36.14/modules.dep: No such 
> file or directory
>   FATAL: Could not load 
> /lib/modules/2.6.29.6-grsec2.1.14-vs2.3.0.36.14/modules.dep: No such 
> file or directory
>
>
> This appears to be caused by these lines at the top of the makefile:
>   MADWIFI=$(shell $(MODPROBE) -l ath_pci)
>   OLD_IWL=$(shell $(MODPROBE) -l iwl4965)
>
> Clearly these need some parametrisation to include the running kernel 
> name.  Something like this might pluck out the correct
> uname:
> KERNELRELEASE = $(cat $(KLIB_BUILD)/include/config/kernel.release 2> 
> /dev/null)
>
>
> I'm not quite clear what all the KLIB/KLIB_BUILD vars are supposed to be 
> achieving, but at present they aren't working correctly when overridden 
> to build a non installed kernel.  I'm surprised more people aren't 
> hitting this?
>
> Grateful if someone with a bit more experience could suggest a proper fix?
>
> Thanks
>
> Ed W
>   

Try the patch I posted a few weeks ago.  It solved this issue for us.

-Philip


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-09-03 16:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-25 18:46 Cross compiling currently broken? Ed W
2009-08-25 19:08 ` Luis R. Rodriguez
2009-08-25 19:26   ` Ed W
2009-09-03 16:14 ` Philip Prindeville

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.