Quantcast
Channel: もくのすけのスペース
Viewing all 63 articles
Browse latest View live

Windows使いのOpenWrt(一段落編完結)

$
0
0

上海問屋DN-84749ことWT1520についてかなり朗報があります。

  1. WT1520のwikiが出来ました! (Buttonsの所とかかなり怪しいのですがw)
  2. WT1520のシリアルポートはここだ!(いずれ、文鎮となったWT1520をArduinoの3.3v版で救出したい。実際開けてみるととても小さいですよw)
  3. NTFSへの書き込み約3.5MB/s達成(思いっきり条件付きw)
  4. ソースからビルドする方法の詳細はこちら

2.4.2 ExtRootファーム更新

ExtRoot設定は簡単なのですがファームウェアをアップデートしようとすると途端にややこしくなります。設定はLuciからでも可能です。Luciの「ルートを使用する」を使わずにマウントポイント/overlayにしています。

問題はファームウェアの更新です。手順としてはここを参考に以下のようになりました。

①現状のバックアップ

Luciのバックアップで現状の設定をバックアップします。

image

②/etc/.extroot-uuidの削除

OpenWrtが自動で作成するExtRoot用のファイルを削除します。これをやらないとExtRootが設定できなかったりExtRootを解除して新しいファームをExtRootにコピーすることができません。

image

③sysupgradeの実行

ファームウェアを/tmpにコピーしてsysupgradeを実行。ファームの書き換えが終わると自動的に再起動します。

image

④ファームウェアのコピー

再起動後、telnetで入りrootのパスワードを設定しsshでログイン。ExtRootが外れている。ルータのフラッシュROMをExtRootするusbメモリにコピー(usbメモリのExtRootのファイルを削除した方がいいかも)

image

⑤ExtRootの有効化

/etc/config/fstabにExtRootのマウントを設定して再起動。

image

⑥設定のリストア

ExtRootが有効になっていることを確認。

image

以前のファームウェアで追加していたパッケージ(samba、uShareなど)を再度インストールして、①で取っておいたバックアップをリストアする。

image

重要なのは②の/etc/.extroot-uuidを削除することです。これをやらないと④の時点ですでにExtRootされていたり、⑤でfstabを修正してもExtRootされなかったりで混乱のもとになります。微妙にまちがっているかもしれませんが動くのでおk。OpenWrtのWikiも参考にどうぞ。

あとuuidは”block info”コマンドで参照できます。

2.5 Samba

 インストールするパッケージはluci-app-sambaでおk。ついでにsamba36-serverもインストールされます。

image

luci-app-xxxxxをインストールするとLuciメニューに設定用の画面が追加されます、便利です、日本語ですw。

image

ただ、Luci画面だけからは設定できない部分があります。samba用のユーザを追加する必要があります。詳細はこちら

2.4 ntfs-3G

2.4.1 インストール

NTFSに書き込み可能とするためntfs-3gのパッケージを追加する必要があります。opkgでインストールしようとするとカーネル依存と言われてインストールできませんでした。build時にntfs-3gのパッケージを組み込んでファームを生成して対応しています。

image

いわゆるカーネルモジュール(k-mod-xxとかntfs-3gとか)の/rom(ファームウェアのリードオンリー領域)に影響を与えるパッケージは主の環境ではopkgインストールできませんでした。

2.4.2 NTFSのマウント

ntfs-3gではfstabの設定で起動時に自動マウントできません(参照)。面倒なのでrc.localにマウントコマンドを記述しました。

image

2.4.3 NTFSへの読み込み・書き込みスピード

ようやく性能を計れる状態になりました。ntfs-3gではマウントするときのオプションで大きく性能が異なってきます。

1)一番大人しい状態

読み書きは同期モード。コマンド的には

ntfs-3g -o rw,sync -o noatime /dev/sdb1 /mnt/share

image

2)非同期モード

組み込み系ではご法度の非同期モード

ntfs-3g -o async -o noatime /dev/sdb1 /mnt/share

image

3)big_writeモード

本命big_writeモード

ntfs-3g -o big_writes -o async -o noatime /dev/sdb1 /mnt/share

image

3.5MB/S前後が安定して出ています。素晴らしい!これで地上波TSの書き込みはクリアできそうです。しかし・・・

4)読み込み性能

image

こればSambaでファイルをオープンしてみると微妙に帯域が足りない。音声が途切れ途切れになります。困りました。そこで

2.6 DLNA

2.6.1 minidlna

 minidlnaを入れてみましたが、問題点があり使えません

  • 重い!特にファイル一覧のDBを作成しているときはSWAPを数十M使っていました。
  • 一部のTSファイルを認識できない。一覧に出てこない

ということで断念。残るなushareとなりました。

2.6.1 uShare

1)パッケージ

Trunk版にはushareがありません。そこでoldpackagesから持ってきます。OPKG-設定に一行追加します。

src/gz oldpackagew http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/oldpackages/

リストを更新後、パッケージが出てくるようになります。もしかしたらlibdlnaもインストールしておいた方がいいかもです。

image

2)uShare動作の為の小細工

パッケージをインストールしても起動できません。色々小細工が必要ですw。

① ライブラリの追加

image

55と同じようにシンボリックリンクで54を作りますw。もはや動けば何でもいいw

ln -s libavformat.so.55.48.100 libavformat.so.54
ln -s libavcodec.so.55.69.100 libavcodec.so.54

② uShareの設定

LuciでuShareの設定を行います。詳細なオプションはこちらを参照

image

③/etcinit.d/ushareの変更

それでも動かない場合、/etc/init.d/ushareの変更。情報元はこちら。なぜか起動前にsleep 10を入れると動きますw。

image

④ /etc/rc.localに起動コマンドを追加

/etc/rc.dに追加してもいいのですが、NTFSをrc.localでマウントしているのでそれ以降に起動しないといけません。

image

⑤ フリーなメモリをできるだけ増やす

uShareは簡易的なDLNAとはいえメモリをかなり消費します。少しでも動作が軽くなるように/tmp(RAMディスク)の容量を減らしフリーなメモリを増やします。

/etc/rc.localに以下のコマンドを追加。デフォルトでは16Mを8Mにしました。情報元はこちら

mount tmpfs /tmp -t tmpfs -o remount,size=8000k,nosuid,nodev

視聴中の左の%がCPU使用率で右がメモリ使用率です。SWAPも設定した方がいいみたいです。

image

image

3 そして

imageimageimage

実用的かはさておき、iphone4S+nplayerで途切れる回数が大幅に減少しますw。DLNAのがSambaより軽いんですね。

ちなみに環境としてはWT1520にUSBハブ(二股ケーブルで電源強化)にUSBメモリとUSB-SATA変換を差しています。

そして、無駄なOpenWrt上で無駄なサービスを停止(NTPとか)を見直しSambaでも同じくらい再生できるようになりました。

おまけの性能測定(目安として)

SDカード32G、Windowsでの書き込み約11MB/s、読み込み約19MB/s。Sambaのファイルコピーを目測で測定w

format アロケーションサイズ マウント
オプション
書き込み(MB/s) 読み込み
(MB/s)
NTFS

512

非同期big_write

3.0

2.3

NTFS

8k

非同期
big_write

3.2

2.4

NTFS

64k

非同期
big_write

2.5

2.4

ext3

?

非同期

4.0

2.9

ext3

?

同期

2.1

2.9

ext3でも読み込みはあまり早くならないです。読み込みのが遅いなんて何かがおかしい。まぁ、いいか

image

DLNA経由でNTFSファイル再生時のCPU使用率(いっぱいいっぱいですw)

#疲れた。でもビルド編とシリアルコンソール編に続くw



Windows使いのOpenWrt(ビルド編)

$
0
0

 上海問屋DN-84749ことNexx社WT1520についてさらに朗報があります。

 この人、RT5350Fを外して基板を解析するとはどれだけ暇、じゃなくて偉大なんだよ。ちなみにGPIOピンをうまく利用するとLEDを点灯できます!じゃなくてSDカードスロットを追加できたりします。

 実は重要なのはそこではなく、WT1520のリセットボタンはGPIO10番に繋がっていたということなのです。つまり、リセットボタンを効くようにできることになります。今まではOpenWrtを入れるとリセットボタンが効かなくなっていたんですよ。dtsファイルの修正が必要となりますのでImageBuilder版をビルドしながらおいおい説明します。

 でと思っていろいろやっていたら、ようやく気づきました。

WT1520がTrunk(開発版)でサポートされました!

 見よ!この勇姿

