¿ªÔÆÌåÓý

Direwolf 1.7 & RPi Bookworm update


 

I saw in several previous posts that an issue arises when Direwolf v 1.7 is tried on the latest Bookworm Update.
I haven't seen any recent posts, and didn't find an definitive "fix", so I thought I'd give updating Bookwork on a test platform (previously working with 1.7 & Bookworm).
Sure enough it failed.
Error writing "27" to /sys/class/gpio/export, errno=22
Invalid argument
?
What is the best correction?? Is it simply to download the latest Dev version?
?
I'm not in any rush, so I thought I'd wait for somewhat stable solutions.
?
Arnold,
KQ6DI


 

¿ªÔÆÌåÓý


Hello Arnold,

You need to compile up the DEV branch of Direwolf (v1.8) as well as install the gpiod daemon to catch up to the various disruptive changes in Bookworm.? I've updated my docs to reflect this as well:

??

--David
KI6ZHD


On 05/04/2024 03:37 PM, Arnold Harding - KQ6DI wrote:

I saw in several previous posts that an issue arises when Direwolf v 1.7 is tried on the latest Bookworm Update.
I haven't seen any recent posts, and didn't find an definitive "fix", so I thought I'd give updating Bookwork on a test platform (previously working with 1.7 & Bookworm).
Sure enough it failed.
Error writing "27" to /sys/class/gpio/export, errno=22
Invalid argument
?
What is the best correction?? Is it simply to download the latest Dev version?
?
I'm not in any rush, so I thought I'd wait for somewhat stable solutions.
?
Arnold,
KQ6DI


 

Excellent.? Thank you David.
?
Arnold, KQ6DI

On 05/04/2024 7:04 PM PDT David Ranch <direwolf-groupsio@...> wrote:
?
?

Hello Arnold,

You need to compile up the DEV branch of Direwolf (v1.8) as well as install the gpiod daemon to catch up to the various disruptive changes in Bookworm.? I've updated my docs to reflect this as well:

??

--David
KI6ZHD


On 05/04/2024 03:37 PM, Arnold Harding - KQ6DI wrote:
I saw in several previous posts that an issue arises when Direwolf v 1.7 is tried on the latest Bookworm Update.
I haven't seen any recent posts, and didn't find an definitive "fix", so I thought I'd give updating Bookwork on a test platform (previously working with 1.7 & Bookworm).
Sure enough it failed.
Error writing "27" to /sys/class/gpio/export, errno=22
Invalid argument
?
What is the best correction?? Is it simply to download the latest Dev version?
?
I'm not in any rush, so I thought I'd wait for somewhat stable solutions.
?
Arnold,
KQ6DI


 

This is explained in the Radio Interface Guide ? on page 23.

73,
John WB2OSZ


 

I am also having trouble getting PTT to toggle on GPIO25. This is on Bookworm on a Pi 3b with direwolf 1.6 which I installed using apt .Direwolf quits with this message: when I uncomment the PTT line in direwolf.conf ("PTT GPIO 25")

?Error writing "25" to /sys/class/gpio/export, errno=22


I looked at the Radio Interface Guide and tried gpiod as suggested but I'm still not seeing GPIO25 go high to transmit. Here is the message I get after changing to "PTT GPIOD gpiochip0 25":

Reading config file direwolf.conf
Config file line 196: Expected RTS or DTR after PTT device name.

Here are the non-commented parts of my direwolf.conf file:

ADEVICE ?plughw:1,0
CHANNEL 0
MYCALL KI7JS-10
MODEM 1200

# PTT GPIO 25 ?## this shuts down direwolf with errno=22
PTT GPIOD gpiochip0 25

AGWPORT 8000
KISSPORT 8001
DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE
IGSERVER noam.aprs2.net
IGLOGIN KI7JS-10 XXXXX
PBEACON sendto=IG delay=0:30 every=30:00 symbol="igate" overlay=R lat=45.740418 long=-121.520083 COMMENT="KI7JS-10 igate | Direwolf 1.6, Pi3B+, Icom V800"
IGTXLIMIT 6 10

Except for PTT, direwolf is working: receives packets, decodes, forwards to internet, tries to retransmit packets.

Any suggestions to get it going??

In case it helps, here is some output from direwolf:

jayst@piwolf:~ $ direwolf
Dire Wolf version 1.6
Includes optional support for: ?gpsd hamlib cm108-ptt

