Linux」カテゴリーアーカイブ

サーバ⚙

アーカイブ

カテゴリー

Perl CPAN更新溜まってた

Perl の CPAN モジュールが溜まってた。

過去メモに沿って、更新

(( アップデート可能なモジュールを一覧 ))
# perl -MCPAN -e 'CPAN::Shell->r'
(( 全部をアップデート ))
# perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'

EdgeRouter-X EdgeOS v2.0.6

Edgerouter-X の最新 OS EdgeOS v2.06 が 7/17 より公開となっていたので、更新。

WiFi中継器の先につながる有線デバイス

WiFiルータの更新で、WEX-733Dを再利用した。

WiFi-router – – – WEX733D=(ether)-REGZA+Raspberry-Pi

当初、中継器WEX 733D の先につながる TV,ラズパイが最初は繋がっていたけど、接続が切れる。確認をしてみると、ルータ配下から中継器の先のデバイスは、どれも中継器のMACアドレスに見える。このため、我が家でのDHCPでMACアドレスに紐づけた固定アドレスを割り振る方式では、中継器でアドレスがすり替えられているために、MACアドレスが DHCP サーバ側で正しく把握できない。このため、正しくIPアドレスが取れない。

しかたがないので、中継器の先の有線デバイスは固定IPアドレスを割り振る。中継器をWiFiアダプターとして使う場合、DHCPで動的アドレスを振ったとしても、IPアドレスは変な状態になるだろうなぁ。固定IPアドレスにしないかぎりは、使い物にならないだろうなぁ。

WEX733DのMACアドレスが変化

メッシュネットワークも一通り設定が終わり、安定して使えるように…と思ったら、1F居間と2FをつなぐWEX733Dから返答がない。(icingaを使って主要なデバイスの生死監視をしている)

確かめてみると、親機に設定した際のMACアドレスと、違ったMACアドレスになっている。このため、こちらが想定しているWEX733DのIPアドレスと異なるため、ping などが取れなかった。

WEX733D-前 60:xx:xx:29:xx:xx
WEX733D-後 62:xx:xx:28:xx:xx

この症状は、他の Buffalo のルータでも確認していて、WZR-1166DHP2では、

WZR1166DHP2 B0:xx:xx:xx:xx:xx
WZR1166DHP2 B2:xx:xx:xx:xx:xx

のような値が取れていた。今回 WEX733D には、DHCP の fixed-address の設定を使っているため、これを正しく登録しておかないと、IPアドレスが変化してしまう。

今回のMACアドレスを確認すると、第1オクテットのBit1は、グローバルアドレスとローカルアドレスを区別するビットみたい。

そこで、60…と62…では、それぞれ違うIPアドレスを対応づけて、死活管理で以下のように設定した。

確認用の script では、2つの check_ping を || で連結し、本来のIPアドレスで返答がなければ、予備のIPアドレスの返答を確認することとした。

define command{
  command_name check_host_alive_multi
  command_line /usr/lib/nagios/plugins/check_ping
                  -H '$HOSTADDRESS$' -w 5000,100% -c 5000,100% -p 1
            || /usr/lib/nagios/plugins/check_ping
                  -H '$ARG1$' -w 5000,100% -c 5000,100% -p 1
  }

define host{
  use            generic-host
  host_name      wex733d
  alias          wex733d
  address        192.168.xx.xx
  check_command  check_host_alive_multi!192.168.xx.yy
  }

Windows Terminal preview 版

Microsoft による Windows Terminal が Microsoft Store で公開された。

さっそく立ち上げてみたけど、PowerShell にて端末が起動した。早速 ssh にて Linux に login して emacs を立ち上げてみる。以前のターミナルだと、漢字幅などで表示が崩れたけど、このバージョンはさすがに問題なし….

と思ったけど、M-x のつもりで、ESC→x と入力すると、ESC-M-x と表示される。普通に、alt-x と入力すれば M-x になるんだけど、レガシーなヤツは ESC-x が染みついている。

TH-D74でNoraGateway

D-STARのアクセスポイントをNoraGatewayで構築しようと、チャレンジしていたが無線機側をどう設定すればいいのか解らず、四苦八苦。

ようやく解ってきた。ポイントは、TH-D74をデジタルモードにしたうえで、DVモード。さらに、データモードに設定すれば動き出した。

{CAPTION}

しかし、動き出したのはいいけど、アクセスポイントに接続する無線機に付けたコールサインと、ゲートウェイに設定するコールサインが、別の免許状が必要。自宅の設備を自分が使えないのは不便だし、所属している社団コールサインの利用を検討してみよう。

TH-D74でaprxを動かす

以前、TH-D72 で aprx を動かしてみたけど、APRSとD-STARを兼ねた TH-D74 で運用をためしてみた。