image

 日付を見る限り10月からサポートされたみたいw。とにかくめでたい。

 というわけで、make image PROFILE=”WT1520″でビルド完了!では面白くないのでリセットボタンを有効にする改造を含めて以下に示します。

 

 1. 準備

 Linuxを用意します。主の環境ではCentOS6.5をダウンロードしてVMWareにぶち込みました。ソースからコンパイルする環境と合わせて30Gぐらディスクを使っています。その他インストールするソフトはここを参考にその都度加えてください。CentOSはRedHatの所を見ればいいです。またインストールのコマンドはapt-getではなくyumになります。

 pythonとかバージョン違いで苦労した覚えがあります。

 2. ダウンロード

 http://downloads.openwrt.org/にアクセスするとOpenWrtの現在のバージョンがわかります。

image

ついこの前、14.07の正式版がでましたが、現在のTrunk版とかなり違う。まぁ、WT1520をサポートしているのはTrunk版なのでそれをダウンロードします。URLはOpenWrt-ImageBuilder-ramips_rt305x-for-linux-x8で10月20日版が最新ですね。800Mぐらいあります。

image

で、適当に展開してください。

 3. ビルド用スクリプト

 最初にWT1520を突破した方のビルド用スクリプトを改良して使っています。ImageBuilder版でファームを作る利点はパッケージの選択が楽な点ですね。

#!/bin/sh
# profile name
PROFILE="WT1520"
# packages to skip, packages to install^
PACKAGES="-6relayd -hostapd -ip6tables -kmod-ip6tables -kmod-ipv6 -kmod-ipv6 -libip6tc -odhcp6c -odhcpd -wpad -wpad-mini block-mount hostapd-mini \
kmod-fs-ext4 -kmod-fs-vfat -kmod-usb-net-cdc-ether kmod-usb-ohci -kmod-usb-serial -kmod-usb-serial-option -kmod-usb-serial-wwan kmod-usb-storage \
kmod-usb2 libuci libxtables luci -luci-app-ddns -luci-proto-3g \
mtd netifd opkg -ppp -ppp-mod-pppoe procd swconfig luci-i18n-japanese ntfs-3g  \
uboot-envtools ubox ubus ubusd uci usb-modeswitch -firewall \
-libip6tc "
# directory with files
FILES="FILES_1520"
# threads
J=4

# apply patch if not applied
#test -f target/linux/ramips/dts/NEXXWT1520.dts || patch -p1 < nexx-wt1520.patch
#test -f target/linux/ramips/dts/NEXXWT1520.dts || patch -R -p1 < support_for_nexx_wt1520.patch
# compile
#make V=s -j$J image PROFILE="$PROFILE" PACKAGES="$PACKAGES" && echo firmware is here: "$(pwd)/bin/ramips/openwrt-ramips-rt305x-nexx-wt1520-squashfs-sysupgrade.bin"

make -j$J image PROFILE="$PROFILE" PACKAGES="$PACKAGES" FILES="$FILES" && echo firmware is here: "$(pwd)/bin/ramips/openwrt-ramips-rt305x-nexx-wt1520-squashfs-sysupgrade.bin"

PACKAGESに加えるパッケージと削除するパッケージ(-を付ける)で指定、FILESはファームをWT1520に入れたときの初期設定(IPアドレスとか)を指定するファイルを入れておきます。主は今の所Luciで設定した/etc/config/networkを入れています。

image

fstabやパスワード関連も入れるとファームウェアをアップデートした時に楽になると思いますが、後日やりますw。

 

 4. ビルドを実行

 ビルドを実行するとつらつらと処理がながれてbin\ramipsの下にopenwrt-ramips-rt305x-wt1520-squashfs-sysupgrade.binファイルが出来ます。

image

ファイルサイズが3670020 バイトであることを確認してください。この大きさでないときは上手く動かなかった記憶があります。後はこちらの手順に従ってWT1520に導入してください。今更重要な注意点を

元のファームに戻す方法はシリアルコンソール経由しかない!(多分)

 元のファームはminidlnaが入っていなかったりしてひどいので後悔する人は少ないと思いますがw

 

 5. リセットボタンの有効化

 他のルータの例をみて多分正しいと思うのですが、自己責任で。

 ① DTSファイルの修正

 DTSファイルとはデバイスツリーソースのことらしいですw、詳しくはこちら、ってわかんねぇよ。何やらハードウェア構成を定義するファイル見たいです。修正するファイルは”[OpenWrtを展開したディレクトリ]/target/linux/ramips/dts/WT1520.dts”です。diffを取る能力が無いので、そのまま説明すると59行目辺りから始まる

    pinctrl {
        state_default: pinctrl0 {
            gpio {
                ralink,group = "jtag";
                ralink,function = "gpio";
            };
        };
    };

    pinctrl {
        state_default: pinctrl0 {
            gpio {
                ralink,group = "jtag","uartf";
                ralink,function = "gpio";
            };
        };
    };

“uartf”を加えます。そして、83行目辺りから末尾を変更

    ohci@101c1000 {
        status = "okay";
    };
};

にリセットキーの設定を加えます。

    ohci@101c1000 {
        status = "okay";
    };
    gpio-keys-polled {
        compatible = "gpio-keys-polled";
        #address-cells = <1>;
        #size-cells = <0>;
        poll-interval = <20>;
        reset {
            label = "reset";
            gpios = <&gpio0 10 1>;
            linux,code = <0x198>;
        };
    };

2つ目の変更はgpios=のgpio番号以外は他ルータと同じなのでわかりますが、問題は1つ目の変更のuartfを加えること。調べたがよくわからん、かろうじて

  • LinuxにはPINコントロールというサブシステムがある
  • PINコントロールにはGPIOをMUXする機能(共有みたいなもんか)がある
  • group=”xxx”で指定しないと共有機能が有効にならないような感じw
  • RT5350のデータシートや/sys/kernel/debug/pinctrl/pinctrl.1/pingroupsを見るとGPIOの10番はuartf(シリアル通信用のIC)が使っているみたい

    image

なお、PINのMUXについてはこちら。日本語ではいい説明が見つからなかった。英文で流し読みだけどまぁ、そんな感じでWindows使いなら動けばおk。

 

②リセットボタンの有効化

 ①で加えた変更を適用したファームウェアをWT1520に適用するとリセットボタンが有効になります。実際には/etc/rc.buttonの下のresetスクリプトが起動されます。長押しすると初期設定に戻ります。

image

嗚呼、この機能を有効にしておけばFirewallを削除し忘れて一切アクセスできなくなった文鎮WT1520を救えるのに・・・あの頃は今思えば若かったw・・・・・・・それはシリアルコンソール編で

そうそう、リセットボタンが効くようになってもOpenWrtのfailsafeモードで起動できませんでしたので、その点はご注意を。

 

#現時点でノータッチのシリアルコンソール編じゃなくてUSBIP編かもw


REX-WIFIUSB1を探る

$
0
0

 REX-WIFIUSB1にシリアルコンソールを付ける前に「やっぱrootじゃないと色々きついよな」ということでいろいろやって見ました。

1.Telnetが使える

  telnetdがデフォルトで立ち上がっています。adminでログインできますが、あまりできることは少ないです。

image

 

2.ファームウェアの中を見る

 現在最新のファームは2.000.036です。シリアル番号を無くしてしまったのでアップもダウンも出来なくなってしまいましたw。

image

 このファームウェア、重要なのは先頭から172行ぐらいがスクリプトになっています。秀丸で強引に開くとこんな感じ

image

で、このスクリプト部分を書けばファームウェアのアップ時に処理が走り自由自在じゃないか!と思ったらそんなに甘くはなかったです。スクリプト部分は動いていないみたい。しかし!ヒントがありました。チェックサムの作り方が記述されています。

sed '1,3d' ファイル名 | /usr/bin/cksum

これを実行すると2つ数字が出てきて最初の方がチェックサムになります。

image

 

3./etc/passwdを書き換える

 REX-WIFIUSB1の管理画面にはシステムの設定のバックアップと復元という機能があります。/etcの下をバックアップ&復元している感じです。これを利用します。

image

 rootのパスワードなしのpasswdと念のためshadowを用意してetcディレクトリを作りその中に入れtarします。

image

バイナリエディタで先頭に2.で表示されたチェックサムを付加します。先頭からアドレス2Cの’0A’までを付加しています。

image

そして設定の復元!

image

 

4.rootでログイン

 REX-WIFIUSB1が再起動するとrootでログインできるようになります。/etc/passwdファイルが書き換わっています。

image

 

