pabandžiau susikompiliuoti rt2570-k2wrlz-1.6.1 modulį 2.6.25 kerneliui, ir dėl API pasikeitimo gavau kruvą klaidų:
CC [M] /data/drivers/rt2570-k2wrlz-1.6.1/Module/rtusb_main.o /data/drivers/rt2570-k2wrlz-1.6.1/Module/rtusb_main.c: In function ‘usb_rtusb_probe’: /data/drivers/rt2570-k2wrlz-1.6.1/Module/rtusb_main.c:1964: error: implicit declaration of function ‘SET_MODULE_OWNER’ /data/drivers/rt2570-k2wrlz-1.6.1/Module/rtusb_main.c:1984: error: ‘struct net_device’ has no member named ‘weight’ /data/drivers/rt2570-k2wrlz-1.6.1/Module/rtusb_main.c:2015: error: too few arguments to function ‘first_net_device’ make[2]: *** [/data/drivers/rt2570-k2wrlz-1.6.1/Module/rtusb_main.o] Error 1 make[1]: *** [_module_/data/drivers/rt2570-k2wrlz-1.6.1/Module] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.25' rt2570.ko failed to build! make: *** [module] Error 1
panašu kad ASPj šio čipseto nebenaudoja, ir atnaujinimai jam neaktualūs.. taigi, pataisiau src, kad kompilintųsi (patchinti su `patch -l` – originale yra tab’u):
--- rtusb_main.c.orig 2007-07-05 19:41:51.000000000 +0300
+++ rtusb_main.c 2008-04-30 03:59:03.000000000 +0300
@@ -1650,7 +1650,9 @@
pAdapter->net->hard_header_len = 14;
pAdapter->net->mtu = 1500;
pAdapter->net->addr_len = 6;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
pAdapter->net->weight = 64;
+#endif
pAdapter->MediaState = NdisMediaStateDisconnected;
{// find available
@@ -1981,7 +1983,9 @@
pAdapter->net->hard_header_len = 14;
pAdapter->net->mtu = 1500;
pAdapter->net->addr_len = 6;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
pAdapter->net->weight = 64;
+#endif
pAdapter->MediaState = NdisMediaStateDisconnected;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
pAdapter->MLMEThr_pid= -1;
--- rt_config.h.orig 2007-07-19 21:53:58.000000000 +0300
+++ rt_config.h 2008-04-30 03:47:58.000000000 +0300
@@ -231,6 +231,12 @@
#endif
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+#define SET_MODULE_OWNER(some_struct) do { } while (0)
+#define dev_get_by_name(slot_name) dev_get_by_name(&init_net, slot_name)
+#define first_net_device() first_net_device(&init_net)
+#endif
+