User Tools

Site Tools


raspbian_repeater_controller

Note

This information is completely out of date. it is here as reference only.

Intro

The first effort at completing this with the Pidora Remix had failed. Here we are going to try and complete this with Raspbian as it is native to the Pi.

First Steps

Download the latest Raspian Wheezy and install it onto an SD Card.

Do the Following:

  • Extend the filesystem to take the whole SD card.
  • Disable the GUI (it wont work with the little amount of GPU memory anyway)
  • Set the time and locale settings
  • enable remote SSH
  • enable wait for network on boot
  • Change the user password to something you will remember
  • Change the advanced options:
  • Change the amount of memory for the GPU to 16Mb or less (I did 2mb - more than enough for text).
  • Change the hostname to something you remember.
  • Disable everything not needed such as serial console.
  • Not a silly idea to give it a static IP address either.

The Pi Kernel Operations need to be performed before going any futher.

Installing Dahdi

Prerequisites

Install prerequisites needed for the build of dahdi and asterisk:

apt-get install libncurses5-dev bison libssl-dev libnewt-dev zlib1g-dev procps gcc make binutils libusb-dev libasound2-dev alsa-oss libpri-dev

While App_Rpt has been created to use Zaptel, up until Kernel version 3.10, it was able to be modified to compile. They have taken some legacy routines out of the kernel which means it will not compile without a major overhaul.

Go to the Asterisk website and download the latest version of Dahdi Complete. By using the latest version we have no conflicting problems with the kernel

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz

Untar the file:

tar -xzvf dahdi-linux-complete-current.tar.gz

Go into the linux folder inside the Dahdi folder and run:

make
make install

Go into the tools folder inside the Dahdi folder and run:

make
make install
make config

now we need to make sure dahdi will run on boot:

update-rc.d dahdi enable

To free up resources from dahdi, edit the /etc/dahdi/modules and # out all the modules (we do not need any of them).

Audio Drivers

As we do not want to use the onboard audio driver (and to free up more resources), we need to edit /etc/modules:

sudo nano /etc/modules

Edit the file to look like this:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

#snd-bcm2835
snd_pcm_oss
snd_mixer_oss

Asterisk-App_rpt

Download

To download the VKlink version of Asterisk with app_rpt, contact VK3VS via the forum. This is now required as our version of the software has been modified completely from the original Allstar version.

Mods to USB radio

I have modified a version of chan-usbradio.tar.gz This file could be an old version of the file.

We now need to edit the chan_usbradio.c file. Remove any occurences of this string:

&& !defined(AST_BUILDOPT_LIMEY)

This will make sure that chan_usb compiles correctly under the kernel that the pi runs.

cd ~/asterisk/channels
nano chan_usbradio.c

You also need to add the following includes at the start of the file:

#include <dirent.h>
#include <libgen.h>

This goes between #include <search.h> and #include <linux/ppdev.h> around line 50 or so.

Compiling

Move into the Asterisk source folder created above. (or trunk/asterisk if using AllStarLink version)

Run the following command:

./configure && make menuselect

When the menu appears, make sure you select app_rpt and chan_usbradio.

After selecting all the items you want, save the changes.

edit the makeopts file to change the architecture:

nano makeopts

There is a line reading PROC=armv6l Change this to read PROC=arm. Otherwise it will fail during compile.

Now run:

make && make install && make config

Asterisk should be installed.

To enable asterisk at boot, go to the contrib/init.d/ folder in the Asterisk build folder and run:

sudo cp rc.debian.asterisk /etc/init.d/asterisk

Configs

To allow asterisk to start without errors, we need to make some basic config files. Go to the configs folder in the asterisk build folder, and run:

sudo cp *.conf /etc/asterisk

Then depending on which interface you are going to use, go to that folder, for example usbradio and run the same command:

sudo cp *.conf /etc/asterisk

We now need to make users and groups for Asterisk so it does not run as root Run the following commands:

echo "asterisk:x:104:104:Asterisk PBX daemon,,,:/var/lib/asterisk:/bin/false" >> /etc/passwd
echo "asterisk:x:104:" >> /etc/group

Now edit /etc/init.d/asterisk and uncomment:

#AST_USER="asterisk"
#AST_GROUP="asterisk"

Since the asterisk user can't write to /var/run (and we don’t want it to) we’ll create a place for it’s process id file. Edit /etc/asterisk/asterisk.conf and change:

 astrundir => /var/run

to:

 astrundir => /var/run/asterisk

Create the new directory and change the owner to the asterisk users:

 mkdir /var/run/asterisk && chown asterisk:asterisk /var/run/asterisk

We also have to fix the file ownship on the rest of the places the asterisk user needs to write to:

chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /var/spool/asterisk
chown -R asterisk:asterisk /var/lib/asterisk/

You’ll also need to add asterisk to the audio group:

 adduser asterisk audio

Reboot the pi and asterisk should magically start.

Rpt Sounds

you now need to change into the sounds folder in the source folder and run the following:

cp * /var/lib/asterisk/sounds

This will copy the required sound file for the repeater application.

Tweaks

In order to make the DSP work correctly, we need to have a big cleanout go the Cleaning Up section for more

web browser for config

Install the packages we need: (this may not be all, but these two will automatically download the rest as dependencies)

sudo apt-get install lighttpd php5-cgi

Enable the fastcgi module and the php configuration with

sudo lighty-enable-mod fastcgi 
sudo lighty-enable-mod fastcgi-php

Reload the lighttpd daemon

sudo service lighttpd force-reload

To test if it's working create the file /var/www/index.php with the following contents:

<?php phpinfo(); ?>

and check out http://localhost/index.php in your browser.

raspbian_repeater_controller.txt · Last modified: 2018/09/14 00:43 by vk3smb