2016年10月31日月曜日

Orange Pi PC のセットアップ その3

sudoersの変更 → 登録されていました

自分を /etc/sudoers に追加しようと思ったのですが、初期設定時のユーザ追加時に登録されていました。なにもしなくて ok。

ssh での rootログインを禁止

/etc/ssh/sshd_config の PermitRootLogin yes を PermitRootLogin no に変更します。

$ sudo vi /etc/ssh/sshd_config

sshd を再起動し、root で ssh接続ができないことを確認できれば ok。外に出ないサーバなので、Brute-force attack の対策とかはしていないです。

$ sudo service sshd restart

これで設定は一通り完了。

2016年10月29日土曜日

Orange Pi PC のセットアップ その2

timezoneの変更

日本用に変更をしました。

# cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

/etc/timezone の記述を "Europe/Ljubljana" → "Asia/Tokyo" に変更

date コマンドで期待通りの出力になるか確認

# date
Sat Oct 29 12:27:36 JST 2016

システムの文字コードをUTF-8に変更

# dpkg-reconfigure locales

20161029000862016102900087

UTF-8 だけでいい気もしますが、もしかしたら EUCを使う日が来るかもしれないので、両方を追加後、ja_JP.UTF-8 を選択。

ipアドレスを DHCP から固定IPに変更

dhcpの設定をコメントアウトし、static ip の記述に変更します。

# vi /etc/network/interfaces

変更前

変更後

# Wired adapter #1
allow-hotplug eth0
#no-auto-down eth0
iface eth0 inet dhcp
# Wired adapter #1
allow-hotplug eth0
#no-auto-down eth0
#iface eth0 inet dhcp
iface eth0 inet static
   address 192.168.11.252
   netmask 255.255.255.0
   gateway 192.168.11.1
   dns-nameservers 192.168.11.1

 

パッケージを最新に更新

# apt update

# apt upgrade

こんなところですかね? 後は ssh での root禁止とか、sudouser に自分を追加等々暇なときに実施予定です。

2016/10/31 追記
 TeraTerm で ssh接続しているので困っていないのですが、直接接続ですとキーボードレイアウトも変更する必要がありそうです。現在の設定は

$ localectl
   System Locale: LANG=ja_JP.UTF-8
                  LANGUAGE=en_US.UTF-8
                  LC_MESSAGES=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

になっていましたので、jp106 に変更する必要がありそうです。/etc/default/keyboardを

変更前

変更後

XKBMODEL="pc105"
XKBLAYOUT="us"

XKBMODEL="jp106"
XKBLAYOUT="jp"

にするか、

$ sudo localectl set-keymap jp106

ですかね。試していないので、localectl で jp106 の設定ができるか不明ですが。

2016/11/02 追記
 LANGUAGE とか LC_MESSAGE も ja_JP.UTF-8 にしておいた方がいいですよね。

$ sudo vi /etc/default/locale

で LANG= の行だけ残すように修正してみました。取りあえず様子見ということで。

Orange Pi PC のセットアップ その1

Orange Pi PC が到着しました。事前にOSイメージとか作っていたので、

  • 開梱後 microSDHCを挿入
  • UTPケーブルでネットワークに接続
  • 電源アダプタを接続

で ok。

2016102900085
DHCPでアドレスを取得しているはずですので、取得したIPを確認した後 ssh接続をします。DHCPアドレスの取得は Angry IP Scanner で確認。DHCPのレンジを少なくしておいた方が簡単に見つかったなと後から気づきました。

192.168.11.25 が払い出されていたようです。

 

 

2016102900084


TerTerm で ssh接続をします。デフォルトの id とパスワードは root/1234 に設定されています。

ssh接続後、QA形式でセットアップが始まります。

 

 

 

You are required to change your password immediately (root enforced)
  ___                               ____  _   ____   ____
