Gentoo 2006.0 Asterisk Installation

This document outlines the installation of Asterisk 1.2.7 on Gentoo Linux.
It is not a definative guide but should help anyone new to Asterisk / Gentoo to get started.

Requirements

  • Intel Based PC (this document was tested on a Dell Dimension 5150)
  • 256M Ram or more
  • 40Gig HD or higher

Boot Gentoo 2006.0 minimal

Insert the CD/DVD and start the PC.
(You may need to configure your bios to boot from the CD)

# net-setup eth0

Follow prompts

{{ # fdisk /dev/sda }} 32M sda1 2048M swap (t 82) sda2 rest sda3

mke2fs /dev/sda1
mke2fs -j -O dir_index /dev/sda3
mkswap /dev/sda2
swapon /dev/sda2

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
# cd /mnt/gentoo

links http://www.gentoo.org/main/en/mirrors.xml

download stage3 tarball and portage current

# tar xvjpf stage3-*.tar.bz2

# tar xvjf /mnt/gentoo/portage-<date>.tar.bz2 -C /mnt/gentoo/usr

# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf Warning: Do not select any IPv6 mirrors. Our stages currently do not support IPv6. # mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf # mount -t proc none /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev

# chroot /mnt/gentoo /bin/bash # env-update >> Regenerating /etc/ld.so.cache... # source /etc/profile # export PS1="(chroot) $PS1" # emerge --sync

If you are behind a firewall that blocks rsync traffic, you can use emerge-webrsync which will download and install a portage snapshot for you # nano -w /etc/make.conf USE="alsa apache2 encode gd gtk2 jabber ldap mp3 mysql ogg pdf php snmp speex ssl vorbis zaptel"

# ls /usr/share/zoneinfo (Suppose you want to use GMT) # cp /usr/share/zoneinfo/GMT /etc/localtime

# USE="-doc symlink" emerge gentoo-sources
# emerge genkernel
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
# genkernel all
# ls /boot/kernel* /boot/initramfs*

# emerge coldplug
# rc-update add coldplug boot

# nano -w /etc/fstab

# nano -w /etc/conf.d/hostname

(Set the HOSTNAME variable to your hostname) HOSTNAME="tux" Second we set the domainname:

# nano -w /etc/conf.d/domainname

(Set the DNSDOMAIN variable to your domain name) DNSDOMAIN="homenetwork"

# nano -w /etc/conf.d/net

config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" ) routes_eth0=( "default gw 192.168.0.1" )

# rc-update add net.eth0 default

# nano -w /etc/hosts

Code Listing 17: Filling in the networking information 127.0.0.1 localhost 192.168.0.5 jenny.homenetwork jenny 192.168.0.6 benny.homenetwork benny 192.168.0.7 tux.homenetwork tux

# nano -w /etc/conf.d/clock

CLOCK="local"

# emerge syslog-ng
# rc-update add syslog-ng default

/etc/syslog/syslog-ng.conf # /etc/syslog-ng/syslog-ng.conf # From the Gentoo Linux Security Guide # http://www.gentoo.org/doc/en/gentoo-security.xml # Creative Commons - Attribution / Share Alike License # http://creativecommons.org/licenses/by-sa/2.0

options { long_hostnames(off); sync(0); };

#source where to read log source src { unix-stream("/dev/log"); internal(); }; source kernsrc { file("/proc/kmsg"); };

#define destinations destination authlog { file("/var/log/auth.log"); }; destination syslog { file("/var/log/syslog"); }; destination cron { file("/var/log/cron.log"); }; destination daemon { file("/var/log/daemon.log"); }; destination kern { file("/var/log/kern.log"); }; destination lpr { file("/var/log/lpr.log"); }; destination user { file("/var/log/user.log"); }; destination mail { file("/var/log/mail.log"); };

destination mailinfo { file("/var/log/mail.info"); }; destination mailwarn { file("/var/log/mail.warn"); }; destination mailerr { file("/var/log/mail.err"); };

destination newscrit { file("/var/log/news/news.crit"); }; destination newserr { file("/var/log/news/news.err"); }; destination newsnotice { file("/var/log/news/news.notice"); };

destination debug { file("/var/log/debug"); }; destination messages { file("/var/log/messages"); }; destination console { usertty("root"); }; destination console_all { file("/dev/tty12"); }; destination xconsole { pipe("/dev/xconsole"); };

#create filters filter f_auth { facility(auth); }; filter f_authpriv { facility(auth, authpriv); }; filter f_syslog { not facility(authpriv, mail); }; filter f_cron { facility(cron); }; filter f_daemon { facility(daemon); }; filter f_kern { facility(kern); }; filter f_lpr { facility(lpr); }; filter f_mail { facility(mail); }; filter f_user { facility(user); }; filter f_debug { not facility(auth, authpriv, news, mail); }; filter f_messages { level(info..warn)

  • and not facility(auth, authpriv, mail, news); };

filter f_emergency { level(emerg); };

filter f_info { level(info); }; filter f_notice { level(notice); }; filter f_warn { level(warn); }; filter f_crit { level(crit); }; filter f_err { level(err); }; filter f_failed { match("failed"); }; filter f_denied { match("denied"); };

#connect filter and destination log { source(src); filter(f_authpriv); destination(authlog); }; log { source(src); filter(f_syslog); destination(syslog); }; log { source(src); filter(f_cron); destination(cron); }; log { source(src); filter(f_daemon); destination(daemon); }; log { source(kernsrc); filter(f_kern); destination(kern); }; log { source(src); filter(f_lpr); destination(lpr); }; log { source(src); filter(f_mail); destination(mail); }; log { source(src); filter(f_user); destination(user); }; log { source(src); filter(f_mail); filter(f_info); destination(mailinfo); }; log { source(src); filter(f_mail); filter(f_warn); destination(mailwarn); }; log { source(src); filter(f_mail); filter(f_err); destination(mailerr); };

log { source(src); filter(f_debug); destination(debug); }; log { source(src); filter(f_messages); destination(messages); }; log { source(src); filter(f_emergency); destination(console); };

#default log log { source(src); destination(console_all); };

# emerge vixie-cron
# rc-update add vixie-cron default

# emerge slocate

# emerge logrotate

# emerge grub

# nano -w /boot/grub/grub.conf

default 0 timeout 30 splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux 2.6.12-r10 root (hd0,0) kernel /boot/kernel-genkernel-x86-2.6.12-gentoo-r10 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3 udev initrd /boot/initramfs-genkernel-x86-2.6.12-gentoo-r10

# grep -v rootfs /proc/mounts > /etc/mtab

# grub-install /dev/sda

# rc-update add sshd default

# passwd

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

# useradd -m -G users,wheel,audio -s /bin/bash john
# passwd john

emerge portage

emerge --sync

emerge ntp nano -w /etc/ntp.conf rc-update add ntpd default

rc-update add mysql default emerge --config =dev-db/mysql-4.1.19

emerge alsa-driver emerge alsa-utils # rc-update add alsasound boot alsaconf alsamixer

emerge vim

emerge --unmerge ssmtp emerge postfix rc-update add postfix default

emerge festival

echo "net-libs/libpri ~x86" >> /etc/portage/package.keywords echo "net-misc/zaptel ~x86" >> /etc/portage/package.keywords echo "net-misc/asterisk ~x86" >> /etc/portage/package.keywords echo "net-misc/asterisk-addons ~x86" >> /etc/portage/package.keywords echo "net-misc/asterisk-sounds ~x86" >> /etc/portage/package.keywords

emerge asterisk emerge asterisk-addons emerge asterisk-sounds

emerge spandsp emerge asterisk-app_rtxfax emerge tiff emerge mime-construct

rc-update add zaptel default