2013年7月 6日 (土)

PiRLPノードのSDカードバックアップ

Raspberry Piは,SDカードをHDDの代わりに使用していますので,以前のPCベースのIRLPノードのように backup_for_reinstall をしなくても,SDカードそのもののクローンを作っておけば,それを差し替えるだけで全く同じように動作します。万が一の場合のノード復旧が大幅に簡略化されますので,おすすめです。

SDカードのクローンは,Windows PCでは Win32 Disk Imager,Linux であれば dd コマンドを使って簡単に作ることができます。(Raspberry Pi以外の別PCで行います。もちろんSDカードスロット付きPCか,無ければUSBアダプターを用意する必要あります。)

ただし注意点が一点。

SDカードはたとえ同じメーカー,同じ容量のもので揃えたとしても,個々に微妙な容量の差があるようです。もし,オリジナルのSDカードの容量が,クローン用のSDより微妙に大きい場合,上記ツールだけではうまくクローンを作れません。コピー先容量不足のエラーが出ます。特に,Raspeberry Piインストール後,raspi_configを使ってSDカードの容量をフルに使うような設定をした場合,こうなる可能性が高くなります。

このような場合には,クローンを一サイズ上のSDカードに作るか(4GBなら8GB,8GBなら16GB),あるいはオリジナルSDカード上のlinuxファイルシステムとそのパーティションを少し縮小する必要が出てきます。

後者のlinuxファイルシステムとパーティションの縮小は,GPartedというフリーツールで簡単に行う事ができます。Live CDを利用すれば,このCDからブートしますので,どのPCでも利用可能。しかし,後述の理由から,別PCはLinuxを使った方が良いと思います。

RaspbianのSDカード上には,FAT16の小さめのブートパーティションと,ext4の大きいlinuxパーティションの2つが作られています。(以下は fdisk の出力。)

Number  Start      End       Size      Type     File system  Flags

1        4194kB  62.9MB  58.7MB  primary   fat16             lba

2        62.9MB  3806MB 3743MB  primary   ext4

GPartedを使って,ブートパーティションの方は一切触らずに,linuxパーティションだけを少々(例えば200MB位。)減らしてあげます。その際,linuxパーティションの始めのfree spaceはいじらず(スタート位置はそのままに),後ろのfree spaceが増えるように(後ろから減らすように),全体サイズを減らします。Gpartedは,ファイルシステムとパーティションの両方を同時に減らしてくれますので,これだけでOK。

その後,Linux上で dd コマンドを使ってクローンを作ります。

dd bs=1M if=/dev/sdx of=/tmp/sdcard.img (オリジナルSDイメージをPCにコピー。その後SDカードを入れ替えます。)

dd bs=1M if=/tmp/sdcard.img of=/dev/sdx (上でコピーしたオリジナルイメージをクローンにコピー。)

(sdxxは,使うPC環境で変わります。)

2番目のddで(クローンに書込む時に)やはり容量不足のエラーが出るかも知れませんが,それは無視して最後まで続行します。エラーが出たときには,必要な部分は全てコピーが済んでいます。残念ながらWindows上のWin32 Disk Imagerではエラーが生じた時点でコピーが停止してしまってうまく行かないようです。

| | コメント (2) | トラックバック (0)

2013年6月 9日 (日)

PiRLPネットワークが不安定だった原因

無線LAN,有線LANともに,どうもネットワークが不安定で,ノードやリフレクターにうまく接続できない現象があったのですが,RFの回り込みが原因のようです。外部アンテナではなく,室内アンテナを利用していたのですが,試しにダミーロードに変えてみたら不安定さが全くなくなりました。Raspberry Pi本体がシールドされておらず,さらに無線機の近くに置いているからでしょうね。いよいよ無線機をQRPのハンディートランシーバーにすべき時が来ましたか。

| | コメント (0) | トラックバック (0)

PiRLPノードを無線LANで使う

無線LANを利用することでさらにPiRLPノードをコンパクトに作ることができます。

私の使っている無線LAN子機はUSBタイプ,BUFFALO社製のWLI-UC-GNM2で,1,000円しないものです。

S20130329_233758

基本的にこれをUSBに挿せば,OSはデバイスを認識します。しかし,このままでは動作しません。/etc/network/interfaces ファイルを以下のように書き換えます。

【想定】
  • 無線LAN子機はOSに wlan0 として認識されている。(子機を1個しか挿していなければwlan0です。iwconfigコマンドで確認できます。)
  • 親機はステルスモード。
  • DHCP利用。
  • 認証,暗号化方式は,WPA2-PSK/AES。
以下が,/etc/network/interfacesファイルの内容です。

auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "SSID"   <-- " "の中には,SSIDを指定します。
wpa-scan-ssid 1   <-- 親機がステルスモードの場合には 1。
wpa-proto RSN    <-- WPA2の場合
wpa-pairwise CCMP <-- AESの場合
wpa-group CCMP   <-- AESの場合
wpa-key-mgmt WPA-PSK   <-- WPA2-PSKの場合
wpa-psk "keyword"   <-- " "の中には,WPA2-PSKのキーワードを指定します。

