SyntaxHighlighter

---SyntaxHighlighter ウィジェット---

2014年12月18日木曜日

Chromeを使った提携アプリ解除

RT・アカウント乗っ取り型スパムのiPhoneからの駆除方法(iOS7・8両対応)

「面白い情報」やら「拡散希望」やらでURLを踏ませ
アカウントに寄生して勝手に広告しまくる嫌がらせ
解除する手順を以下に示します。


twitterは、iOSなどからアクセスするとモバイル版サイトに飛ばされます。
モバイル版はapplication扱いなので、そこからアプリ提携は解除できません(セキュリティ上の理由)

Google Chromeアプリを利用した提携解除手順を解説します。

判る人向け:UA偽装によるPC版twitterへのアクセス手順
        iOS8の場合はSafariで出来ます。

わからない人向け

1.アプリストアからChromeをダウンロードします。

ここをタップでアプリストアへ行けます。





2.インストールが完了するまで待ちます。

3.インストールができたら起動しましょう

4.歓迎されるので同意して続行をタップ


5.利用説明です。左にスワイプして進む

6.今回はログインは不要です。(Chromeがお気に召したらどうぞ)

8.文字書くの面倒になったので画像の中に文字入れました。














お疲れ様でした。

数日様子を見て、勝手なRTなどが無いか確認して下さい。
Chromeを削除しても構いません。


2014年11月22日土曜日

16F1705

若干間違えた使い方をしながら、16F1705を試食中。
32MHzでの内蔵クロックと、UARTとADCをとりあえず使えるようにした段階。

UARTのピンが自由に割り当てられてびっくりしました。
dsPICだと普通だったけども。


コメントが文字化けしてますが、これはちょっとどうしようもない(閉じてから気付き全ロスト)

さっそくPickit3にハマる

最近のPIC(16F 4桁系)は、新しい機能が色々ついていますね。
PLLで32MHzで駆動したりとか、WDTがプログラムから制御できたりとか
入出力の切り替えをロックできたりとか。

それはさておき、先日Pickit3を買い、使おうとしたら早速ハマり掛けたので報告。

噂には聞いていましたが、未だにこうだとは思いませんでした。


現象は簡単。MPLAB IPEでもMPLAB XでもPickit3に接続できないというもの。
シリアルナンバー自体は表示されるのに、Connection Failed. と言われます。

知恵袋の回答(というか質問者の返答)を参考に解決。

PICkit3とパソコンの接続がうまくいきません。ノートパソコンwindows8.1... - Yahoo!知恵袋 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11133085266

※旧MPLABで認識させ、書き換えてからMPLAB Xで接続する、という手法もあるようです。

質問者の返答の通り、
1.Pickit3を一旦抜き
2.Pickit3本体のボタンを押しながら接続
3.ボタンを離すとPCが認識するので、押せるようになり次第
 即座にMPLAB IPEのConnectボタンをクリック。

うまくいくと、上のログのようにファームウェアの更新が始まります。
多分リカバリーモード的な何かなのでしょう。

タイミングがシビアっぽいです。
2回ほどうまく行かなかったので怪しみましたが、3回目で成功しました。

一度書き換わると以後、MPLABでも問題なく通信できます。

多分、MPLAB IPEでのConnectを、MPLAB XでのWriteにしても、同様に修復可能なんじゃないでしょうか。
にしても、初回接続時に特殊な操作が要るのはまいったものですね。
Pickit2だとそんなことは無かったのだけど。

通常の手順で更新不能なくらい重大なバグが入ったまま未だに販売してるのか、当たりが悪かったのか。

ネット上の情報によると、つなぐだけできちんと認識するPCと、そうでないPCもあるようです。
Windows 8.1(x86)なのが原因なのだろうか。


2014年11月20日木曜日

買ったぜ。

これで、昔ながらのPICを使った開発ができます。



pickit2がWin8.1に対応しなくなって、Arduinoばっか使ってたんですが、いい加減Arduinoのコスパの悪さに気がついてしまったので、戻りたくなりました。

2014年10月21日火曜日

USBサーモグラフィモジュールのバグについて