5.OpenWrtを・・・・

 どうしましょうか?敷居がかなり高そうです。rootで入れたからと言ってなんでもできるわけじゃないだろうし。mtdもWT1520の時と違って難しそうです。フラッシュメモリは8Mあって楽そうではあるのですが・・・

Creating 9 MTD partitions on "raspi":
0x00000000-0x00800000 : "ALL"
0x00000000-0x00030000 : "Bootloader"
0x00030000-0x00040000 : "Config"
0x00040000-0x00050000 : "Factory"
0x00050000-0x001d0000 : "Kernel_RootFS"
0x001d0000-0x001e0000 : "params"
0x001e0000-0x001f0000 : "user_backup"
0x001f0000-0x00200000 : "user"
0x00200000-0x00800000 : "Rootfs"

 

#/binとか全部リードオンリーだし、/etcとかはRAMディスクだし、mtd7に書き出している感じだし、これこそOpenWrt化してほしいのだがw。「お客様の中でOpenWrtに詳しい方がいらっしゃいましたら・・・ 」


REX-WIFIUSB1を探る(USB-LAN増設編)

$
0
0

 rootになれば何でもできる!とOpenWrt通(自称)の主は意気込んでいたのですが、 REX-WIFIUSB1にOpenWrtを入れるのはやめました。技量がない&REX-WIFIUSB1に入っている商用版のntfsとexfatのドライバが勿体ない(もちろん、OpenWrtでは動きませんでしたw)。というわけで、どうやってREX-WIFIUSB1を機能アップするか!が課題となります。

 ネットを徘徊していたらRT5350のSDKを手に入れました。そしてクロスコンパイラ込のRT288x_SDKも手に入ってしまいました(情報元はここ、でも前者はまぁ信頼できるが後者のSDKのリンクは怪しいサイトなので最後にまとめておいておきますわ)。3年くらい前にRT5350を遊び尽くしているとは、やっぱり周回遅れな主ですw。そら2chもメルコ一色になるわな

 さてやる気を戻して、GPLかなんかに従って開示されているんだよなSDK、英語読めないけどそんな風に書いてあるよな、と自分に言い聞かせてユーザマニュアルを見てみるとUSB Ethernetが使えるようになるではないですか。というわけで、さっそくやって見ました。最初はushareを入れるつもりだったのですがw。

image

 

1.開発環境

 RT5350のSDKとRT288XのSDKをインストールします。5350のSDKを適当に展開して、クロスコンパイラ等はは5350SDKの中にあるユーザマニュアル33ページを参照してぶち込みます。主はVMWare+CentOs6.5にぶち込みました。

2.USB-LANドライバの作成

 ユーザマニュアル99ページ参照。

 ①make menuconfig実行

 OpenWrtの時と同じ様なメニューが出てきます。Custmize Kernel Settingsを選択して一旦Exitします。

image

 
 ②LANドライバの選択

 つらつらとコマンドが流れて再びメニューが出ます。ここでユーザマニュアル99ページに従いMマークを付けます。

image

 ちなみに手元にあるUSB-LANアダプタはグリーンハウスのやつ

イメージこいつUSB-LANの中ではメジャーなASIXのチップでした。

 ③make実行

 最初OpenWrtのtoolchainを入れようと思った主には信じられないほど簡単にmakeが走りますw。autoconf.hが無いというエラーがでましたがmakeを実行したディレクトリにあったのでそれをコピーしました。主はlzmaを入れてていないのでいつもそこでエラー終了しますが、romfsの下にドライバーが生成されますので問題なしです。

image

他にもいろいろなドライバが生成できそうで楽しみです。

 

2.REX-WIFIUSB1への導入

2.1 REX-WIFIUSB1のファイルシステム

 ROMとRAMしかないという、OpenWrtをやってきた身としてはいやらしいファイルシステムです。

image

 /etcだけは再起動前にmtd7にバックアップ、起動時にそれを読み込むみたいです。仕方ないのでUSBハブ(セルフパワー)を増設し、システム補助用のUSBメモリ(Candoで買った100円(税抜き)カードリーダー)とUSB-LANを接続しています。

 ちなみに、Web管理画面での再起動は/etcの中身が保存されますが、コマンドでやろうとすると、etc_tools pで保存してreboot –fで行けると思います。

image

 その他、USBに差すと勝手にマウントされる元凶の/etc/udev/scriptからadd_usb_storage.shをmvしています。

2.2 REX-WIFIUSB1への導入

 というわけで、増設したUSBメモリ(システム用)をSwapとデータに分けて、そして面倒なのでrc.localの末尾に起動コマンドを全部入れましたw。後で整理しますw。

image

imageext3はなぜかmountできませんでした

USB-LANも認識されています

image

 

3.性能向上

 さてお楽しみのベンチマークですUSBメモリ(ソフマップで1100円)をNTFSでフォーマットしてSamba共有書き込み実施!。

3.1 書き込み性能(NTFS)

image

5MB/sという数字、初めて見ました、感動。でもそんなに都合のいい話ばかりではなくwriteのキャッシュがいっぱいになると3MB/sに頻繁に落ち(グラフの波線)、Swapが発生したりするとさらに速度が落ちます。topコマンドで見ているとpdflushが頻繁に起動しています。

image

しかし、同じ環境でwifi接続(130M~150Mbps)で比べても十分高速であります。

image

 

3.2 読み込み性能(NTFS)

 ある意味キャッシュのごまかしが効きにくい読み込み性能が本来のものと言えます。

image

ちなみにwifiだと

image

なので有線LAN(100Mbps)の方が無線(802.11.n)よりも速いみたいです。暗号化とかの負荷が多いのでしょうか?

3.3 exFATの問題点

 負荷が軽いexFATが本命と思っていたのですが、REX-WIFIUSB1のドライバに問題がありそうです。大きなファイルをコピーすると

image

途中から転送速度が半減します。topコマンドで見ていた限りではwriteのキャッシュが効かなくなり同期モードで動いている(Idole時間が多い)になります。同じ事象はwifi接続でも発生します。

image

NTFSでは転送速度がSwap等で低下しても復帰しますのでexFATドライバ特有の現象ではないかと思われます。

 

4.結論

  REX-WIFIUSB1にUSB-LANとUSBメモリを接続しているため、USBの負荷が高く、mipsではいっぱいいっぱいな感じです(最大2.5wじゃ仕方ない)。多分、Nexx WT1520の純正ファームにREX-WIFIUSB1のNTFSドライバ(TUXERAの商用NTFSドライバ)を組み込んで使うのが最速だと推測されます。Nexx WT1520は純正ファームに戻せないので検証できませんがw。

#とりあえず、怪しいものを置いておきますw。
UDFドライバを動かして、寝ながらスマフォでエロDVD-PGが今の目標ですw。


WT1520を救え!(初めてのシリアルコンソール)

$
0
0

 上海問屋DN-84749ことNexx社WT1520をOpenWrt化する際に文鎮化してしまったWT1520が2台wあります。シリアルコンソール経由で復活を試みました。とりあえずフラッシュROMの書き換えに失敗した方から。ブートはこんな感じで止まってしまいます。

image

 

1.USB-シリアル変換ケーブル

 WT1520は3台持っているのに、このためだけにケーブルを買うのもったいないなぁと思っていたwのですが、なぜかArduinoを持っていました。

image

こいつが出力を3.3vと5.0Vに切り替えられるというので、行けるんじゃないかということで採用です。

2.WT1520との接続

 さっそくWT1520と接続します。

2.1 WT1520の開腹

 個人的ですけど壊れたのも多いけど、でも、開腹されてうちの機器は一人前ですw。さて、WT1520は固くて開腹できそうにないのですが、USBの所に-ドライバーを入れて強引に開腹します。ボケた写真ですいませんw。はがれているところにドライバーを入れて開けましたw。

 image

2.2 Arduinoとの接続

 image

Arduino側はD0ピンがRX、D1ピンがTXです。上の図の赤い部分。手元のものにはRX、TXと印刷されていました。ちなみにシリアル通信が行われると青い部分のLEDが点滅します。もちろん3.3v出力に切り替えておきます。

WT1520側は上の図の通り。ただし、とても小さく(RXとTX合わせて2mmぐらい)なので常人には半田付けは無理です。そこで

image

こんなのをこしらえて、左手でWT1520に押し付けながらの片手作業となりますw。

ちなみにGNDはUSBのガワと接続しています。

image

 

2.3 接続ピン

 試行錯誤の上、ようやく接続方法が分かりました。

  • TXとTX、RXとRX 、GNDはUSBのガワ
  • bpsは57600
  • Arduinoのスケッチは空