Reading config file direwolf.conf
Config file line 196: Expected RTS or DTR after PTT device name.
Audio device for both receive and transmit: plughw:1,0 ?(channel 0)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate / 3.
Note: PTT not configured for channel 0. (Ignore this if using VOX.)
Ready to accept AGW client application 0 on port 8000 ...
Ready to accept KISS TCP client application 0 on port 8001 ...

Now connected to IGate server noam.aprs2.net (205.209.228.99)
Check server status here http://205.209.228.99:14501

[ig] # aprsc 2.1.15-gc67551b
[ig] # logresp KI7JS-10 verified, server T2TEXAS
[ig] KI7JS-10>APDW16:!4544.43NR12131.20W&KI7JS-10 igate | Direwolf 1.6, Pi3B+, Icom V800

K1OSH-15 audio level = 15(5/3) ? [NONE] ? _||||||__
[0.3] K1OSH-15>APTT4,WIDE1-1,WIDE2-1:Battery: 13.6V Volts
Unknown APRS Data Type Indicator "B", VAN, Tiny Track
[0H] K1OSH-15>APTT4,KI7JS-10*,WIDE2-1:Battery: 13.6V Volts

KJ7PAG audio level = 11(6/3) ? [NONE] ? ___|||||_
[0.5] KJ7PAG>TUTUXZ,WIDE1-1,WIDE2-1:`18Nl <0x1c>-/`"8M}440.325MHz monitoring 146.520_%<0x0d>
MIC-E, House, Yaesu FTM-400DR, Off Duty
N 45 45.8000, W 121 28.5000, 0 MPH, alt 1371 ft, 440.325 MHz
?monitoring 146.520
[0H] KJ7PAG>TUTUXZ,KI7JS-10*,WIDE2-1:`18Nl <0x1c>-/`"8M}440.325MHz monitoring 146.520_%<0x0d>


 

Hi.

Me too ;-)

Last week i solved in another direwolf the gpio access problem.

Is something related latest raspi firmwares.

A (temporal) solution is to downgrade the raspberry fw with command raspi-firmware (and a number of the release)

I have a dw running with this downgrade, buuuut i think in the next upgrade of the system it will install the latest release and...?

I cant find the info on google, so i dont know the exact release you must install.

Google, please dont hide me the info... :-D

73s Rafa EB2DJB



 

¿ªÔÆÌåÓý


All the details of what broke is covered earlier in this very thread:

?? /g/direwolf/topic/105914156


Regardless, downgrading the Raspberry Pi firmware, Linux kernels, etc. is a poor option.? You loose getting any security fixes, bug fixes, and ultimately various technology is (disruptively) moving forward and you will be ultimately fighting the inevitable.? Direwolf 1.8 (the DEV branch has the fix) for this long planned change.? I totally get the pain aspect of all this and we all feel it elsewhere be it disruptive changes from other projects like Python, etc.

--David
KI6ZHD


On 06/04/2024 09:30 AM, Rafa Martinez wrote:

Hi.

Me too ;-)

Last week i solved in another direwolf the gpio access problem.

Is something related latest raspi firmwares.

A (temporal) solution is to downgrade the raspberry fw with command raspi-firmware (and a number of the release)

I have a dw running with this downgrade, buuuut i think in the next upgrade of the system it will install the latest release and...?

I cant find the info on google, so i dont know the exact release you must install.

Google, please dont hide me the info... :-D

73s Rafa EB2DJB




 

Greetings David!

After banging into the "Error writing" issue, I used your document to build direwolf DEV/1.8 on the most recent DRAWS hat image Raspbian GNU/Linux 11 (bullseye)
starting the direwolf service still fails but no longer hangs the service start

Jun 05 07:44:07? direwolf[15736]: Error writing "12" to /sys/class/gpio/export, errno=22
Jun 05 07:44:07? direwolf[15736]: Invalid argument
Jun 05 07:44:07? direwolf[15736]: It looks like gpio with sysfs is not supported on this operating system.
Jun 05 07:44:07? direwolf[15736]: Rather than the following form, in the configuration file,
Jun 05 07:44:07 direwolf[15736]: ? ? PTT GPIO ?12
Jun 05 07:44:07 direwolf[15736]: try using gpiod form instead. ?e.g.
Jun 05 07:44:07? direwolf[15736]: ? ? PTT GPIOD ?gpiochip0 ?12
Jun 05 07:44:07 direwolf[15736]: You can get a list of gpio chip names and corresponding I/O lines with "gpioinfo" comma>
Jun 05 07:44:07 systemd[1]: direwolf.service: Main process exited, code=exited, status=1/FAILURE
Jun 05 07:44:07? systemd[1]: direwolf.service: Failed with result 'exit-code'.

