APC Network management card用ケーブル940-0299をつくる [Server hardware]
秋葉原のジャンクショップでAPC Smart-UPS 1500で使えるNetwork management card2 AP9631を400円ほどで手に入れたのはよいものの、AP9631はそれまで使っていたAP9617とは異なり、カードに直接シリアル接続して、通信する模様。
AP9617は940-0024をSmart-UPSのシリアルポートに接続してNetwork managementカードの設定を行うのですが、AP9631は940-0299をNetwork managementカード自体に搭載際されている2.5mm 3pin stereo plug connectorに接続します。
ですが、ですが、なかなか940-0299が見当たりません。940-0024は外見はシリアルケーブル、ピンアサインは独自。940-0299はPC側D-sub9pin、UPS側が2.5mm 3pin stereo plug な、ちょっと特殊な感じです。USのAmazonなどで見つかりますが、日本へシッピングしてくれる業者さんのは高い。
そこで、作ることに。
ピンアサイン?はこんな感じ。
秋月などで、50円くらいで手に入る9pin D-subメスコネクターと適当なステレオミニプラグ2.5mmを入手して加工します。
Donyaダイレクト 2.5mm ステレオミニプラグ ケーブル 1m DNC-AV100-25sm-25sm
- 出版社/メーカー: 上海問屋
- メディア:
ステレオミニプラグを半分に切って、ケーブルを剥いであげます。
赤→L、白→R、むきだし→GROUNDなので、赤→2、白→3、むきだし→5に半田付けしておわり。
Management card2をUPSに取り付けて、作成したケーブルをいちばん左のコンソールポートにつないでOK。
たまたま、user/passwordともに初期状態だったので、apc/apcでIP addressを設定して、使えるようになりました!
Hostapdを利用した無線LANアクセスポイント構築 まとめ [Hostapd で無線LAN AP構築]
これまでポイントポイントでHostapdを用いたWLANアクセスポイントの構築方法を書いてきましたが、ここでまとめ。
OS: Ubuntu 12.04 32bit server版
App: hostapd(無線LANアクセスポイント)、bridge-utils(有線LANと無線LANをブリッジ)
2.4GHzと5GHzのDual bandな無線LANアクセスポイントを構築したい場合は、それぞれに対応した無線LANカード等が2つ必要となることと、ドライバ・hostapdをビルドしなければいけないので、ビルド環境も必要です。
# apt-get install build-essential linux-source bridge-utils hostapd libssl-dev libnl-dev
# apt-get install linux-headers-$(uname -r)
# vi /etc/hostapd/hostapd-5ghz.conf
--hostapd-5ghz.conf
interface=wlan1
bridge=br0
driver=nl80211
country_code=JP
ieee80211d=1
ssid=AP8
channel=44
hw_mode=a
wpa=2
wpa_passphrase=(your password)
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ieee80211n=1
wmm_enabled=1
ht_capab=[LDPC][HT40+][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
logger_syslog=-1
logger_syslog_level=2
ap_max_inactivity=300
disassoc_low_ack=1
#rts_threshold=2347
ap_isolate=1
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
--
# vi /etc/hostapd/hostapd-2.4ghz.conf
--hostapd-2.4ghz.conf
interface=wlan0
bridge=br0
driver=nl80211
country_code=JP
ieee80211d=1
ssid=AP7
channel=6
hw_mode=g
wpa=2
wpa_passphrase=(your password)
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ieee80211n=1
wmm_enabled=1
ht_capab=[LDPC][HT40+][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
logger_syslog=-1
logger_syslog_level=2
ap_max_inactivity=300
disassoc_low_ack=1
#rts_threshold=2347
ap_isolate=1
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
--
5GHzの方は、AR9380チップを利用したMini PCI Expressカード
2.4GHzの方は、AR9280チップを利用したMini PCI Expressカード
です。
# echo 'DAEMON_CONF="/etc/hostapd/hostapd-5ghz.conf /etc/hostapd/hostapd-2.4ghz.conf"' > /etc/default/hostapd
# vi /etc/network/interfaces
--interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# Wired network interface
auto eth0
iface eth0 inet static
address 0.0.0.0
# Wireless network interface
auto wlan0
iface wlan0 inet static
address 0.0.0.0
auto wlan1
iface wlan1 inet static
address 0.0.0.0
# Bridge network interface
auto br0
iface br0 inet static
address 192.168.1.253
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
bridge_ports eth0 wlan0 wlan1
bridge_stp off
--
hostapd1.0をビルドします。
# tar zxvf hostapd-1.0.tar.gz
# cd hostapd-1.0/hostapd/
# cp defconfig .config
# vi ./.config
# IEEE 802.11n (High Throughput) support
CONFIG_IEEE80211N=y
このコメントを外してあげます。
# make
# make install
# vi /etc/init.d/hostapd
DAEMON_SBIN=/usr/sbin/hostapd
↓のように書き換えます。
DAEMON_SBIN=/usr/local/bin/hostapd
compat-wirelessドライバをビルドします。
# tar jxvf compat-wireless-2012-05-10.tar.bz2
# cd compat-wireless-2012-05-10
ここに最新ドライバがあります。
# vi ./drivers/net/wireless/ath/regd.c
--regd.c
#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
#include <linux/printk.h>
#include <linux/export.h>
#include <net/cfg80211.h>
#include <net/mac80211.h>
#include "regd.h"
#include "regd_common.h"
static int __ath_regd_init(struct ath_regulatory *reg);
/*
* This is a set of common rules used by our world regulatory domains.
* We have 12 world regulatory domains. To save space we consolidate
* the regulatory domains in 5 structures by frequency and change
* the flags on our reg_notifier() on a case by case basis.
*/
/* Only these channels all allow active scan on all world regulatory domains */
#define ATH9K_2GHZ_CH01_11 REG_RULE(2412-10, 2462+10, 40, 0, 30, 0)
/* We enable active scan on these a case by case basis by regulatory domain */
#define ATH9K_2GHZ_CH12_13 REG_RULE(2467-10, 2472+10, 40, 0, 30, 0)
#define ATH9K_2GHZ_CH14 REG_RULE(2484-10, 2484+10, 40, 0, 30, 0)
/* We allow IBSS on these on a case by case basis by regulatory domain */
#define ATH9K_5GHZ_5150_5350 REG_RULE(5150-10, 5350+10, 40, 0, 30, 0)
#define ATH9K_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 40, 0, 30, 0)
#define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 40, 0, 30, 0)
#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \
ATH9K_2GHZ_CH12_13, \
ATH9K_2GHZ_CH14
#define ATH9K_5GHZ_ALL ATH9K_5GHZ_5150_5350, \
ATH9K_5GHZ_5470_5850
/* This one skips what we call "mid band" */
#define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \
ATH9K_5GHZ_5725_5850
/* Can be used for:
* 0x60, 0x61, 0x62 */
static const struct ieee80211_regdomain ath_world_regdom_60_61_62 = {
.n_reg_rules = 5,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_ALL,
ATH9K_5GHZ_ALL,
}
};
/* Can be used by 0x63 and 0x65 */
static const struct ieee80211_regdomain ath_world_regdom_63_65 = {
.n_reg_rules = 5,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_ALL,
ATH9K_5GHZ_ALL,
}
};
/* Can be used by 0x64 only */
static const struct ieee80211_regdomain ath_world_regdom_64 = {
.n_reg_rules = 5,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_ALL,
ATH9K_5GHZ_ALL,
}
};
/* Can be used by 0x66 and 0x69 */
static const struct ieee80211_regdomain ath_world_regdom_66_69 = {
.n_reg_rules = 5,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_ALL,
ATH9K_5GHZ_ALL,
}
};
/* Can be used by 0x67, 0x68, 0x6A and 0x6C */
static const struct ieee80211_regdomain ath_world_regdom_67_68_6A_6C = {
.n_reg_rules = 5,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_ALL,
ATH9K_5GHZ_ALL,
}
};
static inline bool is_wwr_sku(u16 regd)
{
return ((regd & COUNTRY_ERD_FLAG) != COUNTRY_ERD_FLAG) &&
(((regd & WORLD_SKU_MASK) == WORLD_SKU_PREFIX) ||
(regd == WORLD));
}
static u16 ath_regd_get_eepromRD(struct ath_regulatory *reg)
{
return reg->current_rd & ~WORLDWIDE_ROAMING_FLAG;
}
bool ath_is_world_regd(struct ath_regulatory *reg)
{
return is_wwr_sku(ath_regd_get_eepromRD(reg));
}
EXPORT_SYMBOL(ath_is_world_regd);
static const struct ieee80211_regdomain *ath_default_world_regdomain(void)
{
/* this is the most restrictive */
return &ath_world_regdom_64;
}
static const struct
ieee80211_regdomain *ath_world_regdomain(struct ath_regulatory *reg)
{
switch (reg->regpair->regDmnEnum) {
case 0x60:
case 0x61:
case 0x62:
return &ath_world_regdom_60_61_62;
case 0x63:
case 0x65:
return &ath_world_regdom_63_65;
case 0x64:
return &ath_world_regdom_64;
case 0x66:
case 0x69:
return &ath_world_regdom_66_69;
case 0x67:
case 0x68:
case 0x6A:
case 0x6C:
return &ath_world_regdom_67_68_6A_6C;
default:
WARN_ON(1);
return ath_default_world_regdomain();
}
}
bool ath_is_49ghz_allowed(u16 regdomain)
{
/* possibly more */
return regdomain == MKK9_MKKC;
}
EXPORT_SYMBOL(ath_is_49ghz_allowed);
/* Frequency is one where radar detection is required */
static bool ath_is_radar_freq(u16 center_freq)
{
return 0; /* (center_freq >= 5260 && center_freq <= 5700); */
}
(これ以下は書き換えずなので、略)
--
赤字が書き換えたところ。
とりあえず、全ての制限を取り外しています。
あとでregulatory対応が必要。
これを
# make
# make install
して完了。
# make wlunload
# modprobe ath9k
# service hostapd restart
これにて完了!
Intel DN2800MT を Apple Time Capsuleに組み込む [Hostapd で無線LAN AP構築]
Thin Mini-ITX な Intel DN2800MT にフィットするちっちゃい筐体がどうしても見当たらないので、現役を退いて休んでいたTime Capsuleを中身を取り外して、代わりにIntel DN2800MTを組み込みました。
Intel Atom N2800(1.86GHz TDP6.5W)搭載 Mini-ITXマザーボード BOXDN2800MT
- 出版社/メーカー: Intel/インテル
- メディア: エレクトロニクス
DN2800MTは薄い、安い、Mini PCI Express x 2となかなか通好みな感じに仕上がっています。
これなら、WLANカードを2枚挿してコンパクトな無線LANアクセスポイントを構築できそうです。
組込はちょっと、面倒ですが、わりと組み込めます。
完成形。電源ランプが標準のグリーン+オレンジから、レッドへ。
後ろはこんな感じ。
ちゃんとしたバックパネルはまたこんど。
なにかがはみ出るでもなく、収まっています。一応。
標準のラバーはメンテナンス性と放熱性が悪いので外して、代わりにゴム足を4つ付けました。
また、このスチールの板は筐体と干渉する端っこは削って、DN2800MTの穴位置でネジで固定しています。
そこのスチール板を外したところ。
周囲を這っているのは、アンテナ用ケーブル。ホットボンドで固定。
バックパネルは今回作らずくりぬいただけなので、スースーしています。
写真的には若干コネクタと干渉しそうに見えますが、大丈夫です。
DN2800MTを外したところ。
アンテナは合計5つ必要になるので、もともとTime Capsuleで使われていた4つと、Tycoのフィルムアンテナを1枚天板面に貼り付けてなんとか。。
左下の青白ケーブルは電源ボタン。右上から伸びている赤白ケーブルは電源ランプ用LED。
DN2800MTにメモリとWLANモジュールx2取り付け済みの絵。
WLANモジュールはAR9380とAR9280チップを使った製品。
たとえば、
電源スイッチ引き出し部はとりあえず。。
固定は内側からホットボンドで。
マザーボードを取り外すとこんな感じ。
右上、右下、左下から出っ張っているのは、マザーボードを固定するためのスペーサー。
左上はどうしても筐体と干渉するので、省略。
スペーサーはその下に2mmの塩ビ版を別途用意して下からネジで固定しています。
スペーサー前後の絵はこんな感じ。
↓ネジ 3M
--------------------------------------- Time Capsule標準のスチール版
|| 5mm スペーサー、ネジは上側が凹、下側が凸
====================== DN2800MT
||
|| 20mmスペーサー、ネジは上下共に凹
||
====================== 2mm塩ビ版
↑ネジ 3M
--------------------------------------- 強力両面テープ(厚手)
====================== Apple Time Capsule 天板
スペーサーは千石電商とかで手に入るやつです。
今回はスチールのスペーサーを使っていますが、微妙な高さの調節をするには塩ビ製のスペーサーの方が便利かも。
塩ビ版他、全て、干渉するところは削る、が原則です。笑
塩ビ版とスペーサーだけの絵。
塩ビ版を接着する前の、Apple Time Capsule 筐体(削り済み)の絵。
ちなみに、DN2800MTのAudio I/Fは使わないし、邪魔なので、取り外しました。
ところで、Time capsule の筐体にはスチールのフレームが内側に装着されているのですが、DN2800MTと干渉するのでコツコツ外し済み。
これね↓。
基本、ルーター(といっても削る方)での工作が中心でした。。
ちなみに、熱がわりとこもって、CPU温度が70℃まで上昇することもありますが、ハングはしません。
外からでもファンの風が当たっていれば、55℃くらいまではすぐに下がります。
ところでACアダプタは適当なやつの流用です。
12V/3.8Aくらいだったかな。
たしか、9~16V でそれなりにAあれば動くはず。
Hostapd で2.4GHz帯と5GHz帯を同時に利用する。 [Hostapd で無線LAN AP構築]
Ubuntu 12.04をベースにしてHostapdを利用して無線LANアクセスポイントを構築しているのですが、a/n系とb/g/n系両対応するためのメモ。
両方を利用するためには、
1.物理的に別デバイスとして認識される無線LANデバイスが2つ必要
(もちろん、a/n対応のものと、b/g/n対応のもの)
両方のデバイス共に、アクセスポイントモードに対応している
AP modeへの対応可否はこちらから確認できます。
伴い、/etc/network/interfaces の修正が必要。
2.デバイスごとに/etc/hostapd/hostapd.confを用意することと、
それを読み込ませるために、/etc/default/hostapdを修正する。
3.Hostapd ver. 1.0以上を利用する。
さて、早速1からですが、
まえのエントリ「PLANEX 無線LANアダプタ GW-USMICRON をUbuntuで利用する」でGW-USMICRONを認識させましたので、/etc/network/interfacesを修正します。
そもそも2つのデバイスが必要なの??という点については不明です。
1つのデバイスでa/b/g/nに対応しているもので何とかならないのかと、wlan0のaliasを作ったり試行錯誤しましたが、結局わからなかったため、デバイスを2つ用意して、構築した次第です。
物理的に別デバイスとは、iw listしたときに、Wiphy phy0とWiphy phy1が表示されればOKということです。
さてさて、下記の赤字の部分が追記したところです。
--/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# Wired network interface
auto eth0
iface eth0 inet static
address 0.0.0.0
# Wireless network interface
auto wlan0
iface wlan0 inet static
address 0.0.0.0
auto wlan1
iface wlan1 inet static
address 0.0.0.0
# Bridge network interface
auto br0
iface br0 inet static
address 192.168.1.253
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
bridge_ports eth0 wlan0 wlan1
bridge_stp off
--
2については、もとの/etc/hostapd/hostapd.conf をベースにhostapd-2.4gh.confとhostapd-5ghz.confを作成します。
--hostapd-2.4ghz.conf
interface=wlan1
bridge=br0
driver=nl80211
country_code=JP
ieee80211d=1
ssid=AP7
channel=6
hw_mode=g
#ssid=AP8
#channel=44
#hw_mode=a
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ieee80211n=1
wmm_enabled=1
ht_capab=[SMPS-STATIC][GF][HT40+][SHORT-GI-20][SHORT-GI-40][RX-STBC1]
macaddr_acl=0
deny_mac_file=/etc/hostapd/hostapd.deny
logger_syslog=-1
logger_syslog_level=3
--
--hostapd-5ghz.conf
interface=wlan0
bridge=br0
driver=nl80211
country_code=JP
ieee80211d=1
#ssid=AP7
#channel=6
#hw_mode=g
ssid=AP8
channel=44
hw_mode=a
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ieee80211n=1
wmm_enabled=1
ht_capab=[LDPC][HT40+][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
macaddr_acl=0
deny_mac_file=/etc/hostapd/hostapd.deny
logger_syslog=-1
logger_syslog_level=3
--
/etc/default/hostapd については、上で作成した2つのファイルを指定します。
DAEMON_CONF="/etc/hostapd/hostapd-5ghz.conf /etc/hostapd/hostapd-2.4ghz.conf"
最後に3ですが、Ubuntu12.04のapt-get installでインストールできるhostapdはver. 0.73で2つのデバイスを起動することには対応していないようです。そこで、ver. 1.0をビルドします。
ここから
# apt-get install libssl-dev libnl-dev
この辺が入っていないと、
../src/drivers/driver_nl80211.c:22:31: warning: netlink/genl/genl.h: No such file or directory
などとおこられます。
# tar zxvf hostapd-1.0.tar.gz
# cd hostapd-1.0
# cp defconfig .config
# vi ./.config
基本的にはそのままですが、
# IEEE 802.11n (High Throughput) support
CONFIG_IEEE80211N=y
ここだけ、コメントを外します。
# make
# make install
あと、serviceコマンドで起動できるようにします。
# vi /etc/init.d/hostapd
#DAEMON_SBIN=/usr/sbin/hostapd
DAEMON_SBIN=/usr/local/bin/hostapd
# service hostapd start
これでOKのはず!
PLANEX 無線LANアダプタ GW-USMICRON をUbuntuで利用する [Hostapd で無線LAN AP構築]
Ubuntu 12.04でPLANEXの無線LANアダプタを利用するためのメモ。
によれば、rt2800usbがドライバのもよう。
# lsusb -v
によると、
Bus 001 Device 002: ID 2019:ed14 PLANEX GW-USMicroN
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x2019 PLANEX
idProduct 0xed14 GW-USMicroN
bcdDevice 1.01
iManufacturer 1 Ralink
iProduct 2 802.11 n WLAN
iSerial 3 1.0
bNumConfigurations 1
(以下略)
# echo "rt2800usb" >> /etc/modules
# echo "install rt2800usb /sbin/modprobe --ignore-install rt2800usb; /bin/echo "2019 ed14" > /sys/bus/usb/drivers/rt2800usb/new_id" >> /etc/modprobe.d/usmicron.conf
# modprobe rt2800usb
これで、OKのはず。