楢ノ木技研さんから出ている USBサーモグラフィモジュールの
一部ロットに存在するバグについて記述しておく。

該当ロットは、9月発売分のUSBサーモグラフィモジュール【特上】

いずれもシリアル通信モード時に遭遇するバグであり、
おそらくUSB接続時には影響しない。(確認していない)

1.シリアル通信不可
販売元トップページ(ショップではない)のINFORMATIONにも記述されているが
USB接続によるサーモ情報の取得はできるが、シリアル通信モードでどんな
コマンドを送信しても反応しない致命的なバグがある。

解決方法はファームウェアの書き換えか製品の交換である。
連絡して対処してもらおう。(私もtwitter上でやりとりし、pickit2で書き換えを行った)

2.フレームレート設定失敗
OTK-THG01/02シリーズ・シリアルモード仕様書 によれば、
このモジュールは512[frame/sec]まで対応しているように見受けられるが、
実際には8[frame/sec]までしか対応していない。
(製品仕様ページには ”フレームレート:0.5フレーム毎秒~8フレーム毎秒”という記述がきちんとある)

しかし、フレームレートを設定するSETFコマンドにバグがある。
対応外の値を指定するとERが帰ってくるはずが、対応外の値を指定してもOKが帰り、
なおかつその際のフレームレートは以前の設定が保持されるため、設定に失敗したことに気が付きにくい。

電源投入後の設定でフレームレート設定に失敗した場合、初期設定の2[frame/sec]が
設定されたままとなる。

対処法は、対応しているフレームレート(0.5, 1, 2, 4, 8)のみを指定することである。




ちなみに、すべてtwitter上で報告済みであり、以降のロットでは修正されていることだろう。

2014年9月29日月曜日

ポケットサーモグラフィのプロトタイプ

数週間前に買ったUSBサーモグラフィ、シリアル通信が出来ず苦戦していたのだが
販売元に問い合わせてみると、ファームのバグだったらしい。

メインはPIC24Fだったので、手持ちのPickit2で頂いたHexファイルを書き込んで修復。
見事にシリアル通信ができるようになった。
以下の写真のサーモに5pinのヘッダが付いているのは、この書き込みの跡だ。

というわけで、かねてから計画していたポケットサーモを作ることにした。


画面には、簡単なシリアル通信で高度な描画が可能なe-DISPを使用。
センサーにはもちろんUSBサーモグラフィ。
制御は、シリアルポートとUSBシリアルが分離していてデバッグが容易なArduino Leonardo。

ArduinoのSoftwareSerialは、38400bpsでは送信はうまくいっても受信がうまくいかない。
そのため、ハードウェアUARTでUSBサーモと通信し、e-DISPにはソフトシリアルで送りっぱなしにすることにした。

e-DISPは、コマンドでいろいろと複雑な描画指定ができ、ここでは四角形描画コマンドを
使用して表示してるので、表示は実用レベルに早い。

表示できるようになると欲が出るもので、 補完処理が欲しくなる。

USBサーモのデモプログラムでは3次式補間(バイキュービック補間)を使用しているらしいが
これは結構重いらしい。
8bitマイコンでできる程度の補間といえば、ボカシとメディアン、直線近似くらいだろう。

一応、USBサーモを注文した段階でPC上でボカシ&メディアンな処理はやってみていたが
いまいちだった。
でもどうせならと、Arduino上で3x3のボカシ処理をするようにしてみると、あら不思議。
以外とまともな表示になるではないですか。



16x4を、48x12(限界)に拡大し、ここに3x3のボカシを掛けたのが、上記の画像である。
この時点では、処理にミスがあって端点ににじみのようなものが出てしまっている。
ちなみに、私の顔だ。



処理を修正し、元画像と並べて表示するようにしたのがこれ。私の手だ。
単にボカシを掛けただけなのだが、ここまで見やすくなるとは、本当に意外だ。

ここで、問題が出てくる。高解像度の表示をしようとすると、ぼかしの処理そのものが早くても、38400bpsの通信では遅い。