You MAY want to add that installing gpiod and manually modifying the direwolf config is needed

73 KM6KEF


 

¿ªÔÆÌåÓý


Hello Robert,

After banging into the "Error writing" issue, I used your document to build direwolf DEV/1.8 on the most recent DRAWS hat image Raspbian GNU/Linux 11 (bullseye)
starting the direwolf service still fails but no longer hangs the service start

Can you be specific on which document you're following?? Btw, I believe this impactful change is only for the Bookworm OS release running the new 6.6.x kernel series. Bullseye with it's 6.1.x kernel series is not impacted.


Jun 05 07:44:07? direwolf[15736]: Error writing "12" to /sys/class/gpio/export, errno=22
Jun 05 07:44:07? direwolf[15736]: Invalid argument
Jun 05 07:44:07? direwolf[15736]: It looks like gpio with sysfs is not supported on this operating system.
Jun 05 07:44:07? direwolf[15736]: Rather than the following form, in the configuration file,
Jun 05 07:44:07 direwolf[15736]: ? ? PTT GPIO ?12
Jun 05 07:44:07 direwolf[15736]: try using gpiod form instead. ?e.g.
Jun 05 07:44:07? direwolf[15736]: ? ? PTT GPIOD ?gpiochip0 ?12
Jun 05 07:44:07 direwolf[15736]: You can get a list of gpio chip names and corresponding I/O lines with "gpioinfo" comma>
Jun 05 07:44:07 systemd[1]: direwolf.service: Main process exited, code=exited, status=1/FAILURE
Jun 05 07:44:07? systemd[1]: direwolf.service: Failed with result 'exit-code'.

You MAY want to add that installing gpiod and manually modifying the direwolf config is needed

I believe the issue here is that you haven't installed and enabled the gpiod system in your Bullseye system.? It might not even be present in that OS.? As such, I recommend you REVERT your configuration to use the non-GPIOD Direwolf configuration on your system and you should be ok.

--David
KI6ZHD


 

I've found a temp solution of the GPIO issue.

?

rpi-update cac01bed1224743104cb2a4103605f269f207b1a #6.1.54

with this command, and a reboot, you restore the function of /sys/class/gpio

?

73's Rafa EB2DJB


 

¿ªÔÆÌåÓý


Hello Rafa,

Reverting to an older kernel and firmware is not ideal as you will be missing on various security fixes, bug fixes, etc. on both the kernel and the firmware.? For impacted Bookworm users, all you need to do is upgrade to Direwolf 1.8DEV and you should be OK.? This Direwolf branch is quite stable at the moment.

--David
KI6ZHD


On 06/06/2024 10:44 AM, Rafa Martinez wrote:

I've found a temp solution of the GPIO issue.

?

rpi-update cac01bed1224743104cb2a4103605f269f207b1a #6.1.54

with this command, and a reboot, you restore the function of /sys/class/gpio

?

73's Rafa EB2DJB



 

Hi David,

Yes. I agree with you.

I've tried (not with DEV release) putting in cfg the gpiod line, and it gives the error about RTS that I've read here.

How is the git command to get the DEV release?

Many thanks!

73's Rafa EB2DJB


 
Edited


?
re: How is the git command to get the DEV release?


At this point you should have the most recent stable version.In some cases, you might want the latest (sometimes unstable) development version to test a bug fix orget a preview of a new (possibly incomplete) feature that will be in the next release. In that case, also type:
git checkout dev


 

Progress! I got the 1.8 DEV version built and running. I see the GPIO25 line go high when re-transmitting a packet.

To recap: I did not downgrade the Pi firmware, I did not revert to an older version of Raspian. All I needed to do is follow the directions Gordon W4ZD pointed to in the Direwolf user manual to build the DEV version of Direwolf. Don't forget the step "git checkout dev" -- that caused one false start when I built the 1.7 version. Another false start: I forgot to include the gpiod support. What worked for me was "Dire Wolf DEVELOPMENT version 1.8 A"

I am running Bookworm with direwolf 1.8A on a raspberry pi 3b and my config file has ?PTT GPIOD gpiochip0 25?

