Jnos and QtSoundModem

Today I was playing with Jnos, on my main system I have BPQ32 running with Direwolf and QtSoundModem. BPQ32 uses the Kiss port on Direwolf and the AGW port on QtSoundModem. Now I know that Jnos can easily handle the AGW interface/driver, so I linked Jnos with the AGW poort of Direwolf.

attach agwpe agw 44.137.31.70 8000
ifconfig agw description "AGW - 1200 baud port"
ax25 hport agw on
trace agw 0111

Direwolf is running on 144.850Mhz 1k2 and 430.950Mhz 9k6

Now I thought it would be nice to hook Jnos to QtSoundModem as well. But BPQ32 already uses the AGW port of QtSoundModem. Now I had read that Maiko VE4KLM had written a Kiss over tcp/ip for Winrpr. Who doesn’t dare don’t win. Here we go.

QtSoundmodem is running on 14.102Mhz 300Baud with 1100Hz on the left channel and 2000Hz on the right channel.

Autoexec.nos

attach winrpr qt0 44.137.31.76 8105
attach kiss qt0 1 qt1
#
ifconfig qt0 description "Kiss tcp/ip port 14.102Mhz 1100Hz"
ifconfig qt1 description "Kiss tcp/ip port 14.102Mhz 2200Hz"
trace qt0 0x211 qt0.log 1000
trace qt1 0x211 qt1.log 1000
#
ax25 hport qt0 on
ax25 hport qt1 on

The winrpr is the kiss over tcp/ip driver of Jnos. It`s written to use with Winrpr.

jnos> ifconfig  
qt1      IP addr 44.137.31.67 MTU 256 Link encap AX25
         Link addr PD9Q-1   BBS PD9Q   Paclen 256   Irtt 5000
         BCText: PD9Q Jnos Packet BBS/Gateway
         flags 0xcb0 trace 0x211 netmask 0x00000000 broadcast 0.0.0.0
         sent: ip 0 tot 0 idle 0:00:01:51
         recv: ip 0 tot 0 idle 0:00:01:51
         descr: Kiss tcp/ip port 14.102Mhz 2200Hz
qt0      IP addr 44.137.31.67 MTU 256 Link encap AX25
         Link addr PD9Q-1   BBS PD9Q   Paclen 256   Irtt 5000
         BCText: PD9Q Jnos Packet BBS/Gateway
         flags 0x400 trace 0x211 netmask 0x00000000 broadcast 0.0.0.0
         sent: ip 0 tot 0 idle 0:00:01:51
         recv: ip 0 tot 0 idle 0:00:01:51
         descr: Kiss tcp/ip port 14.102Mhz 1100Hz

Some trace of the tun0 interface, there is traffic back and forward from Jnos to the remote QtSoundModem.

Mon Feb 21 15:34:09 2022 - tun0 sent:
IP: len 40 44.137.31.67->44.137.31.76 ihl 20 ttl 254 prot TCP
TCP: 1025->8105 Seq x1040001 Ack x3bf15fb1 ACK Wnd 5840

Mon Feb 21 15:34:13 2022 - tun0 recv:
IP: len 159 44.137.31.76->44.137.31.67 ihl 20 ttl 64 DF prot TCP
TCP: 8105->1025 Seq x3bf15fb1 Ack x1040001 ACK PSH Wnd 64240 Data 119
0000  ....n......b...a..033  .IR2UFV-15  00:00:06:12  14.1033  .IW7DVM
0040       00:00:08:37  14.1033  .SM7PET+    00:00:12:36  14.

Mon Feb 21 15:34:13 2022 - tun0 recv:
IP: len 159 44.137.31.76->44.137.31.67 ihl 20 ttl 64 DF prot TCP
TCP: 8105->1025 Seq x3bf15fb1 Ack x1040001 ACK PSH Wnd 64240 Data 119
0000  ....n......b...a..033  .IR2UFV-15  00:00:06:12  14.1033  .IW7DVM
0040       00:00:08:37  14.1033  .SM7PET+    00:00:12:36  14.

Mon Feb 21 15:34:13 2022 - tun0 sent:
IP: len 40 44.137.31.67->44.137.31.76 ihl 20 ttl 254 prot TCP
TCP: 1025->8105 Seq x1040001 Ack x3bf16028 ACK Wnd 5840

Here is a trace of the log file (trace qt0 0x211 qt0.log 1000)

Mon Feb 21 15:25:03 2022 - qt0 recv:
KISS: Port 0 Data
AX25: UT1HZM->SM7PET I(P) NR=2 NS=3 pid=Text
0000  00 a6 9a 6e a0 8a a8 e0 aa a8 62 90 b4 9a 61 56  .&.n .(`*(b.4.aV
0010  f0 4d 69 6e 65 2c 20 4c 3e 20 43 61 6c 6c 2c 20  pMine, L> Call, 
0020  4c 3c 20 43 61 6c 6c 2c 20 4c 40 20 3d 20 4c 69  L< Call, L@ = Li
0030  73 74 20 74 6f 2c 20 66 72 6f 6d 20 6f 72 20 61  st to, from or a
0040  74 0d 20 20 20 4c 4c 20 6e 75 6d 20 3d 20 4c 69  t.   LL num = Li
0050  73 74 20 6d 73 67 20 6e 75 6d 2c 20 4c 20 6e 75  st msg num, L nu
0060  6d 2d 6e 75 6d 20 3d 20 4c 69 73 74 20 52 61 6e  m-num = List Ran
0070  67 65 0d 20 20                                   ge.

Mon Feb 21 15:25:17 2022 - qt0 recv: 
KISS: Port 0 Data 
AX25: IW7DVM->APRS v WIDE3-3 UI pid=Text
0000  00 82 a0 a4 a6 40 40 e0 92 ae 6e 88 ac 9a 60 ae  .. $&@@`..n.,.`.
0010  92 88 8a 66 40 67 03 f0 21 34 30 32 33 2e 32 38  ...f@g.p!4023.28
0020  4e 5c 30 31 37 31 37 2e 31 31 45 2d 48 46 20 42  N\01717.11E-HF B
0030  65 61 63 6f 6e 20 31 34 2e 31 30 35 20 4c 53 42  eacon 14.105 LSB
0040  20 33 30 30 62 64 20 2d 20 54 61 72 61 6e 74 6f   300bd - Taranto

Connect from my Jnos system to UT1HZM on port qt0 (qtsoundmodem 300Baud 1100Hz port)

Mon Feb 21 15:08:33 2022 - qt0 recv:
KISS: Port 0 Data
AX25: UT1HZM->PD9Q-15 I(P) NR=0 NS=0 pid=Text
0000  00 a0 88 72 a2 40 40 fe aa a8 62 90 b4 9a 61 10  . .r"@@~*(b.4.a.
0010  f0 55 54 31 48 5a 4d 7d 20 57 61 69 74 2e 2e 2e  pUT1HZM} Wait...
0020  0d                                               .

