RouterBoard RB250GSと新製品RB260GS

日本では代理店がないので、ほとんど無名ですが、ラトビアにあるMikroTikという会社は、無線APを含め、いろいろなSMB向けルータ製品「RouterBoard」を出している。
2008年頃まではボード(基板)とケースを別に販売していたが、2010年ぐらいからケース一体型での販売に切り替わっているという感じである。

また、ルータ製品だけではなく、スイッチ製品の販売も行っている。

RB250GS」というのが初代スイッチ製品なのだが、こちらがこの度モデルチェンジするようである。

新機種は「RB260GS
違いは、以下の2点であるようである。
・ネットワークチップが「Atheros AR8316」から「Atheros AR8327」に切り替わったこと。
・SFPモジュールの増設も可能になったこと。

スペックを比較する限りでは、Atheros AR8316の製造中止が原因でモデルチェンジ、という感じです。

CPU: Taifatech社TF470
RISC TF-390コア 50MHz
L2/L3/L4、NATルータ
組み込みだと10/100Mbpsのみ対応。1000Mbps対応は外部チップ必須。
TA-470wrというブロードバンドルータ基板のOEM提供も行っている。

ネットワーク: QUALCOMM社のAtheros AR8327
5ポートの1000Mbpsを持てる
タグVLANとかサポート。

さて、RouterBoardですが、OSはRouterOSもしくはSwOSという独自のものを使っています。
ベースはLinux 2.6で、そこにルータやスイッチとして使いやすい様にGUIおよびCLIを搭載しているというものです。

スイッチモデルのRB260GSが$39.95、ルータモデルのRB750GL(CPU 400MHz)が$59.95、無線AP付きのRB951G-2HnD(CPU 600MHz)が$79,95、という値段をどう考えるかというところ。

マニュアルに掲載されているいろいろは興味深いところ。

なお、RouterboardのRB400番台、RB700番台は、OpenWRTが載る。
WOLFS TECH BLOG:OpenWRT on Mikrotik Routerboard 411/750

firmware書き換えは標準firmwareを一から再インストールする際と同様にtftpで行うが、Mikrotikから提供されている「Windows用のGUIツール」を使うと簡単そうである。

TOOKY T1982を使う

まあ、日本にTOOKY T1982を買うユーザがどれだけいるかわかりませんが、いろいろ調べた結果を書いておく。

・adbで接続できないように見えるがちょっとした設定追加でok
adbを実行するユーザのホームディレクトリにある.androidというディレクトリ(C:\Users\ユーザ名\.android)内に「adb_usb.ini」というファイルを作成し、「0x4BB0」と書いておくと使える。
なお、adb_usb.iniは標準状態では存在しない。
また、adb_usb.ini書き換え後は、adbを再起動するために「adb kill-server」を実行すること。

ロシアの掲示板に「0x4BB0」接続用に改変されたadb.exeがあるので、それを使っても良い。
「ADB」ってところの「1. Скачиваем – download/file.php?id=46316」がそれ。