73s,

Jay KI7JS


 

This is explained in the Radio Interface Guide ? on page 23.
?
73,
John WB2OSZ


 

I have followed the instructions as given, and get these errors upon attempting the dev (git checkout dev) [page 10, RPI-APRS.pdf].?
{My first post, and I hope I provide what is needed to ask for help. Much appreciated}:
?
Std Out after this command [cmake -DUNITTEST=1 ..] :
?
-- Dire Wolf Version: 1.8.0-5736b0f
-- Build type set to: Release
CMake system: Linux
CMake Error at CMakeLists.txt:125 (include):
? include could not find requested file:
? ? FindCPUflags

CMake Warning at CMakeLists.txt:307 (find_package):
? By not providing "FindGPSD.cmake" in CMAKE_MODULE_PATH this project has
? asked CMake to find a package configuration file provided by "GPSD", but
? CMake did not find one.
? Could not find a package configuration file provided by "GPSD" with any of
? the following names:
? ? GPSDConfig.cmake
? ? gpsd-config.cmake
? Add the installation prefix of "GPSD" to CMAKE_PREFIX_PATH or set
? "GPSD_DIR" to a directory containing one of the above files. ?If "GPSD"
? provides a separate development package or SDK, be sure it has been
? installed.

CMake Warning at CMakeLists.txt:315 (find_package):
? By not providing "Findhamlib.cmake" in CMAKE_MODULE_PATH this project has
? asked CMake to find a package configuration file provided by "hamlib", but
? CMake did not find one.
? Could not find a package configuration file provided by "hamlib" with any
? of the following names:
? ? hamlibConfig.cmake
? ? hamlib-config.cmake
? Add the installation prefix of "hamlib" to CMAKE_PREFIX_PATH or set
? "hamlib_DIR" to a directory containing one of the above files. ?If "hamlib"
? provides a separate development package or SDK, be sure it has been
? installed.

CMake Warning at CMakeLists.txt:337 (find_package):
? By not providing "Findudev.cmake" in CMAKE_MODULE_PATH this project has
? asked CMake to find a package configuration file provided by "udev", but
? CMake did not find one.
? Could not find a package configuration file provided by "udev" with any of
? the following names:
? ? udevConfig.cmake
? ? udev-config.cmake
? Add the installation prefix of "udev" to CMAKE_PREFIX_PATH or set
? "udev_DIR" to a directory containing one of the above files. ?If "udev"
? provides a separate development package or SDK, be sure it has been
? installed.

CMake Warning at CMakeLists.txt:342 (find_package):
? By not providing "FindAvahi.cmake" in CMAKE_MODULE_PATH this project has
? asked CMake to find a package configuration file provided by "Avahi", but
? CMake did not find one.
? Could not find a package configuration file provided by "Avahi" with any of
? the following names:
? ? AvahiConfig.cmake
? ? avahi-config.cmake
? Add the installation prefix of "Avahi" to CMAKE_PREFIX_PATH or set
? "Avahi_DIR" to a directory containing one of the above files. ?If "Avahi"
? provides a separate development package or SDK, be sure it has been
? installed.

CMake Error at data/CMakeLists.txt:36 (file):
? file COPY cannot find "/home/1234/direwolf/data/symbols-new.txt": No
? such file or directory.

CMake Error at data/CMakeLists.txt:37 (file):
? file COPY cannot find "/home/1234/direwolf/data/symbolsX.txt": No such
? file or directory.

CMake Error at CMakeLists.txt:376 (add_subdirectory):
? add_subdirectory given source "/home/1234/direwolf/external/geotranz"
? which is not an existing directory.

CMake Error at CMakeLists.txt:377 (add_subdirectory):
? add_subdirectory given source "/home/1234/direwolf/external/regex" which
? is not an existing directory.

CMake Error at CMakeLists.txt:378 (add_subdirectory):
? The source directory
? ? /home/1234/direwolf/external/hidapi
? does not contain a CMakeLists.txt file.

CMake Error at CMakeLists.txt:379 (add_subdirectory):
? add_subdirectory given source "/home/1234/direwolf/external/misc" which
? is not an existing directory.

-- Build unit test binaries
CMake Error: File /home/1234/direwolf/test/scripts/check-fx25 does not exist.
CMake Error at test/CMakeLists.txt:33 (configure_file):
? configure_file Problem configuring file

