Im trying to make my SMC2802W v2 wireless card working on my amd64 system, i had tried with prism54 module from kernel 2.6.17 from gentoo (-r4) and it doesn't work cause, after a bit surfing, this card is a softMAC card and i think prism54 only works with FullMAC cards. Using ndiswrapper with this card is not an option if you use a 64 bits system because there isn't any drivers for win64. But there is a proyect that is making drivers for this kind of wireless card (see URL) i think it's a bit experimental but at least it makes my card responding with no dmesg errors, i think we sould make an ebuild for this proyect (think of somekind of svn ebuild, but without svn cause it uses tla (http://www.gnu.org/software/gnu-arch/) (at leats tla is in portage).
I can confirm this module works fine :D, i have been triying it and after some tweaking i can make mi wireless card work, only in B mode but minus is nothing, i will try to do an ebuild myself.
I will have to re-visit this as I have a card that uses islsm - the last time I used it, it was too flaky, and last time I checked there were no updates to the source, but if there have been changes recently, then its possible this could make it. My card is a Dell usb 1450 device.
Created attachment 104140 [details] ebuild for islsm
islsm is quiet stable here, supports wep/wpa (cmmp and tkip). only data rate control i think... + i just copy-pasted what i wrote in the forums of prism54/islsm... made a ebuild for the git repos... i'm NO expert ebuilder whatsoever, did only some ebuilds for my own. this is the first ebuild i made for kernel modules so use it at your own risk that said, what i does NOT - it don't install the right firmwares - uses no madwifi either, the git sources uses softmac for the kernel by default - didnt know the licence, assumed GPL-2 what it does - check the kernel config for softmac (tkip and ccmp) - build ALL the modules (no use flags for usb/pci yet) - install them under misc/ - ebuild goes under net-wireless/islsm/ - and find it here *attached it* the ebuild might be useful though as a beginning... please be free to adapt/correct/flame me on it.
Created attachment 104182 [details] updated ebuild - seems i guessed the license right - added hotplug dependency - added firmware support - installs to /lib/firmware, so dir is hardcoded (does there exists an env var for it ?) - doesn't create symlink yet - now the 4 firmwares versions are just use flags, i don't know if that's the way to go. Maybe have the symlinks as use flags (one for first generation and one for second generation devices)
Created attachment 104504 [details] ebuild added: - creates symlinks - checks kernel version >= 2.6.17 (needed for softmac)
Trying to emerge this driver with kernel 2.6.19 errors out, complaining about a missing "linux/config.h". A search through bugzilla yields this: http://bugs.gentoo.org/show_bug.cgi?id=157618 ...which is probably related.
Created attachment 104550 [details] fix the includes to work with 2.6.19 and earlier Patch to fix compilation, I meant to submit earlier, but forgot to.
One other minor issue - isn't 2.5.8.0 supposed to be isl3887usb_bare
thx for the fix, you're right about the symlink should be isl3887usb_bare instead of isl3890usb_bare will fix the ebuild as soon as possible
Created attachment 104625 [details] ebuild - added patch - fixed symlink name - changed git protocol from http:// to git:// , don't actually know if it gives any difference
Comment on attachment 104625 [details] ebuild # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-wireless/islsm/islsm-9999.ebuild,v 0.1 2006/12/16 17:07:12 ilm $ EGIT_REPO_URI=git://islsm.org/~jb/islsm/islsm.git EGIT_BRANCH=softmac inherit git eutils linux-info linux-mod DESCRIPTION="Islsm: driver for soft mac usb and pci adapters (based on prism)" HOMEPAGE="http://prism54.org/" PORG="http://prism54.org/firmware" SRC_URI="islsm_2.4.6.0? ( ${PORG}/2.4.6.0.arm ) islsm_2.5.6.0? ( ${PORG}/2.5.6.0.arm ) islsm_2.5.8.0? ( ${PORG}/2.5.8.0.arm ) islsm_2.7.0.0? ( ${PORG}/2.7.0.0.arm )" LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86 ~ppc ~amd64" FIRMWARES="islsm_2.4.6.0 islsm_2.5.6.0 islsm_2.5.8.0 islsm_2.7.0.0" FIRMWARE_DIR=/lib/firmware IUSE="${FIRMWARES}" RDEPEND="sys-apps/hotplug" DEPEND="${RDEPEND}" MODULE_NAMES="islsm() islsm_device() islsm_pci() islsm_usb()" pkg_setup() { FIRM_USE="" for firm in ${FIRMWARES}; do if use $firm; then FIRM_USE="${FIRM_USE} ${firm:6}.arm" fi done if [ -z "$FIRM_USE" ]; then eerror No firmware specified die You must set at least one use flag... fi einfo "Using firmwares: ${FIRM_USE}" #check kernel and sets up KV_OBJ linux-mod_pkg_setup if kernel_is lt 2 6 17 then eerror "You need at least kernel 2.6.17 (it includes softmac)" die fi ebegin "Checking for IEEE802.11 enabled" linux_chkconfig_present IEEE80211 eend $? if [[ $? -ne 0 ]] ; then eerror "You don't have Generic IEEE 802.11 Networking Stack enabled" die "Compile IEEE 802.11 support in the kernel or as a module." fi ebegin "Checking for Software MAC Addon" linux_chkconfig_present IEEE80211_SOFTMAC eend $? if [[ $? -ne 0 ]] ; then eerror "You don't have the Software MAC Addon enabled" die "Compile the Software MAC Addon in the kernel or as a module." fi ebegin "Checking for IEEE 802.11 CCMP support enabled" linux_chkconfig_present IEEE80211_SOFTMAC eend $? if [[ $? -ne 0 ]] ; then ewarn "You don't have IEEE 802.11 CCMP support enabled" ewarn "WPA with CCMP may not work..." fi ebegin "Checking for IEEE 802.11 TKIP encryption enabled" linux_chkconfig_present IEEE80211_SOFTMAC eend $? if [[ $? -ne 0 ]] ; then ewarn "You don't have IEEE 802.11 TKIP encryption enabled" ewarn "WPA with TKIP may not work..." fi } src_unpack() { git_src_unpack cd ${S} epatch "${FILESDIR}"/${P}-fix_includes.patch } src_compile() { cd $S emake ARCH=$(tc-arch-kernel)|| die "Make failed - unknown error" } src_install() { linux-mod_src_install insinto ${FIRMWARE_DIR} for firm in ${FIRM_USE}; do # 2.4.3.7/2.5.6.0 firmware as "isl3890usb" # 2.5.8.0 firmware as "isl3887usb_bare einfo Installing ${firm} doins ${DISTDIR}/${firm} if [ "${firm}" == "2.4.3.7.arm" ]; then dosym 2.4.3.7.arm ${FIRMWARE_DIR}/isl3890usb fi if [ "${firm}" == "2.5.6.0.arm" ]; then dosym 2.5.6.0.arm ${FIRMWARE_DIR}/isl3890usb fi if [ "${firm}" == "2.5.8.0.arm" ]; then dosym 2.5.8.0.arm ${FIRMWARE_DIR}/isl3887usb_bare fi done }
Created attachment 104626 [details] ebuild sorry for the mess, don't know how to work with bugzilla :-) i saw a typo again with the symlink, 3897 -> 3887, should be okay now
> Using ndiswrapper with this card is not an option > if you use a 64 bits system because there isn't > any drivers for win64. FYI, you don't need 64bit drivers for ndiswrapper even on amd64.
Created attachment 104702 [details] ebuild - broke the ebuild by changing protocol :-)
Are you sure the symlinks are right? >>> /lib/firmware/2.7.0.0.arm I recall that this has to be renamed for the driver to work. In dmesg, I get: islpci: using default ISL3886 firmware when I put in my card.
The driver on islsm.org is out of date and exclusively compiles with 2.6.18 (with Steev Klimaszewski's patch also 2.6.19) kernels. An updated version with compile fixes for 2.6.20 has been merged into the wireless-2.6 tree git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
is this the prism54 driver using the new dscape stack from wireless-dev ? also where can i submit patch to support more devices, only 1 atm though (islusb_init.c) ?
(In reply to comment #18) > is this the prism54 driver using the new dscape stack from wireless-dev ? This driver is still ieee80211-softmac based. From Jean-Baptiste Note's comments it is being ported it to the mac80211 (formerly d80211) branch. > also where can i submit patch to support more devices, only 1 atm though > (islusb_init.c) ? Patches to support more devices can be sent to linux-wireless@vger.kernel.org I suggest that you send patches against both trees: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
Created attachment 115238 [details, diff] Change channels properly Hi guys, there is a bug in islsm (see patch). It enables to change channels. Maybe you want to regenerate the patch with the proper options (what options should I use?!?!, change the name to something more appropriate and change the ebuild. I will do it later, but maybe tonight. If it hasn't been posted i will do. Cheers! (Please let me know if the patch makes sense)
Created attachment 117485 [details, diff] islsm-2.6.21.patch Patch against islsm.org git to fix compilation with kernel 2.6.21 (includes patch from attachment 104550 [details]) WPA (TKIP) works but wpa_supplicant occasionally fails to associate. I guess we should all look forward to mac80211.
Created attachment 117499 [details, diff] specifies extra devices which are compatible this is better done upstream, but my patch submitted some months ago was never incorporated. adds extra devices which were tested and are compatible with the driver, currently only one device is added (my device...). feel free to modify it to add your own drivers islsm-9999-extra-devices.patch
Created attachment 117501 [details] updated ebuild udated ebuild, incorporated patch 104550 as islsm-9999-kernel-fixes.patch and 117499 as islsm-9999-extra-devices.patch compiled and tested against 2.6.19-r2
(In reply to comment #23) > Created an attachment (id=117501) [edit] > updated ebuild > > udated ebuild, incorporated patch 104550 as islsm-9999-kernel-fixes.patch > and 117499 as islsm-9999-extra-devices.patch > > compiled and tested against 2.6.19-r2 > islsm-9999-kernel-fixes.patch should be the patch at http://bugs.gentoo.org/attachment.cgi?id=117485 , instead of 104550, right ? Then it compiled fine on 2.6.20-r8
(In reply to comment #24) > (In reply to comment #23) > > Created an attachment (id=117501) [edit] > > updated ebuild > > > > udated ebuild, incorporated patch 104550 as islsm-9999-kernel-fixes.patch > > and 117499 as islsm-9999-extra-devices.patch > > > > compiled and tested against 2.6.19-r2 > > > > islsm-9999-kernel-fixes.patch should be the patch at > http://bugs.gentoo.org/attachment.cgi?id=117485 , instead of 104550, right ? > > Then it compiled fine on 2.6.20-r8 > ye sorry i was too quick and somehow mixed it up, http://bugs.gentoo.org/attachment.cgi?id=117499 is islsm-9999-extra-devices.patch http://bugs.gentoo.org/attachment.cgi?id=117485 is islsm-9999-kernel-fixes.patch hope this is correct
> http://bugs.gentoo.org/attachment.cgi?id=117499 is > islsm-9999-extra-devices.patch > http://bugs.gentoo.org/attachment.cgi?id=117485 is > islsm-9999-kernel-fixes.patch > > hope this is correct For some reason I can't get it to compile anymore. At first it did compile, but I couldn't load the module, it complained about "wrong module format". So I fiddled around a bit, and now I can't even get it to compile anymore. Compile error: >>> Compiling source in /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999 ... make -C /lib/modules/2.6.20-gentoo-r8/build SUBDIRS=/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999 MODVERSION=/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/symbols MKPWD=/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999 modules make[1]: Map '/usr/src/linux-2.6.20-gentoo-r8' wordt binnengegaan CC [M] /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_netdev.o CC [M] /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_dev.o CC [M] /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_ioctl.o CC [M] /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_output.o CC [M] /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.o /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.c: In functie 'islsm_request_firmware': /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.c:227: fout: 'struct net_device' has no member named 'dev' make[2]: *** [/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.o] Fout 1 make[2]: *** Wachten op onvoltooide taken... make[1]: *** [_module_/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999] Fout 2 make[1]: Map '/usr/src/linux-2.6.20-gentoo-r8' wordt verlaten make: *** [modules] Fout 2 !!! ERROR: net-wireless/islsm-9999 failed. Call stack: ebuild.sh, line 1615: Called dyn_compile ebuild.sh, line 972: Called qa_call 'src_compile' ebuild.sh, line 44: Called src_compile islsm-9999.ebuild, line 104: Called die !!! Make failed - unknown error !!! If you need support, post the topmost build error, and the call stack if relevant. !!! A complete build log is located at '/home/portage-temp/portage/net-wireless/islsm-9999/temp/build.log'.
> Compile error: > >>> Compiling source in /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999 ... > make -C /lib/modules/2.6.20-gentoo-r8/build > SUBDIRS=/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999 > MODVERSION=/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/symbols > MKPWD=/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999 > modules > make[1]: Map '/usr/src/linux-2.6.20-gentoo-r8' wordt binnengegaan > CC [M] > /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_netdev.o > CC [M] > /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_dev.o > CC [M] > /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_ioctl.o > CC [M] > /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_output.o > CC [M] > /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.o > /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.c: > In functie 'islsm_request_firmware': > /home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.c:227: > fout: 'struct net_device' has no member named 'dev' > make[2]: *** > [/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999/islsm_bra.o] > Fout 1 > make[2]: *** Wachten op onvoltooide taken... > make[1]: *** > [_module_/home/portage-temp/portage/net-wireless/islsm-9999/work/islsm-9999] > Fout 2 > make[1]: Map '/usr/src/linux-2.6.20-gentoo-r8' wordt verlaten > make: *** [modules] Fout 2 > > !!! ERROR: net-wireless/islsm-9999 failed. > Call stack: > ebuild.sh, line 1615: Called dyn_compile > ebuild.sh, line 972: Called qa_call 'src_compile' > ebuild.sh, line 44: Called src_compile > islsm-9999.ebuild, line 104: Called die > > !!! Make failed - unknown error > !!! If you need support, post the topmost build error, and the call stack if > relevant. > !!! A complete build log is located at > '/home/portage-temp/portage/net-wireless/islsm-9999/temp/build.log'. > If got the same error. But in contrast i have never managed to compile it. May be it is a bug introduced in a new version in git repos then?
>fout: 'struct net_device' has no member named 'dev' this has something to do with interfaces changes between 2.6.19 and 2.6.20 i believe, although the patches posted here should address the issue, never tested it i'm still on 2.6.19 perhaps the patches don't work 100 % or upstream may has developed the driver further while still using an older kernel and introducing new net_device->dev lines.
Ok, i think i got it. In patch http://bugs.gentoo.org/attachment.cgi?id=117485 there is modification of islsm_bra.c. The relevant lines are: diff -u islsm.orig/islsm_bra.c islsm/islsm_bra.c --- islsm.orig/islsm_bra.c 2007-04-28 14:39:54.000000000 +0200 +++ islsm/islsm_bra.c 2007-04-28 14:42:10.000000000 +0200 @@ -224,7 +224,7 @@ FN_ENTER; - err = request_firmware(fw, fw_name, netdev->class_dev.dev); + err = request_firmware(fw, fw_name, &netdev->dev); if (err) { printk(KERN_ERR "%s: Request firmware for '%s' failed: %i\n", DRV_NAME, fw_name, err); Nur in islsm.orig: .islsm_bra.o.d. diff -u islsm.orig/islsm_dev.c islsm/islsm_dev.c I don't know on what this change has an effect. So i simply removed these lines form patch and tried to compile and install it again. This time the compilation was successful, but the next time i booted, i got a kernel panic with a trace to exactly this call "request_firmware".
Same error as #26 while trying compile against 2.6.20-gentoo-r7 kernel. Does somebody know when it's supposed to be available the p54 driver in the kernel tree? Therefore, will this ebuild be needed?
I tested the patch from attachment 117485 [details, diff] with kernel 2.6.21 only. The netdev changes were taken from http://git.kernel.org/?p=linux/kernel/git/linville/wireless-2.6.git;a=commitdiff;h=ae6445371278400d961c67c1699e2e7c6d1d340d
With kernel 2.6.21 islsm compiles. However, it gives several warnings about possible unresolved symbols. Then, when loading islsm modules the kernel says the format is incompatible.
(In reply to comment #32) > With kernel 2.6.21 islsm compiles. However, it gives several warnings about > possible unresolved symbols. > > Then, when loading islsm modules the kernel says the format is incompatible. My fault: my kernel wasn't configured well enough in order to load the module. So patch works fine for me.
(In reply to comment #29) > Ok, i think i got it. > > In patch http://bugs.gentoo.org/attachment.cgi?id=117485 there is modification > of islsm_bra.c. The relevant lines are: > > > > diff -u islsm.orig/islsm_bra.c islsm/islsm_bra.c > --- islsm.orig/islsm_bra.c 2007-04-28 14:39:54.000000000 +0200 > +++ islsm/islsm_bra.c 2007-04-28 14:42:10.000000000 +0200 > @@ -224,7 +224,7 @@ > > FN_ENTER; > > - err = request_firmware(fw, fw_name, netdev->class_dev.dev); > + err = request_firmware(fw, fw_name, &netdev->dev); > if (err) { > printk(KERN_ERR "%s: Request firmware for '%s' failed: %i\n", > DRV_NAME, fw_name, err); > Nur in islsm.orig: .islsm_bra.o.d. > diff -u islsm.orig/islsm_dev.c islsm/islsm_dev.c > > > > I don't know on what this change has an effect. So i simply removed these lines > form patch and tried to compile and install it again. This time the compilation > was successful, but the next time i booted, i got a kernel panic with a trace > to exactly this call "request_firmware". > I also got the same error when compiling against kernel-2.6.20 and kernel-2.6.22. After making changes to the patch as you have suggested, I also got kernel panic. Does anyone have any success with using islsm at all? kernel-2.6.21 is not longer available.
I also got the following warning message during compilation: /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islpci_hotplug.c: In function ‘prism54_probe’: /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islpci_hotplug.c:212: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type CC [M] /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/isl_38xx.o /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islpci_dev.c: In function ‘islpci_alloc’: /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islpci_dev.c:1254: warning: assignment from incompatible pointer type CC [M] /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_init.o CC [M] /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_transport.o CC [M] /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_3887.o /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_transport.c: In function ‘p54u_alloc_urb’: /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_transport.c:344: warning: passing argument 6 of ‘usb_fill_bulk_urb’ from incompatible pointer type /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_transport.c: In function ‘p54u_alloc_descr_urb’: /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_transport.c:379: warning: passing argument 6 of ‘usb_fill_bulk_urb’ from incompatible pointer type /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_transport.c:382: warning: passing argument 6 of ‘usb_fill_bulk_urb’ from incompatible pointer type CC [M] /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_net2280.o /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_3887.c: In function ‘uartusb_prot_init’: /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_3887.c:102: warning: passing argument 6 of ‘usb_fill_bulk_urb’ from incompatible pointer type /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_3887.c:106: warning: passing argument 6 of ‘usb_fill_bulk_urb’ from incompatible pointer type /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_net2280.c: In function ‘p54u_alloc_int_urb’: /var/portage/portage/net-wireless/islsm-9999/work/islsm-9999/islusb_net2280.c:241: warning: passing argument 6 of ‘usb_fill_int_urb’ from incompatible pointer type
The prism54 usb mac80211 driver has been integrated into mainline kernel. Current git-sources and the upcoming kernel release 2.6.24 already contain it (the driver is named "p54u") I don't think it is worth spending much time on the old islsm softmac driver any more.
(In reply to comment #36) > The prism54 usb mac80211 driver has been integrated into mainline kernel. > Current git-sources and the upcoming kernel release 2.6.24 already contain it > (the driver is named "p54u") > > I don't think it is worth spending much time on the old islsm softmac driver > any more. > My wireless card is a softmac PCI card, not USB though. Will it be supported?
fixed for recent kernels - please reopen if this ebuild still has any use... thanks