e-DISPにはダイレクトにピクセル単位で送受信する機能もあって試してみたが、
これでは四角形描画指示をするよりもむしろ格段に遅かった。

e-DISPそのものは、115200bpsまで送受信可能だ。
しかし、ArduinoのSoftwareSerialでは確実に通信できない。ハードウェアUARTに頼る他ない。
実際、115200bpsで表示したところ、さきほどまでのノロノロはどこへやら、高速に表示された。

しかしながら、SoftwareSerialの38400bpsでは送信できても受信がうまくいかないのは
先ほど言った通りだ。いくら表示が早くても、肝心のサーモ情報を受け取れないのでは話にならない。

USBサーモのボーレートが38400bps以外に変更できればいいのだが、それもできず。
というわけで、アホなことをすることにした。

_人人人人人人人人人_
> Arduino2台使用 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄


実際の光景がこちら。


表示されない場合はこちら。

このあと、画面バッファの切替機能を使って描画中の表示を出さないようにするなど工夫している。
各種部品は注文したので、届き次第、ケースに組み込んで本当に携帯できるようにしたい。

今回は、ソースコードは載せないことにした。
ちょっと場当たりすぎて汚い。後々、リファインしたら載せるかもしれないが。

もし欲しい人がいたら問い合わせていただければお渡しできるかもしれませんが。

2014年9月23日火曜日

いろいろとメモ

まず1つ、Google App Scriptエンジンはかなり便利。

スプレッドシートでチャットもどきを作ったが、GASを組むと
自動でソートしたり、色つけたり、外部サーバーに通知送ったりと色々できる。
一定間隔で実行なんかもできるので、cron代わりに使っている人もいるようだ。
twitterにもアクセスできるみたいなので、botを組むこともできるかもしれない。
ただし、処理が長引くと切られる。

外部のサーバーにGETを投げるのも、
UrlFetchApp.fetch("http://example.com/");
の1行でOK。

ただし、接続に失敗したりすると、後々メールでエラーレポートが来るので
例外キャッチはしておいたほうがいいだろう。


もう1つ。Perlで、GETアクセスがあると音声を鳴らすだけの簡単な
HTTPサーバーを書きました。やっつけ。

Win32::Soundを使うと、どうも音が被った時なんかにならなくなるので、
マルチスレッドな用途にはWin32::MediaPlayerを使ったほうがいいようだ。

ただし、後始末をきちんとしていないせいか、メモリがごりごり食われる。
まあ、サーバー機ではなくPC上で一時的に使うものなので、気にしなくても良いだろうが。

2014年8月12日火曜日

新しい無線LANアダプタ

新しい無線LANアダプタが届いた。
【Amazon.co.jp限定】PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 300Mbps GW-USECO300A (FFP)
http://www.amazon.co.jp/dp/B00ESA34RO/

評判の通り、RasPiには差すだけで動いた。
動いたには動いたのだが、最初不安定すぎてハズレを引いたかと思った。
具体的には、RasPiに建てたhttpにまともに繋がらないのと、pingが100ms台(ロストあり)な
不安定な応答を示していた。

ただし、RasPiからPCに向かってpingを送り続けている間だけ改善する。
PCからルータやアクセスポイントは3ms程度の普通の応答を示す。

少し調べてみると、次の記事が見つかった。

Raspberry Pi Wifi GW-USValue-EZ 安定させる ハードウエアを改造する前に要確認 - ORBIT SPACE
http://www.orsx.net/blog/archives/4932

これを試したところ、状態が劇的に改善して、8ms台(ロストなし)になりました。
どうも、RasPi側からpingを送ると一時的に改善されていたのは、省電力モードが解かれるからとかそういうことだったらしい。

発熱は相変わらずするが、前ほどの酷い発熱ではない。
なにより時間経過で安定性が悪化しない。

2014年8月8日金曜日

発熱アダプタ(無線LAN機能付き)

Logitec 無線LANアダプタ 150Mbps 11n ブラック LAN-W150NU2AB

こいつが使い物にならない。


今までRasPi typeAは、用途がなかったのもあって短時間しか使っていなかったので

気づかなかったが、このアダプタ、通信状態が続くと

