2018年12月21日金曜日

Linuxでfriioを使う(実用編)

Linuxでfriioを使う(構築編)

の続きです。

前の記事では、Xubuntu 18.04でrecfriioをビルドする方法をご紹介しましたが、これを実際に動作させるには、更に以下のパッケージが必要です。
pcscd
pcsc-tools
これらのパッケージをapt installで導入してください。

また、以下のようにして、カードドライバであるpcscdを予め起動させておく必要があります。
systemctl start pcscd
尚、最近のLinuxカーネルには、dvb_usb_friioなるドライバモジュールが予め内包されており、friioを接続するとこのドライバモジュールが自動的にロードされデバイスを専有してしまいます。(recfriioを使おうとしても、デバイスがbusyである旨のエラーが表示されます。)

このため、dvb_usb_friioドライバが自動的にロードされないよう、ブラックリストを作成します。
echo 'blacklist dvb_usb_friio  > /etc/modprobe.d/blacklist-dvb.conf
設定が完了したら、システム再起動します。

これでrecfriioが使えるようになります。
recfriio --b25 27 60 result.ts
とやることにより、27チャンネル(東京スカイツリーからの放送波でNHK総合に該当)を60秒録画したりできます。
放送されているチャンネルの割当は地方によって違いますので、以下のページからお住まいの場所のチャンネルの割当のご確認ください。

地上デジタル放送 チャンネル一覧表
 https://www.maspro.co.jp/contact/bro/bro_ch.html

ハードオフで安く購入した白フリーオですが、上記のコマンドで無事に録画できました。

良い買い物でした。

Linuxでfriioを使う(構築編)

先日、近所のハードオフに行くと、ジャンクコーナーで白Friioが540円で売られていました。

ルータが入った箱の中に、乱雑に詰め込まれていました。
店員さんが何なのか分からず、面倒になって適当に値段をつけてジャンク箱に放り込んだっぽいです。

動けばもうけものなので、早速購入しました。
今回はこれをハックしてみたいと思います。

まず、最初に残念なお知らせから。
フリーオの純正ドライバー類は購入者のメールアドレスがないとダウンロードできないようです。
とは言いつつも、まだネット上には有志の方々が残した互換ドライバなどが存在していて、丹念に探して行けば使えそうです。

普段家ではLinuxを使っているので、Linuxで使うための情報を探してみましたが、recfriioというコマンドラインツールで録画ができるようです。

recfriioについては、以下のサイトにあがっていたのを使わせて頂きました。

Friio関係ファイル置き場
http://www2.wazoku.net/2sen/friioup/

ここから以下のファイルをダウンロードします。
up1206.zip recfriio r5本体
up1210.zip recfriio r5のパッチ
ただし、これらのファイルは、私が使っているXubuntu 18.04ではビルドすることはできませんでした。

色々試行錯誤して、ビルドできるようにソースコードを修正しました。
こちらに上げておきますので、ご利用されたい方はどうぞ。
試していないですが、恐らくUbuntuでも動くと思います。

なお、Xubuntu 18.04でビルドするには、以下のパッケージが必要でした。
それぞれ、apt installでインストールしてください。
make
pkg-config
libboost1.65-all
libpcsclite-dev
ソースコードのtarアーカイブを展開した後、recfriior5のディレクトリに移動してmakeすればOKです。

お使いの環境にもよりますが、2〜3分でビルドが完了し、recfriioの実行ファイルが生成される筈です。

2018年12月20日木曜日

JavaScript実行後のHTMLソースを取得する

とあるブログ(blog.jpドメインのlivedoorブログ)を定期的に確認し、更新があったら保存するような仕組みを作りたくなり、シェルスクリプトとwgetでなんとかしようと試行錯誤したのですが、取得したHTMLから記事のURLを抽出できませんでした。

おかしいなと思って取得したHTMLソースを見たところ、記事の中身や写真はすべてJavaScriptでレンダリングされているようです。
多分クローラー避けなんでしょうが、最近はこういうサイトが多くて嫌になります。

残念ながらwgetはJavaScriptを処理してくれないため、このままでは記事を抜き出すことは不可能です。
ということで、JavaScriptを実行した後のHTMLを取得する方法を調べてみたのですが、PhantomJSを使うのが一番簡単そうなので試してみました。

PhantomJSは、様々なOSのディストリビューションでパッケージとして提供されています。