Mon Feb 21 15:08:33 2022 - qt0 sent:
KISS: Port 0 Data
AX25: PD9Q-15->UT1HZM RR(F) NR=1
0000  00 aa a8 62 90 b4 9a 60 a0 88 72 a2 40 40 ff 31  .*(b.4.` .r"@@.1

Mon Feb 21 15:08:38 2022 - qt0 recv:
KISS: Port 0 Data
AX25: UT1HZM->PD9Q-15 I NR=0 NS=1 pid=Text
0000  00 a0 88 72 a2 40 40 fe aa a8 62 90 b4 9a 61 02  . .r"@@~*(b.4.a.
0010  f0 4b 52 53 3a 55 54 31 48 5a 4d 2d 35 7d 20 43  pKRS:UT1HZM-5} C
0020  6f 6e 6e 65 63 74 65 64 20 74 6f 20 42 42 53 0d  onnected to BBS.

Mon Feb 21 15:08:39 2022 - qt0 sent:
KISS: Port 0 Data
AX25: PD9Q-15->UT1HZM RR NR=2
0000  00 aa a8 62 90 b4 9a 60 a0 88 72 a2 40 40 ff 41  .*(b.4.` .r"@@.A

Now the trace of port qt1 (tail -f qt1.log)

Mon Feb 21 15:22:31 2022 - qt1 sent:
KISS: Port 1 Data
AX25: PD9Q-15->TEST SABM(P)
0000  10 a8 8a a6 a8 40 40 e0 a0 88 72 a2 40 40 7f 3f  .(.&(@@` .r"@@.?

Mon Feb 21 15:22:31 2022 - qt1 sent:
KISS: Port 1 Data
AX25: PD9Q-15->TEST SABM(P)
0000  10 a8 8a a6 a8 40 40 e0 a0 88 72 a2 40 40 7f 3f  .(.&(@@` .r"@@.?

Boooommm Crashed……dammmm

It went so well. But now Jnos crashed. The winrpr driver is probably not written for two ports. Receiving is fine, but a packet that leaves the system on port qt1, Jnos can’t handle that.

So I removed this line (attach kiss qt0 1 qt1) from autoexec.nos and Jnos is running just fine. It is a pity that it only runs on 1 port, and that is the same as the AGW port. Maybe Maiko VE4KLM will look at it again.

Upcoming release of Jnos

Read all about it…….

differences between 2.0m.5Gx and 2.0m.5G - April 17, 2021
 ---------------------------------------------------------

 being released this evening (CDT) ...

 ax25 heard has been 'revamped', new 'heard via digipeater' feature,
 so that you can actually see stations not directly heard, I created
 this due to my crazy obsession with Robust Packet lately and seeing
 all the APRS frames coming in on 30 meters, many via K4KPN-10, nice
 to know who else you can qso with (indirectly), really liking this.

 the save/load functionality improved, you can specify save and load
 file now, and times are FINALLY accurate on load, this took a lot of
 effort, but worth it in the end I think. I have NOT included saving
 of the latest digipeater heard list (yet), that will be next time.

 To be honest ? I hated the introduction of the 'show' subcommand, so
 the original 'ax25 h <iface>' is back and will stay that way ...

 command help dialogue now taken from a NEW usage/ax25/heard.txt file
  (create new /jnos/usage/ax25 directory, copy heard.txt over to it)

 note : I have NOT updated j2addendum.txt (yet)

Jnos with a KPC3(+) or Kam in kiss

I was reading in the Jnos mail list about a problem with getting a KPC3 + or Kam modem in kiss or out of kiss. There are some nice examples of how that works.

First get the modem out of Kiss.

echo -e "\xc0\xff\xc0" > /dev/ttyS0'

In the autoexec.nos

attach asy ttyS0 - ax25 p144 4096 256 9600
ifconfig p144 description "p144 - 144 Mhz - 1200 baud"
ifconfig p144 ax25 bbscall w3xsc-1
ax25 digipeat p144 off
ifconfig p144 tcp mss  216
ifconfig p144 tcp window  432
arp eaves p144 on
source p144.local
# Pause a sec to make sure the TNCs have time to reset
pause 1
trace p144 0111
ax25 bcport p144 on
trace p144 0111 ./logs/p144.trace 1000

In the p144.local file

# Serial interface
comm p144 "xxx"
comm p144 "INTFACE TERM"
comm p144 "ABAUD 9600"
comm p144 "XFLOW OFF"
comm p144 "START $00"
comm p144 "STOP $00"
comm p144 "XON $00"
comm p144 "XOFF $00"
comm p144 "TXFLOW OFF"
comm p144 "TRFLOW OFF"
comm p144 "MONITOR OFF"
# Radio interface
comm p144 "HBAUD 1200"
comm p144 "XMITOK ON"
comm p144 "CD SOFTWARE"
# Services
comm p144 "DIGIPEAT OFF"
comm p144 "NUMNODES 0"
comm p144 "USERS 0"
comm p144 "PBBS 0"
# 'PBBS 0' causes a soft reset if not already set to 0
pause 2
# Identification
comm p144 "MYCALL w3xsc-15"
comm p144 "MYPBBS w3xsc-14"
comm p144 "BTEXT SCCo ARES/RACES W3XSC BBS - Mountain View - Offline"
comm p144 "BEACON EVERY 15"
# AX.25 channel
comm p144 "PACLEN 0"
comm p144 "MAXFRAME 2"
comm p144 "RETRY 8"
comm p144 "FRACK 5"
comm p144 "SLOTTIME 10"
comm p144 "PERSIST 96"
comm p144 "DWAIT 0"
comm p144 "DIGIPEAT OFF"
comm p144 "TXDELAY 40"
comm p144 "CHECK 30"
# KISS mode
comm p144 "INTFACE KISS"
pause 1
comm p144 "RESET"
pause 2
# KISS Parameters
param p144 TxDelay 40
param p144 Persist 96
param p144 SlotTime 10
param p144 FullDup 0

This was the first option, now the second.

# KPC3P stuff
remark KPC3P USB (1200 baud) on port 'kpc3p'
attach asy ttyUSB1 - ax25 kpc3p 4096 256 1200
ifconfig kpc3p description "kpc3p - 1200 baud port"
# Put the KPC3P into KISS mode
#   the pauses are critical -- things may fail
#   sporadically if pauses are too short.
remark "Putting the KPC3P into KISS mode -- "
remark "  this takes about 10 seconds!"
pause 2
comm kpc3p ""
pause 2
comm kpc3p "intface kiss"
pause 2
comm kpc3p "reset"
pause 5

I have tested both options and they work perfectly. Nice.

Aprs Weather Beacon

Today I’ve been messing around with an APRS weather beacon. Now Direwolf and Linbpq and Jnos can send an aprs weather beacon. It turns out that this is quite precise, with the format of the beacon.

#!/bin/bash
# The weather beacon have to look like this....
# @220424z5057.81N/00729.37E_094/002g005t043r000p006P006h89b09783
# !5133.52N/00348.15E_073/013g...t048h85b10040wWXD
#
# Jun 01 2003 08:07
# 272/000g006t069r010p030P020h61b10150
# ***********************************************************
# 272 - wind direction - 272 degrees
# 010 - wind speed - 10 mph
# g015 - wind gust - 15 mph
# t069 - temperature - 69 degrees F
# r010 - rain in last hour in hundredths of an inch - 0.1 inches
# p030 - rain in last 24 hours in hundredths of an inch - 0.3 inches
# P020 - rain since midnight in hundredths of an inch - 0.2 inches
# h61 - humidity 61% (00 = 100%)
# b10153 - barometric pressure in tenths of a MILLIBAR - 1015.3 MILLIBARS

My weather station uploads its data to wunderground.com. Now wunderground has the option to read this again with an api key.

https://api.weather.com/v2/pws/observations/current?stationId=IKORTG9&format=json&units=m&apiKey=yourApiKey

You can read here how and what.

After a lot of messing around with a bash script, I am able to create the correct format.

TEMP=-4.9°C Temperature degrees Celsius
WPK=29.4km/h Wind speed in Kilometers per hour
WGK=39km/h Wind guts in Kilometers per hour
GRD=58° Wind direction in degrees
RAIN=0mm Rain in the last hour in mm
RAIN24=0.42065mm Rain in the last 24 hour in mm
RAIN12=0.214mm Rain in the last 12 hour in mm
HUM=74% Humidity in procent
Bar=1004mb Barometric pressure in millibars
FAH=023F Temperature degrees Fahrenheit
WPM=018mph Wind speed in miles per hour
WGM=024mph Wind guts in miles per hour
RNI=000inch Rain in the last hour in inches
RNI=001inch Rain in the last 24 hour in inches
RNI=000inch Rain in the last 12 hour in inches

The file I need to broadcast an APRS Weahter Beacon looks like this.

pd9q@pancake:~/linbpq/wx-project $ cat ~/linbpq/current.txt
Feb 09 2021 13:00
086/004g008t028r000p000P000h75b10007

The config file for Linbpq looks like this, this is in the aprs section of bpq32.cfg

WXCall=PD9Q-7
WXFileName=/home/pd9q/linbpq/current.txt
WXComment=/Weather Station JO11VN
WXPortList=1,5,IS        ; comma separated list 
WXInterval=10            ; mins

For Jnos in the autoexec.nos in the aprs section

aprs wx call PD9Q-7
aprs wx stat "Weather Station JO11VN"
aprs wx pos "5133.52N/00348.15E_METEO
aprs wx data "/home/pd9q/jnos/wx/current.txt"
aprs bc rftimer 10

For direwolf in the file direwolf.conf

PBEACON LAT=51^33.52N LONG=03^48.15E SYMBOL=”weather station” COMMENTCMD=”tail -1 /home/pd9q/linbpq/current.txt”

Direwolf Aprs packet look like this.

PD9Q-7>APDW15:!5133.52N/00348.15E_069/005g006t028r000p000P000h75b10007

BPQ32 Aprs packet look like this.

PD9Q-7>APBPQ1,WIDE1-1:@091338z5133.52N/00348.15E_069/005g006t028r000p000P00
0h75b10007/Weather Station JO11VN

Learned a lot.

Jnos vara FM/HF

Okay, I’m probably a bit behind. But Maiko has managed to great a IP BRIDGE over VARA HF/FM modem.
That’s really great … I read that WINRPR is also already supported. Lots of progress.

 

prototype IP bridge interface for EA5HVK VARA HF Modem - January 16, 2021
 -------------------------------------------------------------------------

 Ready to declare the first prototype, evening of January 16, this is working
 quite well, almost flabbergasted. I am now using PPP as part of the code, and
 the interface is now an IP bridge - JNOS to JNOS using VARA HF modems ...

 Initially started working on the VARA HF interface on January 5, 2021

 Just have to tidy up the code a bit, and document the heck out of it.

 Latest prototype code is found under RSYNC area, look for 'varadev.tar' file
  (make sure you #define PPP and #define EA5HVK_VARA in your config.h)

----

 Success - Jaunary 15, 2021

It would appear that I have successfully developed an IP BRIDGE over
VARA HF modem for JNOS. With some mods to the JNOS ppp code,
and integrating into the VARA HF interface I've been working on, I now
actually have an active telnet going on between my 2 JNOS test sites,
both linked to each other via trial copy of VARA HF modem software
over hard wired audio.

It's working flawlessly. I would love to see how fast it is in a real
environment. I need to tidy up stuff, make it more automatic, and
really document the heck out of this, but yes ... appears to work.

This is basically what SCS is doing with their Pactor IP Bridge.

Maiko / VE4KLM

site a ::

attach vara vara0 1500 192.168.1.20 8300

varacmd "mycall ve4klm"
varacmd "connect ve4klm ve4pkt"

site b :

attach vara vara0 1500 10.1.1.2 8300

varacmd "mycall ve4pkt"
varacmd "listen on"

After  physical connect established, both sides run :

  ppp vara0 trace 2
  ppp vara0 lcp timeout 60000
  ppp vara0 lcp open
  ppp vara0 ipcp timeout 60000
  ppp vara0 ipcp open

Timeouts have to be large, I will document all of this, very excited !

F9 trace window

Fri Jan 15 22:12:03 2021 - vara0 sent:
PPP: len 104    protocol: IP
IP: len 100 172.16.72.1->172.16.72.4 ihl 20 ttl 254 prot TCP
TCP: 23->1030 Seq xa66c161 Ack xf22c034 ACK PSH Wnd 2048 Data 60
0000  ff 03 00 21 45 00 00 64 03 da 00 00 fe 06 d0 93 ...!E..d.Z..~.P.
0010  ac 10 48 01 ac 10 48 04 00 17 04 06 0a 66 c1 61 ,.H.,.H......fAa
0020  0f 22 c0 34 50 18 08 00 48 ed 00 00 55 73 65 72 ."@4P...Hm..User
0030  73 3a 0d 0a 54 65 6c 6e 65 74 20 20 20 28 76 65  s:..Telnet (ve
0040  34 6b 6c 6d 20 40 20 31 37 32 2e 31 36 2e 37 32  4klm @ 172.16.72
0050  2e 34 29 20 20 2d 3e 20 49 64 6c 65 0d 0a 0d 0a  .4)  -> Idle....
0060  28 23 30 29 20 3e 0d 0a                          (#0) >..


jnos> ppp vara0

Network Protocol Phase  (open for 0:00:22:54)
      4196 In,         126 Flags,     0 ME,      0 FE,      0 CSE,      0 other
                    70 Lcp,     0 Pap,    41 IPcp,     0 Unknown
      4312 Out,        135 Flags,     0 ME,      3 Fail
                    72 Lcp,     0 Pap,    41 IPcp
LCP Opened
                 MRU     ACCM            AP      PFC  ACFC Magic
        Local:   1500    0xffffffff      None    No   No   unused
        Remote:  1500    0xffffffff      None    No   No   unused
PAP Closed
        Message: 'none'
IPCP Opened
        local IP address: 172.16.72.1  remote IP address: 0.0.0.0

-------------------

 IDEA - 3 am January 14, 2021

  VARA will be like PACTOR and AMTOR, it requires a changeover which in the
  case of VARA is handled internally. Ever wonder how SCS did the IP BRIDGE
  over PACTOR ? It's publically documented. They use the PPP protocol used
  for telephone circuits, SLIP would work too (pretty sure it would), but
  PPP has better error checking and stuff.

  I think that's the way to do it now, so that's the next part of all this
  experimenting ...

-------------------

 update January 13, 2021, decided to try enabling IP over AX25 (datagram mode)
 and I got my two JNOS test systems pinging each other. I should know better,
 but this VARA link is probably no different then how PACTOR does it's change
 over functions, but it's all done 'inside the VARA HF modem software'.

 As soon as things try to go both ways, the whole thing stalls. That's where
 I am right now. I really like this 'bridge' approach to linking the systems,
 since I can technically just connect ax25 (ttylink works as long as each
 side waits for the other to finish typing, seems to be okay, but), and I
 have been able to telnet to the point of getting the password prompt, but
 then again it stalls (that's understandable).

 So now spending time trying to figure out flow ctl, may have to rethink
 the interfaces, but I just don't want this to be just another forwarding
 type back and forth, need to get some type of IP and/or AX25 working over
 it, that will most certainly be a challenge (already has been for a bit).

 ----

 update January 11, 2021, now able to establish a ttylink session between the
 2 JNOS systems linked to each other with the VARA HF modems. It seems to be
 quite consistent, and I was having a keyboard to keyboard with myself :)
  (see further below for how to setup this up, sorry if it's vague)

 trying to establish a mailbox prompt is another story, seems to be stalling
 on me still, not sure why.

 The latest vara development code is on my JNOS rsync site. Disclaimer, it is
 very experimental, may result in one pulling out their hair, and frustration
 as well, But if you want something to play with, or just to see what or how
 these VARA HF modems work, then go for it.

 Make sure to include this directive below in your config.h before you compile :

   #define EA5HVK_VARA

 to try out the ttylink tests, setup 2 JNOS systems, each will connect
 to their own instance of a Windows VARA HF software modem, use the main
 JNOS log to determine the status of stuff for now. Sorry, but it's still
 in development, so the log will have to do. See example setup below, make
 sure you use valid callsigns of course and the IP addresses applicable
 to your setup. It's VERY experimental, your milage will vary I'm sure.
 
 on JNOS A :

  attach  vara vara0 256 10.8.10.6 8300

  once you see both command and data ports connected in the log,
  then set the callsign of your software modem :

    varacmd "MYCALL CALLA"

 on JNOS B :

  attach  vara vara0 256 192.168.100.201 8300

  once you see both command and data ports connected in the log,
  then set the callsign of your software modem :

    varacmd "MYCALL CALLB"

  we will get the second JNOS to be the listener (both can be),
  but for this test we will have JNOS A connect to JNOS B, so
  still on JNOS B, a few more commands :

    varacmd "LISTEN ON"

  we need ttylink to be working as well, so set the ttycall :

    ax25 ttycall CALLB-4

 then on JNOS A, initiate the CONNECT and establish VARA link :

    varacmd "CONNECT CALLA CALLB"

 again watch the logs, at some point the systems will be linked,
 then you can run this command on JNOS A :

    c vara0 callb-4

 and you should be able to have a keyboard to keyboard :)

 To QUIT the ttylink session, just use 'reset' on the main console
 on either JNOS setup. To disconnect the VARA HF link between your
 2 JNOST systems, issue the following command :

   varacmd "DISCONNECT"

 on either one, it 'should' discconnect both sides ...

 ONE LAST THING - your JNOS will likely hang if you exit the
 vara hf modem software, has to do with tcp socket connection
 not properly ended between JNOS and the software. You might
 have to do a 'kill -9 ' to exit, sorry :)

 This seems to stall if I try the mailbox call, the ttycall seems
 to work fairly decently. Your luck may vary, but this is what I've
 got working so far.

Jnos start with screen

Jimmy K3CHB, Was looking at how he could get a restart option in Jnos in combination with “screen”.

Below how he did it.

Startnos

#!/bin/bash
echo "Starting [JNOS-2.0n.beta-IHM$]"
screen -d -m -S jnos-console ./nos.loop exit 0

Nos.loop

#!/bin/bash
# JNOS 2.0 Loop script by K3CHB

exit_code=-1
killall -KILL jnos 2> /dev/null
 
while [ $exit_code -ne 0 ]
do
     cd /jnos
     rm -f /jnos/spool/mqueue/*.lck 2> /dev/null
     rm -f /jnos/spool/mail/*.lck 2> /dev/null
     rm -f /jnos/spool/ptmx_direwolf.cfg 2> /dev/null
     sleep 2
     grep -o "/dev/pts/." /jnos/direwolf.log > /jnos/spool/ptmx_direwolf.cfg 
     sleep 2
     export TZ=EST5EDT
     export TERM=xterm-color
     /jnos/jnos -g2 -i -d/jnos && exit_code=0
done
 
exit 0

 

Jnos snmpd

Autoexec.nos

start snmpd
snmp ro pd9q 192.168.79.

sudo apt-get install mrtg
mkdir /var/www/html/mrtg/jnos
cd /var/www/html/mrtg/jnos
sudo nano mrtg.cfg

Mrtg.cfg

#
WorkDir: /var/www/html/mrtg/jnos
#
options[_]: noinfo,nobanner,growright,logscale
XSize[_]: 300
YSize[_]: 100
#
EnableIPv6: no
NoMib2: yes
#
# JNOS tun0 (3) interface
#
Target[tun0]: 3:pd9q@192.168.79.110:
MaxBytes[tun0]: 1000000
PNGTitle[tun0]: Internet and some LAN traffic
Title[tun0]: tun0
#
# JNOS axu0 (2) interface
#
Target[axu0]: 2:pd9q@192.168.79.110:
MaxBytes[axu0]: 1000000
PNGTitle[axu0]: axu0
Title[axu0]: axu0
#
# JNOS hf (1) interface
#
Target[ax0]: 1:pd9q@192.168.79.110:
MaxBytes[ax0]: 50
PNGTitle[ax0]: 144.850Mhz @ 1200 Baud
Title[ax0]: ax0
#
# JNOS netrom (0) interface
#
Target[netrom]: 0:pd9q@192.168.79.110:
MaxBytes[netrom]: 50
PNGTitle[netrom]: Netrom (excluding RIF frames)
Title[netrom]: netrom
#
sudo indexmaker --output index.html -section=title --show=day --columns=1 mrtg.cfg

sudo nano /etc/cron.d/mrtg

*/5 *   * * *   root    if [ -x /usr/bin/mrtg ] && [ -r /var/www/html/mrtg/jnos/mrtg.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*W$

Jnos NNTP(s) Server

Jean VE2PKT helpt me to get things going. Thank you Jean. I really appreciate it.

I first have to compile a new Jnos version with the NNTP(s) enabled, edit your config.h and define NNTPS.
(#define NNTPS   /* Netnews client and server */)
I had problems if I wanted to connect the NNTP server. Jnos crached right away. After a distro update of my linux version from “Stretch” to “Buster” all went fine.

Autoexec.nos

# NNTP server/client
start nntp
nntp profile fullname "Niels PD9Q"
nntp profile host jnos.packet-radio.nl
nntp profile organ "Amateur Radio"
nntp profile reply pd9q@jnos.packet-radio.nl
nntp profile user pd9q
#
nntp access off
nntp firstpoll 5
nntp ihave 0
nntp lzw on
nntp quiet 2

Fist create newsgroups on the Jnos prompt

jnos>
jnos> nntp create ng.bpq y
jnos>

nntp create <news.group.name> [y|n]

Updates the /spool/news/active file, which must have an entry for each news group you wish to receive.  Choose y to permit posting to this group, or n to deny posting.  y is assumed if nothing is specified.  The /spool/news/pointer file is also updated with the path to the directory which will contain the articles. Articles will be stored as separate files, named by an integer corresponding to their arrival order.

The NNTPS software includes a mail-to-news feature, such that email with a To: address that begins with “!” is passed to the NNTPS module.  The remainder of the To: address is interpreted as a newsgroup name, with the name truncated at the first occurrence of one of “%@.,/”, and with “!” translated to “.” and “+” to “,”. An alias is usually used to provide this special name. For example, to route all NLD bulletins to both the NLD area, and the NG.NLD newsgroup, use the alias:

/jnos/alias
#News groups
nld     nld     !ng!nld

My alias file looks like this
nld     nld     !ng!nld
bpq     bpq     !ng!bpq
7plus   7plus   !ng!7plus
ww      ww      !ng!ww
eu      eu      !ng!eu
aprs    aprs    !ng!aprs
local   local   !ng!local
prop    prop    !ng!prop

The NNTPS software includes a news-to-mail feature, such that news articles can be emailed to local or remote destinations after they are processed by nntp. This would allow, for example, emailing to a public area, so that BBS users too could read news articles. JNOS must be compiled with NNTPS and NEWS_TO_MAIL #define’d and a file /spool/news/gateway must exist to define the mapping from a newsgroup to an SMTP To: address. Each non-comment line in the gateway file must begin with a newsgroup name (starnames OK), followed by spaces or tabs, followed by the email To: address.

/jnos/spool/news/gateway
ng.nld  aprs@nld
ng.nld  prop@nld
ng.nld  all@nld
ng.nld  7plus@nld
ng.7plus        all@7plus
ng.ww   all@ww
ng.eu   all@eu
ng.local        all@local
ng.bpq  all@bpq

Expire time of bulletins or newsgroup messages.

/jnos/spool/expire.dat
# bulletins received from AX25 network
#
nld 90
bpq 60
7plus 30
eu 30
check 45
ww 30
prop
#
#  NNTP
!ng.nld 90
!ng.bpq 60
!ng.7plus 30
!ng.check 30
!ng.eu 30
!ng.prop 30
!ng.ww 30

I’m using Thunderbird to read and post messages as bulletin and newsgroup mail.

mail.log

Fri Feb 21 20:22:46 2020 queue job 2333 To: !ng!local From: pd9q@jnos.packet-radio.nl
Fri Feb 21 20:22:46 2020 queue job 2333 To: local From: pd9q@jnos.packet-radio.nl
Fri Feb 21 20:26:50 2020 deliver Msg-Id: 2335@jnos.packet-radio.nl To: local From: pd9q@jnos.packet-radio.nl Subject: Test ng.local
Received: by jnos.packet-radio.nl with NNTP
        id AA2332 ; Fri, 21 Feb 2020 20:22:46 CET
Newsgroups: ng.local
From: Niels PD9Q <pd9q@jnos.packet-radio.nl
Subject: Test ng.local
Message-ID: <2331@jnos.packet-radio.nl>
Date: Fri, 21 Feb 2020 20:22:41 +0100
Errors-To:  sysop
To: all@local

Test the ng.local newsgroup.
Newsgroups: ng.local
X-Mozilla-News-Host: news://192.168.1.101:119
From: Niels PD9Q <pd9q@jnos.packet-radio.nl>
Path: jnos.packet-radio.nl!not-for-mail
Subject: Test ng.local
Message-ID: <2331@jnos.packet-radio.nl>
Date: Fri, 21 Feb 2020 20:22:41 +0100
User-Agent: Thunderbird/60.9.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: nl
Content-Transfer-Encoding: 7bit
Lines: 1

Test the ng.local newsgroup.
Path: jnos.packet-radio.nl!NNTP_GATE@jnos.packet-radio.nl!jnos
From: pd9q@jnos.packet-radio.nl
Newsgroups: ng.local
Subject: Test all@local
Message-ID: <c00aaec4-9b7f-b803-b9cd-adc1941ba8b9@jnos.packet-radio.nl>
Sender: NNTP@jnos.packet-radio.nl
Comments: Article created from mail
X-Mozilla-News-Host: news://192.168.1.101:119
To: all@local
Date: Fri, 21 Feb 2020 20:53:28 +0100
User-Agent: Thunderbird/60.9.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: nl
Content-Transfer-Encoding: 7bit

Test all@local bulletin

73 Niels

That’s look pretty cool, isn’t it?

 

Jnos colors are back

For the Raspberry Pi users among us, Maiko has found a solution for the Colors in Jnos and the NNTP server and probably even more stability issues.
For a long time we had to miss the colors, but I immediately imagine myself back in the 90s.

The Solution…..

JNOS is doing strange things on PI platforms. Because gcc in the ARM processors are forcing CHAR variables to be UNSIGNED, not SIGNED!

Until I find a better solution (long term), you must add :

     -fsigned-char

to the CFLAGS in the makefile.

CFLAGS = -DUNIX $(DEBUG) $(PATCHES) $(WARNINGS) -fsigned-char
make clean
./configure
make

Thank you Maiko….