異常に発熱して不安定になる。


どうやら、SSH接続が突然不安定になるのも、apt-getに失敗するのも

これだったらしい。


ヒートシンクを貼り付けてみるも、風を当てないことには冷えないし、

いい加減嫌気がさしたので買い換えることにした。


どうやら、小型タイプはどのメーカーも軒並みダメらしいので

諦めてスティックタイプを買うことにした。

届いたら報告しようと思う。

とりあえずのデモ

こんな感じになりました。


やってみると、レスポンスがおもったより悪かったり、無線LANの発熱のヤバさ(というかそれで不安定になる)がわかったり、なんだり。
longPollによる通信量節約はうまくいってるようです。

RasPi型サーバースクリプト完成

ComputerCraft側からスイッチ入力を受け付けるための、ロングポーリングできるHTTPサーバー
とりあえず完成したのでコードを貼る。

おもいっきり自分用なので、再利用は考えていないしコードは汚い。

機能
 GETのみ(HTTP/0.9相当)の実装
 コントロールデモ用のページ (/)
 LEDのON,OFF操作(LED?1 LED?0)
 スイッチの取得(poll1 poll2)
 スイッチのロングポーリング的な取得(longpoll1 longpoll2)
 I2C-LCDへの表示機能 (lcd?message@message)
   →@で改行、URLデコードしていないので空白ダメ。代わりに_でも使っとけばいい。

という手抜き仕様。
しかも、system関数を使っていたり、バッファオーバーフローの危険性がそこかしこにあったり。

メニュー画面はこんな感じ。手抜き。
せめてjavascriptでデモできるようにしたかったけど、今はそこまで手がまわない。

いいんだ、Luaからアクセスするために作ったんだから。
間違っても、ネットに生で繋ぐとかアホなことはしないように。

ちなみに、こんな感じのロマンスイッチが繋がってます。



Lua側のスクリプトはまた今度。

Device::BCM2835

というわけで、自分用GPIOリスト
Perl版Device::BCM2835を使う場合は、この番号になるはず。
GPIOと書かれたところの番号しか、&Device::BCM2835::RPI_GPIO_P1_*で
指定できなくてエラーが出るはずです。

使う人がいる場合、自己責任で。
※I2CポートもGPIOですが、は、個人的に液晶をつないでいるのでなしにしました。

>引用:定数リストの一部 from search.cpan.org
RPI_GPIO_P1_03
RPI_GPIO_P1_05
RPI_GPIO_P1_07
RPI_GPIO_P1_08
RPI_GPIO_P1_10
RPI_GPIO_P1_11
RPI_GPIO_P1_12
RPI_GPIO_P1_13
RPI_GPIO_P1_15
RPI_GPIO_P1_16
RPI_GPIO_P1_18
RPI_GPIO_P1_19
RPI_GPIO_P1_21
RPI_GPIO_P1_22
RPI_GPIO_P1_23
RPI_GPIO_P1_24
RPI_GPIO_P1_26


ついでに使い方もまとめておこう。
なかなか探しても出力の例ばっかで、入力の見つけられなかったし。

PerlでDevice::BCM2835を使う場合。

*宣言
use Device::BCM2835;

*初期化
Device::BCM2835::init() || die "Could not init library";

*入力に設定(input)
Device::BCM2835::gpio_fsel(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_FSEL_INPT);

*出力に設定(output)
Device::BCM2835::gpio_fsel(&Device::BCM2835::RPI_GPIO_P1_24, &Device::BCM2835::BCM2835_GPIO_FSEL_OUTP);

*プルアップ設定(Internal pullup enable)
Device::BCM2835::gpio_set_pud(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_PUD_UP);

*プルダウン設定(Internal pulldown enable)
Device::BCM2835::gpio_set_pud(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_PUD_DOWN);

*プル無効設定(Internal pullup disable)
Device::BCM2835::gpio_set_pud(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_PUD_OFF);

*HIGH出力
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, 1);
or
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, HIGH);

*LOW出力
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, 0);
or
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, LOW);