Xubuntuでは、
sudo apt install phantomjs
FreeBSDでは、
pkg install phantomjs
でインストールすることが可能です。

使い方はこんな感じです。
phantomjs script.js ${url_target} ${user_agent}
「script.js」は、以下のような感じで記述します。
var system=require('system');
var webpage=require('webpage');
var url=system.args[1];
var user_agent=system.args[2];
var delay=3000;
var page=webpage.create();
page.settings.userAgent=user_agent;
page.open(url,function(status){
    setTimeout(function(){var html=page.evaluate(function()
    {return document.documentElement.outerHTML;});
    system.stdout.write(html);phantom.exit(0);},delay);})
PhantomJSが第一引数で指定した上記JavaScriptを実行してコンテンツを取得、保存します。

保存したHTMLから、無事に記事のURLを抽出できるようになりました。

尚、PhantomJSを使う以外にも、「Selenium+WebDriver+ブラウザ(ヘッドレスモード)」っていう選択肢もあるようです。
(ブラウザを実行させるためにXなどのGPU環境が必要になるなど、若干重た目かも…)

このように便利はPhantomJSですが、既に開発が終了しているようで、ちょっと残念です。

以下のページを参考にしました、ありがとうございました。
https://teratail.com/questions/19039

2018年11月16日金曜日

メインのデスクトップPCの不調

ここのところ、メインで使っているデスクトップPCの調子が良くないです。
暫く使っていると、突然リセットがかかり、リブートしてしまいます。
ここ数日で3〜4回も発生しています。

まず初めにCPUの熱暴走を疑ったのですが、リブート後のBIOS画面で確認しても温度はせいぜい40度弱で、これが原因とは考えづらいです。
だいたい熱暴走なら、もっと暑い時期に起こっていないとおかしいですし。

以前似たようなトラブルに遭遇した際は、マザーボードや電源の電解コンデンサの液漏れが原因でした。
液漏れしたコンデンサを交換すると治ったので、今回もそれかなと思いケースを空けてみましたが、マザーボード上には液漏れしたり膨らんだりしたコンデンサは見つかりませんでした。
続いて電源も分解してみたのですが、こちらも同じく何も見つからず。

う〜ん、原因はなんだろう。

問題の切り分けするために、原因になってそうな箇所を列挙してみます。

・電源
・グラフィックカード
・マザーボード
・CPU(可能性小)
・メモリ(可能性小)

※ CPU、メモリについては、リセットする前にフリーズするケースが多いので、可能性小として後回しにします。

とりあえず、以下の順番で切り分けしていこうと思います。

(1) 電源を交換してみる。
(2) グラフィックカードを交換してみる。
(3) マザボードを交換してみる。

上記のどれかの手順で問題が再現しなくなれば、交換したものに問題があるとういうことになります。

2018年9月13日木曜日

古めのノートPCで使えるLTE対応の内蔵モデムカード

手持ちの古いノートPC(ThinkPad X61sとX201)にWWAN機能を追加しようと色々調べたので、備忘にまとめてみました。

LTE通信対応のノートPCのほとんどは、SierraWirelessのAirPrimeというデバイスを使ってLTE通信を実現しているようです。
このモデムカード、チップセットはQualcommのMDM9xxxシリーズが使われているそうな。

AirPrimeには、M.2接続のEMシリーズと、miniPCIe接続のMCシリーズがありますが、古めのノートに接続することを念頭に調べたので、MCシリーズに絞っています。

尚、MCシリーズは、miniPCIe形状ですが、実際にはminiPCIeソケットのUSB信号のみを利用します。
ですので、miniPCIeソケットにUSB信号が来ていないデバイスでは利用できません。

また、お約束ですが、USB信号が来ているminiPCIeソケットがあっても、ノートPC本体にSIMスロットがないと、せっかくモデムカードをセットしても、SIM情報を読み込めない為にLTE通信ができません。

モデムカードを購入する前に、お手元の環境がこれらの前提を満たしているのを事前に確認するようにして下さい。


MCシリーズのうち、LTEに対応しているものは以下の通りです。

AirPrime MC7304
AirPrime MC7305
AirPrime MC7330
AirPrime MC7350
AirPrime MC7354
AirPrime MC7355
AirPrime MC7430
AirPrime MC7455
AirPrime MC7700
AirPrime MC7710
AirPrime MC7750

