SSブログ
エステ

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を入手して加工します。



ステレオミニプラグを半分に切って、ケーブルを剥いであげます。

IMG_0836.jpg

赤→L、白→R、むきだし→GROUNDなので、赤→2、白→3、むきだし→5に半田付けしておわり。

IMG_0845.JPG


Management card2をUPSに取り付けて、作成したケーブルをいちばん左のコンソールポートにつないでOK。
たまたま、user/passwordともに初期状態だったので、apc/apcでIP addressを設定して、使えるようになりました!
IMG_0841.JPG





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 Atom N2800(1.86GHz TDP6.5W)搭載 Mini-ITXマザーボード BOXDN2800MT

  • 出版社/メーカー: Intel/インテル
  • メディア: エレクトロニクス






DN2800MTは薄い、安い、Mini PCI Express x 2となかなか通好みな感じに仕上がっています。
これなら、WLANカードを2枚挿してコンパクトな無線LANアクセスポイントを構築できそうです。

組込はちょっと、面倒ですが、わりと組み込めます。

IMG_0780.JPG

完成形。電源ランプが標準のグリーン+オレンジから、レッドへ。


IMG_0779.JPG

後ろはこんな感じ。
ちゃんとしたバックパネルはまたこんど。


IMG_0775.JPG

なにかがはみ出るでもなく、収まっています。一応。


IMG_0774.JPG

標準のラバーはメンテナンス性と放熱性が悪いので外して、代わりにゴム足を4つ付けました。
また、このスチールの板は筐体と干渉する端っこは削って、DN2800MTの穴位置でネジで固定しています。


IMG_0772.jpg

そこのスチール板を外したところ。
周囲を這っているのは、アンテナ用ケーブル。ホットボンドで固定。


IMG_0769.JPG

バックパネルは今回作らずくりぬいただけなので、スースーしています。
写真的には若干コネクタと干渉しそうに見えますが、大丈夫です。


IMG_0767.jpg

DN2800MTを外したところ。
アンテナは合計5つ必要になるので、もともとTime Capsuleで使われていた4つと、Tycoのフィルムアンテナを1枚天板面に貼り付けてなんとか。。

左下の青白ケーブルは電源ボタン。右上から伸びている赤白ケーブルは電源ランプ用LED。


IMG_0763.JPG

DN2800MTにメモリとWLANモジュールx2取り付け済みの絵。
WLANモジュールはAR9380とAR9280チップを使った製品。

たとえば、

IMG_0762.JPG

電源スイッチ引き出し部はとりあえず。。
固定は内側からホットボンドで。


IMG_0757.JPG

マザーボードを取り外すとこんな感じ。

右上、右下、左下から出っ張っているのは、マザーボードを固定するためのスペーサー。
左上はどうしても筐体と干渉するので、省略。

スペーサーはその下に2mmの塩ビ版を別途用意して下からネジで固定しています。

スペーサー前後の絵はこんな感じ。

                    ↓ネジ 3M
--------------------------------------- Time Capsule標準のスチール版
                    || 5mm スペーサー、ネジは上側が凹、下側が凸
====================== DN2800MT
                    ||
                    || 20mmスペーサー、ネジは上下共に凹
                    ||
====================== 2mm塩ビ版
      ↑ネジ 3M
--------------------------------------- 強力両面テープ(厚手)
====================== Apple Time Capsule 天板

スペーサーは千石電商とかで手に入るやつです。
今回はスチールのスペーサーを使っていますが、微妙な高さの調節をするには塩ビ製のスペーサーの方が便利かも。

塩ビ版他、全て、干渉するところは削る、が原則です。笑


IMG_0754.jpg

塩ビ版とスペーサーだけの絵。


IMG_0753.JPG

塩ビ版を接着する前の、Apple Time Capsule 筐体(削り済み)の絵。


IMG_0752.jpg

ちなみに、DN2800MTのAudio I/Fは使わないし、邪魔なので、取り外しました。


ところで、Time capsule の筐体にはスチールのフレームが内側に装着されているのですが、DN2800MTと干渉するのでコツコツ外し済み。
これね↓。
IMG_0741.JPG


基本、ルーター(といっても削る方)での工作が中心でした。。

ちなみに、熱がわりとこもって、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アダプタを利用するためのメモ。

11n/g/b対応 ゲーム機用 Wi-Fi USBアダプタ GW-USMicroN-G

11n/g/b対応 Wi-Fi USBアダプタ GW-USMicroN-G

  • 出版社/メーカー: プラネックス
  • メディア: Video Game








によれば、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のはず。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。