Сборка madwifi-hal-0.10.5.6 для ядра 2.6.36

Драйвер для Atheros AR5001 и прочих можно скачать здесь:

snapshots.madwifi-project.org/madwifi-hal-0.10.5.6/

Я использовал:

madwifi-hal-0.10.5.6-r4126-20100324.tar.gz

Во время сборки была ошибка:

make -C /lib/modules/2.6.36-rc6-25-desktop/build SUBDIRS=/root/madwifi-hal-0.10.5.6-r4126-20100324/ath modules
make[1]: Entering directory `/usr/src/linux-2.6.36-rc6-25-obj/i386/desktop'
make -C /linux-2.6.36-rc6-25 O=/usr/src/linux-2.6.36-rc6-25-obj/i386/desktop/. modules
  CC [M]  /root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.o
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c: In function 'ath_merge_mcast':
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4268:16: error: 'struct net_device' has no member named 'mc_list'
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4268:38: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4270:10: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4270:10: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4270:10: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4270:10: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4272:10: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4272:10: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4272:10: error: dereferencing pointer to incomplete type
/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c:4272:10: error: dereferencing pointer to incomplete type
make[4]: *** [/root/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.o] Error 1
make[3]: *** [_module_/root/madwifi-hal-0.10.5.6-r4126-20100324/ath] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.36-rc6-25-obj/i386/desktop'
make: *** [all] Error 2


Решение, найденное здесь. Редактируем директория-madwifi/ath/if_ath.c (где минус соответственно удаляем строки, где + ставим):

- 	 struct dev_mc_list *mc;
+        struct netdev_hw_addr *ha;

- 		for (mc = dev->mc_list; mc; mc = mc->next) {
-			/* calculate XOR of eight 6-bit values */
- 			val = LE_READ_4(mc->dmi_addr + 0);
- 			pos = (val >> 18 ) ^ (val >> 12) ^ (val >> 6) ^ val;
- 			val = LE_READ_4(mc->dmi_addr + 3);
+		netdev_for_each_mc_addr(ha, dev) {
+			/* calculate XOR of eight 6-bit values */
+			val = LE_READ_4(ha->addr + 0);
+			pos = (val >> 18 ) ^ (val >> 12) ^ (val >> 6) ^ val;
+			val = LE_READ_4(ha->addr + 3);
  • +4
  • 08 октября 2010, 18:55
  • Sergei_T

Комментарии (4)

RSS свернуть / развернуть
+
0
вчера попробовал обновить убунту лтс до маверика — лучше бы я этого не делал
avatar

FREExLOADER

  • 09 октября 2010, 10:00
+
0
Вчера обновлял suse с 11.3 до Factory и тож убил, поставил Sabayon
avatar

Sergei_T

  • 09 октября 2010, 10:16
+
0
в понедельник убунта 10.10 вылупляется — уже без исходно поставлю её
avatar

FREExLOADER

  • 09 октября 2010, 21:46
+
0
Кстати, для ядра 35 в Sabayon это тоже справедливо, но еще была ошибка:

/usr/src/linux-2.6.35-sabayon/arch/x86/include/asm/uaccess_32.h:212: error: call to 'copy_from_user_overflow' declared with attribute warning: copy_from_user() buffer size is not provably correct
make[3]: *** [/root/madwifi-hal-0.10.5.6-r4103-20100110/net80211/ieee80211_wireless.o] Error 1
make[2]: *** [/root/madwifi-hal-0.10.5.6-r4103-20100110/net80211] Error 2
make[1]: *** [_module_/root/madwifi-hal-0.10.5.6-r4103-20100110] Error 2


В ./net80211/Makefile:

#EXTRA_CFLAGS+=$(INCS) $(COPTS) -DOPT_AH_H=\"public/$(TARGET).opt_ah.h\"
EXTRA_CFLAGS+=$(INCS) $(COPTS) -Wno-error -DOPT_AH_H=\"public/$(TARGET).opt_ah.h\"


т.е. добавляем -Wno-error
avatar

Sergei_T

  • 10 октября 2010, 01:23

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.