このうち、日本国内のキャリアをサポートしているのは以下の3つのみでした。
この3つについては、技適マークが付いたものが存在すると思われます。

AirPrime MC7430

    LTE : 1,3,5,7,8,18,19,21,28,38,39,40,41
    3G  : 1,5,6,8,9,19

最もバンドのカバレッジが高く、3キャリアの主要周波数帯を全て網羅しています。
3キャリアの公式ページにもこのデバイスについての記載があるので、各キャリア向け、及びSIMフリー版のSKUが存在すると思われます。
利用可能な3つの中で最も自由度が高いですが、価格も高いです。

AirPrime MC7330

    LTE : 1,19,21
    3G  : 1,5,6,19

docomoおよびそのMVNO向け。
東名阪エリアで展開されているLTE Band 3はサポートしていないですが、カバレッジの広い1500MHz帯(Band 21)に対応しています。
加えて、800MHz帯(Band 6,9)に対応しているため、800MHz帯のみで展開している山間部エリアでもLTE/3Gともに通信可能です。
但し、幻のデバイスで、利用可能な3つの中で、最も入手性が低いです。
(私は、実物はもちろん、ネット上で売られているのも見たことありません。)

■AirPrime MC7700

    LTE : 1,4,17
    3G  : 1,2,5,6

こちらもdocomoおよびそのMVNO向けです。
docomoの対応バンドのうち、サポートしているのはLTEではBand 1のみ、3GではBand 1,6のみと貧弱で、800MHz帯のみで展開している山間部エリアでは、3Gにハンドダウンします。
但し、3つの中では、最も入手性が高く、廉価です。

それ以外のデバイスの中にも、技術的には使えるものもありますが、日本国内に在住している人が使うと電波法違反になりますので、ご注意下さい。


私が調べた限りは以上なのですが、万が一上記以外に技適マークがついているものを見かけたら教えて下さい。

2018年7月30日月曜日

Nexus7(2013)のバッテリー交換

うちにあるNexus7(2013)ですが、だいぶバッテリーがヘタってきました。

このデバイスは文字通り2013年に発売されていて、かなり年式が古いものなのですが、Google製で非常に人気のあるデバイスだったこともあり、Android 6.0.1までアップデートできたり、Lineage OSを導入してAndroid 7.1相当にできたりと、今でも使い手があるデバイスです。

バッテリーさえ持てばまだ使えそうなので、部品だけ入手して自分でやってみることにしました。

さすがに人気のあったデバイスだけあって、やり方がYouTubeに上がってます。



まずは、ホームセンターで100円弱で売られているプラスチック製の薄いヘラを使って裏蓋を開けていきます。
過度な力がかからないよう、慎重にはずしていきます。

無事裏蓋が外れたら、作業は7割完了です。

動画にある通り、2本のフレキケーブルの保護シールを剥がした上で外し、続いてバッテリーのコネクターを外します。
バッテリーのコネクターは横ではなく、上方向に引っ張ると簡単に外れます。

バッテリーは4箇所でネジ止めされていますので、精密ドライバーで金属のパネルごと外します。

バッテリーと金属のパネルは、両面テープで止められているので、先ほどのヘラを隙間に入れて剥がしていきます。
この時、金属パネルで手を切らないように気をつけて下さい。(私は指をざっくりやってしまいました。)

両面テープはかなりの粘着力で、剥がした後も新しいバッテリーを固定するくらいの粘着力がありましたが、精神衛生上よくないので、シール剥がしを使ってすべて除去し、再度別の両面テープを貼って新しいバッテリーを固定しました。

あとは逆の手順でバッテリーをネジ止めし、フレキケーブルを再度固定した上で裏蓋をはめれば完了です。

これであと2〜3年は使えそうです。

2018年7月19日木曜日

FUJITSU FMV-TC8270

先日、秋葉原のパレットタウンで1,980円(税抜)で売られているのをゲットしました。



詳しいスペックは以下の通り。
http://www.fmworld.net/biz/thinclient/0810/8270/spec.html

見た目はノートPCですが、シンクライアントとして売られていたようです。
筐体はパッと見かっこいいのですが、シンクライアントなせいか、塗装が剥がれやすかったりと、ややチープ目です。

CPUはCeleron 723で、ネットブックが廃れたあとに登場したCULVノートによく採用されていたCore 2世代の最廉価CPUです。

