¿ªÔÆÌåÓý

RTL-SDR / Direwolf IGate Start-up Configuration


 

I've put together a simple Igate setup using a Raspberry Pi, running bullseye (headless), and a RTL-SDR for a receiver. It is up and running fine but I was wondering if there is a simple way to get it to run in the background and without user interaction? I would like a way to start and stop it from the command line then have it remember that setting during a re-boot.

The Direwolf manual for Raspberry Pi SDR IGate document explains how to start it from the command line and also how to add it to the /etc/rc.local file but then goes on to say that is not a good idea. It follows up with using dw_start.sh file to enable it.?

If I need to, I can edit the dw_start.sh file but I was wondering if someone has come up with a better way to enable the IGate application through Direwolf with a rtf-sdr. If this isn't a good method to create a fill-in IGate, I could always scrap the plan and just use an old mobile rig with a RA-45 interface.?

Just looking for ideas on what people have found that works and what doesn't.

Thanks,
Eric, W7CSD


 

I use systemd.? Just dug this up from a previous post.

Below is one way to do it.

Install screen:
sudo apt install screen

Create a text file named direwolf.service and put it in?the /etc/systemd/system directory.
The contents of the file are shown below:

Description=Direwolf
After=network.target

[Service]
Type=forking
WorkingDirectory=/home/pi
User=pi
Group=pi
ExecStart=/usr/bin/screen -S dw -d -m /usr/bin/direwolf
SyslogIdentifier=Direwolf

[Install]
WantedBy=multi-user.target

The above should work in a Raspberry Pi assuming the pi user applies. If running a compiled version of Direwolf, the ExecStart line should use /usr/local/bin/direwolf instead of /usr/bin/direwolf.? The above line in blue applies to using Direwolf as installed from the software repository.

After adding the text file to the specified directory, issue the following command:
sudo systemctl daemon-reload

To test the new service issue the following command:
sudo systemctl start direwolf

To verify direwolf started, issue the following
screen -r dw?

to detach from the screen session...
"Ctrl-a" followed by the letter "d"

To make the service start at boot
sudo systemctl enable direwolf

Note - if preferred it is also possible to create a small shell script that launches direwolf - including with options in the command line, then call the shell script in the systemd service - something like the example below where direwolf.sh is a shell script that launches direwolf and is located in /home/pi.

ExecStart=/usr/bin/screen -S dw -d -m /home/pi/direwolf.sh

On Sat, Jun 11, 2022 at 11:52 AM Eric Struble <eric@...> wrote:
I've put together a simple Igate setup using a Raspberry Pi, running bullseye (headless), and a RTL-SDR for a receiver. It is up and running fine but I was wondering if there is a simple way to get it to run in the background and without user interaction? I would like a way to start and stop it from the command line then have it remember that setting during a re-boot.

The Direwolf manual for Raspberry Pi SDR IGate document explains how to start it from the command line and also how to add it to the /etc/rc.local file but then goes on to say that is not a good idea. It follows up with using dw_start.sh file to enable it.?

If I need to, I can edit the dw_start.sh file but I was wondering if someone has come up with a better way to enable the IGate application through Direwolf with a rtf-sdr. If this isn't a good method to create a fill-in IGate, I could always scrap the plan and just use an old mobile rig with a RA-45 interface.?

Just looking for ideas on what people have found that works and what doesn't.

Thanks,
Eric, W7CSD


 

Also the WorkingDirectory needs to be where the direwolf.conf file is located, which may not necessarily be /home/pi.

On Sat, Jun 11, 2022 at 12:53 PM Lee D Bengston <kilo5dat@...> wrote:
I use systemd.? Just dug this up from a previous post.

Below is one way to do it.

Install screen:
sudo apt install screen

Create a text file named direwolf.service and put it in?the /etc/systemd/system directory.
The contents of the file are shown below:

Description=Direwolf
After=network.target

[Service]
Type=forking
WorkingDirectory=/home/pi
User=pi
Group=pi
ExecStart=/usr/bin/screen -S dw -d -m /usr/bin/direwolf
SyslogIdentifier=Direwolf

[Install]
WantedBy=multi-user.target

The above should work in a Raspberry Pi assuming the pi user applies. If running a compiled version of Direwolf, the ExecStart line should use /usr/local/bin/direwolf instead of /usr/bin/direwolf.? The above line in blue applies to using Direwolf as installed from the software repository.

After adding the text file to the specified directory, issue the following command:
sudo systemctl daemon-reload

To test the new service issue the following command:
sudo systemctl start direwolf

To verify direwolf started, issue the following
screen -r dw?

to detach from the screen session...
"Ctrl-a" followed by the letter "d"

To make the service start at boot
sudo systemctl enable direwolf

Note - if preferred it is also possible to create a small shell script that launches direwolf - including with options in the command line, then call the shell script in the systemd service - something like the example below where direwolf.sh is a shell script that launches direwolf and is located in /home/pi.

ExecStart=/usr/bin/screen -S dw -d -m /home/pi/direwolf.sh

On Sat, Jun 11, 2022 at 11:52 AM Eric Struble <eric@...> wrote:
I've put together a simple Igate setup using a Raspberry Pi, running bullseye (headless), and a RTL-SDR for a receiver. It is up and running fine but I was wondering if there is a simple way to get it to run in the background and without user interaction? I would like a way to start and stop it from the command line then have it remember that setting during a re-boot.

The Direwolf manual for Raspberry Pi SDR IGate document explains how to start it from the command line and also how to add it to the /etc/rc.local file but then goes on to say that is not a good idea. It follows up with using dw_start.sh file to enable it.?

If I need to, I can edit the dw_start.sh file but I was wondering if someone has come up with a better way to enable the IGate application through Direwolf with a rtf-sdr. If this isn't a good method to create a fill-in IGate, I could always scrap the plan and just use an old mobile rig with a RA-45 interface.?

Just looking for ideas on what people have found that works and what doesn't.

Thanks,
Eric, W7CSD