/ _ \ _ __ __ _ _ __   __ _  ___  |  _ \(_) |  _ \ / ___|
| | | | '__/ _` | '_ \ / _` |/ _ \ | |_) | | | |_) | |
| |_| | | | (_| | | | | (_| |  __/ |  __/| | |  __/| |___
\___/|_|  \__,_|_| |_|\__, |\___| |_|   |_| |_|    \____|
                       |___/

Welcome to ARMBIAN Debian GNU/Linux 8 (jessie) 3.4.112-sun8i
System load:   0.14             Up time:       7 min
Memory usage:  5 % of 1000Mb    IP:            192.168.11.25
CPU temp:      42°C
Usage of /:    5% of 29G

Last login: Sat Oct 29 04:31:33 2016 from 192.168.11.6
Changing password for root.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:

Thank you for choosing Armbian! Support: www.armbian.com

Creating new account. Please provide a username (eg. your forename):koyama
Adding user `koyama' ...
Adding new group `koyama' (1000) ...
Adding new user `koyama' (1000) with group `koyama' ...
Creating home directory `/home/koyama' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for koyama
Enter the new value, or press ENTER for the default
    Full Name []:  
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
Is the information correct? [Y/n] y

Dear , your account koyama has been created and is sudo enabled.
Please use this account for your daily work from now on.


Your display settings are currently 720p (1280x720). To change this use the
h3disp utility. Do you want to change display settings now? [nY] n

  • rootのパスワードを変更します。
  • 追加ユーザを作成します。Full Name~Other はEnterキー押下のみ、特に指定しません。
  • GUIでの接続はしないので、ディスプレイセッティングは 'n' で終了します。

取りあえずはこれで完了です。細かな変更はその2 で。

2016年10月27日木曜日

Orange Pi で自宅サーバ 準備編(OSイメージ書き込み)

Orange Pi PC の到着前に起動用の microSDHCカードを作成しておきます。

  1. OSイメージのダウンロード
    www.armbian.com にアクセスし、自機用のイメージをダウンロードしておく。自分の場合は Orange Pi PC の jessie Server をダウンロードしました。GUIは使わない予定。他ブログだと Xenial server を選択とありますが、今は無いみたい。
    ※自分がダウンロードしたときは Armbian_5.20_Orangepipc_Debian_jessie_3.4.112.7z
  2. OSイメージの展開
    ダウンロードした *.7zファイルを展開します。 (7-zipの入手はこちらから)
    ※自分が展開したときは Armbian_5.20_Orangepipc_Debian_jessie_3.4.112.img
  3. OSイメージを書き込む
    Rufus を使って 2.で展開したイメージを microSDHCカードに書き込みます。(自分は Rufusを使いました。)
    フォーマット設定で[DDイメージ]を選択→「不良ブロックを検出します」をチェック→[DDイメージ]脇のアイコンをクリックしOSイメージを選択→[スタート]ボタンをクリックします。
    ※microSDHC以外の接続はしないこと。中身を削除されちゃうかもしれないので。

以上で終了。スタート]ボタンを押す前と、書き込み完了後のログ表示画面は次のようになっています。

20161027001082016102800110

不良ブロックの検出を有効にすると、チェックにかなりの時間がかかりますが、あとで不良ブロックに泣くのであれば先にチェックをしておいた方が吉。

 

2016/10/28 9:33 追記
2016102800111後は Orange Pi PC の到着を待つだけです。日本着荷はなっているので、税関を通って数日後には届くと思うんですけどね。
※ケースは、まだ Tracking Information に載らない...

2016年10月26日水曜日

Orange Pi で自宅サーバ 準備編(お買い物)

以前から自宅鯖計画はあったのですが、中古のノートPCでもそれなりに消費電力があるのと奥さんにバレバレなのがネックで踏み切れませんでした。

Raspberry Pi だったら小さいし消費電力も少ないのですが、お値段的に自宅鯖はなくてもいいかなと我慢しておりました。

類似品(?)で安くていいのはないかなと探していると、Orange Piなるものが。送料込みで$18.15、(今は円安に振れているけど決済時に円高になっているといいな。)日本円で 2,000円以内で買えそうです。

ファン付きケースはケチって別業者から買っています。たかだか数ドルの違いなので、同じ業者にしておけば良かったかなと少々後悔... 100均のプラケース加工でもよかったかもしれません。

2016102700105

さて、Orange Pi が届くまで少々日数がかかるので、事前準備として動作に必要なものを購入しておくことにしました。

【電源】

161027-121347


5V 2Aのアダプタは手持ちで余っているものがあったので、千石通商へ EIAJ#2 のL型プラグを購入に行きました。(秋月電子はストレートのみのようだったので)

入り口に UNIFIVE UIA324-05 が 300円(税込)で鎮座しているではありませんか! 少々背面が最近のものと比べて寂しい気もしますが問題なしと判断し 1台ゲット!

めがねケーブルは付属しませんが、手持ちがあるので無問題。

【ストレージ】

161027-121518


ストレージ用に 32GBの microSDHC を新規購入。数100円のプラスで Read 90MB/s 品も買えますが、Orange Pi ではそこまでスピードも出ないと思うので48MB/s 品にしました。

 

 

 

【温度計】

2016102700106


I2O の温度測定用モジュール。動作に必須ではないのですが、Orange Pi が動作時に熱くなるらしいので室温とどれ位差異があるか比較用にアマゾンで購入してみました。

2016年10月19日水曜日

無線LANの出力設定 (dBm と mW)

WZR-HP-AG300H を OpenWrt から Proファーム(米バッファロー製dd-wrt) に入れ替えました。

無線LANの出力設定なのですが、WHR-300HP2 は素直に mW 指定でしたが、WZR-HP-AG300H の場合はdBm での指定です。同じ米国バッファロー製の dd-wrt なのですが、微妙なところで違いがあるものですね。

さて、dBm で○○が mWだと△△なのかさっぱり分かりません。OpenWrt ではdBm と mW が並列表示されていたので、備忘の意味を込め記録しておきます。

mW

1

2

3

5

6

7

10

12

15

dBm

0

4

5

7

8

9

10

11

12


mW

19

25

31

39

50

63

79

100

 

dBm

13

14

15

16

17

18

19

20

 

ちなみに、日本の場合は 10mW が上限になので、dBm指定でも 10が上限ですね。

2016年10月17日月曜日

WZR-HP-AG300H、デバッグモードに入り telnetdを起動

前提条件としてファームウェアが 1.73以下であること。(1.74からはデバッグモードへのログインが塞がれています。) 何で入れないのかファームのせいだと気がつくまで丸一日かかりました...

1.74 以上の場合はダウングレードする必要があります。(ダウングレードの方法はこちらを参考に。)

  1. 通常のログイン画面で
    ユーザ名:bufpy
    パスワード:otdpopy+ルートのパスワード (パスワード未設定時は otdpopy だけで ok)
    を入力。
    2016101900078
    を入力。
  2. 一見通常のログイン画面ですが、
    2016101900080
  3. 管理タグをクリックすると [設定]ボタンに下にデバッグ用のリンクが表示されるので、55debug.htmlをクリックします。
    2016101900079
  4. 今回は telnetd を起動させるのが目的なので telnetd をクリックします。
    2016101900081
  5. [start]ボタンをクリックして telnetdを起動起動させます。画面は勝手に遷移するのでほうっておいて ok。TeraTerm等で telnet でのログインができるか確認してください。
    2016101900082
  6. Proファーム(米バッファロー製 dd-wrt)はデバッグモードの firmup.html から更新をすれば問題なく気もするのですが、後々の更新を考えリージョンコードを JPから USに変更しておきました。telnet接続した端末から
    # ubootenv set region US
    を実施。
  7. 確認用に ubootenv list を実行。

    # ubootenv list
    bootargs=console=ttyS0,115200 root=31:03 rootfstype=jffs2 init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),1152k@384k(uImage),6592k@1536k(rootfs),64k@320k(ART),64k@8128k(properties),8192k@8192k(flash1),16384k@16384k(flash2)
    bootcmd=bootm BF060000
    baudrate=115200
    ethaddr=02:AA:BB:CC:DD:20
    ipaddr=192.168.11.1
    serverip=192.168.11.2
    fw_eaddr=BF060000 BEFFFFFF
    uboot_eaddr=BF000000 BF03FFFF
    u_fw=erase $fw_eaddr; cp.fw $fileaddr BF060000 $filesize; bootm BF060000;
    ut_fw=tftp $tmp_ram firmware.bin; erase $fw_eaddr; cp.fw $fileaddr BF060000 $filesize; bootm BF060000;
    ut_uboot=tftp $tmp_ram u-boot.bin; protect off $uboot_eaddr; erase $uboot_eaddr; cp.b $fileaddr BF000000 $filesize;
    melco_id=RD_BB10020
    hw_rev=0
    tftp_wait=4
    uboot_ethaddr=02:AA:BB:CC:DD:20
    DEF-p_wireless_ath00_11bg-authmode=psk
    DEF-p_wireless_ath00_11bg-crypto=tkip+aes
    DEF-p_wireless_ath00_11bg-authmode_ex=mixed-psk
    DEF-p_wireless_ath10_11a-authmode=psk
    DEF-p_wireless_ath10_11a-crypto=tkip+aes
    DEF-p_wireless_ath10_11a-authmode_ex=mixed-psk
    custom_id=0
    buf_ver=1.00
    tmp_ram=84000000
    tmp_bottom=88000000
    build_date=Jun  1 2010 - 13:48:44
    DEF-p_wireless_ath00_11bg-wpapsk=ys5p4ht3x473t
    DEF-p_wireless_ath10_11a-wpapsk=ys5p4ht3x473t
    pincode=15769701
    stdin=serial
    stdout=serial
    stderr=serial
    buf_crc=7B118589
    region=US
  8. あまり意味のない気もする mtdパーティションのバックアップ。(起動時にUSBメモリー等を挿しておかないと USBデバイスを認識しないので注意。)

    # cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 00040000 00010000 "uboot"
    mtd1: 00010000 00010000 "uboot_environ"
    mtd2: 00100000 00010000 "linux"
    mtd3: 01e90000 00010000 "rootfs"
    mtd4: 00010000 00010000 "user_property"
    mtd5: 00010000 00010000 "ART"
    mtd6: 01f90000 00010000 "firmware"
    #
    #  ls /dev/mtdblock
    0  1  2  3  4  5  6
    #  dd if=/dev/mtdblock/0 of=/mnt/usb0_0/wzr-hp-ag300h_mtdblock0.bin

    #  dd if=/dev/mtdblock/6 of=/mnt/usb0_0/wzr-hp-ag300h_mtdblock6.bin

WZR-HP-AG300H を tftp で純正ファームに戻す

WZR-HP-AG300H の純正ファーム戻しですが、色々いじっていたら  tftpコマンドで百発百中の方法を見つけました。備忘の意味を込め記載しておきます。

事前準備として PCの設定を

  • IPアドレス:192.168.11.2 に設定。
  • Windowsファイヤーウォールを無効(tftpを通す設定にしてもいいと思いますが、一端無効にして作業後に有効にするのが簡単だと思います。)
  • netsh コマンドでARPキャッシュへの静的エントリを登録。
  • バッファローのサイトから WZR-HP-AG300H用のファームを入手し、適当なディレクトに入れておく。(ヘッダーの加工とかしなくて okです。というより、暗号化されているのでいじれない?!)

しておきます。arpコマンドで設定している例も見かけましたが、Windows7 (Vista以降?)では arpコマンドによる静的エントリの登録はできません。次のようにして netsh コマンドで登録を実施しました。

  1. 管理者モードでコマンドプロンプトを起動。
  2. netsh interface ipv4 show interface と入力し Enterキーを押下。こんなのが表示されました。

    Idx     Met         MTU          状態                 名前
    ---  ----------  ----------  ------------  --------------------------
    1          50  4294967295  connected     Loopback Pseudo-Interface 1
    16          25        1500  connected     ワイヤレス ネットワーク接続
    18           5        1500  disconnected  ワイヤレス ネットワーク接続 2
    17          10        1500  connected     ローカル エリア接続 2
  3. netsh interface ipv4 set neighbors "インターフェース名" "IPアドレス" "Macアドレス" で設定しますので、自分の場合だと

    netsh interface ipv4 set neighbors "ローカル エリア接続 2" 192.168.11.1 02-aa-bb-cc-dd-20

    と入力し、Enterキーを押下
  4. arp –a で確認。(設定はできないけど、確認・削除はできる...)
    静的登録ができていればokです。

Macアドレスの 02-aa-bb-cc-dd-20 ですが、サンプル例ではないです。起動時リカバリ用(?)に10数秒セットされる機種固定の Macアドレスになります。無線LANルータ底面に記載されている機器の Macアドレスを設定するといった書き方を指定したブログもありますので、もしかすると機器に振られたユニークな Macアドレスでも問題ないのかもしれません。

次に tftp による標準ファームへの戻し方です。猶予時間は WZR-HP-AG300H が tftp の要求をしてから 4秒ほどですので、事前にバッチファイル等作成し Enterキー一発で流し込める準備をしておきます。自分はこんな内容でバッチファイルを作っておきました。

netsh interface ipv4 set neighbors "ローカル エリア接続 2" 192.168.11.1 02-aa-bb-cc-dd-20
arp -a
tftp -i 192.168.11.1 put wzrhpag300h-173

最新ファームの 1.75 ではなく 1.73 で戻しているのはデバッグモードを有効にしたいからです。1.74以降は bufpy /  otdpopy でのログインは脆弱性に当たるためか無効化されていますので。

では tftp による純正ファーム戻しを実施します。

vs161017-001


DCプラグを差し込み、電源を入れます。

よく見えないかもしれませんが、USB~LAN~WANポート上の LEDが 薄く光ります。

 

 

vs161017-002


全てのLED が消えた後、USBコネクタ部の LED が点灯します。

 

 

 

vs161017-003


USBコネクタ部の LED が消えた後、LAN~WANポート部のLED が点灯します。

 

 

 

vs161017-004


LAN~WANポート部のLED が消えた後、PCと接続しているLANポートの LEDが点灯します。

ここから 4秒間が受付時間です。tftp による流し込みを行います。

 

概ね3~4秒で転送が完了、その後再起動・再構築が走りますので 6分ほどお待ちください。Diagランプがチカチカが消え、デフォルトの SSID が飛んでいれば完了です。

arp –d 192.168.11.1 で静的エントリを削除するのをお忘れなく。実際の運用で使う Macアドレスとは別物なので、削除を忘れると WZR-HP-AG300H にアクセスできなくなってしまいます。

2016年10月16日日曜日

WHR-300HP2 にイーサネットコンバータ用の設定をする

dd-wrt wiki の設定通りです。特に難しいことはしていないです。Client Bridge が望むべき設定だと思うのですが、WHR-300HP2 に入れたファームでは選択できません... 無い物ねだりをしても仕方がないので、Repater Bridge の設定でどこまでできるか試してみることにします。

プライマリ機(親機)の設定に合わせる項目が多いので、プライマリ機の設定を再確認しておくと作業が進めやすいです。

  1. 設定を初期化します。 (30/30/30リセットをします。)
  2. 設定用のPCに固定アドレスを振ります。WHR-HP2D化しているので、デフォルトのネットワークセグメントは 192.168.11.0/24 (本家dd-wrt は 192.168.1.0/24です、ご注意ください。以降第3オクテットは適宜読み変えてください。)
    自分は192.168.11.2 を PCに設定しました。 設定後、WHR-300HP2 の LANポートにPC を接続します。WANポートと間違えないよう注意しましょう。
  3. ブラウザから 192.168.11.1 にアクセスします。WHR-HP2Dの場合は、セットアップ画面が走りますがキャンセルしてください。手動で全てを設定します。
  4. Wireless → Basic Setting タブを選択します。
    Wireless Mode Bridge
    Wireless Network Mode プライマリ機と合わせてください。自分は Mix
    Wireless Network Name(SSID) プライマリ機のSSIDを指定してください。自分は WM3500R-G
    Wireless Channel チャネルを指定してください。Auto か固定で。自分は 11ch
    Wireless SSID Broadcast Enable
    Network Configuration Bridge

    設定が完了したらsaveボタンをクリックします。

    下の図は dd-wrt の wiki に Virtual Interface Section の追加があったので、add をクリックした後の図になります。自分の場合はVirtual Interface Section の追加はいらなかったです。一度設定はしたものの、後で削除しました。
    20161012223057
  5. Wireless → Wireless Security タブを選択します。
    Physical Interface の設定だけで ok です。プライマリ機に合わせてください。Virtual Interface の設定もしていますが、4. で書いた通り後で削除しましたので、ここでの設定は意味は無いです。
    Key の確認で umaskにチェックを入れ、実際に何が入力されているか確認をしておくと良いです。

    設定が完了したらsaveボタンをクリックします。
    20161012220012
  6. Security → Firewall タブを選択します。
    wiki ではチェックを全部外せと書いてありますが、SPI firewall の disable ラジオボタンをクリックすると全部消えます。

    設定が完了したらsaveボタンをクリックします。
    20161012222701
  7. Setup → Basic Setup タブを選択します。
    Repater Bridge機のネットワーク設定をします。wikiでは DHCP Server:Disable と書かれていましたが、自分は DHCP Forwarder を選択しました。今のところ問題なく DHCP の払い出しを親機からもらえています。
    NTPに関してはお好きな設定で。

    設定が完了したらsaveボタンをクリックします。
    20161012222344
  8. 再起動をして接続の確認をしてください。

以上で終了です。

Screenshot_2016-10-12-23-47-29


やりたいなと思う動作はしているのですが、Repater ということで同じSSIDを吐いています。Virtual Access Point の設定をしていたときは、さらに Virtual Access Point の SSIDが...

当然ですが、干渉をしているので速度的には不利な状態です。ローミングをしてくれるので便利なのかもしれませんが...

 

後、WZR-G54 の受信感度が悪いと仮定し機器入替を思い立ったのですが、親機とどれ位のシグナルで通信しているのか確かめる方法が見つかりません。少なくとも GUI上からは確認のしようがなかったです。

WDS で接続していると、親機との通信状態が見られるようなので、Repater Bridge ではなく WDSで接続のテストを近々してみようと思います。

2016年10月12日水曜日

WHR-300HP2 を tftpサーバ経由で純正ファームに戻す

デバッグモードがあるか否かを確認するために、ヘッダを加工した純正ファームを linux へ書き込んでみたところ、何かヘマをしたのか brick してしまいました。形状的に文鎮というよりは硯といったところか...

PCから tftpによるファーム転送で復帰を試みましたが、WHR-300HP2 を起動してから流し込むタイミングが全然分かりません。一縷の望みを託し、WHR-300HP2 から tftpサーバのファームを読み込ませて復活が可能かを試してみました。

普段使いの OS は Windows7 です。Windows系OS ですと亡き 3Com の 3CDeamon or tftpd32(or tftpd64)あたりがポピュラーなところでしょうか。自分は以前から使用している 3CDeamon を使用しました。グーグル先生に尋ねるとありかを教えてくれると思いますが、自分用共有を含めこちらに置いております。

tftpサーバの設定を

  • IPアドレス:192.168.11.168
  • ファイル名:firmware_WHR-300HP2.ram
  • Windowsファイヤーウォールを無効(tftpを通す設定にしてもいいと思いますが、一端無効にして作業後に有効にするのが簡単だと思います。)

にしておきます。

転送するファイルは色々試してみましたが、日本用の純正ファームヘッダ加工版以外は転送に成功しても正常に起動しませんでした。

WHR-300HP2 を AOSSボタンを押しながら起動します。どれ位 AOSSボタンを押すかですが、自分の場合は 5秒ほど押し続け、その後 AOSSボタンを離しました。WireShark でキャプチャーしたところ、AOSSボタンを離して 2秒後ぐらいに WHR-300HP2 から接続要求が来て 3~4秒ほどで転送が開始されました。

この後、WHR-300HP2 の再起動・再構築が走りますので 6分ほどお待ちください。Diagランプがチカチカが消え、デフォルトの SSID(Buffalo-G-AA08) が飛んでいれば完了です。その後、30/30/30リセットも忘れずに実行しておきましょう。

2016101200101

調子に乗って色々いじり、もう駄目かと思いましたが無事復活して嬉しい限りです。

2016年10月10日月曜日

WHR-300HP2 に dd-wrt をインストールする その4(完了)

WHR-300HP2D化ができそうと思ったのは 2ch で次の書き込みを見たときでした。

【無線LAN】DD-WRT【強化ファーム】11

312 :anonymous@234.191.232.111.ap.yournet.ne.jp:2015/10/18(日) 14:20:02.34 ID:bqekYTAa
ちょっとBUFFALOの方のスレに書き込むべきか迷うけど
WHR-300HP2のファームウェアを元に戻すのに成功した
純正ファームをダウンロードしてuImageのヘッダ部分(0x27051956)が先頭に来るようにして
あとはmtdコマンドでラベルがlinuxの奴に書き込めばいい

元のファームを WHR-300HP2D用のにしてしまえばサクッといくかなと。失敗して brick したときは潔く諦めることにします。

一応 mtd3 とその1 でインストールしたファームのヘッダ加工版を比較した限り一致しておりましたので、ヘッダの加工をしたファームを linux に書き込めば問題なさそうです。

whr300hp2d-v24sp2-30354.bin のヘッダを加工し、whr300hp2d-v24sp2-30354_mod.bin という名前で保存しました。

WinSCP で /tmp へ送り込んだあと、TeraTerm等で WHR-300HP2 へ ssh接続をし

mtd write whr300hp2d-v24sp2-30354_mod.bin linux

を実施。

Unlocking linux ...
Writing from whr300hp2d-v24sp2-30354_mod.bin to linux ...  [w]

が表示され、しばらく待った後にプロントへ戻ったら reboot コマンドで再起動。念のため 30/30/30リセットもしておきました。

2016100800088 2016100800089

最初に起動したときには Setup Assistant が走るようですね。手動で色々設定するので、この画面はパス。デフォルトの設定が表示されています。

この後、イーサネットコンバータ用の設定を行う予定です。WHR-300HP2D化はこれにて完了です。

2016年10月9日日曜日

WHR-300HP2 に dd-wrt をインストールする その3

dd-wrt のハードリセットをしておくと、変な情報が残らないので後々の設定保存・運用にいいらしい。ということで、リセットの方法を調べてみました。

30/30/30リセット

スーパー意訳です。自分の英語読解力は弱いので参考程度に。
次の手順で NVRAM をクリアし、dd-wrt にデフォルト値を設定します。

  1. 電源がオンの状態で、30秒間リセットボタンを押し続ける。
  2. リセットボタンを押したまま電源をオフにし、30秒間リセットボタンを押し続ける。
  3. 電源をオンにして、30秒間リセットボタンを押し続ける。

WHR-300HP2 はスクウェア筐体なので前面部を下にし、シャーペンの先等でリセットボタンを押しっぱなしにします。
電源オフ→オンはDCプラグの抜き差しで実行しました。

 

【NVRAM backup file only 8 bytes】

  1. 設定復元するファイルを dd-wrt で作成。
  2. そのファイルををバイナリエディタで先頭のヘッダ8byte分だけに加工。
  3. そのファイルで設定を復元。

2016100800087
ファイルの内容はバイナリエディタではDD-WRTとしか書いてない内容のファイルになるはず。 (そのあとに 33 05 0B が続いていますが...)

 


WebUIから加工したファイル読み込ませて復元すると

  1. 20秒ほどで再起動が発生
  2. 20秒ほどで復帰

ぐらい時間がかかります。初期化されるので、場合によってはセグメント違いでPCのIPアドレスを再セットしないとアクセスできない場合がありますので注意してください。

8byteクリアした場合は 2~3分放置してから 30/30/30 リセットをするといいかも。

8byteクリアと 30/30/30リセットできれいな状態になったところをフェーズ3 として終了します。

WHR-300HP2 に dd-wrt をインストールする その2

ssh で接続し、WHR-300HP2 の調査(?)をしてみました。

root@DD-WRT:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "factory"
mtd3: 005b0000 00010000 "linux"
mtd4: 00696000 00010000 "rootfs"
mtd5: 00200000 00010000 "ddwrt"
mtd6: 00100000 00010000 "User_CFG"
mtd7: 00010000 00010000 "nvram"

次の方法でパーティションの丸ごとバックアップをしました。

  1. ddコマンドでパーティションを丸ごとコピー
    dd if=/dev/mtdblock/0  of=/tmp/whr-300hp2-mtdblock-0.bin
    ...
    dd if=/dev/mtdblock/7  of=/tmp/whr-300hp2-mtdblock-7.bin
  2. WinSCP で PCに転送

u-boot から u-boot-env の内容を読み込んで起動するらしい。(間違っていたら教えてください。) ということで u-boot-env の内容を strings で表示させてみました。

bootcmd=tftp
bootdelay=1
baudrate=57600
ethaddr="00:AA:BB:CC:DD:10"
filesize=408bee
fileaddr=80A00000
ipaddr=192.168.11.1
serverip=192.168.11.168
autostart=no
bootfile=firmware_WHR-300HP2.ram
inspection=0
stdin=serial
stdout=serial
stderr=serial
pushaoss=0
bootloader_ver=3.00

tftpサーバを立ててファイルを読み込ませるには

  • ファイル名をfirmware_WHR-300HP2.ram
  • tftpサーバのアドレスを 192.168.11.168

にしておけば良さそうですね。tftpサーバを見に行かせるにはAOSSボタンを押しながら電源を入れる必要があるようです。試す気は無いですけど。

よくある復活時に指定する MACアドレスは 00:AA:BB:CC:DD:10 をでよさそう。

  • arp -s 192.168.11.1 00-AA-BB-CC-DD-10
  • tftp -i 192.168.11.1 put {ファームファイル名}

ただし、bootdelay=1 ってのが気になります。1秒しか待ってくれないのだとすると、tftp での復活は無理ですよね。printenv  とか ubootenv list が入っていなかったので、実際の値は確認できていませんが...

なんだったらバックアップしたファイルをバイナリエディタで 5 辺りに書き換えて /dev/mtdblock/1 に書き込んでおくといいのかもしれません。

2016100300084
tftp用のファームは dd-wrtのサイトから落とすのだったら firmware.uimageを使用、既存のファームを使うのだったらヘッダーの改変が必要です。hex で 27 05 19 56 でから始まるようにバイナリエディタ等で修正します。

 

 

最終的に導入予定の米国バッファローの WHR-300HP2D のファームだと上の図の黒反転している部分を削除すれば okですね。

ヘッダー改変版ファームを作成したところまでをフェーズ2 として終えることにします。

2016/10/17追記
 dd によるパーティションのバックアップをしてみましたが、純正ファームの状態ではないのであまり意味がない気がします。戻しも u-boot と u-bootenv が生きていれば何とかなるようですし。

2016年10月8日土曜日

WHR-300HP2 に dd-wrt をインストールする その1

WZR-HP-AG300H の 2台目をゲット。おまけで WHR-300HP2 も付いてきました。WZR-HP-AG300H へは先日 OpenWrt をインストールしたので、目先を変え WHR-300HP2 で遊ぶことにしました。

本来でしたら WHR-300HP2 へも OpenWrt をインストールした方が OSを統一できてよいのですが、調べてみると WHR-300HP2 への OpenWrt インストール成功例がありません。2ch では brick した例が...

米国バッファローでは WHR-300HP2D という名の WHR-300HP2 に dd-wrt を入れた機種が発売されていたようです。dd-wrt は安定度今ひとつの感もありますが、メーカ純正(?)であれば安定している気がします。ファームのバージョンアップも続いているようですし。

最終ゴールを WHR-300HP2D化することに決め、色々いじって遊んでみました。

インストールの方法ですが、lasasさんのbuffaloのWHR-300HP2をdd-wrt化する。に記載の通りで問題無くインストールができました。

  • ユーザ・パスワードの設定
  • 出力を 10mWに変更(デフォルト71、電波法違反)
  • sshdを有効にして sshでのログイン、WinSCP でのファイル送受信ができることを確認

ここままでをフェーズ1 として終えることにします。

バッファロー純正ファームでのwebからのファーム更新では WHR-300HP2D のファームは受け付けてもらえませんでした。

DD-WRTまとめwikiのBuffaloルータのデバッグモードを参考にデバッグモードがあるか否かを確認したのですが、WHR-300HP2 にはデバッグモードは存在しないようです。

2016/10/11 追記
 
dd-wrt で確認していました... 純正ファームで確認しないと駄目ですね。実際にはあるかもしれません。

2016/10/12 追記
  純正日本語ファームで確認しました。やはりありませんでした。ただし、最新の Ver.2.20 で試したので、もしかすると古いファームだったら存在している可能性もあります。試すのが面倒なので他力本願モード。

さらに残念なことに、WZR-HP-AG300H より発売時期が新しいので、筐体のHUBはギガビット対応かと思ったら10/100M対応なんですね orz

2016年10月7日金曜日

WZR-HP-AG300H にOpenWrt をインストールする その2

TV、プリンター等の接続用途に古いバッファローの無線ルータに Tomato を入れ、イーサネットコンバータとして使っています。使用している機器は次の通りになります。

  Platform RAM / Flash WLAN NIC   発売時期
WZR-G54

Broadcom4704 @ 264 MHz

16MB / 4MB Broadcom b/g 2004年 7月中旬
WHR-G54S Broadcom5352 @ 200MHz 16MB / 4MB Broadcom b/g 2005年8月中旬

表に起こしてびっくり。10年以上前の機種ですが拙宅の環境では超安定稼働しています。Broadcomのチップを使った機種は鉄板ですかね。もっとも、凝った使い方はせずイーサネットコンバータとしてだけ使っているからかもしれませんが。

OpenWrt化したことにより、メーカ製ファームよりも色々と情報が見られることが分かりました。イーサネットコンバータ化している機器との接続情報を見てみることにします。

SSID はWiMAX用無線ルータを使っていたときの名残です。変えてもいいんだけど、台数が多いので面倒ということあり、死ぬまでこのまま使い続ける予定です。

20161006234702

機器の情報は

機器名 MAC IPアドレス 設置場所
WZR-G54 00:0D:0B:32:B4:3A 192.168.11.247 2階
WHR-G54S 00:16:01:8F:E8:A0 192.168.11.248 1階

です。OpenWrt で固定アドレスが正しく表示されないのは何ででしょう? WHR-G54S は下にぶら下がっている TVへ払い出したIPアドレスになっています。ゆくゆく調べることとして、今はこのままにしておきます。

WZR-HP-AG300H は1階に設置しているので、WHR-G54S との接続は -47dBm前後と問題ないレベル。懸念だった 2階に設置の WZR-G54も -62dBm前後ですのでこちらも ok。

ところが WZR-G54・WHR-G54S 側で受信レベルを確認してみると WZR-G54 は-82dBm前後と安定接続ギリギリの数値。個人的には-80dBmを超えると注意、-85dBmを超えると不安定と思っています。

20161006234510

20161006234532

 

160925-122917
WZR-G54の受信レベルが低いので、ちょっと対策を取ってみました。大分前に秋月電子で買ってあった 2.4GHz帯用ヘリカルアンテナを付けてみることにしました。

うたい文句では大幅ゲイン! のはずだったのですが、2dBm程度の感度アップはするものの、期待値には届かず。

 

 

古い機種ということもあり、感度が悪いのは機器の受信回路のためと仮定。イーサネットコンバータ用に、もう1台 WZR-HP-AG300H を購入することにしました。

2016年10月6日木曜日

WZR-HP-AG300H にOpenWrt をインストールする その1

docomo様から頂いた WR8166N を使って家庭内無線LAN環境を構築しておりました。おそらく WR8166N のファームを更新した辺りだと思うのですが、どうも送信出力が弱くなったように感じます。数値データは無いので、体感的にですが。

それを裏付けるかのように嫁さんから「ノートPC(ThinkPad T400)がインターネットに繋がらなくなったんだけど。」と不満の声。狭いながらも二階建ての我が家、一階で使う分には問題ないのですが二階では電波強度が落ちているようです。

Screenshot_2016-09-27-23-53-55


都内23区住まいなんですが、拙宅も含め戸建てがほとんどの環境かつジジババが多いせいか電波環境は非常にきれいなものです。

ほとんど自分用に空間が空いているようなもの。電波干渉で受信感度が悪くなっていることはなさそうです。(というか、今まで問題は出ていなかった。)

左の Wifi Analyzer の画面コピーは無線LANルータ交換後ですが、交換前も同じ電波環境でした。

 

 

 

単純にハイパワータイプの無線LAN親機を買ってきて交換すればokなんですが、どうせだったらいじれる無線LANルータを買ってOpenWrt or dd-wrt でも入れてやろうかなと。

調べてみると、最近は OpenWrtの方が安定していてよろしいらしい。WZR-HP-AG300H が鉄板とのことなので、ヤフオクで入手することに。1,000~1,500円程度が相場。ヤフオク用の期間限定ポイントもあったので即決1,500円を落札しました。+送料500円 -ポイント800円、差し引き 1,200円で入手。

インストールは

【無線LAN】OpenWrt【強化ファーム】12 [転載禁止]©2ch.net   

113 :anonymous@221x254x52x163.ap221.ftth.ucom.ne.jp [] :2015/11/01(日) 16:30:55.66 ID:qKfgp7HS

ag300hにopenwrtがあっさり導入できたから手順残しとく。
tftpとか一切いらね。

1. openwrtの取得と書き込み
https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/openwrt-15.05-ar71xx-generic-wzr-hp-ag300h-squashfs-factory.bin
をダウンロードして公式Web管理画面からファームウェアの更新をするだけ
factoryというファイル名は公式からのアップデート用

2. openwrt導入後の初期設定
導入後は無線が無効になるので、有線で接続する。
ルータのIPアドレスが、192.168.1.1に変わっているので、
下記URLでルータにアクセスし、rootでパスワードなしでログイン後、passwordを設定
http://192.168.1.1/

3. WIFI有効化
Network→WIFIを開く
Generic MAC80211 802.11bgn (radio0) 2.4GHzをEnableする。
そしてEditを押して、元のインタフェース情報を入力
SSID: XXXXX_Gは2.4GHz用、XXXXX_Aは5.0GHz用
KEY: WPA2にして裏面のキーを入力

4. 公式ファームにもどしたいとき
LuCI画面から公式ファームをアップデートするだけ

の通りに実施。あっけなく終了。

嫁のノートPCの受信強度も上がり、目出度し目出度し。