image

 ArduinoのD0(RX)とWT1520 のRX、ArduinoのD1(TX)とWT1520のTXを接続します。

 おじさんの記憶的にはシリアルで直につなぐとき、TXとRXを接続するものだと思っていましたが、まぁこれで動いたんだからこれでいい。Arduino側もSetSirialとかしていません!w。動けばおkがモットーのWindows使いですから、でも、壊れたらごめんなさい、自己責任で。

 

3.シリアルコンソール

3.1 下準備

 PCとWT1520をLAN接続しておきます。PCのアドレスを10.10.10.3、そしてTFTPサーバを立ち上げます。シリアルコンソールからのアップデートはWT1520がTFTPクライアント10.10.10.123となって、サーバ(10.10.10.3)のtest.binを取得してフラッシュROMを書き換えます。mtd3をtest.binとしてTFTPサーバにおいておきます。

image

 

3.2 起動

 そして起動!シリアルコンソールの接続が正常な場合はメニューが表示され、4からカウントダウンが始まります。シリアル接続がNGな場合にはカウントダウンなしで速攻でルータが起動してしまいます。

image

ここで2(改行なし)で送信。その次のAre you sure?もy(改行なし)で送信

image

次にIPアドレスの設定とかを聞いてきますが、左手はシリアルコンソールを押し付けているので片手作業、文字を打つのは困難w。ですんで、全部デフォルト値を選択しました。LFのみを選択して空文字列を3回ぐらい送信

image

WT1520がPCのTFTPサーバからtest.binを取得してアップデートが始まります。

image

色々ワーニングが出ているが、結果として文鎮なWT1520が復活!

image

image

ただし、mtd3.binがOpenWrtの物なのでOpenWrtで復活です。

 

WT1520オリジナルのmtd3.binを持っていればそれで復活すると思います。オリジナルファームではddコマンドが使えなかったのでWT1520オリジナルのmtd3は持っていないんですよw。RT5350のSDKを手に入れた今ならmtd3をバックアップできたのにw。というわけでWT1520のOpenWrt化を検討中の方はddコマンドが使えるbusyboxを導入してちゃんとバックアップしてからやりましょうw

お客様の中でオリジナルのmtd3をお持ちの方はいらっしゃいませんか?

ちなみにダウンロードできるファーム1.15はやはり暗号されていてだめでした。

 

 

#シリアルコンソールから文字が出てきた時は歓喜でした。初めてのシリアルコンソール堪能しましたw。サインスマート、中国企業らしいですがオリジナル+αは素晴らしい。野菜では不安だけど弱電は中国ですね。


流体モーションを試す

$
0
0

 あけましておめでとうございます。面白い話が合ったら、役に立つのか立たないのか思い込みで間違っているかもな話を今年も続けます。そーいえばDropboxに置いておいた怪しいもの置き場が勝手に削除されていました。怪しいものは削除されるんだなw。

 さて、去年の12月30日にPCが起動しなくなりました。最初のCPU認識の所から進まない。その前から起動SSDは壊れる(突然8Mしか認識しなくなる)はHDMIキャプチャーを認識しないわ、BIOS画面にたどり着けないわ、やばかったのです。でもsocketFM2+にするチャンスと決断、近所のヨドバシ、Sofmap、ドスパラを回り、ようやくFM2+のマザーを見つけました。が、CPUがFM2(Richland)しかなく確保、そしてヨドバシのポイントを利用して通販、ようやくKaveriが届きました。

 しかし、店舗を回って見て自作の寂れ方は想像以上でした。AMDのCPUなんか在庫なしばかり。

 というわけで、PC環境は

  • socketAM3+とOpteron 3260 HE(4コア2.7G)

から

  • socketFM2+とA6-7400K(2コア3.5G)

 以前はPhenomの6コアを使っていたことを考えると順調にダウングレードしていますw。主の経験の中では長期間壊れずにつかえていたAM3+とCPUでした。パイルドライバーも2Gで回すならパワー的にも電力的にも不満はなかったです。

 

流体モーションを試す

 一部でかなり話題になっている流体モーションを試してみます。震源地はこちら(事情があってこちらに移転されています。ソフトはまだ落とせません)、バージョン2ぐらいの頃から愛用しているA’s Video Converterの作者さんであります。そして、知ったのはこちら、録画とAMDとウィルコムに強い末路さん、RSSを購読していて知りました。なんとなく理解している流体モーションの内容は

映画は24fpsである。PCは普通60fpsである(HDMIの制限か?)。60は24で割れないから本来の映像は見れない。ならば、24fpsから中間画像を生成して60fpsにすればいいじゃないの。プルダウン変換とかややこしい話はわからんw。

 設定的には末路さんの記事の通り。AMDのCCCでインターレスの解除を無効にしなければCCCで流体モーションの設定が出てこなかったような記憶が(あいまい)w。MPCへの組み込み方とかはBlueskyさんのページを参照

image 

で、実際どーなるのかというと

元動画 241 242 243

 

流体 601 602 603 604 606

 

といった感じで中間フレームが生成されます。特に流体の4枚目はなぜ、この機能が流体なのかよくわかります。MPCの統計表示では

imageimage

という感じで60fpsになっているのが確認できます。で、実際どうなるかを伝えるのは、主の知識では非常に難しいのです。並べて再生するとヌルヌルになっているのは分かるが、どーやってそれを動画にするか・・・・アマレコのデスクトップキャプチャは30fpsなので画面で24fpsの動画もそれなりにヌルヌルになってしまいます。ちゃんとしていない動画を上げて評判を落とすのもなんですから、今回は略

では実際のアニメでどーなるか、流体が効きそうなシュタインズゲート映画のBDのOPだと・・・・・微妙です。というか細かすぎでわからない感じ。

image

で次のコマが

image

になる感じ。中間フレームの生成は確認できましたが、細かすぎで微妙ですw。そーいわれてみればヌルヌルですかね・・・・ラブライブとかだと違うのかもしれないw

追記一応サンプルを上げました。どーしても55fpsでしかキャプチャできなかったので一部カクカクですが、実機ではヌルヌルです

60fps版を上げておきました。元プログラマーのくせにデスクトップキャプチャーの力技ですw。32ビット版GraphEditを使えば楽勝だろうと思って数年ぶりに立ち上げたらDirectShowフィルタの一覧で落ちました。そうだ、だから使わなくなったんだとw。64ビット版はオブジェクトが少なく30fpsでしか保存できないし、いよいよAvisynthに手を出さざるを得ない状況ですw。

追記2:GraphStudioNext(32ビット)でAMD Video Scalerをかますと行けるようになりました。こんな感じ

image

Graphでvfwのエンコーダが使えるとは気づかなかったw。x.264でも行けるのですがそちらは○カパー録画(1080i)で使っているので設定を変えたくない。相性抜群だろうと思われるvfwVCEを使用。記念に破たんしている場面をw

AMD Video Scalerはatimpenc.dllにあります。古いDLLが残っていてラッキーでした。

image

image

 

#さて、本命VCEでのエンコードを試しますかな。結局GPGPUはフィルタ系でしか使えないのでは?と思います。流体もいい感じなのですがもう一声ですね。そういえばうちのPowerDVDはバージョン10のままです。

追記3:Blueskyのホームページで最新版1.0.0の配布が開始されました。AsVideoConverterも流体モーションありになりました。


流体モーションを全画面表示で(APU編)

$
0
0

目的は一つ

「BD品質な1920×1080(以下FHD)の24fps約35Mbpsの映像ファイルを流体モーションで60fpsにして全画面表示で見たい!」

であります。そのためならどんな犠牲(金銭面を除く)をする覚悟です。現状をまとめましょう。

ハードウェア系

APU AMD A6-7400K O.C.でMAX4.0G
メモリ 16G DDR3-1600(うち8Gは1333をO.C.)

ソフトウェア系

OS Window8.1 x64 pro
再生 MPC-HC x64 1.7.8
BlueskyFRC 1.0.2
ドライバー 14.501.1003.1001-141204m-178280E

(BlueskyFRCの最新版1.1.0だと状況が少し変わります)

1.検証

 検証というにはあまりにも感覚的なのですがご容赦を。条件は以下の通り。

  • BD品質な35秒の動画ファイル(戦車が水平パンするやつw)をMPC-HCで全画面再生
  • CCCのビデオ品質補正はいっさいなし
  • MPC-HCのレンダラー設定は既定

