Asterisk for Raspberry Pi on ArchLinux: Difference between revisions
Line 6: | Line 6: | ||
Using [http://launchpad.net/win32-image-writer/+download Win32DiskImager] and the latest version of [http://www.raspberrypi.org/downloads Arch Linux ARM] from Rasberry Pi write the image to the SD card. | Using [http://launchpad.net/win32-image-writer/+download Win32DiskImager] and the latest version of [http://www.raspberrypi.org/downloads Arch Linux ARM] from Rasberry Pi write the image to the SD card. | ||
Once the image is written insert the | Once the image is written insert the SD card into the Rasberry Pi and boot. The device will get an IP address from DHCP. | ||
= Expand Parition = | = Expand Parition = |
Revision as of 03:40, 26 October 2012
If you don't want to follow these instuctions and would prefer to download an image you can do so by downloading the image from Asterisk for Rasberry Pi Image.
The following instructions are based on Arch Linux ARM (archlinux-hf-2012-09-18.zip)
Write Image to SD Card
Using Win32DiskImager and the latest version of Arch Linux ARM from Rasberry Pi write the image to the SD card.
Once the image is written insert the SD card into the Rasberry Pi and boot. The device will get an IP address from DHCP.
Expand Parition
Now that the device has booted log on and change the default partiion from 2 GB to the maximum partiion of your SD card.
fdisk /dev/mmcblk0 d (delete) 2 (partition 2) n (new) p (primary partition) 2 (partition 2 as previously deleted) enter (accept default start sector) enter (accept default end sector) w (write changes) reboot
Once the rPi has rebooted
resize2fs /dev/mmcblk0p2 reboot
Swap File
As the rPi has limited RAM, either 256 or 512 depending on your version we'll creat a swap file to allow appliction to use higher memory if required.
I would recommend allocating the size of the swap file to be that equal to the RAM size.
fallocate -l 256M /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile
The swap file is now active. We now need to ensure that it is used at boot.
vi /etc/fstab <pre> add the line to the file <pre> /swapfile none swap defaults 0 0
Update OS
pacman -Syu reboot
Utilities
Install utilities to help with setup/administration
# pacman -S initscripts vim mlocate zip unzip
vi to vim
pacman -R vi ln -s /usr/bin/vim /usr/bin/vi
Create ll alias
vi /root/.profile <pre> add the line <pre> alias ll="ls -la"
= Enable Sound Card =
vi /etc/rc.conf <pre> add the line <pre> MODULES=(snd-bcm2835)
Regional settings
vi /etc/locale.gen (enable all AU and US, 4 lines) vi /etc/rc.conf locale-gen
Time Synchronisation
cp /usr/share/zoneinfo/Australia/Brisbane /etc/localtime pacman -R openntpd pacman -S ntp ntpdate ntp.bri.connect.com.au vi /etc/rc.conf hwclock (remove) ntpdate (add)
= Hostname = <pre> vi /etc/hostname vi /etc/hosts vi /etc/dhcpcd.conf add line: nohook resolv.conf remove line: nohook lookup-hostname
Network
vi /etc/conf.d/network <pre> add the lines <pre> interface=eth0 address=192.168.1.1 netmask=255.255.255.0 broadcast=192.168.0.255 gateway=192.168.1.254 <pre> <pre> vi /etc/systemd/system/network.service
add the lines
[Unit] Description=Network Connectivity Wants=network.target Before=network.target [Service] Type=oneshot RemainAfterExit=yes EnvironmentFile=/etc/conf.d/network ExecStart=/sbin/ip link set dev ${interface} up ExecStart=/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev ${interface} ExecStart=/sbin/ip route add default via ${gateway} ExecStop=/sbin/ip addr flush dev ${interface} ExecStop=/sbin/ip link set dev ${interface} down [Install] WantedBy=multi-user.target
systemctl disable dhcpcd@eth0.service systemctl enable network.service reboot
vi /etc/resolv.conf
add the lines
domain mydomain.com search mydomain.com nameserver 192.168.1.254
Asterisk Pacgages
pacman -S gcc make hgsvn libxml2 libnewt sqlite subversion mysql spandsp speex systemctl enable mysqld.service systemctl start mysqld.service <pre> == Secure mysql == <pre> /usr/bin/mysql_secure_installation
Free Memory
So Asterisk will compile we need to free as amny applictions as possible from memory
systemctl stop ntpd.service systemctl stop mysqld.service
Install Asterisk
Download and install Asterisk. you can refer to [Asterik Install] if required, but only Asterisk is required.
Set Asterisk to Automatic
vi /etc/rc.conf
and add asterisk to DEAMONS
Sendmail
pacman -R heirloom-mailx rm /etc/mail.rc.pacsave pacman -S ssmtp
vi /etc/ssmtp/ssmtp.conf
and add the lines
mailhub=192.168.13.3 hostname=rpi.klaverstyn.com FromLineOverride=yes
Install Apache
pacman -S apache php-apache php php-gd
vi /etc/httpd/conf/httpd.conf
and modify the following
AllowOverride All DirectoryIndex index.php index.html index.htm index.html.var
systemctl enable httpd.service
Configure php
vi /etc/php/php.ini
uncomment
extension=mysqli.so extension=mysql.so
vi /etc/httpd/conf/httpd.conf
add the following lines in thier respective sections
LoadModule php5_module modules/libphp5.so Include conf/extra/php5_module.conf AddHandler application/x-httpd-php .php
uncomment the following lines
TypesConfig conf/mime.types MIMEMagicFile conf/magic
vi /etc/httpd/conf/mime.types
add the following line
application/x-httpd-php5 php php5
systemctl start httpd.service
Note': The web root is /srv/http/
Backup Script
Refer to [Astetrisk Backup] for the script itself.
pacman -S smbclient
perl
NOTE: to install the perl module requires more RAM that what is avaiazble on the 256MM model of the rPi. Make sure you have a swap file otherwise this section will fail.
pacman -S perl cpan libyaml perl-yaml libyaml perl-libwww sox mpg123
Text to Speech
perl -MCPAN -e "install Bundle::LWP" perl -MCPAN -e "install CGI::Util"
wget https://github.com/zaf/asterisk-googletts/blob/master/googletts.agi mv googletts.agi /var/lib/asterisk/agi-bin/ chmod 755 /var/lib/asterisk/agi-bin/googletts.agi
fax2mail
cd /usr/src wget http://search.cpan.org/CPAN/authors/id/R/RO/ROSCH/mime-construct-1.11.tar.gz tar xzvf mime-construct-1.11.tar.gz rm -f mime-construct-1.11.tar.gz cd mime-construct-1.11 perl Makefile.PL make install cd..
perl -MCPAN -e "install Bundle::LWP" perl -MCPAN -e "install Proc::WaitStat" perl -MCPAN -e "install MIME::Types"
Reference
https://wiki.archlinux.org/index.php/Systemd https://wiki.archlinux.org/index.php/Configuring_Network https://wiki.archlinux.org/index.php/Beginners%27_Guide https://wiki.archlinux.org/index.php/LAMP#PHP