これで再起動してみましょう。うまくインターネットに接続されたら,IPアドレスを確認して,通常どおりルーターにport forwardingを設定しましょう。

| | コメント (0) | トラックバック (0)

2013年4月23日 (火)

PiRLP (= Raspberry Pi IRLP) 構築完了

今はやりの Raspberry Pi を使ったIRLPノードを構築しました。小型軽量エコ低コストです。何とPC電源は携帯電話の充電器です これでノード無線機をハンディーにすればかなりのミニIRLPノードができますね。

Img_0231_2

↑左のボードがおなじみIRLP V3 ボード,右がRaspberry Piです。
サウンドはUSB,Raspberry PiのGPIO端子からリボンケーブルでIRLPボードのパラレルポートに接続しています。IRLPボードも3.3V駆動にするための簡単な改造を施し,Raspberry Piからのリボンケーブルで電源供給していますので5Vの別電源不要です。私はWireless LANにしましたので,LANケーブルもありません。かなり簡素化できています。

Img_0228_2

↑IRLPノードとしてはこれだけです(いや,無線機用電源とPC用携帯充電器が写ってませんね)。今は無線機が一番でかくて電気喰ってます

| | コメント (4) | トラックバック (0)

2012年1月 1日 (日)

2012 IRLP New Year QSOパーティ

明けましておめでとうございます。
今年のIRLP New Yearパーティーは残念ながら参加できませんでした。どうもネットワークの調子が悪いのです。受信音声が頻繁に途切れて実用に耐えません。またIRLPに接続中は他のPCのネット速度が極端に落ちます。インターネット回線は問題ないと思われますので,最近変えたWiFiルーターが原因かも知れません。正月休み中に見てみます。
    ↓↓↓
このWiFiルーターはBUFFALO製なのですが,その説明書を良く見てみたら,ムービーエンジンという動画サイトをきれいに再生させる機能が入っていることがわかりました。これをOFFにしてみたら,あっけなく問題解消しました。他PCでのネット速度も問題ありません。大げさな話にならず助かりました。(ちなみに,IRLPノードはWiFiではなく有線でこのルーターにつないでいます。)

最近IRLPノードはめったに立ち上げないので,この問題には今まで全く気が付きませんでした。時々使わないとダメですね。

| | コメント (0) | トラックバック (0)

2011年8月21日 (日)

HDDクラッシュ

久しぶりにD-STAR HOTSPOTを立ち上げようとPCオンしたら,HDDクラッシュ! 立ち上がらない。手持ちのHDDと交換して,Windows XP再インストール中。遅いPCだからインストールも時間がかかります。HOTSPOT用のプログラムは何が必要だったかな,思い出して再インストールしないと。

| | コメント (0) | トラックバック (0)

国内D-STARレピーター増えてます

最近増えてますね。リグのメモリー管理を頻繁にやってます。同じアイコムのリグでもメモリー管理ソフトが異なって,そのソフトウェア間でカット&ペーストができないのが難点ですけれども。でもうれしい悲鳴?

話は違いますが,アイコムのメモリー管理ソフトはどうして可変ピッチフォントを使っているのでしょうね。8文字という文字数,文字の位置が重要な意味を持つD-STARでは,固定ピッチフォントを使ってくれればコールサイン入力がどんなに楽か。できればコールサインを入れるフィールドは,原稿用紙のように罫線を入れて欲しいくらい。

| | コメント (0) | トラックバック (0)

2011年8月20日 (土)

ブルートゥースヘッドセットでCW

携帯電話や音楽を聴くのにBTヘッドセットを使っているので,ついでにそれを無線機でも使えないかと,写真のようなBTオーディオ送信機を買ってみました。

結論からいうと失敗。音のディレイがあって,特に自分の打っているサイドトーンが遅れるは,短点飛びするはで,全く使えませんでした。音楽やSSB音声のような連続オーディオならよいのでしょうが,CWではダメでした。BTヘッドセットが使えると少しスマートに運用できると思ったのですが,ちょっと残念。

Imag0028

| | コメント (0) | トラックバック (0)

2011年8月 7日 (日)

IRLP*Me

iPhone/iPad用アプリケーションです。GPSを使って近くのIRLPノードを探してくれます。

| | コメント (0) | トラックバック (0)

2011年7月16日 (土)

IRLPネイティブのIDプログラム

2011年6月中旬から,IRLPシステムそのものにIDを送信する(CWや音声等で自ノードコールサインを自動送信する)プログラムが追加されました。IRLPの自動アップデート機能により,世界中の全てのノードに追加されているはずです。

IDプログラムは何年も前から最も要望の多かったプログラムで,過去にも色々な局がアドオンプログラムを開発してきました。まぁ,やっとIRLPシステムに入ったか,という若干時期はずれの感もありますね。私自身はKK7AV開発のcwtimerというプログラムが気に入って使っています。

さて,今回ネィティブで追加されたIDプログラムですが,プログラム自体は

$SCRIPT/interval_id

です。IDの種類は,自動生成のCWと,自由なwavファイルを選べます。