GPUへの負荷はMPC-HCのレンダラーの設定で大きく変化することが今更ながらにwわかってきました。MPC-HCのレンダラーの設定は[表示]-[オプション]-出力です。普段は全然気にしていなかったですわ。

image

そうそう、レンダラーに付いてはこんな理解のレベルです。

  • VMR-7 DirectDrawで描画される
  • VMR-9 Direct3Dで描画される
  • EVR WindowsVistaからの新しいレンダラー
  • EVRカスタムプレゼンタ(以下EVR-CP) さらに新しいレンダラー 
  • madVR Corei7にしか許されない夢の高性能レンダラー
  • Haali あれ?削除したつもりでもまだ残っていたのかレンダラー

もう一つGPUへの負荷を左右するのはDxVAでのデコードです。DxVAの画像補正とややこしいので以下GPUデコードとします。設定は[表示]-[オプション]-内部フィルタ-ビデオデコーダで表示されるLavの設定で指定します。

image

ちなみにBlueskyFRCを使うとDXVA2(native)を設定してもGPUデコードは行れません。GPUデコードを有効にするにはDXVA2(copy-back)を指定する必要があります。GPUデコードを行っているかはどうかは、これまたBlueskyさんのDXVA Checkerで確認できます。BlueskyFRC1.1.0からDXVA2(native)でGPUデコードが有効出来ます。

imageimage

 

というわけでMPC-HCでレンダラーを色々変えて再生状況をテストしてみました。

 

1.1 EVR-CP(MPC-HCのデフォルト設定) 

「音の再生が途中で何度も停止しぐだぐだな状態」

image

緑がGPU使用率、青がCPU使用率、どえらいことになっています(名古屋弁)。平均フレームレートは60fpsにほど遠く、同期オフセット(ずれ)は変な値です。

1.2 EVR 

「音声の再生が終わった後、3秒くらい遅れて映像が終わる」

image

いい感じなのですが3秒程度ずれているというのが実情です。

1.2 VMR-9 

「映像が途切れ途切れでしかも音が遅れる」

image

これも論外です。GPU使用率が時々落ちているのは描画をあきらめたところでしょうかw。

1.3 VMR-7(GPUデコード)

「音にワンテンポ遅れて映像が終わる」

image

惜しい。GPUデコードなのでCPU使用率は下がりますが、微妙に映像が遅れます。某戦車アニメでカチューシャの所を再生すると明らかですw。で、再生していると同期オフセットの値が少しずつ増加します。

1.4 VMR-7

「◎」

image

音ずれはありませんでした。再生開始時に負荷が高く、同期オフセットはそれなりの値なのですが、そこからどんどん減少していき最後は0になります。

 

2.総評

 結局、VMR-7のGPUデコードなし以外では全画面表示は無理でした。さらに悪いことにGPUの負荷がちょっとでも重くなるとVMR-7でも音ずれします、ギリギリです。現にBlueskyFRC1.0.0でGPUの負荷が重くなったときは映像が遅れるようになりました(1.0.1以降は大丈夫)。流体モーションではGPUがいっぱいいっぱいです。

3.こんなこともあろうかと

 iGPUを強化する秘密技に「AMD Dual Graphics Technology」(以下DG)があります。グラフィックカードを外付けしてGPUのパワーを引き上げます。しかし、KaveriでDGをするにはR7 240か250が必要なのです。最安値で6000円代かぁ・・・・年末にAM3+が壊れてFM2+に乗り換えたばかりなので予算が・・・・A8-7600にしておけば・・でも売り切れだったし・・・・ こんなこともあろうかとR7 240もついでに買っておけば良かったのですがw

というわけで、去年までAM3+で使用していて現在は引退中のHD6450を外付けして、何とかすることにしました(HD6450編に続く)

 

 

#ある日突然VMR-7の画面が真っ暗になりました。再生は進んでいるけど真っ暗。ドライバーを削除してもダメ。途方に暮れていたのですがCCCの色設定でAMD設定にしたら治りました。

image      

たぶんHD5450(5450も試した時w)差したあとになったので、これ(VMR7 black screenで検索)だと思いますが、いちおうTipsとして。

  それにしても普段遊んでいるGPUが汗をかいて働いている姿を見ると微笑ましいですなw。


流体モーションを全画面表示で(HD6450編)

$
0
0

目的は一つ

「BD品質な1920×1080(以下FHD)の24fps約35Mbpsの映像ファイルを流体モーションで60fpsにして全画面表示で見たい!」

であります。そのためならどんな犠牲(金銭面を除く)をする覚悟です。現状をまとめましょう。

が今回のテーマであります。A6-7400Kのマザー(ASRockを買ってしまったw)に余っているHD-6450を差しました。

(BlueskyFRCの最新版1.1.0だと状況が少し変わります)

 

1.接続環境

 うちの環境ではモニターが一台だけ。今時の液晶モニターは複数の入力端子を持っていますのでAPUとHD6450の出力をモニターにぶち込みます(実際はケーブルが無いのでDVI-D-HDMI変換ケーブル経由)。HD6450側の出力映像で流体モーションを有効にする(映す)ためにWindows上でのメインとサブの関係は次のようになります。

注:BlueSky1.1.0からサブスクリーンのみの表示で流体モーションが効くようになりました。

imageimage 

  • A6-7400Kをメインディスプレイ
  • HD-6450をサブディスプレイ
  • MPC-HCの再生はHD-6450のディスプレイを選択して全画面再生
  • 液晶モニターは②のHD-6450の出力を映す

MPC-HCは全画面表示の時のディスプレイを選択できます。この機能が何気に効いているかも。また、キーボード操作で液晶モニターを切り替える方法は後述します。描画の負担をAPUから削除すると・・・・

2.GPU使用率はこうなる

2.1 EVR-CP(GPUデコードなし) 

image

「再生開始時にもたつく感はありますが、VMR-7でしか再生できなかったAPU単体の頃と比べると雲泥の差。感じられる音ずれはない」

緑がAPUの使用率、水色がCPU使用率。50%で頭打ちになっている紫がHD6450の使用率です。

ちなみにカチューシャと1話のオープニングのシーンはこうなります。数フレーム破棄される時もありました。

image

 

CTRL+Jで表示される統計情報はこーなります。image

レンダラーがHD6450でデコーダがBlueskyFRCなんですね、不思議だ、そーゆもんだとして納得しておこうw。

2.2 EVR-CP(GPUデコードあり) 

「CPU使用率も減るのでこれで決定かも。GPUデコードなしの時よりは若干重い気がするが、感じられるような音ずれはなし」

image

同じくカチューシャと1話のオープニングのシーン時は

 image

というわけで重いEVR-CPで動くなら他は余裕なので以下のテストは略!充分に実用範囲だと感じました。

 

3.液晶モニターの切り替え

3.1 Windowsキー+Pで試す

 液晶モニターによって動きは異なると思いますが、うちの環境では映したい画面をメインにした後にデュアルモニタに切り替えると希望のGPU側の映像がモニターに映ります。

1)モニタでAPUを映すには

image

のAPUオンリー状態からデュアルモニタにすると

image

APU側が映ります。

 

2)モニタでHD6450側を映すには

image

のHD6450オンリー状態からデュアルモニタにすると

image

HD6450側が映ります。

注:BlueSky1.1.0からサブスクリーン(セカンドスクリーン)のみの表示で流体モーションが効くようになりました。節電です。

 

3.2 モニター切り替えのバッチファイル化

Display ChangerIIを使用すればモニター切り替えのバッチファイルが簡単に作成できます。本来は解像度を保存するのがメインなソフトですが、”メインのみ”、”サブのみ”、”デュアル”の状態を保存し簡単に切り替えられます。具体的には

z:
cd Z:\download\Windows7\As\dc2
Z:\download\Windows7\As\dc2\dc2.exe -configure="sub.xml"
timeout 3
Z:\download\Windows7\As\dc2\dc2.exe -configure="dual.xml"
timeout 5
"C:\Program Files\MPC-HC\mpc-hc64.exe" "%*"
Z:\download\Windows7\As\dc2\dc2.exe -configure="normal.xml"

こんな感じのバッチファイルを右クリックで送るに入れておけば、自動的にHD6450側に切り替わって再生、終了後はもとに戻ります。BDMVなディレクトリだとBDチャプターが有効になるということだが、BDはリッピング出来ないので詳しくは知りません!!

 

4.こんなこともあろうかと

2月22日Bluesky Frame Rate Converter Version 1.1.0が出ましたw。今までの苦労が水の泡になりそうな感じw

  • DXVAデコードのサポートを追加
  • GPU使用率を低減
  • 処理時間を短縮