*入力取得
$val = Device::BCM2835::gpio_lev(&Device::BCM2835::RPI_GPIO_P1_23);

*ミリセカント単位のディレイ
Device::BCM2835::delay(100);

PerlからRasPiのIOを叩く。

PerlからIOをプルアップ付きで操作したいと思ったら嵌ったの巻。

まず、特殊ファイルでのIOを使ってみるも、内臓プルアップができない。

注意:directionにhighを書き込むとプルアップという噂がありますが、
      どうみてもただの出力です。
80Ωとか、それプルアップじゃなくて単なる
      出力の内部抵抗です。電流オーバーしてますよね絶対。

      catでdirectionを読み出すとおもいっきりoutになってますし。壊れなくてよかった。

便利そうだしとWiringPi-Perlを入れようとするも、エラーだらけで萎えた。
使いものにならない。

結局、BCM2835関係を入れることに。
http://sai-lab.ddns.net/diary/10053.html

ここにしたがって、ドライバをダウンロードし、RasPiに転送し、
手順にしたがってmake等々行い
http://www.airspayce.com/mikem/bcm2835/

CPANでinstall Device::BCM2835して

OK。今までの苦労は何だったんだ。
LチカOK。

ところがどっこい。プルアップで地獄を見ることに。

資料が少ない。まぁ、ないというほど無くはない。
http://search.cpan.org/~mikem/Device-BCM2835-1.4/lib/Device/BCM2835.pm

プルアップについてはここ。
http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html

http://blog.e-photographer.net/?p=718&lang=ja

www.airspayce.com/mikem/bcm2835/group__gpio.html

どうもプルアップを有効にするために、クロックを一時的に供給する必要があるらしい。
イネーブル信号的な意味があるとか。よくわかりません。

原理的にはこうらしい。多分、レジスタにラッチさせるんだろうなぁ。
クロックって言うより本当にイネーブルなんだろう。
Device::BCM2835::gpio_pud(&Device::BCM2835::BCM2835_GPIO_PUD_UP); #クロック供給を開始
Device::BCM2835::delayMicroseconds(20); #クロック適用前ウェイト
Device::BCM2835::gpio_pudclk(&Device::BCM2835::RPI_GPIO_P1_11, 1);#プルアップクロック掛ける
Device::BCM2835::delayMicroseconds(20); #クロック適用後ウェイト
Device::BCM2835::gpio_pudclk(&Device::BCM2835::RPI_GPIO_P1_11, 0);#プルアップクロック止める
Device::BCM2835::delayMicroseconds(20); #クロック適用前ウェイト
Device::BCM2835::gpio_pud(&Device::BCM2835::BCM2835_GPIO_PUD_OFF); #クロック供給を開始
#Device::BCM2835::gpio_set_pud(&Device::BCM2835::RPI_GPIO_P1_11, &Device::BCM2835::BCM2835_GPIO_PUD_OFF); #戻す
Device::BCM2835::gpio_pud(&Device::BCM2835::BCM2835_GPIO_PUD_OFF); #クロック供給を停止

で、2時間悩んだ結果、プルアップが適用されない原因がわかりました。
というより、適用されるはずがなかった。

ピン番号の読み方を間違えていたのだから。

ここでの指定 RPI_GPIO_P1_11 なんかは、左上を1pとして、純粋なピン数を数えるものでした。
つまり、なんか出回ってるGPIOの番号一覧とか、BCMの番号一覧とかは全く関係なく

しかも、プルアップしてないときはなんとなく取得(ノイズで?)できてたので、さらに混乱してました。

そりゃ、プルアップに設定してテスター当てても電圧でないわけだ。
なんでこのポート存在するはずなのに定数にないのかなぁ、とか思ってたけど。

ハァ

てなわけで今日のソース。



2014年8月7日木曜日

車輪の再発明中

ちょっと特殊な用途で使うHTTPサーバープログラムが必要になったので
perlでソケット通信レベルで組むというちょっとアレなことをしている。

とりあえず、基礎的な通信と、マルチスレッド化まではできた。

