チラシの裏の電子工作

電子工作、PC関係の備忘録というか、チラシの裏

Debian9でds-liteルータを作る

少し前に、WSR-1166DHPにLEDEをインストールしてds-liteルータを作った。
けど、無線LANを使わないなら普通にLinuxでよくね?って思ったので、Debian9で作ってみた。

ホストはESXi6.5だけど、ぶっちゃけ試してみたいってだけならPlayerとかでもいいかも。

仮想OSの準備
debianを最小構成でインストール。
もうこの際netinstの更に最小構成で良いと思う。

仮想OSにアプリを追加する
もうこの辺は好みで良いと思うけど、自分は以下の物を追加でインストール
  • open-vm-tools
  • vim
  • network-tools
  • traceroute


IPの固定
自分の場合はVPNへの折り返しルーティングが必要なので、ついでに設定しておく。
/etc/network/interfaces

allow-hotplug ens192
iface ens192 inet static
 address 192.168.1.28
 netmask 255.255.255.0
 gateway 192.168.1.1
 dns-nameservers 192.168.1.1
 post-up route add -net 172.16.0.0/24 gw 192.168.1.4


DS-Liteの設定
ゆっくり遅報さんが掲載されてるスクリプトを入手。
dslite.shを編集する。
Debian9はeth0とかではなく、ens999のようなインターフェイス名が付くので注意。

Debianにdslite.sh、dslite-auto-start.service、setup-dslite-scripts.shを送り込む。
setup-dslite-scripts.shに実行可能パーミッションを付与。
setup-dslite-scripts.shを実行。

再起動したら終わり。
マジで一瞬でできた。すっごーい。


続きを読む

カテゴリ:PC - テーマ:サーバソフト総合 - ジャンル:コンピュータ

ArduinoNano互換機のDTRリセットを無効にする

Arduinoは基本的にシリアルポートがオープンされたタイミングでリセットがかかります。
おかげでスケッチをアップロードするときにわざわざリセットスイッチを押さなくて良いのですが、待ち受けが基本のデバイスを作るときに案外邪魔。

PC側のアプリを作るときにDTRをoffにして作ればいいのですが、既存アプリなんかを使うときはそうもいかない。
というわけで、ハード側に細工する。

今回ターゲットとしたのはamazonで売られてるNano互換機。
時期によって値段が違うけど、自分が買ったときは1個320円。
注文から到着まで2週間ぐらいかかるけど、安いからね。

HiLetgo Mini USB Nano V3.0 ATmega328P CH340G 5V 16M マイクロコントローラーボード Arduinoと互換




USBシリアルチップがCH340Gというチャイナ製品になってる。
データシートを見てみると、15ピンがDTR。


で、手っ取り早く足上げ。
DSC_0087 1

分かりにくいので横から。
DSC_0085 1


というわけで、自動リセットの無効か完了。
足が戻ってこないように細く切った絶縁テープを張っておくと良いかも。


カテゴリ:電子工作

ESXi6.0u2から6.5u1へのアップデートでHDDが見えなくなった

今までハードを買い替える時にしかアップデートしてなかったんだけど、なんとなく6.0u2から6.5u1へアップデートしてみたら大変な事になった。

最初は簡単にアップデートできそうだからやってみよう、って軽いノリだった。
参考にしたのはこずろぐさんの記事。
http://gozuk16.hatenablog.com/entry/2017/07/07/194913

特に何事もなく完了したのだけども、再起動したらHDDが1本見えなくなってた。

/vmfs/devices/disks/には存在してるので認識はしている。
が、webClientで見るとパーティションが『不明』になってる…

HDDぶっ壊れたか!?と思ったけど、異音もないしスピンアップも普通にしてる。
ググりつつHDDのデータをサルベージする方法を探すも、どれも失敗。

vomaも通らない
https://docs.vmware.com/jp/VMware-vSphere/6.5/com.vmware.vsphere.troubleshooting.doc/GUID-6F991DB5-9AF0-4F9F-809C-B82D3EED7DAF.html