Bluesky氏、曰く?「こんなこともあろうかとV1.1.0を用意しておいたのさ!」・・・・さっそく試そうっとw。

 

#Athlon5350でもHD6450を付ければEVRで全画面できそうな気配ですね。でも再生時はもちろん、アイドル時にも消費電力が15wぐらい上がった感じなので省電力に反しますな。



流体モーションを全画面表示で(BlueskyFRC1.1.0編)

$
0
0

 BlueskyFRCが1.0.2から1.1.0にバージョンアップしたのに伴い前回前々回とは状況が異なってまいりました。鉄は熱いうちに打て、1.0.2の状況を忘れる前に1.1.0と比較してどーなったかを試してみます。日々進化を遂げるBlueskyFRC、素晴らしいです。

1.改良点

 Ver1.1.0での改良点をまとめると

  • DXVA2(native)に対応
  • 負荷の軽減、処理時間の短縮
  • セカンダリディスプレイへの対応

です。それぞれ見ていきましょう

1.1 DXVA2(native)に対応

Ver1.0.2ではMPC-HCでDXVA2のGPUデコードを有効にするためには、LAV Video Decoderの設定でcopy-backにするしかありませんでした。Ver1.1.0ではnativeに対応しました。いつもの動画を全画面再生しました。違いは一目瞭然

1)GPUデコード(copy-back)の使用率

image

MAX50%ぐらいで再生中はCPU使用率(青)が30~40%って感じ

 

2)GPUデコード(native)の使用率

image

MAX40%ぐらいで再生中の使用率が20~30%になります。

 

3)効果

 CPU使用率が10%ぐらい下がります。それにしても、レンダラーはVMR-7なのにnativeが効くという不思議w。Blueskyさんの開発日記では微々たる効果となっていますが、こちらの環境(前々回参照)はAPUのCPUが2コアでメモリもDDR3-1600なので転送が減るという影響がでかいのかもしれません。

 

1.2 負荷の軽減、処理時間の短縮

1) 旧バージョン場合

 旧バージョン(1.0.2)の時の音ずれの印象を以下に示します。

  レンダラー GPUデコード 音ずれ
1 VMR-7 なし なし
2 VMR-7 copy-back ワンテンポの遅れ
3 EVR なし 3秒くらいの遅れ
4 EVR-CP なし 論外

VMR-7のGPUデコードなしでしか全画面再生できませんでした。

 

2) Ver1.1.0の場合

 新バージョン(1.1.0)の時の音ずれの印象を以下に示します。GPUデコード(native)が加わっています。

1 レンダラー GPUデコード 音ずれ
2 VMR-7 なし なし
3 VMR-7 copy-back なしのように感じる
4 VMR-7 native なしのように感じる
5 EVR なし 3秒くらいの遅れ
6 EVR native 1秒強くらいの遅れ
7 EVR-CP なし 論外

3)効果

 新バージョンではVMR-7のGPUデコードが全画面表示できるようになりました。統計情報がそこそこ信頼できそうなcopy-backで比較してみると

image image

 同期オフセット(ずれ)が明らかに減少しています。旧バージョンでは同期オフセットがどんどん増加していくのに対し、新バージョンでは開始からある一定の時間は増加し(5秒程度)その後減少に転じます。ただし、同期オフセットが減少に転じる秒数は他の負荷とかに左右されます。

 GPU使用率5%低減は分かりませんが明らかに効果ありと見るべきでしょう。EVRで再生できるまでもう少しです、開発者さん、がんばってくださいw。

 

1.3 セカンダリディスプレイへの対応

1)旧バージョン場合

 APUをメインディスプレイにして、外付けHD6450をサブディスプレイにしないと流体モーションが効きませんでした。Windowsキー+Pで言うと以下の状態

image

 

2)新バージョン場合

 サブディスプレイのみの表示でも流体モーションが効くようになります。

image

3)効果

 サブディスプレイのみの表示で流体モーションが効くため、APUとdGPUを同一の液晶モニターに接続してAPUの描画負荷をdGPUに逃す場合、液晶モニターの切り替えが楽になります。APU側の出力がないので、どんな液晶モニターでも簡単に切り替えられるはずです。Display ChangerIIを使用しなくてもWindowsキー+Pで切り替えられます。

 

2.感想

 うちの環境では神アップデートでした。「流体モーション重すぎ!」という方は、ぜひ余っているRadeonを外付けして満喫してください。

 おじさんの「細けぇことはいいんだよ、動けば」というプログラム感覚からするに、今回のバージョンアップでのnative対応は、「LAVのデコーダーがDXVA2デコードするときにDirect3Dサーフェースなバッファを用意してレンダラーに通知しておら!」という暗号のような説明から、BlueskyFRCがレンダラーみたいにデータを受け取れるようになったのでしょ。一方、セカンダリディスプレイ対応は「DXVA2画像エフェクトはレンダラー関係なしにAPIで使えるようになった」らしいのでAPUを探して使ってくれるようになった。

と、知ったかぶりなプログラム評論家は納得しましたw。とにかく、BlueskyFRC1.1.0はちょーお薦めであります。

 

 

#VCEをアマレコで使いたくて今更ながらに何度目か(5年ぶり10回目くらいかw)のDirectShowを勉強しています。今回は挫折しないといいですがねぇ。SHIROBAKOを流体モーションで見たくなった、水島監督、凄いわ。


夜のヤッターマンがもったいない

$
0
0

 最初の数話と最後の数話しか見ていないが、50年に一度の素材をこーするとは、勿体ない。途中の話で上手に世界情勢を漏らしながら、説明不足の最終話を何とかしてくれよと。予想通りのラスボスで予想通りの展開なのに消化不良感が半端ない。水島監督にやらせろと!と思える。

いい話なのに、とにかくもったいない


話せば長くなる、時代はiWownでIOT

$
0
0

というわけで、忘備録で書きます。引っ越しとかで忙しかったんですよ。
時代は巡り、0円携帯がなくなるよという情報で今年初めにPHSを卒業しました。話せば長くなる話は自分のためになりますw。

504SHは勿論、プランSSでカケホーダイ・パケットなしの完全通話用です。iPhone4SにはDMMのSIMを差しています。その後、504shはSIMをkatana01に入れて使命を終えました。

で、引っ越して仕事が変わって、都知事選に小池さんに投票して、神奈川県民から都民になった優越感を味わっていたのです。しかし、特定の時刻にxxをするという仕事になりました(思いっきり底辺ですw)。そーゆー細かい作業はおじさんなのでとーぜん忘れてしまいます。そこで腕時計に通知すれば忘れないだろう。と思い、

iWOWN i5 Plus スマートブレスレット OLED Bluetooth4.0 スポーツバンド 活動量計 歩数計 睡眠計 カロリー消費記録 アラーム 遠隔カメラ 着信通知 長時間座るのを自動注意 IP65防水防塵 日本語対応 APP ブラック

iWown i5 plusを購入。しかし、こいつが微妙に使えない。通知とかはちゃんと振動してくれるんですがAndroidの4.3以降が手元にないのでw、iOSでの運用 となります。例えば、アプリであるZeronerのファーム更新画面では「アップグレッド」と語る大物です、中国製です。所々、大いに文字化けします。「ー」が「⊇」になりますw。腕時計の画面はスマホ側でビットマップを作って送信しています。

 IMG_0376

ならば、せっかくWindows10MobileであるKatana01を買ったのだから移植しようと強く誓ったあの日だった。

1.ノジマステラ、優勝おめでとう

 元相模原県民として言わせていただく、「ノジマステラ、優勝おめでとう!」。知る人ぞ知る去年の入替戦、ロスタイムで入れれば昇格、田中陽子はバーに当てて外しました。入替戦の1戦目の赤くてでかいマッチプレビューを今でも持っていますわ。閑話休題、

 まぁ細かいことはおいておいて、過程を全部省略するとZeroner以外で唯一?対応できそうなアプリ、iWown for Geekのソースコードがあったよ。という話なんです。こちら、httpsなリンクなのでNGな人はGoogleでiWownController-masterと検索ください。GitHubにあります。

2.大谷はメジャーで通用するのか?

 おじさんの世代としては165kmだの150kmのフォークだのと言われても、伊良部と重なるんですよね。重要なのは球速よりコントロール。松井以来、通用しなかった野手として海を渡ってほしいです。閑話休題、

 このiWown i5 Plus、カスタムファームも開発されていてとっても楽しめそうなハードです。ハードウェア的にも丸裸でRXとTXがあるという優れものw。ファームの入替で失敗したのが1台手元にあるので開腹したいw。