特殊な用途というのは、ComputerCraftとRaspberryPiをHTTPで通信させて
LongPollingでリアルのスイッチの状態をMinecraftのレッドストーン回路に反映させようというもの。
LEDの光も同時にコントロールしたいので、マルチスレッドにした。

まだ途中なのと、動作確認も中途半端で、肝心の機能も実装していない。
もちろんのこと、(いないと思うが)使ったり参考にする場合は自己責任でお願いします。



主に参考にさせていただいているのが以下。

PerlでSocket通信 - はちゅにっき
http://hatyuki.hatenablog.jp/entry/20060608/1149771934

perlthrtut - Perl におけるスレッドのチュートリアル - perldoc.jp http://perldoc.jp/docs/perl/5.18.1/perlthrtut.pod

2014年6月26日木曜日

サーバー用RasPiのシステムが吹き飛んだ。

apt-get upgrade ; apt-get updateを気軽に実行したのが運の尽き。
カーネルのアップデートに失敗し、ブート異常で起動しなくなり、
start.elf等上書きしたら起動したんでしばらくほっといたのですが、
今日reboot掛けたらそのままお亡くなりになり、SDカードの中身はぶっとんでました。

残念。

バックアップを取っていないデータが多数あります。
主にスクリプト。

メインの情報は中継のみしていて、別サーバーにあるので無事ですが、
結構な時間を掛けて書いた、ファン制御スクリプトや、中継用スクリプト、各種設定が吹き飛んだのは残念です。

まぁ、PC上に元のスクリプトは存在するのですが、RasPi上で結構書き換えていたもので、
どこまで古いものかわかりません。

気長に復旧することにします。

2014年4月19日土曜日

WindowsXPでも引っかかるの巻

先日、Vistaを仮想化して0x7B (INACCESSIBLE_BOOT_DEVICE)で起動失敗ループにハマった事象について書きましたが
その後XPも仮想化したらやっぱり同じ事故が起きました。

しかも、Vistaのように回復コンソールが生きてるということもなく。
「またイメージの作りなおしか...」と思いましたが、工夫で乗り切れました。

今回、XPマシンの仮想化をしようとNHCを使ったところ、なぜか見事に失敗しました。
ディスクのスキャンを掛けても、セーフモードにしてもダメ。吸出し途中でエラーで止まる。

「これはXPだからダメなのかもしれない。」そう思い、Paragon Backup & Recovery™ 2014 Freeの
CDブートでのバックアップによる吸出しを試しました。成功。

そのまま、仮想マシンでもCDブートし、まっさらな仮想ディスクにリストア。成功...かとおもいきや、0x7Bです。
「多分、書き込み自体は成功している」という憶測の元、次のことをしました。

1.仮想マシンからParagon Backup & Recovery™ 2014 Free ブートCD(Linuxらしい)のファイル救出ウィザードで
 Driver.cabと、system(レジストリファイル)を外付けHDDに吸い出し
2.仮想マシンを終了し、外付けHDDをホストマシンで開き、Driver.cabとsystemを取り出す。
3.Driver.cabを解凍して、前回の記事でリンクしたMicrosoft公式で指示されているドライバ4ファイルを取り出す。
4.systemをハイブとしてregeditで取り込み。Microsoft公式のレジストリ書き換えファイルに少し手を加え、
 本体ではなくハイブに書き込むように調整。実行して書き換え。

↓参考
広島パソコン出張サポート 「VMware Windows XP STOP:0x0000007B 広島市中区へ訪問サポート修理 」 PCサポートフィールド 
http://pcsfield.com/support/archives/support2889.html 

5.systemとドライバ4ファイルを外付けHDDに書き込む
6.仮想マシン起動。ファイル救出ウィザードを使って、仮想マシンの上記ファイルを外付けHDDのファイルで上書き
7.再起動して無事起動。

結論:先に対策しとけば困らない

なお、この方法が原因なのかわかりませんが、XP起動後にライセンス認証の要求をされ、
電話で認証するはめになりましたとさ。

Windows VistaのHDDイメージがVMwareで起動しない件の解決法

ちょっと事情がありまして、今までVistaを入れて居たPCの中身を
いったんすべて消してまっさらにしようと考えました。

