Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □Raspberry Piでパケット通信!?

□Raspberry Piでパケット通信!?

いや、たぶん出来るとおもうんですよね、Pi2のスペックなら…

dnf search ax25

> libax25-devel.armv7hl : Development files for libax25
> ax25-tools-docs.armv7hl : Documentation for ax25-tools and ax25-tools-x
> libax25.armv7hl : AX.25 library for hamradio applications
> ax25-apps.armv7hl : AX.25 ham radio applications
> ax25-tools.armv7hl : Tools used to configure an ax.25 enabled computer
> ax25-tools-x.armv7hl : X tools used to configure an AX.25 enabled computer

まだありますね、パッケージ。

ほかにもHAM関連では、

> linpsk.armv7hl : Psk31 and RTTY program for Linux
> xpsk31.armv7hl : GTK+ graphical version of lpsk31 for Ham Radio
> lpsk31.armv7hl : A ncurses application for ham radio communications using PSK31 digital mode

dnf -y install libax25 libax25-devel ax25-apps ax25-tools
dnf -y install soundmodem soundmodem-devel

で、あとはsoundmodemの設定。

mkdir /etc/ax25/

としてディレクトリを作ってから、X-Windowが動いていれば

soundmodemconfig

として設定してもいいし、ダイレクトに設定ファイルを生成してもいい。

cat > /etc/ax25/soundmodem.conf
---------
<?xml version="1.0"?>
<modem>
  <configuration name="RaspberryPi2">
    <channel name="Channel 0">
      <mod mode="afsk" bps="1200" f0="1200" f1="2200" diffenc="1"/>
      <demod mode="afsk" bps="1200" f0="1200" f1="2200" diffdec="1"/>
      <pkt mode="MKISS" ifname="sm0" hwaddr="JS1FVG-10" ip="192.168.10.1" netmask="255.255.255.0" broadcast="192.168.10.255"/>
    </channel>
    <chaccess txdelay="150" slottime="100" ppersist="40" fulldup="0" txtail="10"/>
    <audio type="soundcard" device="/dev/dsp" halfdup="0"/>
    <ptt file="none"/>
  </configuration>
</modem>
---------

で、起動してみても…あれれ?Failですよ?

というわけで、ステータスを見てみると…

> # systemctl status soundmodem.service  -l
> ● soundmodem.service – Soundcard Packet Radio Modem
>    Loaded: loaded (/usr/lib/systemd/system/soundmodem.service; enabled; vendor preset: disabled)
>    Active: failed (Result: exit-code) since Thu 1970-01-01 09:00:14 JST; 45 years 11 months ago
>   Process: 306 ExecStart=/usr/sbin/soundmodem –daemonize (code=exited, status=1/FAILURE)
>
> Jan 01 09:00:13 mydns-adapter.local systemd[1]: Starting Soundcard Packet Radio Modem…
> Jan 01 09:00:14 mydns-adapter.local soundmodem[306]: sm[345]: audio: Error, cannot open “/dev/dsp”
> Jan 01 09:00:14 mydns-adapter.local soundmodem[306]: sm[345]: cannot start audio
> Jan 01 09:00:14 mydns-adapter.local soundmodem[306]: sm[306]: SoundModem init failed
> Jan 01 09:00:14 mydns-adapter.local systemd[1]: soundmodem.service: Control process exited, code=exited status=1
> Jan 01 09:00:14 mydns-adapter.local systemd[1]: Failed to start Soundcard Packet Radio Modem.
> Jan 01 09:00:14 mydns-adapter.local systemd[1]: soundmodem.service: Unit entered failed state.
> Jan 01 09:00:14 mydns-adapter.local systemd[1]: soundmodem.service: Failed with result ‘exit-code’.

/dev/dspなんてねーよ、とのこと。

http://wikiwiki.jp/tetsuya/?asoundrc

ふむふむ…今は中身がないのね。

> # more /etc/asound.conf
> #
> # Place your global alsa-lib configuration here…
> #

cat > /etc/asound.conf
---------
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
---------

として、

cat > /etc/ax25/soundmodem.conf
---------
<?xml version="1.0"?>
<modem>
  <configuration name="RaspberryPi2">
    <channel name="Channel 0">
      <mod mode="afsk" bps="1200" f0="1200" f1="2200" diffenc="1"/>
      <demod mode="afsk" bps="1200" f0="1200" f1="2200" diffdec="1"/>
      <pkt mode="MKISS" ifname="sm0" hwaddr="JS1FVG-10" ip="192.168.10.1" netmask="255.255.255.0" broadcast="192.168.10.255"/>
    </channel>
    <chaccess txdelay="120" slottime="100" ppersist="40" fulldup="0" txtail="10"/>
    <audio type="alsa" device="plughw:0,0" halfdup="0"/>
    <ptt file="none"/>
  </configuration>
</modem>
---------
systemctl restart soundmodem
systemctl status soundmodem -l

お?今度は動いたみたいですよ。