というわけで、「お客様の中にUWPに移植できる(した)方はいらっしゃいませんか?」当方は、BLEのサンプルを改造してWriteValueAsyncでアクセスディネイティッドエラーの状況で止まっています。よろしくお願いしますw。

#AndroidのWindowsXpは4.4ですね。最新は7.0ぐらいなのですが5.0以上必須のアプリとか見たことないです、というか手元の最新バージョンはsh504ですw。あと、コンパイルが面倒です、環境構築断念ですw


AKB-PCR20Xブルドックチューナー導入備忘録

$
0
0

訳あってAKB-PCR20Xブルドックチューナーを導入。k-an FSUSB2とplex PX_S3U2は導入済み。とにかく2chにもスレがなく、情報が少ない。

1.Visual Studio2017でコンパイル(SDKはtvtestをコンパイルできる程度に入れた)

変更点

①リンカーオプション

    • 安全な例外ハンドラーを含むイメージ:いいえ (/SAFESEH:NO)
    • sprintfのリンクエラー

 追加の依存ファイルをCyAPI.lib;%(AdditionalDependencies)に;legacy_stdio_definitions.libを加える

    • 出力先が..\..\binなので適当に調整する

425KBのBonDriver_Bulldog.dllが生成される。

2.パッチを当てる

①参考サイト

AKB-PCR20XブルドックチューナーのBonDriverにパッチをあてる。消えたら困るのでパッチのありかを記憶

注意点

  • CDからオリジナルソースをコピーして0からやったほうがいい
  • patchは2.5.9のUAC対応版を使った
  • ANSIを忘れずに(ここではまったw)
  • 上手くパッチがいったばあいには参考サイト通りにすんなりメッセージになる

image

  • ビルドエラー対処

1)エラー    C3861    ‘inserter’: 識別子が見つかりませんでした    BonDriver

BonTuner.cppに#include <iterator>を追加

image

2)安全な例外ハンドラーを含むイメージ:いいえ (/SAFESEH:NO)

3)出力ファイル名の変更

libの追加は不要になったw

 

3.パッチ版のいいところ

  • ND24を見ることができる

image

  • チャンネルチューニング空間を操作できる(試していない)

場所的にはTVTESTのここ(0.9.0)。tvrockとの連携で必須になるがBSCSしか見ないのでTvRockOnTVTest.iniの設定でごまかした。パッチを当てるとBonDriver_Bulldog.iniが生成されるのでiniの中身を見て変更可能(未確認)

image

  • ドロップが無くなる

時々、映像が乱れることが無くなりました。

 

 

 

というわけで、TVROCKでの視聴環境を構築できました。TVTEST0.9.0でCAS動かすには苦労したのですが今はOkです。TVTESTについては次回に

<追記>最新版のコンパイル(2017/4/28)

参考にした386exさんのblogにその2があり、最新版がありましたw。コンパイル時の注意としては

  • BonDriver_Bulldogのみをビルドすること(他のBONドラはエラーが出る)
  • legacy_stdio_definitions.libをリンクすること(型名なんちゃらのエラーが出る)
  • C3861    ‘inserter’ 上記参照

で500kぐらいのdllができます。20141209版との違いは使ってる上ではわからんw


TVTESTのコンパイル

$
0
0

備忘録として詳細はここ

1.TVTEST ver.0.9.0

TVtest 2chのスレとかに情報があるようにBaseClassesをSDKからコピー。ただし最新の開発版TVTest/tree/developはBaseClassesがすでに含まれている。開発版TVTest.slnをVS2017でオープン&ビルド。ワーニングは色々出るがコンパイルできる

2.CasProcessor.tvtp

復号化するための処理を呼び出すTVTESTのプラグイン(と勝手に解釈)。TVTESTのPluginsに配置。.hの上書き、cpp2170行目の処理とrcの変更をしてビルド。とりあえず起動するとこんな感じ。

image

 

3.B25.tvcas

CasReaderプラグインでCAS処理呼び出すためのライブラリだそうです。コアな部分なので情報が少ないw。とりあえず、TvCasのプロジェクトを選択して(デフォルトではMulti2Decoderなので注)、defファイルの指定(下図参照。extern “C”の意味とかそーだったなで感じw)とMulti2Decoder.libが無いよエラー(ディレクトリの指定がx86だとおかしい、面倒なのでMulti2Decoder.libをコピーして対処)。TVTESTのディレクトリに配置。

image

上手くいけばこんな感じ。この絵が手に入らなかったので動いているのかわからずに苦戦したw。B25.tvcasの時の動作画面です

image

懐かしい。NTTCom、確定申告の時に使って以来だよw。多くは語れないのでこれくらいで。


釣りバカ日誌はいい

$
0
0

往年のめぞん一刻世代が作っているね。誤解が誤解を呼ぶ展開がそっくり。


続、時代はiWownでIOT

$
0
0

遅ればせながら、iWown i5 plusで個人的に進展があったので

今まで使っていたのはこれiWOWN i5 Plus スマートブレスレット OLED Bluetooth4.0 スポーツバンド 活動量計 歩数計 睡眠計 カロリー消費記録 アラーム 遠隔カメラ 着信通知 長時間座るのを自動注意 IP65防水防塵 日本語対応 APP ブラック

今度買ったのがこれ¥1850。

 何が違うのかというと、上図横書のものファーウェアのバージョンが1.1.0.8、下図縦書きのが2.1.3.2なのです。そして、Android機を購入したので1.1.0.8のものを簡単に2.1.3.2にできるようになったというのが今回の結論です(IOSも同じアプリがあるらしい)。
 今まではこちらのようにやや怪しい方法(失礼)が必要だったのですが、公式のアプリからアップデットwできるようになりやした。(保証はないから自己責任で!)

image
GooglePlayからzeronerで検索、2番目に表示されるZeroner Health Proを使います。

1.とにかく立ち上げて接続し、設定ボタンを押す

image

2.アップグレードを選択(1.1.0.8からのアップグレード)ボタンを押す

image

3.確認画面

image

4.アップデート実行中絶対に触らない。ガチで30分かかるのであらかじめ充電しておくこと

image

5.完成

ファーム2.1.3.2の利点

  • 縦画面かっこいいが、見づらいので横モードの写真
  • 文字化けが減った(長音ーが⊇に化けなくなる。半角カタカナが使えるなど)
  • ソースを触らなくてもiWownControllerが使える(前はAPIバージョン1のルートで変な字がでていた)

image

前回から一部修正。文字はUTF-8で送っている。ビットマップで転送とか嘘w。

 で、ファームを1.1.0.8戻すにはこちらのようにやや怪しい方法で1108.hexを選択すればいい。フォントを触ることが可能かこれから調べます。

※今はアシガールが一番面白い。この世界の片隅にもよかった


ここからが本番、時代はiWownでIOT

$
0
0

 さて、前回でファームが2.1.3.2になって幸せに暮らしました、めでたしめでたし。が、紹介した手前、iWownControllerをいじくることになったのが旅路の始まりでした。って訂正してたら今2018年だ、年越していたわw。だが話が長くなるのはよい話題の証拠、お付き合いください。

 iWownControllerというのはルーマニア人のDmitry AloyanさんがGithubでソースコードを公開しているiWown i5, i5+, i6 用のスマホ側アプリです。GooglePlayではiWown for Geekとして公開されていますが、これが古い。少なくとも日本で入手できるアプリとしては古い。Githubで公開されている最新コードを使えば日本語表示(文字化けありw)ができるのです。純正アプリZeronerはメールアドレスを要求するので怪しすぎます。したがって、iWownControllerを使おうということになりました。

1.現時点での形

imageScreenshot_20180119-060538
 1)リソースの日本語化
 2)IWOWNでの日本語表示
 3)ステータスバーのアイコン表示(時計の形に変更)
 4)GoogleFitへの接続
 などができるようになりました。特に4)思い込みの激しさから1か月ぐらい右往左往していました。Android素人がここまで来た、その道中をご説明しますw。

2.iWownControllerのビルド
 1) 何はともあれAndroidStudioをインストール
 紆余曲折はあると思いますがAndroidStudio3.0適当にインストールしてくださいw

 2) ソースコードの取得
 GithubにあるiWownControllerのソースを取得します。pullとか面倒だからZIPでいいんじゃないかなw。下図参考。
image

 3) ビルド
 AndroidStudioでビルド。当然?エラーが出る。素人だから正しい対処法はわからんw。