でも、環境としては残しておきたいということで、昔から何度かやっていた
物理ディスクから仮想化イメージを作成して、仮想PCとして動作させることにしました。

しかし、色々とハマったので記録しておきます。

---

ハマリ点1. VirtualPC 2003ではなぜか起動できない。

これは初めて仮想化した時にハマったときので、
昔の記憶なのでアレですが、なぜかVirtualPC 2003では既存のイメージから
Vistaを正常起動させることができませんでした。
なので、私はVMware Player4を使っています。こちらだと非常に快適に動きます。

ハマリ点2. 物理ディスクの仮想化がうまくいかない。

今回、有名ドコロのVMware vCenter Converter Standaloneを試してみましたが、
なぜか「容量不足」のエラーを吐いて作成が1%しか進まないという現象に悩まされました。
仮想化イメージの書き込み先のHDDは500GBもあるのに。 (仮想化対象は160GB)

しかたがないので、今まで何度もお世話になってきたNHC(euee様)のお世話になることにしました。
http://euee.web.fc2.com/tool/nhc.html

仮想ディスクの変換が主なようですが、管理者権限で起動すると物理ディスクからも
様々な形式のイメージを作成してくれるようになります。(UACオンのPCでちょっとだけハマリました)

内蔵HDD→USB2.0 HDD で、3時間程度で仮想化完了。

ハマリ点3. 0x7B (INACCESSIBLE_BOOT_DEVICE)で起動失敗ループにハマる。

今回一番ハマりました。
仮想化したイメージを、一旦新しく作った仮想マシンの仮想ディスクに上書きして起動するのですが、
Vistaの起動画面(バーが流れる画面)に数秒入ったあと、ブルスクを吐いてリブートします。

最終的に参考にしたのは以下の3つのサイト。

起動ドライブをPATAからSATAに変更した時のINACCESSABLE_BOOT_DEVICE復旧方法 - Kerosoft : Modus Operandi
http://mo.kerosoft.com/0175

Solve a Stop 0x0000007B error when booting Vista from physical disk image in VMWare | public void Ph…
http://www.vodovnik.com/2010/05/09/solve-a-stop-0x0000007b-error-when-booting-vista-from-physical-disk-image-in-vmware/

Windows XP のシステム ディスクを他のコンピューターに移動した後に STOP 0x0000007B エラーが表示される
http://support.microsoft.com/kb/314082

しかし、ここに乗っていることを実行しただけでは、症状は変わらず。

結果どうしたかというと、
1.回復コンソールからコマンドプロンプトを開く (こちらは最初から正常に動きました)
2.上2つのサイトで言われている通り、ハイブとしてマシンのレジストリを読み込み
  (注:これをしないと、回復コンソールの一時的なレジストリを弄ることになり無意味です。)
3.読み込んだハイブのControlSetxxx\services\以下を「SCSI Miniport」で検索。(xxxは3桁の数字。複数存在する場合は全部)
4.見つかったものキーの「Start」の値を片っ端から「0」にしまくる
5.見つからなくなるまで3,4を繰り返す。

これで起動しました。

ちょっと乱暴な方法だとは思いますが、SCSI関係のドライバが読み込まれないのが原因というのが
上記3つのサイトでなんとなくわかったので、全部起動時に読み込むようにしてみた次第です。

2014年4月4日金曜日

RaspberryPi TypeA導入

前々からサーバーとして利用していたTypeBとは別に
電子工作用にTypeAを導入しました。

なぜわざわざタイプの違うのを選んだのかというと、
勉強も兼ねてが1つ、無線で繋ぐので有線LANポートが要らなかったのが1つです。
あと安かったから。

今は、ひと通りのアプリケーションやモジュールの導入をしています。
無線接続も下の商品を使ったところ、なんの設定もなしに出来ました。

Logitec 無線LANアダプタ 150Mbps 11n ブラック LAN-W150NU2AB ロジテック
 http://www.amazon.co.jp/dp/B00BQ6WPKA/

