- 相変わらずの TXDONE_UNKNOWN
- 2.6.30 がリリースされたけど
/drivers/net/wireless/rt2x00/rt2x00usb の TXDONE_UNKNOWN については以前のまま。チェックしている辺を grep すると何となく....
上の方はリンク品質、結果送信レートに。下の方が肝心の hostapd で送信可否の判断材料IEEE80211_RADIOTAP_F_TX_FAILになるらしい$ fgrep -C 4 'test_bit(TXDONE' *.c
rt2x00dev.c- /*
rt2x00dev.c- * Update TX statistics.
rt2x00dev.c- */
rt2x00dev.c- rt2x00dev->link.qual.tx_success +=
rt2x00dev.c: test_bit(TXDONE_SUCCESS, &txdesc->flags);
rt2x00dev.c- rt2x00dev->link.qual.tx_failed +=
rt2x00dev.c: test_bit(TXDONE_FAILURE, &txdesc->flags);
rt2x00dev.c-
rt2x00dev.c- rate_idx = skbdesc->tx_rate_idx;
rt2x00dev.c- rate_flags = skbdesc->tx_rate_flags;
rt2x00dev.c-
--
rt2x00dev.c- tx_info->status.rates[0].count = txdesc->retry + 1;
rt2x00dev.c- tx_info->status.rates[1].idx = -1; /* terminate */
rt2x00dev.c-
rt2x00dev.c- if (!(tx_info->flags & IEEE80211_TX_CTL_NO_ACK)) {
rt2x00dev.c: if (test_bit(TXDONE_SUCCESS, &txdesc->flags))
rt2x00dev.c- tx_info->flags |= IEEE80211_TX_STAT_ACK;
rt2x00dev.c: else if (test_bit(TXDONE_FAILURE, &txdesc->flags))
rt2x00dev.c- rt2x00dev->low_level_stats.dot11ACKFailureCount++;
rt2x00dev.c- }
rt2x00dev.c-
rt2x00dev.c- if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {
rt2x00dev.c: if (test_bit(TXDONE_SUCCESS, &txdesc->flags))
rt2x00dev.c- rt2x00dev->low_level_stats.dot11RTSSuccessCount++;
rt2x00dev.c: else if (test_bit(TXDONE_FAILURE, &txdesc->flags))
rt2x00dev.c- rt2x00dev->low_level_stats.dot11RTSFailureCount++;
rt2x00dev.c- }
rt2x00dev.c-
rt2x00dev.c- /*
で、仕方が無いと言うか無理矢理稼働させるがための二行パッチ$ cd net/mac80211/
$ fgrep -C 2 IEEE80211_RADIOTAP_F_TX_FAIL *.c
main.c- if (!(info->flags & IEEE80211_TX_STAT_ACK) &&
main.c- !is_multicast_ether_addr(hdr->addr1))
main.c: rthdr->tx_flags |= cpu_to_le16(IEEE80211_RADIOTAP_F_TX_FAIL);
main.c-
main.c- /*$ cd drivers/net/wireless/rt2x00/
$ diff -ubB rt2x00usb.c.orig rt2x00usb.c
--- rt2x00usb.c.orig 2009-06-15 20:14:27.000000000 +0900
+++ rt2x00usb.c 2009-06-15 20:14:53.000000000 +0900
@@ -200,7 +200,7 @@
*/
txdesc.flags = 0;
if (!urb->status)
- __set_bit(TXDONE_UNKNOWN, &txdesc.flags);
+ __set_bit(TXDONE_SUCCESS, &txdesc.flags);
else
__set_bit(TXDONE_FAILURE, &txdesc.flags);
txdesc.retry = 0; - コンパイル
- hostapd を git やら CVS やらで持って来てl.... 後出しじゃんけんだけど
openssl と libz ほか libnl が必要。debian/lenny では libnl1 libnl-dev でバージョンが 1。どうも新しい方が良さそうなので git で持って来た方が吉。以前の $HOSTAPD/defconfig には CONFIG_LIBNL20 なんてあったけど、今は無し。まとめて$ ldd /usr/local/sbin/hostapd
linux-vdso.so.1 => (0x00007fff06b95000)
libnl.so.1 => /usr/lib/libnl.so.1 (0x00007f8916e67000)
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f8916c16000)
libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00007f891687b000)
libc.so.6 => /lib/libc.so.6 (0x00007f8916528000)
libm.so.6 => /lib/libm.so.6 (0x00007f89162a5000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f89160a1000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f8915e8a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f89170b6000) - その他
- やべ、面倒になってきた....国によって異なる利用可能な無線スペクトラム? に従うために、この辺りも、多分最近のものは必須。これらコンパイルに必要な追加パッケージは crda の README に書かれている通り python-m2crypto。
同じく crda の方で make install すると udev の rule が/usr/lib/udev/rules.d/85-regulatory.rules にコピーされてしまうので/etc/udev/rules.d/ に移してあげるコト。 - おまけ
- It's All Text なるもの試してみました。ラクチンだけど考えまとめてないと、こんな風にとりとめなくウダウダは相変わらず。
- Wikipedia の 802.11 カテゴリがまとまっている。
- Adobe labs からの 64bit 版 Adobe Flash Player 10 でも Googlel/検察ツール/ワンダーホイールで落ちる....
# チラシの裏
2009年6月15日月曜日
rt73usb rt2500usb で hostapd
2009年5月6日水曜日
ralink USB で hostapd
どこで何を調べていたか定かではないけど hostapd での nl80211 ドライバはつい最近、2.6.30 からだよ。といった ML のアーカイブを見かけた... はさて置き。
ralink 謹製のドライバが、この辺り にあるので ``RT2501USB(RT73:RT2571W/RT2573/RT2671)'' を持ってきて眺めてみた。が、送信については ACK のチェックは無いようで、USB - urb? のステータスがエラーで無ければ送信 OK というスタンス。一方 linux では SUCCESS は送信フレームの ACK が返ってきたときだけ。と厳しいためrt2x00usb.c にてエラーだったら FAILURE。それ以外はエラーじゃないけど ACK が確認できないので UNKNOWN。この UNKNOWN が enum mac80211_tx_control_flags::include/net/mac80211.h の IEEE80211_TX_STAT_ACK か否か。で否との結果送信できなかったぁ。で動かない。
ralink で OK。に従うならば TXDONE_UNKNOWN を TXDONE_SUCCESS にするのもアリかと。
ralink 謹製のドライバが、この辺り にあるので ``RT2501USB(RT73:RT2571W/RT2573/RT2671)'' を持ってきて眺めてみた。が、送信については ACK のチェックは無いようで、USB - urb? のステータスがエラーで無ければ送信 OK というスタンス。一方 linux では SUCCESS は送信フレームの ACK が返ってきたときだけ。と厳しいためrt2x00usb.c にてエラーだったら FAILURE。それ以外はエラーじゃないけど ACK が確認できないので UNKNOWN。この UNKNOWN が enum mac80211_tx_control_flags::include/net/mac80211.h の IEEE80211_TX_STAT_ACK か否か。で否との結果送信できなかったぁ。で動かない。
ralink で OK。に従うならば TXDONE_UNKNOWN を TXDONE_SUCCESS にするのもアリかと。
tcpdump で wlan - 復習
にっ、二年前ですか。こんなことちょっと調べた後も進歩なし。もう一度 MAC フレームの先頭、フレームコントロールフィールドについて。tcpdump でフィルタする時には wlan[0] あるいは wlan[1] で指定。
- wlan[0]
- sub type: 4bit
- type: 2bit
- version: 2bit
- wlan[1]: すべて 1bit
- ToDS
- FromDS
- MoreFragment
- Retry
- PowerManagement
- MoreData
- WEP
- Order
- 0000 association request
- 0001 association response
- 0010 reassociation request
- 0011 reassociation response
- 0100 probe request
- 0101 probe response
- 1000 beacon
- 1010 deassociation
- 1011 authentication
- 1100 deauthentication
radiotap でも wlan[] 指定は OK。も一つ良くリンク忘れるので備忘録# iw dev wlan0 interface add mon0 type monitor flags none
# ip link set mon0 up
# ip link ls
5: mon0:mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ieee802.11/radiotap xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
# tcpdump -ntvvi mon0 '(wlan[0] & 0xff) == 0x80'
tcpdump: WARNING: mon0: no IPv4 address assigned
tcpdump: listening on mon0, link-type IEEE802_11_RADIO (802.11 plus BSD radio information header), capture size 96 bytes
157275684377us tsft 1.0 Mb/s 2472 MHz (0x00a0) -33dB signal antenna 1 [0x0000000e] 0us Beacon (foobar) [1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0 Mbit] ESS, PRIVACY
157275945495us tsft 1.0 Mb/s 2472 MHz (0x00a0) -34dB signal antenna 1 [0x0000000e] 0us Beacon (foobar) [1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0 Mbit] ESS, PRIVACY
....
IEEE 802.11-2007 IEEE Standard for Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications
2009年4月20日月曜日
USB デバイスで hostapd
# 半年以上放置....
2.6.29 から AP モードサポートっ! で試してみた。こちら参照すると ralink の USB デバイスが OK とのことで
で挑戦するも今一つと言うか、中途ハンパな状態だけど、チラシのウラ。強い電波で ARP ごにょごにょだったら Linux。なんて言わせないぜっ。か定かではないけど、こちら も
rt2x00usb_interrupt_txdone()::drivers/net/wireless/rt2x00/rt2x00usb.c のコメントそのままに、失敗した訳では無いが、成功 (ACK を受信した) 訳でも無いと。曰く hostapd の不備との話を踏まえて、hostapd 側で IEEE80211_RADIOTAP_F_TX_FAIL のチェックを無効にしたら、動くコトは動いたが、むーん。レートが 1M から上がらん。
で、結局は先の未解決のすったもんだ、そのままに TXDONE_UNKNOWN を TXDONE_SUCCESS にして自宅内運用中。iPhone でひっかかるような感じになることあるけど、まぁ。ralink の USB デバイスは全て (と言っても別系は 2.6.29 では rt2500usb のみ) ブチ当ってしまう模様。
2.6.30 以降の ar9170 か rt3070 に期待するしか無いのかなぁ....
2.6.29 から AP モードサポートっ! で試してみた。こちら参照すると ralink の USB デバイスが OK とのことで
$ lsusb
Bus 001 Device 002: ID 0411:00d8 MelCo., Inc. WLI-U2-SG54HP
で挑戦するも今一つと言うか、中途ハンパな状態だけど、チラシのウラ。強い電波で ARP ごにょごにょだったら Linux。なんて言わせないぜっ。か定かではないけど、こちら も
- git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git
- git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git
- git://w1.fi/srv/git/hostap.git
で動かん...こちら が未解決の模様。interface=wlan0
driver=nl80211
logger_syslog=-1
logger_syslog_level=4
logger_stdout=-1
logger_stdout_level=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=foobar
country_code=JP
ieee80211d=1
hw_mode=g
channel=2
beacon_int=256
dtim_period=2
max_num_sta=255
macaddr_acl=0
accept_mac_file=/etc/hostapd/mac.accept
deny_mac_file=/etc/hostapd/mac.deny
auth_algs=1
ieee8021x=1
eapol_version=2
own_ip_addr=192.168.1.1
wpa=3
wpa_passphrase=tetest1234
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP
wpa_group_rekey=600
wpa_strict_rekey=1
wpa_gmk_rekey=86400
wpa_ptk_rekey=600
# とてつもなく適当
rt2x00usb_interrupt_txdone()::drivers/net/wireless/rt2x00/rt2x00usb.c のコメントそのままに、失敗した訳では無いが、成功 (ACK を受信した) 訳でも無いと。曰く hostapd の不備との話を踏まえて、hostapd 側で IEEE80211_RADIOTAP_F_TX_FAIL のチェックを無効にしたら、動くコトは動いたが、むーん。レートが 1M から上がらん。
で、結局は先の未解決のすったもんだ、そのままに TXDONE_UNKNOWN を TXDONE_SUCCESS にして自宅内運用中。iPhone でひっかかるような感じになることあるけど、まぁ。ralink の USB デバイスは全て (と言っても別系は 2.6.29 では rt2500usb のみ) ブチ当ってしまう模様。
2.6.30 以降の ar9170 か rt3070 に期待するしか無いのかなぁ....
2008年8月25日月曜日
hostapd の snapshot
こちらを参照しつつ...git かぁ。libnl1.1 以上が必要っぽく debian であれば lenny で apt-get install libnl-dev 。更に /usr/include/linux は linux.dpkg-dist か何かに変更して 2.6.27-rc の /usr/src/linux/include/linux を /usr/include に symlink。
defconfig を .config にコピーして CONFIG_DRIVER_NL80211 を有効にして make。WPA だけの最小? config は
defconfig を .config にコピーして CONFIG_DRIVER_NL80211 を有効にして make。WPA だけの最小? config は
で良い? ./hostapd -dd tetest.conf とした後、別から probe 投げると tetest と返すところまで。interface=wlan0
driver=nl80211
hw_mode=g
channel=6
ssid=tetest
wpa=1
wpa_passphrase=hogehogemogemoge_foobarbar
mac80211 の Master mode
2.6.27-rc にて mac80211_hwsim なる WLAN デバイスのシミュレータが入ったとのお話。Documentation/networking/mac80211_hwsim/README を眺めると
とは言え mac80211 なデバイス全てで hostapd が動くわけではなさげ。と言うか IEEE80211_IF_TYPE_AP が有効なわけではなさげ。手元にあるデバイス...zd1211rw, ath5k, rtl8187, rt2x00 内 2.6.27-rc にて動作するのは rt2x00 のみ。また ath5k は近々 という感じ。で rt2x00 の何を使っているかと言えば
ところで WPA や RSN ではない Master mode とするために、こんな抜粋してみたけど...最初のドキュメント通り、Master mode になるも ip link set 〜 up あるいは ifconfig 〜 up なんてしてもリンクアップしているように見えますが、動きませんっ。ええ、理解してませんっ。
ここにある###-allow-ap-vlan-modes.patch がソレなのだが、コメントが...Please note that the current Linux kernel does not enable AP mode, so a
simple patch is needed to enable AP mode selection:
http://johannes.sipsolutions.net/patches/kernel/all/LATEST/006-allow-ap-vlan-modes.patch
あー...オレオレ。該当。文句言う言う。なんて話はさておき。Don't allow doing it with wext because then
people will just attempt to do it manually (without hostapd) and
complain that it doesn't work.
とは言え mac80211 なデバイス全てで hostapd が動くわけではなさげ。と言うか IEEE80211_IF_TYPE_AP が有効なわけではなさげ。手元にあるデバイス...zd1211rw, ath5k, rtl8187, rt2x00 内 2.6.27-rc にて動作するのは rt2x00 のみ。また ath5k は近々 という感じ。で rt2x00 の何を使っているかと言えば
バッファローの製品。他は?$ lsusb
...
Bus 003 Device 003: ID 0411:0067 MelCo., Inc. WLI-U2-KG54-AI WLAN
...
fgrep "USB_DEVICE(" /usr/src/testing/drivers/net/wireless/rt2x00/*.cなんてたたくと山ほど。USB_DEVICE の中、例えば rt73usb.c に、こんな行があったら、Google 様に "0411:00f4"と尋ねると、ヒントが見付かることもアリ。/* Buffalo */
{ USB_DEVICE(0x0411, 0x00f4), USB_DEVICE_DATA(&rt73usb_ops) },
ところで WPA や RSN ではない Master mode とするために、こんな抜粋してみたけど...最初のドキュメント通り、Master mode になるも ip link set 〜 up あるいは ifconfig 〜 up なんてしてもリンクアップしているように見えますが、動きませんっ。ええ、理解してませんっ。
#include <stdio.h>
#include <linux/nl80211.h>
#include <netlink/genl/genl.h>
#include <netlink/genl/ctrl.h>
#include <netlink/genl/mngt.h>
#include <netlink/route/link.h>
int name2ifindex(char *ifname)
{
struct nl_handle *nlh;
struct nl_cache *link_cache;
int ifindex = -1;
if (!ifname)
return -1;
nlh = nl_handle_alloc();
if (!nlh)
return -1;
if (nl_connect(nlh, NETLINK_ROUTE) < 0)
goto errout;
link_cache = rtnl_link_alloc_cache(nlh);
if (!link_cache)
goto errout;
ifindex = rtnl_link_name2i(link_cache, ifname);
nl_cache_free(link_cache);
errout:
nl_close(nlh);
nl_handle_destroy(nlh);
return ifindex;
}
int main(int argc, char *argv[])
{
struct nl_handle *h;
struct nl_msg *msg;
struct nl_cache *cache;
struct genl_family *family;
int ifindex = name2ifindex(argv[1]);
if (ifindex < 0) {
fprintf(stderr, "could not get ifindex: %s\n", argv[1]);
return -1;
}
h = nl_handle_alloc();
if (!h) {
nl_perror("nl_handle_alloc");
return -1;
}
if (genl_connect(h) < 0) {
nl_perror("genl_connect");
goto nla_handle_failure_2;
}
cache = genl_ctrl_alloc_cache(h);
if (!cache) {
nl_perror("genl_ctrl_alloc_cache");
goto nla_handle_failure_1;
}
family = genl_ctrl_search_by_name(cache, "nl80211");
if (!family) {
nl_perror("search nl80211 family");
goto nla_cache_failure;
}
msg = nlmsg_alloc();
if (!msg) {
nl_perror("nlmsg_alloc");
goto nla_cache_failure;
}
genlmsg_put(msg, 0, 0, genl_family_get_id(family), 0,
0, NL80211_CMD_SET_INTERFACE, 0);
NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, ifindex);
NLA_PUT_U32(msg, NL80211_ATTR_IFTYPE, NL80211_IFTYPE_AP);
if (nl_send_auto_complete(h, msg) < 0 || nl_wait_for_ack(h) < 0)
nl_perror("Failed to set interface to master mode");
nla_put_failure:
nlmsg_free(msg);
nla_cache_failure:
nl_cache_free(cache);
nla_handle_failure_1:
nl_close(h);
nla_handle_failure_2:
nl_handle_destroy(h);
return 0;
}
2008年7月8日火曜日
FreeRadius 〜 EAP/TLS, EAP/TTLS, EAP/PEAP 〜 Linux Debian Lenny
いや、ここに張る意味あんまり無いけどチラシの裏、ちょっと jot。rules に
ここまでやってあると、イカンことのように思えてくるけど....
if dh_shlibdeps -p $$pkg -- -O 2>/dev/null | grep -q libssl; then
echo "$$pkg links to openssl"
exit 1
fi
apt-get source freeradius して上記パッチあてて fakeroot debian/rules binary すると、上位のディレクトリに freeradius-peap freeradius-tls freeradius-ttls というパッケージが出来上がると思います。diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/control freeradius-2.0.4+dfsg/debian/control
--- freeradius-2.0.4+dfsg.orig/debian/control 2008-05-19 11:47:18.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/control 2008-07-08 22:13:50.000000000 +0900
@@ -1,5 +1,5 @@
Source: freeradius
-Build-Depends: autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, lib
pcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev
+Build-Depends: autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, lib
pcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev libssl-dev
Section: net
Priority: optional
Maintainer: Stephen Gran
@@ -11,7 +11,7 @@
Depends: lsb-base (>= 3.0-6), ${shlibs:Depends}, freeradius-common, libfreeradius2 (= ${binary:Version})
Provides: radius-server
Recommends: freeradius-utils
-Suggests: freeradius-ldap, freeradius-mysql, freeradius-krb5, freeradius-postgresql
+Suggests: freeradius-ldap, freeradius-mysql, freeradius-krb5, freeradius-postgresql, freeradius-tls, freeradius-peap
Description: a high-performance and highly configurable RADIUS server
A high-performance RADIUS server with support for...
- many vendor-specific attributes
@@ -121,3 +121,26 @@
This package contains the detached debugging symbols for the Debian freeradius
packages
+Package: freeradius-tls
+Architecture: any
+Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
+Description: eap-tls module for FreeRADIUS server
+ Debian will not provide a binary version of the rlm_eap_tls.so library. This
+ module is required if you want to use EAP/TLS authentication, commonly used
+ for WiFi access points
+
+Package: freeradius-ttls
+Architecture: any
+Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
+Description: eap-ttls module for FreeRADIUS server
+ Debian will not provide a binary version of the rlm_eap_ttls.so library. This
+ module is required if you want to use EAP/TLS authentication, commonly used
+ for WiFi access points
+
+Package: freeradius-peap
+Architecture: any
+Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
+Description: eap-peap module for FreeRADIUS server
+ Debian will not provide a binary version of the rlm_eap_peap.so library. This
+ module is required if you want to use EAP/PEAP authentication, commonly used
+ for WiFi access points
diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/freeradius-peap.install freeradius-2.0.4+dfsg/debian/freeradius-peap.install
--- freeradius-2.0.4+dfsg.orig/debian/freeradius-peap.install 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/freeradius-peap.install 2008-07-08 22:13:50.000000000 +0900
@@ -0,0 +1 @@
+usr/lib/freeradius/rlm_eap_peap*.so
diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/freeradius-peap.postinst freeradius-2.0.4+dfsg/debian/freeradius-peap.postinst
--- freeradius-2.0.4+dfsg.orig/debian/freeradius-peap.postinst 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/freeradius-peap.postinst 2008-07-08 22:13:50.000000000 +0900
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+set -e
+
+case "$1" in
+ configure)
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d freeradius restart
+ else
+ /etc/init.d/freeradius restart
+ fi
+ ;;
+ abort-upgrade)
+ ;;
+ abort-remove)
+ ;;
+ abort-deconfigure)
+ ;;
+esac
+
+#DEBHELPER#
diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/freeradius-tls.install freeradius-2.0.4+dfsg/debian/freeradius-tls.install
--- freeradius-2.0.4+dfsg.orig/debian/freeradius-tls.install 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/freeradius-tls.install 2008-07-08 22:13:50.000000000 +0900
@@ -0,0 +1 @@
+usr/lib/freeradius/rlm_eap_tls*.so
diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/freeradius-tls.postinst freeradius-2.0.4+dfsg/debian/freeradius-tls.postinst
--- freeradius-2.0.4+dfsg.orig/debian/freeradius-tls.postinst 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/freeradius-tls.postinst 2008-07-08 22:13:50.000000000 +0900
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+set -e
+
+case "$1" in
+ configure)
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d freeradius restart
+ else
+ /etc/init.d/freeradius restart
+ fi
+ ;;
+ abort-upgrade)
+ ;;
+ abort-remove)
+ ;;
+ abort-deconfigure)
+ ;;
+esac
+
+#DEBHELPER#
diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/freeradius-ttls.install freeradius-2.0.4+dfsg/debian/freeradius-ttls.install
--- freeradius-2.0.4+dfsg.orig/debian/freeradius-ttls.install 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/freeradius-ttls.install 2008-07-08 22:13:50.000000000 +0900
@@ -0,0 +1 @@
+usr/lib/freeradius/rlm_eap_ttls*.so
diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/freeradius-ttls.postinst freeradius-2.0.4+dfsg/debian/freeradius-ttls.postinst
--- freeradius-2.0.4+dfsg.orig/debian/freeradius-ttls.postinst 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/freeradius-ttls.postinst 2008-07-08 22:13:50.000000000 +0900
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+set -e
+
+case "$1" in
+ configure)
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d freeradius restart
+ else
+ /etc/init.d/freeradius restart
+ fi
+ ;;
+ abort-upgrade)
+ ;;
+ abort-remove)
+ ;;
+ abort-deconfigure)
+ ;;
+esac
+
+#DEBHELPER#
diff -ubBrN freeradius-2.0.4+dfsg.orig/debian/rules freeradius-2.0.4+dfsg/debian/rules
--- freeradius-2.0.4+dfsg.orig/debian/rules 2008-05-19 11:47:18.000000000 +0900
+++ freeradius-2.0.4+dfsg/debian/rules 2008-07-08 22:13:50.000000000 +0900
@@ -26,7 +26,7 @@
pkgdocdir = /usr/share/doc/$(package)
raddbdir = /etc/$(package)
-modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql
+modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql eap_peap eap_tls eap_ttls
pkgs=$(shell dh_listpackages)
# This has to be exported to make some magic below work.
@@ -80,14 +80,10 @@
--with-large-files --with-udpfromto --with-edir \
--enable-developer \
--config-cache \
- --without-rlm_eap_tls \
- --without-rlm_eap_ttls \
- --without-rlm_eap_peap \
--without-rlm_eap_tnc \
--without-rlm_otp \
--with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` \
--with-rlm_sql_postgresql_include_dir=`pg_config --includedir` \
- --without-openssl \
--without-rlm_eap_ikev2 \
--without-rlm_sql_oracle \
--without-rlm_sql_unixodbc \
@@ -164,6 +160,7 @@
for mod in ${modulelist}; do \
pkg=$${mod##sql_} ; \
+ pkg=$${mod##eap_} ; \
dh_install --sourcedir=$(freeradius_dir) -p freeradius-$$pkg ; \
rm -f $(freeradius_dir)/usr/lib/freeradius/rlm_$$mod*.so ; \
done
@@ -174,12 +171,6 @@
dh_strip -a --dbg-package=freeradius-dbg
dh_makeshlibs -a -n
- for pkg in ${pkgs} ; do \
- if dh_shlibdeps -p $$pkg -- -O 2>/dev/null | grep -q libssl; then \
- echo "$$pkg links to openssl" ;\
- exit 1 ;\
- fi ;\
- done
dh_shlibdeps
binary-common:
2008年3月4日火曜日
FreeRadius 〜 EAP/TLS, EAP/TTLS, EAP/PEAP 〜 Linux Debian Etch
フランス語? 全くわからないのですが、面白いものでとりあえず build だけはできました。debian etch の freeraduis ですが ssl は別となっているので、ちょっと試そうか。の都度似たような探しものばかりしていた。が、こちらのサイト が良いさげでした。ありがとうございます。毎度のことながらの勉強不足で、コマンドそのまま。ですが...でパッチを jot。freeradius-eaptls_1.1.3-3_i386.deb と freeradius-eappeap_1.1.3-3_i386.deb なるものが出来上がり。これらだけ。であれば、元サイトの下の方にアリ。
でdiff -ubBrN freeradius-1.1.3/debian/control freeradius-1.1.3-ssl/debian/control
--- freeradius-1.1.3/debian/control 2008-03-04 21:36:44.000000000 +0900
+++ freeradius-1.1.3-ssl/debian/control 2008-03-04 21:31:58.000000000 +0900
@@ -1,6 +1,6 @@
Source: freeradius
-Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19)
-Build-Conflicts: libssl-dev
+Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19), libssl-dev
+Build-Conflicts:
Section: net
Priority: optional
Maintainer: Stephen Gran
@@ -66,3 +66,19 @@
Description: set of PHP scripts for administering a FreeRADIUS server
These scripts provide a web-based interface for administering a FreeRADIUS
server which stores authentication information in either SQL or LDAP.
+
+Package: freeradius-eaptls
+Architecture: any
+Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
+Description: eap-tls module for FreeRADIUS server
+ Debian will not provide a binary version of the rlm_eap_tls.so library. This
+ module is required if you want to use EAP/TLS authentication, commonly used
+ for WiFi access points
+
+Package: freeradius-eappeap
+Architecture: any
+Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
+Description: eap-peap module for FreeRADIUS server
+ Debian will not provide a binary version of the rlm_eap_peap.so library. This
+ module is required if you want to use EAP/PEAP authentication, commonly used
+ for WiFi access points
\ No newline at end of file
diff -ubBrN freeradius-1.1.3/debian/freeradius-eappeap.install freeradius-1.1.3-ssl/debian/freeradius-eappeap.install
--- freeradius-1.1.3/debian/freeradius-eappeap.install 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-1.1.3-ssl/debian/freeradius-eappeap.install 2008-03-04 21:56:40.000000000 +0900
@@ -0,0 +1 @@
+usr/lib/freeradius/rlm_eap_peap*.so
diff -ubBrN freeradius-1.1.3/debian/freeradius-eappeap.postinst freeradius-1.1.3-ssl/debian/freeradius-eappeap.postinst
--- freeradius-1.1.3/debian/freeradius-eappeap.postinst 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-1.1.3-ssl/debian/freeradius-eappeap.postinst 2008-03-04 21:56:15.000000000 +0900
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+set -e
+
+case "$1" in
+ configure)
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d freeradius reload
+ else
+ /etc/init.d/freeradius reload
+ fi
+ ;;
+ abort-upgrade)
+ ;;
+ abort-remove)
+ ;;
+ abort-deconfigure)
+ ;;
+esac
+
+#DEBHELPER#
diff -ubBrN freeradius-1.1.3/debian/freeradius-eaptls.install freeradius-1.1.3-ssl/debian/freeradius-eaptls.install
--- freeradius-1.1.3/debian/freeradius-eaptls.install 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-1.1.3-ssl/debian/freeradius-eaptls.install 2008-03-04 21:34:18.000000000 +0900
@@ -0,0 +1 @@
+usr/lib/freeradius/rlm_eap_tls*.so
diff -ubBrN freeradius-1.1.3/debian/freeradius-eaptls.postinst freeradius-1.1.3-ssl/debian/freeradius-eaptls.postinst
--- freeradius-1.1.3/debian/freeradius-eaptls.postinst 1970-01-01 09:00:00.000000000 +0900
+++ freeradius-1.1.3-ssl/debian/freeradius-eaptls.postinst 2008-03-04 21:34:48.000000000 +0900
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+set -e
+
+case "$1" in
+ configure)
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d freeradius restart
+ else
+ /etc/init.d/freeradius restart
+ fi
+ ;;
+ abort-upgrade)
+ ;;
+ abort-remove)
+ ;;
+ abort-deconfigure)
+ ;;
+esac
+
+#DEBHELPER#
diff -ubBrN freeradius-1.1.3/debian/rules freeradius-1.1.3-ssl/debian/rules
--- freeradius-1.1.3/debian/rules 2008-03-04 21:36:44.000000000 +0900
+++ freeradius-1.1.3-ssl/debian/rules 2008-03-04 21:33:21.000000000 +0900
@@ -23,8 +23,10 @@
# You will also need to add a Build-Depends on libssl-dev and libpq-dev
# and remove the Build-Conflicts on libssl-dev
# Finally you need to cat debian/control.postgresql >> debian/control
-buildssl=--without-rlm_eap_peap --without-rlm_eap_tls --without-rlm_eap_ttls --without-rlm_otp --without-rlm_sql_postgresql --without-snmp-modulelist=krb5 ldap sql_mysql sql_iodbc
+# buildssl=--without-rlm_eap_peap --without-rlm_eap_tls --without-rlm_eap_ttls --without-rlm_otp --without-rlm_sql_postgresql --without-snmp
+# modulelist=krb5 ldap sql_mysql sql_iodbc
+buildssl=--without-rlm_otp --without-rlm_sql_postgresql --without-snmp
+modulelist=krb5 ldap sql_mysql sql_iodbc eap_peap eap_tls
#buildssl=--with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` --with-rlm_sql_postgresql_include_dir=`pg_config --includedir`
#modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql
2007年10月22日月曜日
rtl8187 動作せず...
やっぱりダメらしい。
madwifi も方向転換で HAL 使わなくなって、以前のものから仕切り直しっぽい。そうそう svn のリポジトリ が再構成 Repository restructured ¶ だそうだ。stable は
Web 探してみると v2 で~# cat /sys/bus/usb/devices/2-2/product
NETGEAR WG111v3
asic_rev = 1。更に rf_init = rtl8225z2_rf_init っぽかったのでベタで試してみたところ、ウンとは言うがスンとは言わず。といった感じ。 zd1211rw も bcm43xx も mac802.11 じゃないけど、この辺り使うしか無いのかしら....madwifi も方向転換で HAL 使わなくなって、以前のものから仕切り直しっぽい。そうそう svn のリポジトリ が再構成 Repository restructured ¶ だそうだ。stable は
svn switch http://svn.madwifi.org/madwifi/trunk だそうだ。
2007年10月1日月曜日
rtl8187 動作せず...
iwconfig iwlist でソレナリの表示はされるものの
Monitor モードは可だが、Master モードは INVALID。の前に、デバイスのランプが点灯せず、動作していなさげ。む〜ん....~# ip link set wlan0 up
~# dmesg | tail -n2
phy0: RF Calibration Failed! 0
ADDRCONF(NETDEV_UP): wlan0: link is not ready
~# ip link ls
....
5: wmaster0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc ieee80211 qlen 1000
link/ieee802.11 00:1b:2f:be:42:5c brd ff:ff:ff:ff:ff:ff
6: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:1b:2f:be:42:5c brd ff:ff:ff:ff:ff:ff
2007年9月19日水曜日
rtl8187
何となく rc6-mm1 パッチだけあてて make menuconfig してみたところ、zd1211rw の mac80211 ありました。なので、近々? zd1211 でも Master あるいは Monitor mode にできるかも。
....とか言いつつ mac80211 & USB で何か無いかなぁ。と眺めていたところ rtl8187 なるデバイスが 2.6.23-rc にて使えるとの話。探した探した見付かった。個人輸入代行まで考えていたが 7月? 頃 NetGear の日本語版が発売。物は
....とか言いつつ mac80211 & USB で何か無いかなぁ。と眺めていたところ rtl8187 なるデバイスが 2.6.23-rc にて使えるとの話。探した探した見付かった。個人輸入代行まで考えていたが 7月? 頃 NetGear の日本語版が発売。物は
ネットギア・インターナショナル WG111 USB2.0 無線アダプタ WG111-300JPSとの事で大凡 2,000- 程度。で rtl8187_dev.c の適当なところに
{USB_DEVICE(0x0846, 0x4260)}, を加えてあげて、認識した。が、個人的には USB2.0 only はチト辛い。ここから先は未。
2007年8月6日月曜日
zd1211rw のその後
2.6.22 にて 802.11 スタックが新たに追加され、以前のものを softmac とか ieee80211。新しいモノを mac80211 と呼ぶらしい。で vanilla kernel では zd1211rw は以前の ieee80211 にしか対応していない。その後は? と検索してみると、新しい zd1211rw-mac80211 なるものの開発も始まっているらしい。曰く
でも developers only だそうで。 git 使えない...日本語の Git 入門 大変ありがたいです。今後も頑張って下さい。Although some driver-level code is still required,
it does fill in many blanks in our feature table:
it has stack-level support for master mode, ad-hoc, automatic rate adjustment, ...
2007年6月6日水曜日
2007年2月22日木曜日
zd1211rw の Master mode
zd1211rw デバイスに対して iwconfig eth# mode Master とすると、エラー。ちょっと眺めると ioctl のリクエストコード SIOCSIWMODE については zd_mac.c:int zd_mac_set_mode() が処理。中を見ると
switch (mode) {
case IW_MODE_AUTO:
case IW_MODE_ADHOC:
case IW_MODE_INFRA:
mac->netdev->type = ARPHRD_ETHER;
break;
case IW_MODE_MONITOR:
mac->netdev->type = ARPHRD_IEEE80211_RADIOTAP;
break;
default:
dev_dbg_f(zd_mac_dev(mac), "wrong mode %u\n", mode);
return -EINVAL;
}
include/linux/wireless.h で定義されてるは EINVAL 扱い。というわけで他力本願としては zd_mac.c をパッチの都度眺めるということで。#define IW_MODE_MASTER 3 /* Synchronisation master or Access Point */
登録:
投稿 (Atom)