チラシの裏の電子工作

電子工作、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 - テーマ:サーバソフト総合 - ジャンル:コンピュータ

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

WN891の電源ボタンと消費電力

WN891の消費電力、というよりも、電源切ってる間のバッテリーの減り方が速すぎる気がする。
というわけで色々考察。

そもそもいつの頃からだったか覚えてないけど、電源を入れるのにかなり時間がかかるようになっていた。
WN981自体ほとんど使ってないので全く気にしてなかったんだけど。

手順「電源ボタン超長押し」法
※電源は接続しなくても起動できるけど、青LEDの点滅が確認できた方がやりやすい
  1. 電源ケーブルを接続して青LED点灯
  2. 電源ボタンを20秒ぐらい押し続けると青LEDが一瞬消灯→点灯。電源ボタンを離す。
  3. それでも起動しない場合はもう一度電源ボタンを押し続けると青LEDが一瞬消灯→点灯。電源ボタンを離すと起動する。

ハードがヘタってるとかそういうレベルではなく、なんかおかしいよね、これ。
そもそも手順を知ってたらどうという事はないけど、よく考えたら普通わからんよね…
思い当たるのはWin10のクリエイターズアップデートぐらいかな…
しかしマザーに直接テスターを当てるわけにもいかんので、とりあえずお手軽にできるACアダプタの電流を測ってみた。

使ったのはこれ

【ノーブランド 品】プラスチックと電子部品 電話 電源 銀行用 LCD USB 充電 容量 テスター メーター 電圧計 電流計




電池空っぽからの充電中:1000mA前後
電源投入時:700-800mA
OS起動後:500-1000mA

全体の設計として、消費電力は概ね1Aぐらいに収まるように設計してあるのかな。
付属のACアダプタも2Aなのでそんなもんでしょう。


高速スタートアップが有効だった
電源を落としても、ずっと500mAぐらい食ってる。
あれ、こいつ電源切れてないんじゃね…?
電源投入は先に書いたように電源ボタン超長押し法で。


高速スタートアップを無効にした
電源を落とすと、0mAになる。
電源を抜き差しすると500mAぐらいまで増えて徐々に下がって0mAに。
電源投入も普通に電源ボタンを5秒ぐらい押すだけの状態に。
やったーなおったー。


もう一度高速スタートアップを有効にしてみた

で、電源を切る。
暫く0-500mAをウロウロするけど、電源が落ちたと思われる段階から徐々に電流値が減って最終的に0mAに。

んー…これはもしかして…
もう一度電源を入れるときは電源ボタンは5秒ぐらい押すだけだった。

つまりこれはナニか。

Windows10の高速スタートアップが悪さして、電源がちゃんと落ちてなかったってオチか。

高速スタートアップが有効だと、画面が真っ先に消えるのでちゃんと電源が切れているのか解らない。
挙句の果てにWN891は通電状態を示す青LEDしかなく、電源ランプやアクセスランプの類が1つもない。
画面が消えてるから電源が落ちてるだろうと思ってたけど、実はその手前でフリーズしてるってオチだったのか…


他の端末ではこんな現象起きてないし、他のWN891で同じ症状が出てるの見たことあるし、WN891特有の問題、かな…
恐らく、ハイバネーションみたいにメモリの内容を書き出しておくストレージ領域が壊れてたとか、そんな話じゃないかと。


で、これで電源切ってる状態でのバッテリーの減り方が変わらなかったら笑うしかないな。

カテゴリ:PC

Android x86 インストールとdata.imgの容量変更

古いPC(eeePC T91MT)にAndroidを入れてみた。
この機種はSDカードスロットが2個ついていて、普段片方はデータ置き場としてSDカードを刺しっぱなしにして使っている。

今まで知らなかったんだけど、Android x86ってNTFSでフォーマットされたストレージにもインストールできるのね。
恐らく、NTFS上にループデバイスのファイルを置いて、ローダーが起動時にマウントするのでAndroidから見たときは多分ext3とか4に見えるとか、多分そんな感じ。
つまり、今回の場合、Win7の環境にほとんど影響を与えずにAndroid環境を構築できる、と。
結果的にSDカードにディレクトリがいくつか増える(+SDのブートセクタにローダーが入る)だけで済んだ。
しゅごい。


ちなみにAndroid5.x以降はCPUが遅すぎて糞重いので常用は無理です。
4.xなら使えるかも?試してないけど。


手順。
  1. OSのisoを落としてくる。今回はcm-x86-13.0-r1.iso。
    https://ja.osdn.net/projects/android-x86/
  2. CDに焼くか、Win32 Disk Imagerで起動用USBメモリを作る
    https://sourceforge.net/projects/win32diskimager/
  3. さっき作ったUSBメモリで起動して、インストール。
    Win7でNTFSフォーマットして使ってるSDカードを選んで、フォーマットせずに続行。
    grubもインストール。
    データ領域の容量を聞かれる。ここで2GBぐらい指定しておけばよかったんだけど、デフォだと500MBだった。
  4. BIOSでブート順をSDカード優先にする。

とりあえずここまでで終わり。

データ領域を気にせずデフォルトにしてしまったので、他のLinuxマシン(自分はVM上に構築したmint)で/cm-x86-13.0-r1/data.imgを編集する。
参考にしたサイト(中国語)
とりあえず512+1536=2048MBに拡張。

$ e2fsck -fyc data.img
$ dd if=/dev/zero of=data.img oflag=append conv=notrunc bs=1M count=1536
$ resize2fs data.img


どうでもいいけど、Cyanogenmodってもうプロジェクト終了してたのね。
なんやかんやあってLineageOSってのになったみたい。


カテゴリ:PC

次のページ

FC2Ad