メモリの交換は、裏面のネジを2箇所外すだけで可能で、DDR3 SO-DIMMモジュールを2枚まで搭載できます。
スペック上は最大2GBとなってますが、2GBのDDR3モジュールを2枚の合計4GB取り付けてみたところ、4GB丸々問題なく認識されました。




HDDの交換はメモリの交換と違い、本体をバラしてやる必要があります。
裏面のネジ、及び側面のRGBコネクタの六角スペーサネジを外すと、裏面が外せます。








内部ストレージはCompact Flashで、2.5インチHDD形状の変換基板の上にマウントされており、変換基板はSATAコネクタに接続されています。

変換基板は特にネジ止めはされておらず、クッションで四角く区切られた領域に収められていました。
試しに、2.5インチのHDDを代わりに収めてみましたが、隙間が空き、確実に固定出来ません。

内部ストレージを2.5インチHDDに置き換えるには、別途固定用にビニールテープやクッションを用意する必要がありそうです。

ということで、FMV-TC8270をざっと見てきましたが、32GB程度のCompact Flashを用意してストレージを強化したり、メモリを2GB程度まで増設すれば、そこそこの用途に使えそうです。

2018年6月7日木曜日

8.5inch LDC電子メモ


AKIBA PC Hotline!に紹介されていた「8.5inch LDC電子メモ」ですが、面白そうなので仕事帰りに秋葉原に寄って買ってきました。

https://akiba-pc.watch.impress.co.jp/docs/wakiba/find/1125327.html

触ってみた感想は、とても軽いです。
質感は、ちょっとチープかな。
力をかけるとしなるので、鞄の中に無造作に放り込んだりするのはやめたほうが良さそうです。


肝心の書き心地ですが、滑らかで意外と繊細な線も書けます。
ちょっと表面がつるつるする感じはしますが、鉛筆の書き心地に近く、個人的には好きです。

難点は、消しゴムが無いこと。
書いたものを部分的に消すことが出来ず、上部のゴミ箱ボタンで一括消去しか出来ません。

あと、このデバイスは電池式のようで、上面のネジを外し、引っかかっている爪をずらして引き抜くと、CR2020が出てきました。


電池を替えればずうっと使い続けられそうなので、筆算とかする人には便利な気がします。

欲をいうと、SDカードスロットとかがあって、書いたものを画像で保存できたりするといいんですけどね。

だれか作ってくれないかな。

2018年5月17日木曜日

USB外付HDDの二股USBケーブルの使い方

USB外付HDDに付属している二股USBケーブル、正しく使っていますか?
AとBの接続方法、どちらが正しい使い方だかわかりますか?

【A】




【B】




正解は、Bです。

PCのUSBポートは、ほとんどの場合隣接する2ポートが同じバスで接続されています。
USB2.0では、1ポートあたり最大500mAの出力を許容していますが、実は1つのバス上のポートの合計出力も500mAまでに制限されていることが多く、同じバス上のポート2つに二股USBケーブルを接続しても、500mAまでしか取れないことになります。

このため、二股ケーブルを使う際は、電源供給側のケーブルを別のUSBハブに接続されたUSBポートに挿す必要があります。

ちなみに、2.5インチHDDの消費電力は、5V500〜700mAのことが多く、USB2.0のポートに挿して利用する場合、ほとんどのケースで二股ケーブルで正しく電源を供給しない限り、動作しません。

尚、二股ケーブルで電源を供給するために、別のPCのUSBポートから給電するのは非常に危険です。
双方のPCに電位差が生じている可能性が高く、最悪外付HDDやPC本体を損傷させてしまいます。

2018年5月15日火曜日

「FreeBSDをブートできる外付HDD」で、PC内蔵のHDDを丸々バックアップする

前回、やり方をご説明した「FreeBSDをブートできる外付HDD」ですが、これを使うと、PC内蔵のHDDを丸々バックアップできるようになります。

まず、PCにUSB外付HDDを接続して、USB外付HDDからFreeBSDをブートさせます。

FreeBSDが起動したら、rootでログインし、
dd if=/dev/ada0 of=./hdd_backup.bin bs=16M conv=sync
とやると、PC内蔵のHDDのイメージを hdd_backup.binの名前でUSB外付HDDの中に保存できます。

逆に、
dd if=./hdd_backup.bin of=/dev/ada0 bs=16M conv=sync
とやると、今度はhdd_backup.binで保存されたHDDイメージを、PC内蔵のHDDに書き戻すことができます。