・Android 4.0/ICSへのアップデートは期待薄
試しにGoophoneとかGodPhoneのfirmwareを書いてみたら、画面表示はできるけど、タッチパネルが動かないものが出来た。
調子にのってLenovoのfirmwareを書き込んだら、電源も入らなくなった。
TOOKY T1982を分解してみた」にあるような感じで中身を開けて、ごにょごにょやってたら、認識するようになって、復帰できました。
(firmwareが変なのになると、メンテナンスモードで起動するキー入力が効かなくなるので、基板上のテストポイントを直接つついてメンテナンスモードに入らせる、という強攻策。ネタ元:[GUIDE] How to ‘unbrick’ your Mediatek MT65xx”>[GUIDE] How to ‘unbrick’ your Mediatek MT65xx

・framework.odexを書き換えないとIIJmio SIMとかを使えない
ドコモMNVO系でデータ通信のみのIIJmio SIMとかB-mobileなどでは、そのままの状態で3G通信を行うことはできません。(これはMTKチップ採用している端末全般について当てはまります)
ブローヴちゃん:「Android + b-mobile データ専用 SIM で電界強度を表示する」に記載されているような対策を実施する必要があります。
なお、T1982のframework.jarはodex化されているので、ブローヴちゃんで配布されているバッチファイルは使用できません。

・SP Flash Toolは新しいのを入手しておくべし
MTKチップ汎用で使えるので、SP Flash Toolは、MT6577とかMT6589とかに対応している新しいものを使っても問題ない。
Универсальные инструкции по прошивке MT6575/77 устройств」の「Руководство по прошивке с помощью SP Flash Tool для всех MT6575/77 устройств, кроме устройств на базе проектов AGold」を開けたところに「Программа SP Flash Tool. SP_Flash_Tool_v3.1224.01.」とダウンロードリンクがある。

・IMEIが飛んだらMTKdroidToolsで直せる
SP Flash Toolとかでfirmwareを書くとIMEIがinvalidになる場合がある。
そういった場合に備えて、現状のIMEIの値はきちんと記録しておくこと。
MTKdrodToolsについては「MTK系Android携帯でIMEIが消えた時の対処方法」を参照のこと。

・オリジナルのfirmwareは入手可能
ロシアの掲示板にある。
最新は

・rootはツールじゃ取れない。firmware書き換え必須
これもロシアの掲示板にroot取得済みと思われるファイルがあるが、ロシア語がうまく解読できず、よく分からなかった。
いろいろ試した結果、最終的に、boot.imgをばらしてdefault.propを書き換えてadb接続したらrootユーザになるようにした後に、普通に起動させて、/systemをrw,remount&su関連を入れる、という手段をとった。

初期のdefault.prop

#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
persist.mtk.aee.aed=on
ro.debuggable=0
persist.service.adb.enable=0

書き換えたdefault.prop

#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=0
persist.mtk.aee.aed=on
ro.debuggable=1
persist.service.adb.enable=1

・FMラジオはあるけど、日本では使えない
いまのところ、FMラジオを日本の周波数帯で使える様にできる改造方法を発見できていません。

fastcardtechで旧正月セールだってさ

fastcardtechで「2013 Newyear super Free gift big promotion」を行うそうだ。

旧正月に入るので、2/2~2/15は休みで、その間の発注は2/18~2/22ぐらいで発送します。
それじゃ申し訳ないんで4つのキャンペーン

1つ目
150ドル以上の買い物で4.5ドルの割引となるクーポン「528888」

2つ目
100ドル以上の買い物をした人に以下の3つが入ったギフトをプレゼント
・1 Free 24K Gold Plating Anti-Radiation Sticker
・1 Free wood birds Phone chain
・1 Free Micphone design Anti-dust Plug Cap( Also Stylus touch pen )

3つ目
もし一度に8800ドル以上を買った人にはもれなくiPad Mini Wifiモデル
12000ドル以上だったらiPhone5 16GBをプレゼント

4つ目
抽選で合計16人に豪華プレゼント
16人の内訳は・・・
・3 buyers will get free iphone 5 (16GB) 3pcs
・3 buyers will get freeSamsung Galaxy note 2 3pcs
・2 buyers will get freeSamsung Galaxy S3 2pcs
・4 buyers will get freeiPad Mini(wifi) 4pcs
・4 buyers will get freeNew iPad 2(wifi) 4pcs
当選の発表は2/30。

さすがに3つ目のは無理だけど、中華スマホに興味があるけど、まだ買ったことない、という人は頼んでみてもいいんじゃないでしょうか?

ちなみに、「発送しました!」という連絡が来てから、配送記録で追えるようになるまで2~3日かかるのが普通なので、焦らないでくださいね。

で・・・何を買ったらいいかは難しいですねw
狙いどころは「Free Shipping」の品物です。

現状、金欠なので買えないのが悔しいんですが、注目しているところとしては以下があります。

・iPhone5もどきのMTK MT6577搭載機
いろいろあるなかで、比較的一般的なGoophone i5 pro。

いい感じのfirmwareが手に入らない感じもするSophone i5 Lte
(LTEが使えるわけではない)

・ふつーのMTK MT6577搭載機としては
防水Lenovo A660

防水じゃないのはLenovo A800

・Tegra3搭載機
Quad core,Tegra3の中でも安いK-Touch V9

値段的にはもっと安いんだけど、ほんとにTegra3か怪しいというのとfirmwareが入手できるのかよくわからない「XIAOLAJIAO XLJ Q1」

たぶん、類似機種のfirmwareが使えそうではあるんだけど・・・

・Samsung Exynos 4412搭載機
これもQuad coreのNewman N2
Newmanは中華メーカの中でもしっかりしてる系のところで、firmwareがまめに更新される。

で・・・firmwareが流用可能な「Freelander I20」
というか、同じもの

この程度の価格差ならオフィシャルのNewman N2の方がいいと思う

・1つ前のMTK MT6575搭載機
わたしのいまのメイン機「TOOKY T1982」

まさか送料込みで$99になるとは・・・

・Intel ATOM Z2460搭載機
ZTE V970 Grand IN

とはいえ、最新のIntel ATOMではない点に注意

・バッテリー最強大容量4160mAh
innos D9、Snapdragon S4のMSM8625

あ・・・そうそう、とりあえずWCDMAが使えて、Android 4.0.4も動く
K-Touch W619もおもしろいですよ。

これは、現在進行形で遊んでるところです。

Proxmox上のOpenVZ仮想マシンをCLIでlive motion

Proxmox 2.xでは、共有ディスク無しでのホストサーバ移行(Live Motion/vMotion)みたいなことができる。
Web GUIでの方法はわかったが、CLIでのやり方についてのドキュメントが見つけにくく難航した。

使用するコマンド「pvectl」

ただし、このコマンドは、自サーバ上のみのコントロールを担当する。

「pvectl list」で、サーバ上にある仮想マシンリストを表示

root@pve1:~# pvectl list
Use of uninitialized value in printf at /usr/bin/pvectl line 46.
      VMID NAME                 STATUS     MEM(MB)    DISK(GB)
       101 server1.osakana.net  running    1024       8.00
       102 server2.osakana.net  running    1280       30.00
#

他にもサーバがある場合は以下の様な形で他サーバに対してssh経由でコマンドを発行して状態を取得する。

root@pve1:~# ssh root@pve2 pvectl list
Use of uninitialized value in printf at /usr/bin/pvectl line 46.
      VMID NAME                 STATUS     MEM(MB)    DISK(GB)
       103 server3.osakana.net  stopped    1024       10.00
       104 server4.osakana.net  stopped    1024       8.00
# 

移動させる時は「pvectl migrate VMID サーバ名 -online」

root@ns5:~# pvectl migrate 101 pve2 -online
Jan 31 15:56:51 starting migration of CT 101 to node 'pve2' (192.168.1.102)
Jan 31 15:56:51 container is running - using online migration
Jan 31 15:56:51 starting rsync phase 1
Jan 31 15:56:51 # /usr/bin/rsync -aHAX --delete --numeric-ids --sparse /var/lib/vz/private/101 root@192.168.1.102:/var/lib/vz/private
Jan 31 15:57:31 start live migration - suspending container
Jan 31 15:57:31 dump container state
Jan 31 15:57:32 copy dump file to target node
Jan 31 15:57:32 starting rsync (2nd pass)
Jan 31 15:57:32 # /usr/bin/rsync -aHAX --delete --numeric-ids /var/lib/vz/private/101 root@192.168.1.102:/var/lib/vz/private
Jan 31 15:57:35 dump 2nd level quota
Jan 31 15:57:35 copy 2nd level quota to target node
Jan 31 15:57:36 initialize container on remote node 'pve2'
Jan 31 15:57:36 initializing remote quota
Jan 31 15:57:37 turn on remote quota
Jan 31 15:57:38 load 2nd level quota
Jan 31 15:57:38 starting container on remote node 'pve2'
Jan 31 15:57:38 restore container state
Jan 31 15:57:39 removing container files on local node
Jan 31 15:57:40 start final cleanup
Jan 31 15:57:40 migration finished successfuly (duration 00:00:49)
root@pve1:~ #

で、うちの環境だと、CPUがpve1はIntel, pve2がAMDなので、移行後の起動に失敗する。
なので、別途、起動させる必要がある。

root@pve1:~# ssh root@pve2 pvectl start 101
Starting container ...
Container is mounted
Adding IP address(es): 192.168.1.201
Setting CPU units: 1000
Setting CPUs: 1
Container start in progress...
root@pve1:~#

これで、以下のような感じで移行が完了する。

root@pve1:~# pvectl list
Use of uninitialized value in printf at /usr/bin/pvectl line 46.
      VMID NAME                 STATUS     MEM(MB)    DISK(GB)
       102 server2.osakana.net  running    1280       30.00
root@pve1:~# ssh root@pve2 pvectl list
Use of uninitialized value in printf at /usr/bin/pvectl line 46.
      VMID NAME                 STATUS     MEM(MB)    DISK(GB)
       101 server1.osakana.net  running    1024       8.00
       103 server3.osakana.net  stopped    1024       10.00
       104 server4.osakana.net  stopped    1024       8.00
# 

さて、この処理を自動化すると・・・

#!/usr/bin/bash

SERVER=pve2
for vid in `pvectl list 2>&1 |grep running | awk '{ print $1 }'`
do
  echo === $vid ===
  echo pvectl migrate $vid $SERVER -online
  pvectl migrate $vid $SERVER -online
  ssh root@$SERVER pvectl list 2>&1 |grep  stop | grep $vid
  echo ssh root@$SERVER pvectl start $vid
  ssh root@$SERVER pvectl start $vid
done

ほんとは、移行後に起動しているか確認した上で、pvectl startを実行させるべきなんだろうけど、起動状態でpvectl startを実行しても影響がないので、無視している。

ESXi5.1にすると起動しない仮想マシン

ESXi5.1にアップデートした後、NetApp simulatorがなぜか起動しない。

以下のエラーが出力される。

ディスク「/vmfs/volumes/~/~/DataONTAP.vmdk」、またはディスク「/vmfs/volumes/~/~/DataONTAP.vmdk」が依存しているスナップショット ディスクの 1 つを開くことができません。 
システムで指定されたファイルを見つかりません
VMware ESX は仮想ディスク「/vmfs/volumes/~/~/DataONTAP.vmdk」を検出できません。パスが有効であることを確認し、もう一度やり直してください。 

これに対する回答がNetApp comminityにあった。

OnTap Simulator 8.1.1 no longer running on ESXi 5.1 free

原因はESXi5.1以降、標準ではvmkernel multiextent moduleが読み込まれなくなったため。
このモジュールは、巨大な1つのvmdkではなく、そこそこの大きさの複数のファイルでvmdkを構成するときに使うもの。

対処方法はVMware KB:「 Powering on a virtual machine after upgrading to ESXi 5.1 fails with the error: File [VMFS volume] VM-name/VM-name.vmdk was not found」にあるとおりのことをする。

概要: multiextentモジュールを読み込んで、分割形式のvmdkから、単一ファイルのvmdkへ変換する。

2019/12/04 追記:ESXi 6.7ではmultiextentモジュールが無くなっているが、vmkfstoolコマンド自体に機能が追加されており、下記のその2の操作が不要となりました。

その1:状況確認

# ls
DataONTAP-cf-flat.vmdk  DataONTAP-s012.vmdk     DataONTAP.vmdk
DataONTAP-cf.vmdk       DataONTAP-s013.vmdk     DataONTAP.vmsd
DataONTAP-s001.vmdk     DataONTAP-s014.vmdk     DataONTAP.vmx
DataONTAP-s002.vmdk     DataONTAP-s015.vmdk     DataONTAP.vmxf
DataONTAP-s003.vmdk     DataONTAP-s016.vmdk     SimConsType
DataONTAP-s004.vmdk     DataONTAP-s017.vmdk     SimUpdateParameters
DataONTAP-s005.vmdk     DataONTAP-s018.vmdk     cfcard
DataONTAP-s006.vmdk     DataONTAP-s019.vmdk     mtoolsrc
DataONTAP-s007.vmdk     DataONTAP-s020.vmdk     nvram
DataONTAP-s008.vmdk     DataONTAP-s021.vmdk     vmware-1.log
DataONTAP-s009.vmdk     DataONTAP-s022.vmdk     vmware-2.log
DataONTAP-s010.vmdk     DataONTAP-s023.vmdk     vmware.log
DataONTAP-s011.vmdk     DataONTAP-s024.vmdk
#

その2: multiextentモジュール読み込み

この手順はvSphere 6.5とか6.7では不要です。

# vmkload_mod multiextent
Module multiextent loaded successfully
#

その3: 分割vmdkのDataONTAP.vmdkを、単一vmdkのDataONTAP-new.vmdkにコピー

下記はzerodthickにしていますが「thin」指定など他のフォーマットでも大丈夫です。

# vmkfstools -i DataONTAP.vmdk DataONTAP-new.vmdk -d zeroedthick
Destination disk format: VMFS zeroedthick
Cloning disk 'DataONTAP.vmdk'...
Clone: 100% done.
#

その4: DataONTAP.vmdkを削除

# vmkfstools -U DataONTAP.vmdk
#

その5: ファイル名の変更

# vmkfstools -E DataONTAP-new.vmdk DataONTAP.vmdk
#

その6: multiextentモジュールの読み込み解除

この手順はvSphere 6.5とか6.7では不要です。

# vmkload_mod  -u multiextent
Module multiextent successfully unloaded
#

その7: 状況確認

# ls
DataONTAP-cf-flat.vmdk  DataONTAP.vmxf          vmware-1.log
DataONTAP-cf.vmdk       SimConsType             vmware-2.log
DataONTAP-flat.vmdk     SimUpdateParameters     vmware-3.log
DataONTAP.vmdk          cfcard                  vmware.log
DataONTAP.vmsd          mtoolsrc
DataONTAP.vmx           nvram
# 

変換完了後、普通に起動できました。

なお、変換後、ついでに仮想マシンハードウェアバージョンを7から上げるか!と13にあげてみたところ、新しい仮想マシンハードウェアではサポートされないデバイスがあったようで起動できなくなりました・・・