===== XRouter (XrPi, XrLin, XrWin) Downloads ===== [[packet:xrouter|Back to Main XRouter Page]] This page is a "work in progress". The plan is to put more stuff on here, but the wiki only accepts files up to 2 megabytes. The very latest files can always be obtained from the XRouter group files area at: https://groups.io/g/xrouter/files These are the XRouter executables, as of 20th January 2026. If you already have a working XRouter system, simply replace the old executable with the new one as follows: - Download the variant that suits your OS (see below). - Unzip the archive to extract the executable file. - Rename the executable to "xrlin", "xrpi" or "xrwin" as appropriate. - Backup or rename your existing executable, just in case. - Copy or move the new executable into your working XRouter directory. - For Linux, remember to use "chmod -x {progname}" to allow it to run. - Run with "./xrpi" or "sudo ./xrpi" as appropriate. The "static" variants are standalone programs with no dependencies, so they should run on any Linux OS version. The non-static versions require a suitable version of GLIBC, which change with every OS. XRouter variants for older OS versions will generally run on later OS versions, but not necessarily the other way around. For example, the "stretch" variant will run on Bullseye, but the Bullseye version won't run on Stretch. If you don't have an existing XRouter setup, you will need a full release package. This is too big for the wiki, so you will need to download the "support files" and executable separately. (more on this to follow....) {{xrouter-504j-support-files.zip|v504j Support Files}} ==== Executables for 32-bit Raspberry Pi and Other ARM devices: ==== The wiki doesn't allow uploads greater than 2Mb, so the executables are zipped... {{xrpi32v504v-stretch.zip}} {{xrpi32v504v-static.zip}} ==== Executables for 64-bit Raspberry Pi and Other ARM devices: ==== {{xrpi64v504v-bullseye.zip}} {{xrpi64v504v-static.zip}} ==== Executables for X86 Linux: ==== {{xrlin32v504v-static.zip|v504v-static for any O/S}} {{xrlin32v504v-stretch.zip|v504v-stretch for Debian 9 (Stretch) and later O/S}} ==== Executables for X86-64 Linux: ==== {{xrlin64v504v-vanessa.zip|v504v for Linux Mint 21 (Vanessa)}} {{xrlin64v504v-static.zip|v504v for any flavour of Linux}} The "vanessa" version should work on most recent flavours of Linux, especially if they are Debian or Ubuntu-based. The "static" version is completely self-contained, with no dependencies, hence it SHOULD work on any flavour of linux. The downside of this version is that you MUST specify a Domain Name Server in XROUTER.CFG (e.g. DNS=8.8.8.8). This is because statically-linked programs are not able to use the Linux resolver. ==== Executables for MS Windows: ==== These are 32-bit, but work OK on 64-bit Windows This one requires WINPCAP or NPCAP if you want to directly access the Ethernet via XRouter's IP stack: {{xrwin32v504v.zip}} This one doesn't require PCAP, but doesn't allow direct access to Ethernet: {{xrwin32v504v-no-pcap.zip}} ==== XRouter Changelog ==== Version 504v - 20th Jan 2026 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixed: When used via NetRom, the HTTP "routes" page sometimes displayed the wrong callsgns for neighbours. Fixed: SMTP client was completely broken by v504j. Fixed: From v504s onwards, XRouter could send DM frames in response to overheard packets, if neither callsign was one of XRouter's callsigns. Fixed: On low bandwith summary HTML page, the wind speeds were incorrectly displayed at 10 times their value! Fixed: PMS events weren't being distributed by MQTT broker unless the MQTT publisher client was enabled. Change: Resolver process names are no longer re-used on subsequent resolutions, so it should now be easier to follow their progress in the log (trivial). Change: SMTP timer now defaults to zero, i.e. disabled. No point in wasting time checking for mail if the sysop hasn't configured the node for SMTP, e.g. the majority of cases.. Change: When entering an email into the BBS, the confirmation text now displays the destination address in email format instead of "BBS" format Change: Process logging is less cryptic (trivial). Change: PMS, BLOG and WALL events now include the event type in the topic, allowing finer-grained subscription. Added: "CMD LIST", to list the sysop-defined commands. Added: "Z" option in FWD.SYS to force the use of Ctrl-Z instead of /EX for line endings when forwarding mail (required by BayCom mailboxes). Added: "Use Ctrl-Z" checkbox on BBS forwarding admin page. Added: Detection of BayCom and OpenBCM mailboxes, causing XRouter to use Ctrl-Z for line endings. ************************************************************************ Version 504u - 10th Jan 2026 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixed: L2 connections to CHAT and PMS callsigns have been broken since 4/1/2005! It took 20 years for anyone to notice! Fixed: Case normalisation of user names in BBS was causing hyphenated first names such as Jean-Paul to have the wrong case. Fixed: Since v502w (2nd August 2023), running in Daemon mode with log level set to WARNING or above, caused the log to fill with "4 SYST: sendto() err 22: 'Invalid argument'" warnings. Added: Sysop Chat window now accepts the shifted versions of function keys, for cases where the host operating system intercepts the unshifted function keys. Added: Extra flags (bits 4 and 5) to CFLAGS as follows: Bit Dec Function --------------------------------------------------------- 5 32 Prevent connections to PMS/BBS on this port 6 64 Prevent connections to CHAT on this port Added: MQTT request option "xrouter/get/{nodecall}/mheard/ports", to obtain a list of MH enabled ports. Added: MQTT topic "xrouter/event/{nodecall}/mhlast/{portnum}". Clients subscribed to this topic receive a single MHeard item for each frame XRouter receives on an MH-enabled port. This allows client applications to build their own global or port MH lists which may be larger than the XRouter ones. Or simply display the callsign of the last packet received on one or all ports. For example, one possible application may be a standalone ESP32 device with an LCD display which shows details of the last packet heard. Added: Console windows can now be scrolled using mouse wheel, in addition to the up/down arrow keys.. Added: Text may now be copied and pasted within XRouter, and to/from the operating system's clipboard. This is a proof of concept only, and may be refined in future versions. To Copy Text From XRouter to Clipboard: Press and hold the left mouse button at the top left of an imaginary rectangle containing the text. While holding the button down, drag the mouse to the bottom right of the rectangle. There will be no visual indication of the selection until the mouse button is released, at which point the text is briefly highlighted and copied to the clipboard. To Paste Text Into XRouter From the Clipboard: On a window which has an "input" line, e.g. "consoles" or "sysop chat", the key sequence Ctrl-V *appends* the clipboard text to the command line. In this version, you cannot "insert" text at a specific point, only append. Added: Graceful shutdown upon receipt of SIGTERM. ************************************************************************ Version 504t - 2nd Jan 2026 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Change: Command history is bigger and is preserved across reboots. Added: New directive CONSOLEFLAGS for use in XROUTER.CFG. If bit 0 is set, the action of up/down-arrow keys and their shifted counterparts is swapped, meaning that the unshifted up/down arrow keys control the command history instead of scrollback, and the shifted up/down arrows control scrollback. This makes the console behave more like a Linux/Windows terminal, at the expense of confusing the seasoned XRouter users. Added: Pressing plus through on a CONSOLE allows those function keys to behave as in the DOS version, i.e. without being intercepted by the operating system. Added: On console windows, Ctrl-C can now be used to terminate a PING, NPING, Traceroute etc. in addition to the usual method of entering a blank command line. (Only xrwin32v504t-no-pcap.exe and xrwin32v504t.exe were published.) ************************************************************************ Version 504s - 30th Dec 2025 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixed: WXPRESS was setting the value of WXPOLL and vice versa, potentially causing manic polling of the weather server. Fixed: Since v501b, when a frame was received while LAPB was in disconnected state, it was being ignored instead of being rejected with a DM. Fixed: Response to an MQTT "get" request had missing topic. Change: Minimum interval for WXPOLL is now 10 seconds. Setting it any lower will disable polling altogether. Be aware that polling a public weather server any more frequently than every 600 seconds will most likely result in your account being banned! Change: When viewing an XRouter MAN(ual) page via the HTTP interface, clicking on the section number in the header or footer will open the index page for that section. The header caption "XROUTER REFERENCE MANUAL" is now a hyperlink that opens the root page, i.e. the list of manual sections. ************************************************************************ Version 504r - 28th Dec 2025 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added: Support for the new XrTrace application. ************************************************************************ Version 504q - 26th Dec 2025 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixed: FBB unproto broadcasts sent upon reception of a new message had the destination "MAIL" instead of "FBB". Fixed: On some operating systems only, XRouter would connect to the VARA TNC, then immediately disconnect with the error message "TNC has gone away". Fixed: XRouter was IP-banning AXUDP from (X)net because the latter sends nodes broadcasts with missing AX25 destination. Fixed: On some systems, viewing the PMS listing with a browser via the Linux IP stack occasionally caused XRouter to segfault (It did not segfault if XRouter's own IP stack was used). Change: Connections to APPLTYPE=TCP normally default to "binary" mode, and use "carriage return" (ASCII 13) as the line ending, as per standard Packet Radio practice. But some applications may require "telnet" standard line endings (carriage return plus line feed) instead. If this is the case, appending 'T' to the APPLTYPE=TCP directive causes the connection to use Telnet mode instead of pure binary. e.g. "APPLTYPE=TCP,192.168.1.1:8015 T". Added: "SMACK" to KISSOPTIONS, for TNC's that support/require it. Added: New subcommand: "IP B[an] I[gnore] [netmask]", which can be used to exempt an ip address or range of IP addresses from automatic banning in the event of suspicious activity. LAN and "localhost" addresses are now automatically exempt. ************************************************************************ Version 504p - 13th Dec 2025 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixed: ROUTE commands, which had been broken by v504j. Fixed: WP "Is_BBS" entries were not updated from routing headers Fixed: On very fast connections, CHARGEN was using most of the resources. Slowed it down to a more manageable pace, still plenty fast enough for AXUDP or RF connections. Fixed: L4 RX Flow Control. L4 circuits would sometimes choke on very large buletins sent on fast links, and would take a long time to unchoke. Fixed: XRouter would silently exit if OARC map server sent a TCP reset. Fixed: When a non-XRouter neighbour enabled INP3, any conventional "qualities" it sent in NODES broadcasts were being heavily de-rated by XRouter, often causing them to fall below the high MINQUALs that are used nowadays. This was was caused by code from long ago, when the only non-XRouter neighbours capable of INP3 were (X)Net. ((X)net manufactured artificially high "qualities" from RTT and hops, distorting the routing). With BPQ now having INP3, the forgotten code came back into play, so it has now been disabled for anything other than (X)net. But note that the last time I looked, Linux's INP3 implementation was also wrong, so please report any instances of silly qualities from such neighbours. Fixed: Chatserver would sometimes lose sysop's settings (name etc) Fixed: Excessive DNS requests in cases where non-authoritative name server couldn't resolve a name. Fixed: "Private" IP route indication was potentially unreliable, although this had never actually been observed in practice. Fixed: BBS Mail import from "mail.in" file, broken by v504j. Fixed: If BBS forwarding script was edited via the HTTP interface, it was saved in upper case, upsetting "Waitfor" lines which are case sensitive. Fixed: The C[onnect] command was passing garbage to the ARDOP and VARA TNC's. Fixed: ARDOP, VARA and TCP interfaces were rejecting RADIONUM, so they were prevented from using rig control. Fixed: UIFLOOD and UITRACE digipeating were not working. Fixed: APRS digipeating was disabled unless the "DIGI_UI" flag was set in DIGIFLAGS, meaning that it was not possible to enable APRS digipeating independently of "normal" digipeating. Fixed: DISTRIB.SYS "don't forward" entries were distributing everything to BBS callsign "*". Fixed: Storage for COM device name is now explicitly deallocated at closedown, to prevent orphaned memory upon "hot" restarts. Change: Prevented attempts to make AX25 connections on ports that don't support AX25. Change: Following a complaint that it was slowing workflow, removed the HTML dialog confirming message deletion. Change: AXRoutes command was always sysop-only, but why? As is useful for network debugging, it is now open to all except guests. Change: Connections to BBS now always use "Connected to" instead of replying in the caller's language, otherwise it confuses simple machines. Change: Added more fields to the BBS "J" response. Added: BBS "JK" command, to list the recent connections separately in chronological order. Added: "ilen=" to L4 trace, so that the payload length can be known even when there's no AX25 layer on the trace to display the packet length. Added: "CONFIG={ipaddr}" in INTERFACE type TCP, to prevent connections from unauthorised client IPs. Added: S[tats] PORT [reset] Added: R[oute] S[tats] [R[eset]]. Added: Route connection / disconnection history Added: BBSBEACONS flag (8) to TXOK. Setting this flag on a PORT's TXOK enables FBB "Resync" requests, mail header broadcasts, and "Mail for:" beacons on that PORT. Added: FBB unproto headers and resync capability. To enable this on a PORT, you must add 8 to the TXOK flags for that port, e.g. normally TXOK=9, or TXOK=13 if weather beacons are also enabled. Added: BBS "Mail for" beacons. Enabled as above. Added: New directive "FbbUnprotos" to PMS.CFG. Setting FbbUnprotos=1 enables FBB unproto (UI) mail header broadcasts on any PORT that has the BBSBEACONS flag (8) set in TXOK. If the FbbUnprotos directive is not included, it defaults to 0 (no unprotos) Added: New directive "MaxUnprotos" to PMS.CFG. This specifies the maximum number of message headers that will be returned in response to an FBB "resync" request. The default is 100. Setting this to 0 disables the resync capability. Note that resync requests are ignored unless the TXOK flags for the PORT include the BBSBEACONS flag (8). Added: Controls for setting FbbUnprotos and MaxUnprotos via the BBS Admin HTTP interface. Added Logging to syslog. Added Live BBS activity logging to a console, allowing scrollback and capture, to remote sysop sesions, and to HTTP interface Added Live logging to console, remote sysop sessions, and HTTP interface. Added: Sysop command "LOG L[ive] [n]", where [n] specifies the subsystem(s) to display: 0=off, 1=BBS, 2=All. (unfinished) Added: At console, F6 key enables "Live Log" mode on that console. Normal console operation is suspended while in Live Log mode. Options are displayed on the menubar. Use Q[uit] to exit. Added: L[og] [ A[ll] | B[bs] | O[ff] ] subcommand to MON[itor] cmd. Added: BBS "OLR" command to enable "Off Line Reader" mode. This is for automated mail programs such as Sally and Winpack. If the client sends the command "OLR" soon after connection, the session will switch to OLR mode, turning off colour and pagination, and ensuring a consistent machine-friendly mail header format. Added: New or updated MAN files, to be placed in the XRouter's MAN subdirectory, overwriting any existing files of the same name. Added: New or updated BBS help files, to be placed in the HELP/PMS subdirectory, overwriting any existing files of the same name. ************************************************************************ "XRouter - The Superior Solution" [[packet:xrouter|Back to Main XRouter Page]]