使う前に,$CUSTOM/rc.irlpファイルと$CUSTOM/environmentファイルを以下のように編集します。(両ファイルともに,rootで編集する必要があります。)

$CUSTOM/rc.irlp

以下を追加。ファイル中のどこでも良いですが,一番最後が良いでしょう。

if [ "$USE_INTERVAL_ID" = "YES" ] ; then
echo -n "Starting the Interval ID script... "
killall interval_id >/dev/null 2>&1
sleep 3
/bin/su - -c "$SCRIPT/interval_id" repeater >&/dev/null 2>&1 &
echo "(put in background) done!"
fi

上を追加することで,$CUSTOM/environmentファイルの中で,USE_INTERVAL_ID=YESとすると,ノード起動時にinterval_idプログラムをバックグラウンドで自動実行します。

$CUSTOM/environment

以下を追加。ファイルのどこでも良いですが,
  #==== you should not have to edit anything below =============
の直前(上)が良いでしょう。

export USE_INTERVAL_ID=YES
export VOICE_ID_FILE="/home/irlp/custom/voice_id.wav"
export ID_PTT=AUX1
export ID_INTERVAL=600
export ID_MIX=YES
export MORSE_TEXT="VE7LTD"
export MORSE_SPEED=FAST
export MORSE_PITCH=800
export MORSE_VOLUME=30

  • USE_INTERVAL_ID=YESにすると,このIDプログラムを使用します。NOなら使用しません。
  • VOICE_ID_FILEに,実際に存在するwavファイルを指定すると,そのファイルを再生します。ここにファイルが指定されていても,実在しなければCWが自動生成になります。
  • ID_PTTには,PTTオンの為にPTT端子を使うか,AUX1端子を使うかを指定します。お勧めはAUX1端子です。しかしAUX1端子を使う場合には,PTT端子をAUX1端子が電気的にショートされていなければなりません。
  • ID_INTERVALは,ID間隔を秒で指定します。
  • ID_MIX=YESは,ノード無線機が何か送信している時でも,その信号に重ねてIDを送出します。サウンドカードがmixer機能をサポートしていなければなりません。もし,サウンドカードがmixer機能をサポートしていないにもかかわらず,YESにするとID送出時に"/dev/dsp: Device or resource busy"のようなエラーが出ます。その場合にはNOにします。
  • MORSE_TEXTには,CWで送出するコールサインを指定します。ここに指定が無い場合には,環境変数の$CALLSIGNが使われます。
  • MORSE_SPEEDにはCW送出速度を,SLOW (5wpm), MEDIUM(8wpm), FAST(15wpm), FASTEST (30wpm)から指定します。指定が無い場合,指定が無効の場合にはFASTになります。
  • MORSE_PITCHには,CWトーン周波数を300~3000Hzの範囲で指定します。指定無い場合,指定が無効の場合には800が使われます。
  • MORSE_VOLUMEには,CW音量を1~100%の範囲で指定します。指定無い場合,指定が無効の場合には,30が使われます。

ID_PTTについて補足します。お勧めはAUX1ですが,DB9コネクタ内でPTT端子とAUX1端子を電気的にショートする必要があります。隣同士のピンをショートするだけで簡単にできますから,もしAUX1を他の用途に使っていなければお勧めです。このプログラムだけでなく,多くのIDプログラムでもAUX1を使うことが推奨されています。

それでは,なぜPTT端子ではなくAUX1端子が良いのでしょうか。

PTT端子とAUX1端子を電気的にショートすることによって,プログラムはPTT端子オン(keyコマンド)だけではなく,AUX1端子をオンにする(aux1onコマンド)ことで無線機をkeyupすることができます。

PTT端子はIRLPシステムそのものが無線機をkey/unkeyするために使っています。もしIDプログラムも同じPTT端子を使ってID送出したらどうなるでしょうか。

ノードが他ノードにコネクトされており,自ノードが送信中の場合を考えます。その時IRLPは前述のようにPTT端子を使って無線機を送信状態にしています。そこでIDのタイミングが来てIDが送出されるとします。ID送出のためにPTT端子オンにしても,すでにオンになっています。これは問題ありません。しかし,

  1. ID送出中に,コネクト先の相手が話すのをやめ受信に移った。(IRLPシステムがPTTオフ)
  2. コネクト先の相手がまだ話しをしているのに,ID送出が終了した。(IDプログラムがPTTオフ)

いずれの場合もPTTはオフになり,無線機は送信をやめてしまいます。1.の場合には,IDが途中で終了してしまいますし,2.の場合には相手の話が途中で切られてしまいます。

つまり,2つのプログラムが一つのPTTを勝手にオン,オフしまうことで不都合が生じてしまうわけです。

そこでPTT端子はIRLPシステムがコントロール,AUX1端子は他のアドオンプログラムがコントロールするようにすることで Wired ORとなり,両方がオフの時のみ無線機PTTがオフにできます。このようにすることで,上記のような他方によってもう片方が切られてしまうような状況を回避できるわけです。

| | コメント (0) | トラックバック (0)

«IRLPノード構築のお手伝い