image

 署名関連の部分(build.gradle)はとりあえずコメントアウトするとか、image

 なんかGradleの同期をとってみるとかして
 

imageorimage

 なんとか正常にビルドしてください(願)。署名関連の問題だと思うのだが、ビルドしないと変更できないし、変更しないとビルド出来ないし。

  • 多少勉強してわかったこと

 ① VisualStudioのソリューション(.sln)がAndroidStudioのプロジェクトに相当
 ② VisualStudioのプロジェクトがAndroidStudioのモジュールに相当


3.iWownControllerの改造

1) リソースの日本語化
 
調べれば出てくるので詳細は略。values-jaディレクトリの下にstrings.xmlを作って書き込む

image

2) IWOWNの日本語化

 英語版での設定はこちら。ちなみにGooglePlayから取得できるアプリにはこの設定がありません。
image

 ソースコード的にはDevice.javaの270行目あたり
image

 なのでIWownで####と表示されたら、この設定が効いていないことになります。

3) ステータスバーのアイコン表示(時計の形に変更)

 iWownControllerのデフォルトのアイコンだとステータスバーでは四角になってしまいます。2値化されるからかな?
image 
 そこでステータスバーに表示されるアイコンを変更します。App.javaの44行目あたりでアイコンに使用するリソースの値を変更し、
image

 リソースのビットマップを変更します。AndroidStudioに備わっている時計のアイコンにしました。

image

image

4) GoogleFitへの接続

 今回、Blogの間隔が開いてしまった最大の原因がこれ。言いたいことは山ほどあるが箇条書きにすると

  • Fitにつながったのかわからんかった。
  • じゃ、GoogleFitのサンプルを動かすか?と持ってきたソースコードを動かすと落ちるw
  • FitAPIを使うにはGoogle側の設定が必要。で、アプリの証明書のフィンガープリントが必要
  • 俺はフィンガープリントを正しく設定したんじゃ!ゴラッ、動けよ!!!
  • 結局、ここの言う通りなのだがもうちょっとエラーメッセージが親切なら…というか、サンプルいきなり落ちるな!!

 話せば長くなるので省略するが、GoogleFit接続ボタンを押してGoogleのアカウントを選択した後、以下の画面が出ればOk、アカウントはそれぞれよ。

image

 自分だけが苦労するのが恥ずかしいので、以下点描的に

  • Androidは明示しないとデバックビルドである。
  • デバックビルドの署名は.android\debug.keystoreに入っている
  • フィンガープリントを確認するコマンドは「keytool -list -printcert –jarfile apkファイル名」である。GoogoleFitのAPIを有効にし、コマンドで表示されたSHA1をAPIコンソールに打つべしSIGN_IN_REQUIREDのエラーが出る全国3千万のユーザの諸君、APIコンソールでのフィンガープリントの設定が間違っています!!!(断言)

で、GoogleFITにつなぐと何ができるのか調査中w(後日、ファーム1.1.0.8でないと動かないと判明w)

そうそう、1.0系からアップグレードした人のためにマニュアル置いておきます。

iwown_001-001iwown_001-000

#有田と週刊プロレスと2期終わりました。おかげで新日見るようになってケニーオメガすげぇ状態です。オメガ、プロレス上手すぎる、竹ぼうきとIWGP選手権できるわw

どうでもいい備忘録、2題

$
0
0

解決したのかしてないのかよくわからないが忘れないように

  • プチフリ
    プチフリというかわいいレベルではなく、本当に数十秒全てが止まる。
    →プチフリ対策にはいろいろありますが、これでした
  • USBストレージで起動が遅くなる(数分レベル)
    裸族で発生するかは?ですが同様のUSB2台増設のやつ、色は違うがメーカー的にここ
    →事象的にはここに近い。デバイス \Device\RaidPortxにリセットが発行されました。そこに書いてある通り、uaspstor.sysのリネームで解決。機器購入当初はちゃんと動いていたんですけどね。

どちらもいろいろなパターンがあるのでズバリ当てはまらないでしょうが参考まで

よくわかないエラーとか検索するとたいていどこかのblogで解決している。感謝

ROMライターでBIOSを

$
0
0

※まな板になることは少ないと思うが自己責任で

 たまにはタイムリーな話題を。約1年くらい前からRyzen1500xだったんです。2月にRyzen2200Gに変更したのです。いろいろ言いたいことはあるが、その時いわゆるスッポンをしてしまって1500はお亡くなりになりました(夜勤明けで買い物に行くな&そのまま作業すべきでないなぁと実感w)。が、事前にBIOSはアップデートしていたので2200Gには無事変更できました。

 今回の話はそこではなくRyzen1500の時に購入したマザーボードASUS PRIME B350-PLUSがメモリの相性問題でCMOSクリアしても使えなくて、ずーと押し入れで寝ていました。のこマザボのBIOSを最新にすれば、初期BIOSでは厳しかった相性問題をクリアできるのではないか?と閃いたのが始まりでした。

  1. ROMライターの購入
     買ったのはこれとこれ合わせて3500円くらい、高騰している?A10と比べれば1/3のコストでBIOSアップデートが可能です。もっと安いROMライターでも行けると思いますがレビューで実績があったのと簡単そうなので購入しました。
    zmart ROMライター USB BIOS 書き換え 復旧 マザーボード EEPROM フラッシュ SPI Windows
  2. 装着
     おじさんが若い頃はEEPROMはICソケットに鎮座していて一発で見分けがついたのだが・・・今はICの隣にそれっぽいコネクタが出てるか?(赤丸部分)で判断するみたい。ちなみにAB350MPRO4はここ

    image
    EZP2010をワニ口クリップで装着してアプリを立ち上げDetectを押して認識させます。
    image
    手持ちのMBでは

    ASUS PRIME B350-PLUS

    WINBONDW25Q128BV

    ASUS PRIME B350M-A

    WINBONDW25Q128BV

    ASRockAB350MPRO4

    Detect不明、WINBONDW25Q128BVで読書可

    番外としてFM2+マザー

  3. ASRockFM2AA88MPro3+

    WINBONDW25Q64BV

  4. 書き込む

    1)書き込むデータの用意
    ※追記 ASUSのBIOSはここを参考にちゃんとUUIDとか整形した方がいいみたいです。偶然うまくいったのかも
     ASUSのBIOSはxxxx.capというファイルです。長さは16386KBこのままだと大きすぎるので不要部分を削除します。バイナリエディタでそれっぽい先頭から000007FFを削除、長さを16384KBにします。ASRockのAB350MPRO4はダウンロードした時から16384KBだったので多分大丈夫w。
    imageimage

    2)書き込む
      Loadで書き込むファイルをロードしてAuto押下、するとEraseとWriteとVerifyをしてくれます。そうそう、ICの1番ピンをちゃんと考えて接続してください
    image

  5. まとめ
    BIOSを書き込んでRyzen2200Gで起動したMB
    ・ASUS PRIME B350M-A
    ・ASUS PRIME B350-PLUS
    BIOSを書き込みしたが2200Gで動かしていない(面倒なのでw)MB
    ・ASRock AB350M PRO4

    ASUSのマザーはSATAが6本あるため、FuzeDrive をようやく試せるわ。一家に一台ROMライターは必須であります。おかげで、AM4マザーは2枚余っているw。

  6. Ryzen2200G雑感(17.70)
    ・流体モーションOk
    ・A’sVideoConverter ハードウェアデコードをONにすると落ちる。HWデコード使いたいときはLAVの詳細画面で設定。
    ・VCEエンコード、H.265の画質、OneDriveへの保存用で使用しているのでこの画質で十分

    というわけでRX550時代より消費電力も減りシンプルになって大満足、低電圧化で試行錯誤中

#大谷3戦連発か野球も体格の時代だな。そうそう、わろてんかの失敗は大阪の話なのに上品な京都の主人公にしたため、題材的には完ぺきなのに

BulldogとBSジャパン

$
0
0

 よくわからんが、BSジャパンの修正点を。
今現在使っているこいつの場合、Bonドラと同じところに置くBonDriver_Bulldog.ch.txtを赤枠のように修正。理由はわからんw。2,にするとなぜかTBSチャンネルがwwwww

image

そうそう書き換えたらTVTEST再起動で再スキャンで

生存確認

$
0
0

近年の映像でかなり好きだったわ

メーテルの講談を聞きたい。大須でやってくれないかな。

あと、中川家の二人が近鉄以降、教えるように未熟な鈴木さんをフォローしてるのが垣間見れてよかったわ。京成の回、羊のところででメーテルおこられたんだろうなw。

Viewing all 63 articles
Browse latest View live