initstring に何を設定すべきか悩んだけど、TH-D74はコマンドモードとKISSモードを切り替えながらという使い方はできない?みたいなので、設定は不要みたい。

# /etc/aprx.conf
mycall JR9PVZ-10
myloc  lat 3553.48N lon 13613.33E
<aprsis>
   passcode 22202
   server   rotate.aprs2.net
</aprsis>
<logging>
   pidfile /var/run/aprx.pid
   rflog   /var/log/aprx/aprx-rf.log
   aprxlog /var/log/aprx/aprx.log
   dprslog /var/log/aprx/dprs.log
</logging>
<interface>
   serial-device /dev/ttyACM0 9600 8n1 KISS
   # initstring  "" THD74は基本KISSモードなので初期化無し
   alias       RELAY,WIDE,TRACE
   callsign    $mycall # callsign defaults to $mycall
   tx-ok       true # transmitter enable defaults to false
   telem-to-is false # set to 'false' to disable
</interface>
<beacon>
   beaconmode both
   cycle-size 60m
   beacon     symbol "I#" $myloc comment "Tx-iGate + Digipeater"
</beacon>
<digipeater>
   transmitter $mycall
   <source>
      source   $mycall
   </source>
</digipeater>

TH-D74の設定

[F]-[LIST],[F]-[LIST] KISSモード
パケットスピード 9600 bps
無線周波数 144.640 MHz

 

後で、TH-D72 で動作検証するかもしれないので、設定ファイルを2つ別に分けて切り替える設定を追加。

iphoneの検知難しい

大学でアパート住まいの子供が、帰っているのか確認するために、LINE beacon を置いて検知を試したけど、bluetooth を切って既読スルーなヤツなので、ほとんど検知することができない。

そこで、アパートでは無線LANルータを使ってるし Raspberry-Pi で、arpalert を使えば簡単に検知できるだろうと、実験中。でも iPhone はセキュリティ対策なのか、 arp の返答は必要最小限なので同じサブネットとはいえ、そのままでは通信の必要の無い raspberry-pi には、ARP 情報が送られてこない。また ping には返答しないようで、単純に ping で確認も困難。ということで単純な arpalert では検知が難しいなぁ。

定時処理で、”arping -c 1 -I wlan0 IPHONEのIPアドレス” を実行させて、強制的に ARP を送ってもらうか…

cec-clientのデバイス番号とアドレス番号

自宅では、テレビやケーブルテレビチューナーやレコーダを赤外線リモコンで制御できるようにしているが、電源はトグル動作でON→OFFかOFF→ONという制御ができない。そこで、HDMI端子経由のチャンネル制御を行っている。

この際に、デバイス番号とcecのアドレス番号を使うが、デバイス番号が時々変化している。

しかたがないので、cecのscan処理でデバイス番号とアドレス番号の対応情報を保存するようにしてみた。

#!/usr/bin/perl

my $cec = "/usr/bin/cec-client -d 1 -s" ;

open( my $fd , "/bin/echo 'scan' | $cec |" )
    || die( "Can't open $cec\n" ) ;
open( my $ft , "> /home/xxxxxxxx/lib/cec-table.sh" )
    || die( "Can't open cec-table.sh\n" ) ;

my $device  = "" ;
my $dev_str = "" ;
my $address = "" ;
my $osd_str = "" ;

print $ft "#!/bin/bash\n" ;

while( my $line = <$fd> ) {
    if ( $line =~ /^device\s+#(\d+):\s+(.*?)$/ ) {
        $device  = $1 ;
        $dev_str = $2 ;
    } elsif ( $line =~ /^address:\s+(\d+)\.0\.0\.0$/ ) {
        $address = $1 ;
    } elsif ( $line =~ /^osd\s+string:\s+(.*?)$/ ) {
        $osd_str = $1 ;

        print $ft "DEV[$address]=$device\n" ;
        print $ft "OSD[$address]=\"$osd_str\"\n" ;
    }
}
close( $fd ) ;
close( $ft ) ;

stretchで起動しづらい

自宅で色々と動いている Raspberry-Pi 。OS更新はまめにやっているけど、外気温測定に使っているのが Jessie のままだったのに気づく。stretch に上げたけど、どうも起動に失敗する。更新に失敗したかと思ったけど、キーボードをつなぐために USB WiFi を抜いて起動すると、普通に動いている。

今までも、多少 boot が不安定なのはあったけど、stretch になって起動シーケンスが最適化されたのか、WiFi 有効化のタイミングが早まり、ブート時の電力不足が発生していると思われる。

ひとまず、改造面倒だし USB WiFi を抜いて、boot がそれなりに進んでから USB を指して対応。

検索 🔎

  My Google     Yahoo

便利サイト