パーティションが見つからない…
https://kb.vmware.com/s/article/2080428
hexdumpさん曰く、Input/output errorだそうで…


流石に何の前触れもなくいきなりぶっ壊れることはそうないだろう…
という事でESXi6.0u2のUSBメモリを作って起動してみたらちゃんと認識する。
おいおい、どういう事ヨ…

しょうがないので、6.5で認識しないHDDと、新しいHDDを6.0に接続。
HDDの中身を新しいHDDにコピー。
流石にHDD丸ごと1本コピーとなると時間がかかるので、vSphereClientからコピー指示だけして数時間放置。

コピーが終わったら新しいHDDを6.5に繋ぐ。
仮想マシンのインベントリがバグってるので/etc/vmware/hostd/vmInventory.xmlを修正する。
https://kb.vmware.com/s/article/2088519


これで一応復旧完了。

つ、、、つかれた…
心臓に悪すぎるよ…

読めないHDDは200GBだったので、もう故障と割り切ってサヨナラすることにしました。
ちなみに型番はWD2000JD-19HBB0
いままでありがとう。


ちなみにその後、読めなかったHDDを何とかESXi6.5で読もうとしたけどやっぱり読めなかった。
他のPCに接続して色々検査したけど異常はなし。
どのOSでも普通に使えた。
一度パーティションテーブルをまっさらにしてESXi6.5に接続してみたけど、やっぱり領域確保できなかった。
SATAポートがM.2共有だったので変えてみたけど効果は無し。
マザーのBIOSが古かったので更新したけどもちろん関係なかった。
OSとHDDの相性だったのかなぁ…今時珍しい…


余談。
ゲストOSが極端に古いと、vmware-toolsが対応してない。
最近、open-vm-toolsしか使ってないから存在すら忘れてた…
Linux2.4系の古いOSに最新のtoolsを入れようと思ったら「対応してるisoがねーよ」って言われた。
しょうがないからLinux.isoを自分でマウントしてインストール叩いたら

The glibc version detected is too old (< v2.5)

ですって。

調べてみたら、vmware-tools10.0.12が最後のバージョンみたい。
https://docs.vmware.com/jp/VMware-Tools/10.0/rn/vmware-tools-10012-release-notes.html

ダウンロード先。相変わらずvmの検索は使いにくい…
https://my.vmware.com/group/vmware/details?downloadGroup=VMTOOLS10012&productId=614

今回の場合、linuxPreGLibc25.isoをESXiのストレージに送り込んで、手動マウントしてインストール。



続きを読む

カテゴリ:未分類

WSR-1166DHP + LEDE で環境を崩さずにDS-Lite

最近、フレッツ光の速度がすごく遅い。
酷いときは1Mbps切ったり。
と思ったら、今はフレッツ光のIPv4が全部遅いのね…
遅すぎてニュースになる始末。

どうしようもないなーと思ってたら、自分の使ってるプロバイダがIPv6とマルチフィードのDS-Lite対応になった。
というわけで、以前WSR-1166DHPを改造してLEDEをインストールしたまま放置してるモノがあったので、DS-Liteで接続してみた。


まず自前の環境をまとめるとこんな感じ。
  • NTT西フレッツ光ネクスト
  • 光でんわを使ってる(HGWが外せない)
  • 糞遅いと有名なISPだけど、最近DS-Liteに対応した(マルチフィード)
  • フレッツv6オプション開通済み(既にv6ネイティブでyoutubeとか閲覧可能)
  • v4でNATしてる機器がいくつかある
  • 外出先からアクセスする場合はOpenVPNを使用している
  • 壊れても惜しくない、普段使ってないルータ(WSR-1166DHP)にLEDEを導入済み

割と一般的ではない気がするけど、ようはOpenVPNを通すためにNATが必要。
VPNはv6で接続させたいけど、出先がv4しかないところがあるのでしょうがない。
他にもNATしてるものがいくつかあるけど割愛。

