{ 0x8086, 0x088e, "Intel Centrino Advanced-N 6235" },
static const struct iwn_ident iwn_ident_table[]
# pciconf -lbcev
yields the followingnone4@pci0:3:0:0: class=0x028000 card=0x40608086 chip=0x088e8086 rev=0x24 hdr=0x00
vendor = 'Intel Corporation'
class = network
bar [10] = type Memory, range 64, base 0xf7800000, size 8192, disabled
cap 01[c8] = powerspec 3 supports D0 D3 current D3
cap 05[d0] = MSI supports 1 message, 64 bit
cap 10[e0] = PCI-Express 1 endpoint max data 128(128) FLR link x1(x1)
ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
ecap 0003[140] = Serial 1 c48508ffff3ca99c
PCI-e errors = Correctable Error Detected
Unsupported Request Detected
Corrected = Advisory Non-Fatal Error
FreeBSD 10.0-CURRENT #4: Mon Oct 29 13:32:42 EET 2012
{ 0x8086, 0x088e, "Intel Centrino Advanced-N 6235" },
<SNIP>
KMOD= iwn6000g2bfw
IMG= iwlwifi-6000g2b-18.168.6.1
</SNIP>
# make -C /usr/src/sys/modules/iwnfw/iwn6000g2b/ clean all install
. # kldunload if_iwn
, my system reboots. I don't know why that is (yet), but... as I don't intend to unload it all too often, it's not as relevant for me as for others - so I trust someone else will take a look at it.Don't know how to make /usr/../contrib/dev/../*iwl*.fw.uu
<SNIP>
{ 0x8086, 0x0090, "Intel Centrino Advanced-N 6230" },
{ 0x8086, 0x0091, "Intel Centrino Advanced-N 6230" },
<SNIP>
# svn diff
Index: sys/dev/iwn/if_iwn.c
===================================================================
--- sys/dev/iwn/if_iwn.c (revision 243502)
+++ sys/dev/iwn/if_iwn.c (working copy)
@@ -93,6 +93,7 @@
{ 0x8086, 0x0886, "Intel Centrino Wireless-N + WiMAX 6150" },
{ 0x8086, 0x0896, "Intel Centrino Wireless-N 130" },
{ 0x8086, 0x0887, "Intel Centrino Wireless-N 130" },
+ { 0x8086, 0x088e, "Intel Centrino Advanced-N 6235" },
{ 0x8086, 0x08ae, "Intel Centrino Wireless-N 100" },
{ 0x8086, 0x08af, "Intel Centrino Wireless-N 100" },
{ 0x8086, 0x4229, "Intel Wireless WiFi Link 4965" },
Index: sys/modules/iwnfw/iwn6000g2b/Makefile
===================================================================
--- sys/modules/iwnfw/iwn6000g2b/Makefile (revision 243502)
+++ sys/modules/iwnfw/iwn6000g2b/Makefile (working copy)
@@ -1,6 +1,6 @@
# $FreeBSD$
KMOD= iwn6000g2bfw
-IMG= iwlwifi-6000g2b-17.168.5.2
+IMG= iwlwifi-6000g2b-18.168.6.1
.include <bsd.kmod.mk>
xmj said:lee170:
Needless to say I recompiled the system after adding that one-liner.
And guess what?
After downloading the latest firmware, it works.
Instructions:
1. Add the onelinerto /usr/src/sys/dev/iwn/if_iwn.c as described aboveCode:{ 0x8086, 0x088e, "Intel Centrino Advanced-N 6235" },
2. Download the latest firmware from http://intellinuxwireless.org/?n=downloads -- make sure it's the iwlwifi-6000g2b-ucode-18.168.6.1.tgz.
2a. Extract the tgz, copy iwlwifi-6000g2b-6.ucode to /usr/src/sys/contrib/dev/iwn/iwlwifi-6000g2b-18.168.6.1.fw
2b Modify /usr/src/sys/modules/iwnfw/iwn6000g2b/Makefile so that it looks like this:
3.Code:<SNIP> KMOD= iwn6000g2bfw IMG= iwlwifi-6000g2b-18.168.6.1 </SNIP>
# make -C /usr/src/sys/modules/iwnfw/iwn6000g2b/ clean all install
This should be everything needed to get some verbose messages confirming that iwn0 indeed has been successfully added.
I'll submit a patch/PR over the next few days.
There is one issue (happened three times, can reproduce): If I want to# kldunload if_iwn
, my system reboots. I don't know why that is (yet), but ... as I don't intend to unload it all too often, it's not as relevant for me as for others - so I trust someone else will take a look at it.
# uuencode
# b64encode -o iwlwifi-6000g2b-18.168.6.1.fw.uu iwlwifi-6000g2b-6.ucode iwlwifi-6000g2b-18.168.6.1.fw.uu
Index: if_iwn.c
===================================================================
--- if_iwn.c (revision 254177)
+++ if_iwn.c (working copy)
@@ -113,6 +113,8 @@
{ 0x8086, IWN_DID_5x00_2, "Intel WiFi Link 5100" },
{ 0x8086, IWN_DID_6x00_3, "Intel Centrino Ultimate-N 6300" },
{ 0x8086, IWN_DID_6x00_4, "Intel Centrino Advanced-N 6200" },
+ { 0x8086, IWN_DID_6235_1, "Intel Centrino Advanced-N 6235" },
+ { 0x8086, IWN_DID_6235_2, "Intel Centrino Advanced-N 6235" },
{ 0x8086, IWN_DID_5x50_1, "Intel WiMAX/WiFi Link 5350" },
{ 0x8086, IWN_DID_5x50_2, "Intel WiMAX/WiFi Link 5350" },
{ 0x8086, IWN_DID_5x50_3, "Intel WiMAX/WiFi Link 5150" },
@@ -858,6 +860,9 @@
if (pid != 0x0082 && pid != 0x0085) {
sc->fwname = "iwn6000g2bfw";
sc->sc_flags |= IWN_FLAG_ADV_BTCOEX;
+ /* xmj 3lines Override chains masks, ROM is known to be broken. */
+ sc->txchainmask = IWN_ANT_AB;
+ sc->rxchainmask = IWN_ANT_AB;
} else
sc->fwname = "iwn6000g2afw";
break;
@@ -5209,7 +5214,7 @@
cmd.energy_cck = htole16(calib->energy_cck);
/* Barker modulation: use default values. */
cmd.corr_barker = htole16(190);
- cmd.corr_barker_mrc = htole16(390);
+ cmd.corr_barker_mrc = htole16(sc->limits->barker_mrc);
DPRINTF(sc, IWN_DEBUG_CALIBRATE,
"%s: set sensitivity %d/%d/%d/%d/%d/%d/%d\n", __func__,
@@ -5791,7 +5796,7 @@
sc->rxon.ofdm_mask = 0;
} else {
/* Assume 802.11b/g. */
- sc->rxon.cck_mask = 0x0f;
+ sc->rxon.cck_mask = 0x03;
sc->rxon.ofdm_mask = 0x15;
}
if (IEEE80211_IS_CHAN_HT(ni->ni_chan)) {
@@ -7030,12 +7035,11 @@
/* Use internal power amplifier only. */
IWN_WRITE(sc, IWN_GP_DRIVER, IWN_GP_DRIVER_RADIO_2X2_IPA);
}
- if ((sc->hw_type == IWN_HW_REV_TYPE_6050 ||
- sc->hw_type == IWN_HW_REV_TYPE_6005) && sc->calib_ver >= 6) {
+ if (sc->hw_type == IWN_HW_REV_TYPE_6050 && sc->calib_ver >= 6) {
/* Indicate that ROM calibration version is >=6. */
IWN_SETBITS(sc, IWN_GP_DRIVER, IWN_GP_DRIVER_CALIB_VER6);
}
- if (sc->hw_type == IWN_HW_REV_TYPE_6005)
+ if (sc->hw_type == IWN_HW_REV_TYPE_6050)
IWN_SETBITS(sc, IWN_GP_DRIVER, IWN_GP_DRIVER_6050_1X2);
return 0;
}
Index: if_iwn_devid.h
===================================================================
--- if_iwn_devid.h (revision 254177)
+++ if_iwn_devid.h (working copy)
@@ -156,7 +156,16 @@
#define IWN_SDID_6035_2 0x4260
#define IWN_SDID_6035_3 0x4460
#define IWN_SDID_6035_4 0x4860
+
/*
+ * xmj hack goes here
+ */
+
+#define IWN_DID_6235_1 0x088e
+#define IWN_DID_6235_2 0x088f
+
+
+/*
* --------------------------------------------------------------------------
* Device ID for 1030 and 6030 Series
* --------------------------------------------------------------------------
Index: if_iwnreg.h
===================================================================
--- if_iwnreg.h (revision 254177)
+++ if_iwnreg.h (working copy)
@@ -1891,6 +1891,7 @@
uint32_t min_energy_cck;
uint32_t energy_cck;
uint32_t energy_ofdm;
+ uint32_t barker_mrc;
};
/*
@@ -1905,7 +1906,8 @@
200, 400,
97,
100,
- 100
+ 100,
+ 390
};
static const struct iwn_sensitivity_limits iwn5000_sensitivity_limits = {
@@ -1917,7 +1919,8 @@
170, 400,
95,
95,
- 95
+ 95,
+ 390
};
static const struct iwn_sensitivity_limits iwn5150_sensitivity_limits = {
@@ -1929,7 +1932,8 @@
170, 400,
95,
95,
- 95
+ 95,
+ 390
};
static const struct iwn_sensitivity_limits iwn1000_sensitivity_limits = {
@@ -1941,7 +1945,8 @@
170, 400,
95,
95,
- 95
+ 95,
+ 390
};
static const struct iwn_sensitivity_limits iwn6000_sensitivity_limits = {
@@ -1951,9 +1956,10 @@
128, 232,
125, 175,
160, 310,
- 97,
- 97,
- 100
+ 110,
+ 110,
+ 110,
+ 336
};
/* Get value from linux kernel 3.2.+ in Drivers/net/wireless/iwlwifi/iwl-2000.c*/
xmj said:lee170:
Needless to say I recompiled the system after adding that one-liner.
And guess what?
After downloading the latest firmware, it works.
Instructions:
1. Add the onelinerto /usr/src/sys/dev/iwn/if_iwn.c as described aboveCode:{ 0x8086, 0x088e, "Intel Centrino Advanced-N 6235" },
2. Download the latest firmware from http://intellinuxwireless.org/?n=downloads -- make sure it's the iwlwifi-6000g2b-ucode-18.168.6.1.tgz.
2a. Extract the tgz, copy iwlwifi-6000g2b-6.ucode to /usr/src/sys/contrib/dev/iwn/iwlwifi-6000g2b-18.168.6.1.fw
2b Modify /usr/src/sys/modules/iwnfw/iwn6000g2b/Makefile so that it looks like this:
3.Code:<SNIP> KMOD= iwn6000g2bfw IMG= iwlwifi-6000g2b-18.168.6.1 </SNIP>
# make -C /usr/src/sys/modules/iwnfw/iwn6000g2b/ clean all install
This should be everything needed to get some verbose messages confirming that iwn0 indeed has been successfully added.
I'll submit a patch/PR over the next few days.
There is one issue (happened three times, can reproduce): If I want to# kldunload if_iwn
, my system reboots. I don't know why that is (yet), but ... as I don't intend to unload it all too often, it's not as relevant for me as for others - so I trust someone else will take a look at it.
# kldload if_iwn
, I obtain:
Exec [I]format[/I] error
# kldload [b]iwn6000g2bfw[/b]
, I do not obtain anything and wlan0 is not created.Spike said:I followed these instructions, but it does not seem to work. If I launch# kldload if_iwn
, I obtain:while if I launchCode:Exec [I]format[/I] error
# kldload [b]iwn6000g2bfw[/b]
, I do not obtain anything and wlan0 is not created.
Any idea?
Thanks
p.s. I haveFreebsdFreeBSD 9.2-RC4, fresh installation
service netif restart
.I didn't forget that part, I read all the topic.xmj said:Check Quali's post from January 23rd, 2013, 05:13, it looks like you forgot the b64encode part mentioned there.
kldload iwn6000g2bfw
and then service net restart
, but wlan0 isn't.Explain me this part, please. I'm newbie of FreeBSDxmj said:Also, you'll have to load the (b64-encoded) firmware before being able to load if_iwn.
pciconf -lbcev
is: none2@pci0:1:0:0: class=0x028000 card=0x40608086 chip=0x088e8086 rev=0x24 hdr=0x00
vendor = 'Intel Corporation'
class = network
bar [10] = type Memory, range 64, base 0xf0600000, size 8192, enabled
cap 01[c8] = powerspec 3 supports D0 D3 current D0
cap 05[d0] = MSI supports 1 message, 64 bit
cap 10[e0] = PCI-Express 1 endpoint max data 128(128) FLR link x1(x1)
speed 2.5(2.5) ASPM L0s/L1(L0s/L1)
ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
ecap 0003[140] = Serial 1 c48508ffff266ac9
PCI-e errors = Correctable Error Detected
Unsupported Request Detected
Corrected = Advisory Non-Fatal Error
FreeBSD freebsd.localdomain 9.2-RC4 FreeBSD 9.2-RC4 #0 r255465: Wed Sep 11 05:11:03 UTC 2013 root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
b64encode -o iwlwifi-6000g2b-18.168.6.1.fw.uu iwlwifi-6000g2b-6.ucode iwlwifi-6000g2b-18.168.6.1.fw.uu
make -C /usr/src/sys/modules/iwnfw/iwn6000g2b/ clean all install
. The output is:
rm -f iwlwifi-6000g2b-17.168.5.2.fw iwn6000g2bfw.c export_syms iwn6000g2bfw.ko iwn6000g2bfw.kld iwlwifi-6000g2b-17.168.5.2.fw.fwo iwn6000g2bfw.o
Warning: Object directory not changed from original /usr/src/sys/modules/iwnfw/iwn6000g2b
uudecode -p /usr/src/sys/modules/iwnfw/iwn6000g2b/../../../contrib/dev/iwn/iwlwifi-6000g2b-17.168.5.2.fw.uu > iwlwifi-6000g2b-17.168.5.2.fw
iwlwifi-6000g2b-17.168.5.2.fw iwlwifi-6000g2b-17.168.5.2.fw
awk -f @/tools/fw_stub.awk iwlwifi-6000g2b-17.168.5.2.fw:iwn6000g2bfw -miwn6000g2bfw -ciwn6000g2bfw.c
cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c iwn6000g2bfw.c
ld -d -warn-common -r -d -o iwn6000g2bfw.ko iwlwifi-6000g2b-17.168.5.2.fw.fwo iwn6000g2bfw.o
:> export_syms
awk -f /usr/src/sys/modules/iwnfw/iwn6000g2b/../../../conf/kmod_syms.awk iwn6000g2bfw.ko export_syms | xargs -J% objcopy % iwn6000g2bfw.ko
objcopy --strip-debug iwn6000g2bfw.ko
install -o root -g wheel -m 555 iwn6000g2bfw.ko /boot/kernel
kldxref /boot/kernel
kldload iwn6000g2bfw
(no output, so I think it's all ok). kldload if_iwn
), I obtain: kldload: can't load if_iwn: Exec format error
interface iwn.1 already present in the KLD 'kernel'!
linker_load_file: Unsupported file type
service netif restart
, obviously I have:Stopping Network: lo0 re0.
lo0: flags=8048<LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether e8:03:9a:b6:ec:fe
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (none)
status: no carrier
Starting Network: lo0 re0.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether e8:03:9a:b6:ec:fe
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (none)
status: no carrier