今まで躊躇していた、怪しいサイトからダウンロードしたアプリケーションやドライバを、より気軽に試せるようになりますよね。

もちろん、バックアップ先のUSB外付HDDの容量が、バックアップするHDDの容量よりも十分大きい必要があります。
あと、バックアップするHDDの容量により、バックアップ/リストアの時間が大きく変わること点に注意してください。
外付HDDとPC本体の接続がUSB2.0の場合ですと、40GBのHDDをバックアップするのに、およそ30分程かかります。

ということで、HDDのバックアップを丸々取りたい方は、ご参考にして下さい。

2018年5月14日月曜日

FreeBSDをブートできるUSB外付HDDを作る

USB接続の外付HDDにFreeBSDをインストールし、ブートできるようにしておくと何かと便利です。

例えば、ブートしたFreeBSDで、PC内のHDDをまるごとイメージファイルとしてバックアップし、任意のタイミングでリストアして前の状態に復元できるようにしておけば、怪しいサイトからダウンロードしてきたアプリケーションやドライバをより気軽に試せるようになります。

ということで、今回はFreeBSDをブートできるUSB外付HDDを作ってみたいと思います。

使ったのは、秋葉原でよく見かけるUSB2.0接続の外付けHDDケース。
インストールしたのは、FreeBSD 10.4-RELEASEです。

この試み、簡単に行くと思いきや、意外と手こずったので、ハマったところをまとめてみました。

■失敗しないインストールの方法

まずは、FreeBSDのインストール方法から。

インストールするFreeBSDはi386(32bit)版が良いです。
これは、古いPC(CPUがAtom N270とか、Pentium M、Core Duoなどのもの)でも使えるようにするためです。

最近は、DVD/CDドライブがついていないPCが多いので、USBメモリをFreeBSDのインストールメディアとして使うのがリーズナブルです。
サイトからUSBメモリ用のイメージをダウンロードし、空のUSBメモリに書き込んでください。

但し、USBメモリから直接USB外付HDDへインストールを試みたところ、USB外付HDDのフォーマットに失敗する不具合に見舞われました。

いろいろ試行錯誤しましたが、USB外付HDDからHDDを取り出し、SATAケーブル等で直接PCに接続してFreeBSDをインストールし、ケースに戻すのがトラブルも無く一番手っ取り早いです。

尚、FreeBSDのインストール工程の一番最後で、fstabの内容を変更しておくことを忘れないで下さい。
インストール直後のfstabは、マウントするデバイスに「/dev/ada0a」などが指定されています。

インストール工程の「Final Configuration」で「Exit」した後に、「Manual Configuration」の選択肢が出てきますので、「Yes」を選択してください。

シェルに入った状態で、
vi /etc/fstab
としてfstabの編集し、
/dev/ada0a

/dev/da0a
などに変更します。
マウントするデバイスが複数ある場合には、すべて上記の通り変更してください。
(上記の変更をしておかないと、ブート後のファイルシステムのマウント時にpanicが発生します。)

■失敗しないHDD選び

どちらかというと、こちらの方を先に言及しておかなくてはならないのかもしれませんが、USBブートに利用するHDDは、512セクタのものを使用して下さい。

私の環境では、4kセクタのHDDからはUSBブート出来ませんでした。
4kセクタのHDDでは、FreeBSDのインストール自体はできるのですが、インストール後起動させると、画面右上に「|」のプロンプトが出た状態で固まってしまい、BTXにすら起動しません。
手元のWD WD10JPVX(4kセクタ)では何をやってもダメでした。

一方、512セクタのHITACHI HTS541640J9SA00(512セクタ)では問題なくFreeBSDが起動出来ました。

これは、今回使った外付けHDDケースのコントローラ固有の問題かもしれません。
世の中には4kセクタのHDDでもブートできるUSB HDDケースがあるかもしれませんので、もし4kセクタのHDDでも問題なくUSBブート出来たよ、という方がいらっしゃったらコメントで情報をいただけるとありがたいです。

2018年5月13日日曜日

L-04D

秋葉原の「PC Station キャプテン」で500円で投げ売りされていたのをゲットしました。

docomo向けのLTEに対応したWi-Fiルーターです。





どこかの法人のリプレイスで出てきた品物っぽく、テプラでラベルがはられていました。

