<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>2009/12/18 on Yano&#39;s digital garage</title>
    <link>https://www.bravotouring.com/~yano/archives/2009/12/18/</link>
    <description>Recent content in 2009/12/18 on Yano&#39;s digital garage</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 18 Dec 2009 20:58:17 +0900</lastBuildDate>
    <atom:link href="https://www.bravotouring.com/~yano/archives/2009/12/18/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>madwifi＠2.6.30</title>
      <link>https://www.bravotouring.com/~yano/diary/it/20091218madwifi.htm</link>
      <pubDate>Fri, 18 Dec 2009 20:58:17 +0900</pubDate>
      <guid>https://www.bravotouring.com/~yano/diary/it/20091218madwifi.htm</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.bravotouring.com/~yano/diary/it/20091217us54gxs.htm&#34;&gt;昨日のGW-US54GXS＠2.6.30&lt;/a&gt;の続報。&lt;/p&gt;&#xA;&lt;iframe align=&#34;right&#34; frameborder=&#34;0&#34; marginheight=&#34;0&#34; marginwidth=&#34;0&#34; scrolling=&#34;no&#34; src=&#34;http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=yanosdigitalg-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=B000FOTJSU&#34; style=&#34;width:120px;height:240px;&#34;/&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.ring.gr.jp/pub/linux/kernel.org/kernel/&#34;&gt;www.ring.gr.jp&lt;/a&gt;よりダウンロードした&lt;a href=&#34;http://www.ring.gr.jp/pub/linux/kernel.org/kernel/v2.6/linux-2.6.30.tar.bz2&#34;&gt;&lt;span class=&#34;Path&#34;&gt;linux-2.6.30.tar.bz2&lt;/span&gt;&lt;/a&gt;に乗り換える事で&lt;a href=&#34;http://www.planex.co.jp/product/wireless/gw-us54gxs.shtml&#34;&gt;GW-US54GXS&lt;/a&gt;は使えるようになったが、今度は&lt;span class=&#34;Corporation&#34;&gt;Atheros&lt;/span&gt;のWiFiデバイスが&lt;span class=&#34;Warning&#34;&gt;使えなくなった&lt;/span&gt;。&lt;/p&gt;&#xA;&lt;p&gt;これまで&lt;a href=&#34;http://sourceforge.net/projects/madwifi/&#34;&gt;&lt;span class=&#34;Software&#34;&gt;madwifi&lt;/span&gt;&lt;/a&gt;を別途インストールせねばならなかったところ、2.6.30には&lt;span class=&#34;Software&#34;&gt;ath5k&lt;/span&gt;が組み込まれているので「楽勝」と思っていたのだが、こいつが&lt;span class=&#34;Software&#34;&gt;wpa_supplicant&lt;/span&gt;起動時に&lt;blockquote class=&#34;Log&#34;&gt;ioctl[SIOCSIWAUTH]: Operation not supported&lt;/blockquote&gt;を吐いてしまい、&lt;span class=&#34;Software&#34;&gt;WPA&lt;/span&gt;が&lt;span class=&#34;Warning&#34;&gt;使えない&lt;/span&gt;という大誤算。&lt;/p&gt;&#xA;&lt;p&gt;やっぱり&lt;a href=&#34;http://sourceforge.net/projects/madwifi/&#34;&gt;&lt;span class=&#34;Software&#34;&gt;madwifi&lt;/span&gt;&lt;/a&gt;か…とrebuildしたら、net_deviceの構造体に変更があったらしく&lt;span class=&#34;Warning&#34;&gt;エラーの山&lt;/span&gt;が出たので、やむなく地道に手直し。本流に盛り込まれたtypedef irqreturn_tを&lt;span class=&#34;Path&#34;&gt;if_athvar.h&lt;/span&gt;から除外し、逆に無くなった&lt;span class=&#34;Strong&#34;&gt;&#34;__skb_append&#34;&lt;/span&gt;は&lt;span class=&#34;Path&#34;&gt;ieee80211_var.h&lt;/span&gt;に追加。&lt;/p&gt;&#xA;&lt;p&gt;…だけかと思ったら、164箇所の&lt;span class=&#34;Strong&#34;&gt;&#34;dev-&gt;priv&#34;&lt;/span&gt;を&lt;span class=&#34;Strong&#34;&gt;&#34;netdev_priv(dev)&#34;&lt;/span&gt;に置き換えるのが作業の中心で、差分が多くなったので全容は&lt;a href=&#34;https://www.bravotouring.com/~yano/data/madwifi-0.9.4-linux-2.6.30.patch&#34;&gt;&lt;span class=&#34;Path&#34;&gt;madwifi-0.9.4-linux-2.6.30.patch&lt;/span&gt;&lt;/a&gt;に上げて、ここでは一部抜粋に留めておく。&#xA;&lt;blockquote class=&#34;Log&#34;&gt;&#xA;*** madwifi-0.9.4.orig/ath/if_athvar.h  2008-02-12 15:05:28.000000000 +0900&lt;br/&gt;&#xA;--- madwifi-0.9.4/ath/if_athvar.h       2009-12-19 20:17:28.000000000 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 94,104 ****&lt;br/&gt;&#xA;  /*&lt;br/&gt;&#xA;   * Guess how the interrupt handler should work.&lt;br/&gt;&#xA;   */&lt;br/&gt;&#xA;! #if !defined(IRQ_NONE)&lt;br/&gt;&#xA;  typedef void irqreturn_t;&lt;br/&gt;&#xA;  #define       IRQ_NONE&lt;br/&gt;&#xA;  #define       IRQ_HANDLED&lt;br/&gt;&#xA;! #endif /* !defined(IRQ_NONE) */&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  #ifndef SET_MODULE_OWNER&lt;br/&gt;&#xA;  #if LINUX_VERSION_CODE &lt; KERNEL_VERSION(2,6,23)&lt;br/&gt;&#xA;--- 94,111 ----&lt;br/&gt;&#xA;  /*&lt;br/&gt;&#xA;   * Guess how the interrupt handler should work.&lt;br/&gt;&#xA;   */&lt;br/&gt;&#xA;! #if !defined(_LINUX_IRQRETURN_H)&lt;br/&gt;&#xA;  typedef void irqreturn_t;&lt;br/&gt;&#xA;  #define       IRQ_NONE&lt;br/&gt;&#xA;  #define       IRQ_HANDLED&lt;br/&gt;&#xA;! #endif /* !defined(_LINUX_IRQRETURN_H) */&lt;br/&gt;&#xA;! &lt;br/&gt;&#xA;! #if !defined(HAVE_NETDEV_PRIV)&lt;br/&gt;&#xA;! static inline void *netdev_priv(const struct net_device *dev)&lt;br/&gt;&#xA;! {&lt;br/&gt;&#xA;!       return (dev-&gt;priv);&lt;br/&gt;&#xA;! }&lt;br/&gt;&#xA;! #endif /* !defined(HAVE_NETDEV_PRIV) */&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  #ifndef SET_MODULE_OWNER&lt;br/&gt;&#xA;  #if LINUX_VERSION_CODE &lt; KERNEL_VERSION(2,6,23)&lt;br/&gt;&#xA;*** madwifi-0.9.4.orig/net80211/ieee80211_var.h 2007-12-25 12:15:19.000000000 +0900&lt;br/&gt;&#xA;--- madwifi-0.9.4/net80211/ieee80211_var.h      2009-12-19 22:05:12.000000000 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 695,698 ****&lt;br/&gt;&#xA;--- 695,705 ----&lt;br/&gt;&#xA;  #define       IEEE80211_NOTE_MAC(_vap, _m, _mac, _fmt, ...)&lt;br/&gt;&#xA;  #endif /* IEEE80211_DEBUG */&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;+ #if KERNEL_VERSION(2,6,25) &lt; LINUX_VERSION_CODE &lt;br/&gt;&#xA;+ static inline void __skb_append(struct sk_buff *old, struct sk_buff *newsk, struct sk_buff_head *list)&lt;br/&gt;&#xA;+ {&lt;br/&gt;&#xA;+       __skb_insert(newsk, old, old-&gt;next, list);&lt;br/&gt;&#xA;+ }&lt;br/&gt;&#xA;+ #endif /* KERNEL_VERSION(2,6,25) &lt; LINUX_VERSION_CODE */&lt;br/&gt;&#xA;+ &lt;br/&gt;&#xA;  #endif /* _NET80211_IEEE80211_VAR_H_ */&lt;br/&gt;&#xA;*** madwifi-0.9.4.orig/include/compat.h 2007-12-13 13:07:54.000000000 +0900&lt;br/&gt;&#xA;--- madwifi-0.9.4/include/compat.h      2009-12-19 14:50:45.000000000 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 134,140 ****&lt;br/&gt;&#xA;  #define IRQF_SHARED SA_SHIRQ&lt;br/&gt;&#xA;  #endif&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;! #if LINUX_VERSION_CODE &lt; KERNEL_VERSION(2,6,22)&lt;br/&gt;&#xA;  #include &lt;linux/skbuff.h&gt;&lt;br/&gt;&#xA;  static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;--- 134,150 ----&lt;br/&gt;&#xA;  #define IRQF_SHARED SA_SHIRQ&lt;br/&gt;&#xA;  #endif&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;! #if KERNEL_VERSION(2,6,22) &lt;= LINUX_VERSION_CODE&lt;br/&gt;&#xA;! #define       HAVE_SKB_END_POINTER&lt;br/&gt;&#xA;! #endif /* KERNEL_VERSION(2,6,22) &lt;= LINUX_VERSION_CODE */&lt;br/&gt;&#xA;! &lt;br/&gt;&#xA;! #if !defined(HAVE_SKB_END_POINTER) &amp;&amp; defined(RHEL_RELEASE_CODE)&lt;br/&gt;&#xA;! #if RHEL_RELEASE_VERSION(5,2) &lt; RHEL_RELEASE_CODE&lt;br/&gt;&#xA;! #define       HAVE_SKB_END_POINTER&lt;br/&gt;&#xA;! #endif /* RHEL_RELEASE_VERSION */&lt;br/&gt;&#xA;! #endif /* defined(RHEL_RELEASE_CODE) */&lt;br/&gt;&#xA;! &lt;br/&gt;&#xA;! #if !defined(HAVE_SKB_END_POINTER)&lt;br/&gt;&#xA;  #include &lt;linux/skbuff.h&gt;&lt;br/&gt;&#xA;  static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)&lt;br/&gt;&#xA;  {&lt;/blockquote&gt;&#xA;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
