さむっ |
博多でも初雪を観測です
まだまだ、ちらほら程度ですが
お〜さむさむ
Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/
Last-modified: 2024-03-20 (水)
www.ring.gr.jpよりダウンロードしたlinux-2.6.30.tar.bz2に乗り換える事でGW-US54GXSは使えるようになったが、今度はAtherosのWiFiデバイスが使えなくなった。
これまでmadwifiを別途インストールせねばならなかったところ、2.6.30にはath5kが組み込まれているので「楽勝」と思っていたのだが、こいつがwpa_supplicant起動時に
ioctl[SIOCSIWAUTH]: Operation not supportedを吐いてしまい、WPAが使えないという大誤算。
やっぱりmadwifiか…とrebuildしたら、net_deviceの構造体に変更があったらしくエラーの山が出たので、やむなく地道に手直し。本流に盛り込まれたtypedef irqreturn_tをif_athvar.hから除外し、逆に無くなった"__skb_append"はieee80211_var.hに追加。
…だけかと思ったら、164箇所の"dev->priv"を"netdev_priv(dev)"に置き換えるのが作業の中心で、差分が多くなったので全容はmadwifi-0.9.4-linux-2.6.30.patchに上げて、ここでは一部抜粋に留めておく。
*** madwifi-0.9.4.orig/ath/if_athvar.h 2008-02-12 15:05:28.000000000 +0900
--- madwifi-0.9.4/ath/if_athvar.h 2009-12-19 20:17:28.000000000 +0900
***************
*** 94,104 ****
/*
* Guess how the interrupt handler should work.
*/
! #if !defined(IRQ_NONE)
typedef void irqreturn_t;
#define IRQ_NONE
#define IRQ_HANDLED
! #endif /* !defined(IRQ_NONE) */
#ifndef SET_MODULE_OWNER
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
--- 94,111 ----
/*
* Guess how the interrupt handler should work.
*/
! #if !defined(_LINUX_IRQRETURN_H)
typedef void irqreturn_t;
#define IRQ_NONE
#define IRQ_HANDLED
! #endif /* !defined(_LINUX_IRQRETURN_H) */
!
! #if !defined(HAVE_NETDEV_PRIV)
! static inline void *netdev_priv(const struct net_device *dev)
! {
! return (dev->priv);
! }
! #endif /* !defined(HAVE_NETDEV_PRIV) */
#ifndef SET_MODULE_OWNER
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
*** madwifi-0.9.4.orig/net80211/ieee80211_var.h 2007-12-25 12:15:19.000000000 +0900
--- madwifi-0.9.4/net80211/ieee80211_var.h 2009-12-19 22:05:12.000000000 +0900
***************
*** 695,698 ****
--- 695,705 ----
#define IEEE80211_NOTE_MAC(_vap, _m, _mac, _fmt, ...)
#endif /* IEEE80211_DEBUG */
+ #if KERNEL_VERSION(2,6,25) < LINUX_VERSION_CODE
+ static inline void __skb_append(struct sk_buff *old, struct sk_buff *newsk, struct sk_buff_head *list)
+ {
+ __skb_insert(newsk, old, old->next, list);
+ }
+ #endif /* KERNEL_VERSION(2,6,25) < LINUX_VERSION_CODE */
+
#endif /* _NET80211_IEEE80211_VAR_H_ */
*** madwifi-0.9.4.orig/include/compat.h 2007-12-13 13:07:54.000000000 +0900
--- madwifi-0.9.4/include/compat.h 2009-12-19 14:50:45.000000000 +0900
***************
*** 134,140 ****
#define IRQF_SHARED SA_SHIRQ
#endif
! #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
#include <linux/skbuff.h>
static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
{
--- 134,150 ----
#define IRQF_SHARED SA_SHIRQ
#endif
! #if KERNEL_VERSION(2,6,22) <= LINUX_VERSION_CODE
! #define HAVE_SKB_END_POINTER
! #endif /* KERNEL_VERSION(2,6,22) <= LINUX_VERSION_CODE */
!
! #if !defined(HAVE_SKB_END_POINTER) && defined(RHEL_RELEASE_CODE)
! #if RHEL_RELEASE_VERSION(5,2) < RHEL_RELEASE_CODE
! #define HAVE_SKB_END_POINTER
! #endif /* RHEL_RELEASE_VERSION */
! #endif /* defined(RHEL_RELEASE_CODE) */
!
! #if !defined(HAVE_SKB_END_POINTER)
#include <linux/skbuff.h>
static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
{
madwifiをインストールしたあと、ath5kがロードされないよう/etc/modprobe.d/blacklistに
# Atheros WiFi AR52xx ath5k->madwifiを追記してreboot。…したものの、ath0はアップせず。
blacklist ath5k
/var/log/messagesを診たら
localhost kernel: ath_hal: module license 'Proprietary' taints kernel.というエラーを吐いており、こちらも残念な感じ。トホホ。
localhost kernel: ath_hal: 0.9.18.0 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
localhost kernel: ath_pci: 0.9.4
localhost kernel: ath_pci 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
localhost kernel: Unable to load needed module: ath_rate_sample; no support for automatic module loading<3>Error loading module "ath_rate_sample"
localhost kernel: ath_pci 0000:03:00.0: PCI INT A disabled
【追記】2.6.28以前のkernelならmadwifi-0.9.4でOK。
【参照】
●SourceForge.net: MADWIFI http://sourceforge.net/projects/madwifi/
●Amazon.co.jp http://www.amazon.co.jp/
┗PLANEX ドラクエもモンハンもWi-Fi通信するならこれ! IEEE802.11b+g WLAN USBアダプタ GW-US54GXS 1,060円
Since Dec 5, 1999 |
今日
昨日 |