とりあえず、ヒートシンクの取り付けをしてから色々遊びたいと思います。
Arduino+Ethernetシールドではやりづらかったこと(主にSSL通信)が、
しかも無線でできるので、楽しみです。

ところで、私は10Ahのモバイルバッテリーを持っているのですが、
20時間近くは動く計算になるんですね。実際には15時間行けばいいほうでしょうか。

RasPiをケースに収める際、モバイルバッテリーと一体化させることも検討しています。

2014年3月31日月曜日

SyntaxHighlighter導入

こちらを参考に、SyntaxHighlighterを導入してみました。

Jump into!: BloggerにおけるSyntaxHighlighter Ver.3.x
http://moririn-web.blogspot.jp/2011/12/bloggersyntaxhighlighter-ver3x.html

1つわかったのは、プレビューではうまく表示されないということ。
ほかのサイトではされると言っているところもあって、おかげでだいぶ悩んだ。

エイリアスについては以下参照。
SyntaxHighlighter - Bundled Brushes http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

テスト

エディタにコード吹き飛ばされたり、妙な表示になったり、
なかなか難しい。

最後に作成画面に切り替えて更新すると、javascript扱いで書いたコードはまるごと吹き飛ばされるらしい。
preタグ記法の場合は、エスケープしつつタグ削除しなきゃいけなかったりで、なんとも...

RasPiでNet::Twitterが導入できない件

とある監視スクリプトをperlで書き、Windows上で動作を確認したので、
RaspberryPiに入れようとしたら、動かない。

Net::Twitterモジュールを入れていなかったのに気が付き、
CPANで入れようとするもどうもエラーを吐く。

 MIKEM/Net-SSLeay-1.58.tar.gz                 : make NO
 SULLR/IO-Socket-SSL-1.973.tar.gz             : make_test FAILED but failure ignored because 'force' in effect
 GAAS/LWP-Protocol-https-6.04.tar.gz          : make_test FAILED but failure ignored because 'force' in effect

散々調べた結果、
sudo apt-get install libssl-dev
で解決することがわかった。

参考にしたサイト
 Net-SSLeayのビルドに失敗する件 - 黒縁眼鏡は海を飛ぶ
 http://ryo14-a.hatenadiary.jp/entry/2013/07/22/222739

 Raspiを買った頃にどう使おうかなーと考えたところ、丁度Google... | CRLFUserReminder
 http://0x0d0a.tumblr.com/post/53177276645/raspi-google

OpenSSL関係のライブラリがないために、oAuth認証のためのSSL関係のモジュールを
コンパイルすることができなかった、ということらしい。


ついでに教訓: 「とりあえずforce install」 は辞めましょう。事態が解決したあと面倒なことになります。
(libsslを入れたあとNet::Twitterを入れなおそうとしたら「もう入っている」と言われて入れなおしに)

初投稿と自己紹介

何年ぶりかわかりませんが、ブログを始めました。

なんだかtwitterに色々書いても、単なる断片でしか無く、
かといってサイトにまとめるのも面倒になってきたので、ブログ形式でやっていこうと思います。
もっとも、まとまった情報はサイトに別途まとめようと思っていますが。

サイトはこちらです。
https://sites.google.com/site/gpsnmeajp/home

これを読んでくださる方が何人いるかわかりませんが、よろしくおねがいします。


現在の環境を軽く説明しておきます。

RaspberryPiをサーバー機にしており、Linuxの学習とPerlスクリプトの動作に利用。
ArduinoはUnoとLeonardをそれぞれ1台持ち、プロトタイピングに利用。

また、Pickit2と秋月PICライターを持っており、主に16F648A,12F683,16F886を使っています。
PICはアセンブリから入り、C言語と両方を使っていましたが、最近はもっぱらCで書いてます。

AVRはライターだけ作って放置。

ガジェットは、iPhone5sとAndroidタブレットを持っていますが特にアプリ制作などはしていません。
BLEに興味があるので、iPhoneを触ってみたいとは思っていますが、
Macを持っていないのでしばらくは無理そうです。

最近、チップ部品と温調ハンダこてを買ったので、チップ部品のハンダ付けを練習中。

そんなところです。