DS-Liteに対応したルータを買ってくればとりあえず動くんだろうけど、一般的には恐らくこのような接続になる。
DS-Lite一般  

これだと既存のネットワークをごっそりDS-Lite対応ルータ配下に持っていくとになり、NATできなくなる。
HGW配下のセグメントにNATしたい機器を繋ぐのでもいいけど、そうなるとOpenVPNがめんどくさいことに。

じゃーどうするか、って言うと、こうしたい。
DS-Lite希望

ぶっちゃけ、多くの人の要望はこれだろう(自分基準)
ルータという製品の性質上、LANが内側、WANが外側ってのが当たり前になっててこんな設定できるようには多分作られてない。
ただDS-Liteの仮想的なv4インターフェイスに対するルーティングがしたいだけなので、物理的にLAN/WANを区別する必要はない、というかしたくない。

で、具体的にどうなるかって言うとこうなる。
DS-Lite論理構成  

既存の構成にLEDEが増えただけ。
LEDEでできるのか謎だったけど、多分できる。ってかできた。

この構成であれば、NATが必要なVPNマシンは192.168.1.1をデフォルトゲートウエイとすれば良い。
PC1とPC2はNATが不要であれば192.168.1.18をゲートウエイとするだけで良い。
突然PC1でNATしたくなる発作が起こったら、ゲートウエイを変更するだけですぐに対応できる。

手っ取り早くDHCPで配るデフォルトゲートウエイをLEDEにしてしまえばいいのだけど、残念ながらHGWではその設定ができない。
この構成で使い続けるなら、最終的にDHCPサーバもLEDEが行うようになるだろう。
ただ、今回はあくまで「試してみよう」と思い立っただけなのでそこまでは考えてない。

ぶっちゃけこの構成なら別にLEDEじゃなくても普通のLinuxでよくね?って気が付いちゃったから…
図には載ってないけど、24時間電源入りっぱなしのESXiサーバがあるので…



とりあえず以下、手順の覚書。

続きを読む

カテゴリ:PC - テーマ:インターネット - ジャンル:コンピュータ

コマンドプロンプトでシリアル通信

バッチファイルでシリアル通信でArduinoにコマンドを送るtip的な。

ぶっちゃけターミナルアプリや専用アプリ作っちゃった方が楽ちん。
だけど、ひどく手抜き単純なもの…
例えば、arduinoに0という文字を送ったら照明を消灯、1という文字を送ったら点灯
といった非常にシンプルな仕組みを作る時にはある程度有効かも?


シリアルポートの設定を行う

mode COM5 BAUD=9600 PARITY=N DATA=8 STOP=1 xon=off odsr=off octs=off dtr=off rts=off



ポイントとなるのはdtr=off
多くのarduino及びその互換機で、シリアルポートを開いたときに自動再起動してしまう。
コマンドを送るたびに再起動してしまうのはどうなのよって事で、dtrはoffにする。
多分onだとarduinoの再起動中にコマンドが送られる事になるので思うように制御できない。

ただし、modeコマンド発行時にdtrが一瞬だけonになってしまう仕様なので考慮する必要がある。

余談。
この辺りの設定って、昔はデバイスマネージャ上の設定がデフォルトになってた気がするんだけど、最近のOSでは違うみたい。
少なくともwin10ではボーレートのデフォルトが1200bpsになってた。


あとは文字を送るだけ。

echo 1 > COM5

modeコマンド発行後のarduinoの再起動が遅い場合はtimeoutあたりで調整。

以下簡単なバッチファイル例

@echo off
set COM=COM5
set CMDTEXT=1
mode %COM% BAUD=9600 PARITY=N DATA=8 STOP=1 xon=off odsr=off octs=off dtr=off rts=off
timeout /T 3
echo %CMDTEXT% > %COM%


カテゴリ:PC

前のページ 次のページ

FC2Ad