Wi-FiボタンとWPSを同時に押したまま15秒程待つと設定がリセットでき、工場出荷時の設定に戻せます。
工場出荷時のSSIDとパスワードは、蓋を開け電池を取り出した場所に記載されているので、それを使ってL-04Dにアクセスします。

L-04Dの本体のIPアドレスには192.168.2.1が割り当てられており、ブラウザでアクセスするとWeb UIを表示できます。
Web UIのデフォルトのパスワードは1234でした。

docomoの製品なので、mopera Uで使う前提でプロファイルが用意されていますが、それとは別に自分でも設定できるので、MVNOのSIMでも問題なく利用できます。

L-04Dで掴める電波は、LTEはBAND1、W-CDMAはBAND1とBAND3のみと、今となっては少な目です。

ファームウェアは2016年7月に出たV10Cが最新のようですが、すでにサポートが打ち切られており、どこからもダウンロード出来ませんでした。
試しに、LGMobile Support Toolを使ってみても、V10Aの状態で「最新です」と表示されます。

それほどコストがかかるわけでもないので、ファームウェアとかは更新できるようにしておいてもらえると有り難かったのですが。

2018年5月10日木曜日

HITACHI FLORA Se210(RK2)にシガーソケットで給電

Xubuntuをインストールして使えるようになったFLORA Se210(RK2)ですが、今更ながら付属のアダプタが12V出力なのに気がつきました。

12Vということで、昇圧や降圧をせずに普通乗用車のシガーソケットから給電できます。

ということで、秋葉原の千石電商で、

・シガーソケット
・DCジャック
・DCジャック変換

を買ってきました。





本体のDCコネクタは、センターピンが細いタイプで、ちょうどいいのがなかったので変換で妥協しました。
センタープラスになるよう注意して、DCジャックとシガーソケットのコードをハンダ付けして完成です。





 早速車のシガーソケットから充電できるか確認、無事に給電されているようです。


FLORA Se210(RK2)のディスクはCFですので、衝撃を気にせずに利用できます。
これで車の中でもバッテリー残量に気兼ねなく色々出来ますね。

HITACHI FLORA Se210(RK2)に軽量Linuxをインストール

先日メモリとディスクを交換したFLORA Se210(RK2)ですが、今日はこのPCにOSをインストールして使える状態にしてみたいと思います。
インストールするのは、軽量Linuxディストリビューション。

・非力なネットブックでもそこそこ動作すること
・継続的なサポートがあること

を基準に、LubuntuとXubuntuを試してみました。

結局、個人的に使いやすそうと感じたXubuntuの方を常用することにしました。

インストール後、特に追加のパッケージをインストールすることなく、日本語の表示や入力も可能でした。
標準エディタのmousepadで日本語入力をしてみたが、なかなか快適です。

最近のLinuxすごいです。

特に何も考えずにi386(32bit版)をインストールしてしまいましたが、Atom N450が64bit対応なことに後で気が付きました。
今度機会があれば、64bit版のXubuntuも試してみたいと思います。

HITACHI FLORA Se210(RK2)



2017年冬に秋葉原のパレットタウンで1,980円(+消費税)で購入しました。



詳しいスペックは以下の通り。
http://www.hitachi.co.jp/Prod/comp/OSD/pc/flora/product/spc/florase210_rk2/spec.html

シンクライアントとして売られていたようですが、CPUにIntel Atom N450を搭載した、いわゆる第二世代のネットブックです。
メモリは標準で1GB、ディスクは2GB or 4GBのCompact FLashとかなり非力ですが、その一方で、11aが利用できる無線LANと、GbE対応の有線LANを搭載していて、ネットブックとして見るとちょっと良さめです。


 裏面のネジを外すことで、内部にアクセスができます。
内部にはCFスロットがあり、ここに2GBの工業用CFが刺さっていました。




手持ちの32GBのCFに早速交換。


メモリも基板に直付ではなく、DDR2なSO-DIMMソケットに刺さっており交換可能です。
DDR2-800 2GBのものに交換してみましたが、問題なく動作しました。

メモリやディスクを増設したところで、所詮はネットブックなので、Windows 7とか10を動かすには荷が重そうです。

軽そうなLinuxディストリビューションを探してインストールし、使えるか試してみようと思います。

2018年4月30日月曜日

dd-WRTでヘアピンNAT

我が家では、BHR-4GRVっていうルータにdd-wrtをインストールして使っているのですが、