CMake Error: File /home/1234/direwolf/test/scripts/check-il2p does not exist.
CMake Error at test/CMakeLists.txt:39 (configure_file):
? configure_file Problem configuring file

CMake Error: File /home/1234/direwolf/test/scripts/check-modem1200 does not exist.
CMake Error at test/CMakeLists.txt:45 (configure_file):
? configure_file Problem configuring file
.
.
.
. [truncated]
.
.?
CMake Error: File /home/1234/direwolf/test/scripts/check-modem4800 does not exist.
CMake Error at test/CMakeLists.txt:99 (configure_file):
? configure_file Problem configuring file

CMake Error: File /home/1234/direwolf/test/scripts/check-modemeas does not exist.
CMake Error at test/CMakeLists.txt:105 (configure_file):
? configure_file Problem configuring file

CMake Error at CMakeLists.txt:393 (add_subdirectory):
? add_subdirectory given source "scripts" which is not an existing directory.

CMake Error at CMakeLists.txt:402 (add_subdirectory):
? add_subdirectory given source "doc" which is not an existing directory.

CMake Error at CMakeLists.txt:403 (add_subdirectory):
? The source directory
? ? /home/scholcu/direwolf/man
? does not contain a CMakeLists.txt file.

CMake Error at CMakeLists.txt:422 (add_subdirectory):
? The source directory
? ? /home/1234/direwolf/cmake/cpack
? does not contain a CMakeLists.txt file.

-- Configuring incomplete, errors occurred!
See also "/home/1234/direwolf/build/CMakeFiles/CMakeOutput.log".
See also "/home/1234/direwolf/build/CMakeFiles/CMakeError.log".


 

I installed gpsd with apt, after reading some of the output previously posted. Attempted the [ cmake -DUNITTEST=1 .. ] command again, still fails.
?
Additional data if it helps:
?
/path/direwolf/build# which gpsd
/usr/sbin/gpsd


 

Interesting. I just tried it on bookworm and the dev branch was fine.
?
Lines, similar to this, containing "warning" are not a problem.
CMake Warning at CMakeLists.txt:307 (find_package):
?
Lines, similar to this, containing "error" are a problem.
CMake Error: File /home/1234/direwolf/test/scripts/check-modem1200 does not exist.
?
In this case, it is complaining about a missing file.
?
Try the following command, using the appropriate user name:
?
ls -l /home/pi/direwolf/test/scripts/
total 52
-rwxr-xr-x 1 pi pi 458 Jan ?2 12:07 check-fx25
-rwxr-xr-x 1 pi pi ?41 Jan ?2 12:07 check-il2p
-rwxr-xr-x 1 pi pi 243 Jan ?2 12:07 check-modem1200
-rwxr-xr-x 1 pi pi 118 Jan ?2 12:07 check-modem1200-i
-rwxr-xr-x 1 pi pi 265 Jan ?2 12:07 check-modem19200
-rwxr-xr-x 1 pi pi 173 Jan ?2 12:07 check-modem2400-a
-rwxr-xr-x 1 pi pi 173 Jan ?2 12:07 check-modem2400-b
-rwxr-xr-x 1 pi pi 125 Jan ?2 12:07 check-modem2400-g
-rwxr-xr-x 1 pi pi 252 Jan ?2 12:07 check-modem300
-rwxr-xr-x 1 pi pi 158 Jan ?2 12:07 check-modem4800
-rwxr-xr-x 1 pi pi 246 Jan ?2 12:07 check-modem9600
-rwxr-xr-x 1 pi pi 558 Jan ?2 12:07 check-modem9600-i
-rwxr-xr-x 1 pi pi 105 Jan ?2 12:07 check-modemeas
?
How did you get the source code?? "git clone" or some other way?
?
73,
John WB2OSZ
?
?


 

Thanks for the quick replay John.
?
As requested:? ? ls -l /home/#######/direwolf/test/scripts/? yields:
?
ls: cannot access '/home/#######/direwolf/test/scripts/': No such file or directory
?
From the doc section 2.3, I see "Clone the git repository and checkout the desired version. Perform these steps logged in as the
predefined ¡°pi¡± user or some other account you created." In my case ad depicted, #######
?
In my case it is a user name I admin many boxes with. Should I use 'pi' instead?
?
Thanks for the help :-)
?


 

Oh ....? and the source code, I followed the doc section 2.3
?
~
cd ~
git clone https://www.github.com/wb2osz/direwolf
cd direwolf