…ん? 「/etc/asound.conf」これかんけいなくね?

なくてもいけた。:-)

で、ip aしてみると…

> # ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
>        valid_lft forever preferred_lft forever
>     inet6 ::1/128 scope host
>        valid_lft forever preferred_lft forever
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
>     link/ether b8:27:eb:ce:3a:ba brd ff:ff:ff:ff:ff:ff
>     inet 192.168.100.81/24 brd 192.168.100.255 scope global eth0
>        valid_lft forever preferred_lft forever
>     inet 192.168.81.81/24 brd 192.168.81.255 scope global eth0:99
>        valid_lft forever preferred_lft forever
>     inet6 fe80::ba27:ebff:fece:3aba/64 scope link
>        valid_lft forever preferred_lft forever
> 6: sm0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 256 qdisc fq_codel state UNKNOWN group default qlen 10
>     link/ax25 94:a6:62:8c:ac:8e:14 brd a2:a6:a8:40:40:40:00
>     inet 192.168.10.1/24 brd 192.168.10.255 scope global sm0
>        valid_lft forever preferred_lft forever

ちゃんとsm0ができました。

あとは

ping 192.168.10.2

とかすると、ピギャーというはず。

chaccessのパラメータがゆとりを持たせてあるので、送信しないこともあるけれどどど… 🙂

これでサウンドモデムの下準備は出来たので、続いてAX.25関連の設定をする。

cat > /etc/ax25/axports
---------
#
# The format of this file is:
#
# name callsign speed paclen window description
#
sm0 JS1FVG-10 1200 192 5 XXX.XXMHz (1200 bps)
---------
cat > /etc/ax25/ax25d.conf
---------
#
# ax25d Configuration File.
#
# AX.25 Ports begin with a '['.
#
[JS1FVG VIA sm0]
NOCALL   * * * * * *  L
default  * * * * * *  -        root  /usr/sbin/ttylinkd        ttylinkd
#
[JS1FVG-11 VIA sm0]
NOCALL   * * * * * *  L
default  * * * * * *  -        root  /usr/sbin/node    node
---------

本来NET/ROMは<>で囲って

/etc/ax25/node.conf
/etc/ax25/node.perms

に設定する。

むかーしむかしJFにそういう説明があった。

http://archive.linux.or.jp/JF/JFdocs/AX25-HOWTO/x1714.html

ほかに必要なファイルがあるので(中身は空だけど)作成しておく。

cat > /etc/ax25/nrports
---------
#
# The format of this file is:
#
# name callsign alias paclen description
#
---------
cat > /etc/ax25/rsports
---------
#
# The format of this file is:
#
# name address description
#
---------

で、あとは

/usr/sbin/ax25d

として起動すればOK。

で、あとは

cat > /etc/init.d/ax25d
---------
#!/bin/sh
#
# chkconfig: 345 51 51
# description: Turn AX.25 daemon
#
### BEGIN INIT INFO
# Short-Description: Turn AX.25 daemon
# Description: Turn AX.25 daemon
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
prog="ax25d"
lockfile=/var/lock/subsys/ax25d
start()
{
        echo -n $"Starting $prog: "
        daemon /usr/sbin/ax25d
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch $lockfile
        return $RETVAL
}
stop()
{
        echo -n "Stopping $prog: "
        killproc ax25d
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f $lockfile
        return $RETVAL
}
restart()
{
        stop
        start
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  force-reload|restart|reload)
        restart
        ;;
  try-restart|condrestart)
        [ -f $lockfile ] && restart ||:
        ;;
  status)
        status $prog
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|contrestart|status}"
        exit 3
        ;;
esac
exit $RETVAL
---------
chmod 755 /etc/init.d/ax25d
chkconfig --level 345 ax25d on

とすると、再起動時に必ず soundmodem と ax25d が起動する。

あとはxfbbでもインストール?
PTTのON/OFFはGPIOで出来るのかな?

http://ve3bux.com/?p=825

<ptt file="none" hamlib_model="" hamlib_params="" gpio="0″/>

こんな設定がいけるみたいだけどホントかなぁ?

ふむふむ、GPIOのひとつにシリアルのRTSかなんかを出力するようにしたのか。
3.3VなRasPiだから、トランジスタスイッチでも何でもいいから、何らかの保護
回路入れないと壊れるよ、って書いてあるね。

Are you lucky? No USB to serial converter needed!

確かにこれでPTTの制御は出来そうです。

さて、無線機がなぁ…TH-K48は処分してしまったし、といういまさらパケット?だし。
それよりもPSK31とかの方が面白そうだけど、そもそもHFのアンテナが広げられない。

そもそも今の無線機はフィルターが狭すぎて、9600bpsですら通らないしね。

□ハンディ機でnewqpskを試す-通らないんですけどね-

そうそう、こんなことやってたね。

この分だときっとまた数年後に「やりたいなー」とか思ってなんかいじったりするんだろうな。

Name of author

Name: admin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です