・LAN内にウェブサーバを立て、
・Port Forwarding機能を利用して外部からウェブサーバへのアクセスを許容し、
・LAN内から、ルータのWAN側のIPアドレスでウェブサーバにアクセスを試みる。

場合、dd-wrtのデフォルトの設定だと、ウェブサーバにアクセスできません。

これは、デフォルトの状態では、dd-wrtにヘアピンNATの設定がされていない為です。

dd-wrtにヘアピンNATの設定をするのは非常に簡単で、
「Administration」→「Command」のページの「Command Shell」のCommands欄に以下の記述を追加し、「Save Firewall」を選択すればOKです。

LAN=`nvram get lan_ipaddr`/`nvram get lan_netmask`
iptables -t nat -I POSTROUTING -o br0 -s $LAN -d $LAN -j MASQUERADE


クラウド全盛の時代、自分の家にサーバを立てようっていう奇特な方がどの程度いらっしゃるかわかりませんが、ご参考まで。

連番ファイルに降順のタイムスタンプをつける

家でASUS MemoPad ME176CというWi-Fiタブレットを使っているのですが、このデバイスにプリインストールされている「ギャラリー」というアプリで画像を見ると、タイムスタンプ順の降順(新しい順)に表示されます。

自分が撮影した写真だとこれでいいんですが、自炊した画像データをデバイスに流しこんで見るときはとても不便です。

一応ソートの順番を「古い順」や「名前順」に変更できるのですが、アプリはこの設定を覚えてくれないようで、再度ギャラリーを見るとまた新しい順にソートされて表示されます。

なんとかしてギャラリーを開いた時に意図した並び順になるようにしたい。

という事で、連番のファイルに降順のタイムスタンプをつけるプログラムをシェルスクリプトで書いてみることにします。

■シェルスクリプト
#!/bin/sh

target=${1}

if [ -z ${target} ]
then
    echo 'Target is not specified, operation aborted.'
    exit
fi

if [ ! -d ${target} ]
then
    echo 'Target is not a directory, operation aborted.'
    exit
fi

timestump=`date +%s`

find ${target} -type f -print | sort -r | while read file
do
    if [ `uname` = 'FreeBSD' ]
    then
        date=`date -r ${timestump} "+%Y%m%d%H%M.%S"`
    elif [ `uname` = 'Linux' ]
    then
        date=`date +%Y%m%d%H%M.%S --date "@${timestump}"`
    fi

    touch -t ${date} ${target}${file}

    timestump=`expr ${timestump} + 2`
done
上のシェルスクリプトをファイルに保存し、引数に連番の画像が含まれるディレクトリを指定します。

本当はFreeBSDとLinuxで同じ記述にしたかったのですが、dateの使い方が双方のOSで激しく違う為、unameの戻り値で場合分けしています。
やっていることはシンプルで、現在のUNIXTIMEを取得し、そこからファイル名の昇順に2秒ずつ足したタイムスタンプを設定していくだけ。

ちなみに、なぜ2秒なのかというと、SDカードのファイルシステムであるFAT32が、奇数秒のタイムスタンプを許容しない為です。
FAT32では、タイムスタンプに奇数秒の指定をすると、偶数に丸められてしまう(-1秒される)らしい。

2018年4月1日日曜日

マザーボードのIOシールド(リアパネル)の自作

秋葉原やハードオフで、よく中古のマザーボードを購入するのですが、IOシールド(リアパネル)がついていないことがよくあります。

IOシールド自体はeBayとかで単品で売ってたりもするのですが、1,000JPY以上して、下手するとマザーボードより高かったりします。

別になくても実害があるわけではないのですが、ケースに収めた際に隙間が開くのがなんとなく嫌なので、なんとか出来ないか今まで思案していました。

そんな中、たまたま行った近所の100均の店でいいものを見つけました。



植木鉢の土が流れ出さないよう鉢底に敷くプラスチックシートで、もちろん100円です。
プラスチック製なので、ハサミやニッパーで簡単にカットできます。

こいつをIOシールドの形状に加工してみます。

まずは、ハサミでだいたいの大きさにカットした上で、各コネクタのスペースをニッパーで穴あけしていきます。
穴の目の大きさがアナログRGBコネクタなどのスペーサーとちょうど同じなので、スペーサーを外してから再度ネジ止めすると、固定できます。




実際にケースに収めるとこんな感じです。



まあ何もないよりはいいかな。