0% found this document useful (0 votes)
7 views12 pages

Shoutcasting FM Cards in Linux

greek guide about how to built a working playlist radio station or transmit radio with a radio pci card

Uploaded by

zabounis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views12 pages

Shoutcasting FM Cards in Linux

greek guide about how to built a working playlist radio station or transmit radio with a radio pci card

Uploaded by

zabounis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Shoutcasting FM Tuner Cards

in Debian Linux

Σκοπός οδηγού
Live αναμετάδοση σταθμών FM με χρήση fm radio tuner cards.

Απαιτούμενο Software – πακέτα


1. fmtools
2. lame encoder
3. liveice
4. shoutcast server(dnas)
5. alsa-utils
6. screen terminal emulator

Απαιτούμενο Hardware
1. fm radio card (pci/isa) – tv tuner card supporting fm radio
2. soundcard
3. stereo jack cable 1/8-1/8
4. κεραία για την λήψη του σταθμού

Περιεχόμενα
1.1 Εγκατάσταση Hardware (Σελ. 2)
1.2 Αναγνώριση συσκευών από Linux & φόρτωμα των κατάλληλων modules (Σελ. 2)
1.3 Περιγραφή software που θα χρησιμοποιήσουμε (Σελ. 5)
1.4 fmtools (Σελ. 6)
2.1 lame mp3 encoder (Σελ. 6)
2.2 liveice (Σελ. 8)
2.3 shoutcast server (Σελ. 8)
2.4 alsa-utils(Σελ. 9)
2.5 screen (Σελ. 10)
3.1 Εκκίνηση shoutcast server & δοκιμές (Σελ. 10)
3.2 Ρύθμιση για εκίνηση κατά το boot (Σελ. 12)

Σελ.1
1.1. Εγκατάσταση Hardware

Τοποθετούμε τις κάρτες μας (radio tuner & soundcard) μέσα στα pci/isa slots του υπολογιστή μας.

Θα χρειστούμε ένα stereo jack 1/8-/18 καλώδιο.


Το καλώδιο αυτό θα συνδέσει την έξοδο ήχου της radio tuner κάρτας μας με την είσοδο (line in)
της κάρτας ήχου μας.

1.2.Αναγνώριση συσκευών από Linux & φόρτωμα των κατάλληλων modules

Υποθέτουμε ότι η κάρτα ήχου σας έχει εγκατασταθεί σωστά μιας και ήδη χρησιμοποιείτε κάποια
κάρτα ήχου.
Επικεντρώνουμε το ενδιαφερον μας στην εγκατάσταση της radio κάρτας που θα χρησιμοποιήσετε.
Ελέγχουμε γραμμή-γραμμή με το dmesg αν αναγνωρίστηκε η κάρτα κατά το boot του υπολογιστή.

:/# dmesg|more

Αφού δούμε ότι το σύστημα αναγνώρισε την κάρτα μας, τότε τρέχουμε
:/# lspci -v
για να δούμε αν η κάρτα έχει εγκατασταθεί. (εδώ φαίνονται μόνο οι περιπτώσεις pci καρτών)

Για να δούμε αν έχει φορτωθεί το module (driver) της κάρτας τρέχουμε


:/# lsmod
Στην περίπτωση που η κάρτα δεν αναγνωρίστηκε ή δεν φορτώθηκε το κατάλληλο module τότε θα
πρέπει να το κάνουμε χειροκίνητα.

Σελ.2
Καταρχήν εντωπίζουμε ποια κάρτα έχουμε (κατασκευαστής-μάρκα) και προσπαθούμε κάνοντας
ένα google search να βρούμε τι υποστήριξη έχει η κάρτα αυτή από linux drivers.
Συνήθως αυτό το κάνουμε πρίν αγοράσουμε την κάρτα μας!
Κοιτάζουμε το βασικό chip της κάρτας και εντωπίζουμε τον κωδικό του (chipset).

Θα παραθέσω 2 παραδείγματα, ένα για μια απλή isa fmcard που χρησιμοποιώ προσωπικά και για
ένα tv tuner της Hauppauge που υποστηρίζει fm tuner

Παράδειγμα 1
Χρησιμοποιώ μια ISA fm tuner card η οποία είναι της Philips.

Ψάχνοντας στο google ανακαλύπτω ότι υπάρχει κατάλληλο module για την κάρτα Radio TrackII
με την ονομασία radio-rtrack2
Ψάχνω να βρώ το module

:/# locate radio-rtrack2

Για να δώ extra παραμέτρους πριν φορτώσω το module τρέχω

:/# modinfo /lib/modules/2.6.18-5-686/kernel/drivers/media/radio/radio-rtrack2.ko

Bλέπω ότι υπάρχουν 2 επιλογές για το io (I/O) της κάρτας 0x20c και 0x30c

Οπότε δοκιμάζω να φορτώσω τον οδηγό με την πρώτη επιλογή και αν δεν δουλέψει του δίνω την
άλλη.
:/# modprobe radio-rtrack io=0x20c

και το module φορτώθηκε στο σύστημα.


Για να το τσεκάρω να όντως φορτώθηκε τρέχω
:/# lsmod
και ψάχνω να το βρώ στη λίστα με τα φορτωμένα modules.

Σελ.3
Ελέγχω αν το σύστημα πρόσθεσε και το αντίστοιχο device node στο /dev
:/# ls /dev

Όλα οκ. Έχει προσθεσεί το dev/radio0 που αντιστοιχεί στην πρώτη radio κάρτα μου.

Παράδειγμα 2
Χρησιμοποιώ ένα PCI tv tuner της Hauppauge που υποστηρίζει fm radio tuner.

Ψάχνοντας στο google βρίσκω ότι το chipset είναι το CX23416.


H κάρτα αναγνωρίζεται απευθείας από το σύστημα μιας και υπάρχει μεγάλη υποστήριξη γι'αυτό
το chipset.

Για να δώ αν εγκαταστάθηκε τρέχω

:/# lspci -v

Επειδή η κάρτα είναι TV tuner κατά κύριο λόγο πρέπει να δώ στα devices μου ποιες συσκευές έχει
φτιάξει.

Σελ.4
:/# ls /dev

Παρατηρώ ότι έχω 3 video devices

/dev/video0
/dev/video24
/dev/video32

Για να δω ποιο αντιστοιχεί στο radio-device του Tv tuner μου, καταρχήν κοιτάω στο dmesg

:/# dmesg|grep video

και βλέπω ότι το /dev/video24 πιθανώς αναφέρεται στο audio-radio-device του Tv Tuner μου!

2.1. Περιγραφή software που θα χρησιμοποιήσουμε

Θα χρησιμοποιήσουμε έναν broadcaster δηλαδή το πρόγραμμα που θα παίζει τον ήχο (στην ουσία
θα το τραβάει από το line-in της κάρτας ήχου) το οποίο είναι το liveice.

O broadcaster θα στέλνει την πληροφορία στον shoutacast server (dnas) ο οποίος θα συνδέει
τους πελάτες πάνω του για να ακούσουν.

O lame mp3 encoder θα αναλαμβάνει να κωδικοποιεί το σήμα που έρχεται από το line-in
της κάρτας σε mp3 μορφή.

To πακέτο fmtools περιέχει προγραμματάκι το οποίο μας βοηθάει να κάνουμε tune την κάρτα μας
στο συγκεκριμένο σταθμό. Στην ουσία ρυθμίζει την συχνότητα και την ένταση ήχου στην έξοδο
της κάρτας fm.

Τα alsa-utils περιέχουν ένα πολύ χρήσιμο εργαλείο, το μίκτη (alsamixer). Έτσι μπορώ να δώσω
ένταση στο line-in της κάρτας μου. (από εκεί είπαμε στριμάρουμε).

Το screen είναι ένα terminal emulator το οποίο μου επιτρέπει να τρέχω σωστά εφαρμογές στο
background ανοίγοντας virtual terminal screens.

Σελ.5
2.2. fmtools

:/# apt-get install fmtools

Αφού εγκατασταθεί το χρήσιμοποιούμε ώς εξής:

fm -d <dev> <freq> <volume>

πχ.

:/# fm -d /dev/radio0 92.0 50000

Θα συντονίσει το radio-tuner που αντιστοιχεί στο /dev/radio0 στη συχνότητα 92.00 Μhz με
ένταση ήχου 50000 -->76%

Για να το τεστάρετε, βάλτε στην έξοδο του tuner σας ένα ζευγάρι ακουστικά και ακούστε τι παίζει
το tuner σας.

2.3. lame mp3 encoder

Κατεβάζουμε την τελευταία version του lame mp3 encoder σε source μορφή από το

http://internap.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz

:/# cd /tmp
:/temp# wget http://internap.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz

Το αποσυμπιέζουμε

:/temp# tar xfvz lame/lame-3.97.tar.gz

:/temp# cd lame/lame-3.97.tar.gz

Kαι πάμε να το κάνουμε compile και install

:temp/lame-0.39.tar.gz# ./configure
.
.
.
:temp/lame-0.39.tar.gz# make install

Στην περίπτωση που αντιμετωπίσουμε πρόβλημα στο compiling ή μας λείπουν βιβλιοθήκες για να προχωρήσει
η διαδικάσια, εγκαθιστούμε το εξής πακέτο: build-essential

:/# apt-get install build-essential

Σελ.6
2.4. liveice

Το liveice είναι ο broadcaster μας o οποίος θα πάρει σήμα από το line-in της κάρτας ήχου.

To εγκαθιστούμε πολύ απλά

:/# apt-get install liveice

Το configuration αρχείο του βρίσκεται στο /etc/icecast/liveice.cfg

:/# nano /etc/icecast/liveice.cfg

και κάνουμε τις εξής ρυθμίσεις:

# basic options
SERVER 127.0.0.1
PORT 8001
PASSWORD ****

προσοχή στο port. Βαλτε κάτι διαφορετικό από 8000. Δεν είναι το port που συνδέονται οι
πελάτες(αυτο θα ρυθμιστεί αργότερα στο shoutcast.conf) αλλά το port που επικοινωνεί το liveice με
τον shoutcast server. Επίσης βάλτε ένα password. Tο ίδιο θα βάλετε και στο shoutcast server.
# If you're having problems - specify the full path to the encoder

USE_LAME3 /usr/local/bin/lame

ENCODER_ARGS -f

Εδώ μπορείτε να αλλάξετε την ποιότητα του ήχου που θα παράγει ο lame encoder.
Μπορείτε να δείτε τα διάφορα arguments κάνοντας
:/# man lame
To -f αντιστοιχεί στο πιο απλό encoding για να μην καταναλώνει πολύ cpu, κάνοντας βέβαια
συμβιβασμό με την ποιότητα ήχου που παίρνουμε.

SOUNDCARD
απλά επιλέγει την κάρτα ήχου σαν κύριο player

ENCODING_QUALITY 30

SAMPLE_RATE 44100
BITRATE 160000
STEREO

\Εδω ρυθμίζετε το bitrate του mp3 σας.

# Icy login == old styl shoutcast == sucky - use only if talking to


# a stupid (i.e. shoutcast) server
ICY_LOGIN
εδώ του λέτε να χρησιμοποιήσει τον shoutcast server.

Σελ.7
# Stream metadata
#
# name# name -n
NAME :::..Galaxy 92.00 fm..:::

# genre -g
GENRE Greek

# public flag -x
PUBLIC 0

# URL -u
URL http://galaxy.zabounis.awmn:8000

#password -P
PASSWORD *****

και εδώ βάζετε πληροφορίες για το σταθμό σας

2.5. shoutcast server

Κατεβάζουμε τον shoutacast server (dnas) από


http://www.shoutcast.com/downloads/sc1-9-8/sc_serv_1.9.8_Linux.tar.gz

Για να το έχουμε πιο οργανωμένο, φτιάχνουμε ένα directory στο /etc και αποσυμπιέζουμε το αρχείο
μας εκεί.

:/# cd /etc
:/etc# mkdir shoutcast
:/etc# cd shoutcast
:/etc/shoutcast# wget http://www.shoutcast.com/downloads/sc1-9-8/sc_serv_1.9.8_Linux.tar.gz
:/etc/shoutcast# tar xfvz sc_serv_1.9.8_Linux.tar.gz

Δεν χρείαζεται να κάνουμε compile.


To μόνο που πρέπει να κάνουμε είναι edit το sc_serv.conf

:/etc/shoutcast# nano sc_serv.conf

MaxUser=16

ρυθμίστε μέχρι πόσους users θέλετε να έχετε ταυτόχρονα

Password=*****

το password θα είναι ίδιο μ'αυτό που βάλατε στο Liveice.

Σελ.8
PortBase=8000

H πόρτα που ακούει ο shoutcast server.


Μπορείτε να χρησιμοποιήσετε όποια θέλετε εκτός από την 8001 την οποία χρησιμοποιεί το liveice.

LogFile=/var/log/sc_serv.log

SrcIP=ANY

DestIP=10.49.225.3

αυτή είναι η διευθυνση του server σας. Σ' αυτήν θα συνδέονται οι clients για να ακούνε.

2.6.Alsa-utils

Κάνουμε εγκατάσταση τα alsa-utils πολύ απλά ώς εξής:

:/# apt-get install alsa-utils

αφού τα εγκαταστήσουμε τρέχουμε

:/# alsamixer

Σελ.9
Κάνουμε unmute το Line και ρυθμίζουμε την έντασή του.
Πατάμε esc για να βγούμε κονσόλα.

Αν έχουμε βάλει το stereo jack 1/8-1/8 καλωδιο σε άλλη είσοδο (πχ mic) τότε ανοίγουμε το
κατάλληλο κανάλι στο μίκτη.

2.7. Screen

Κάνουμε εγκατάσταση το screen terminal emulator

:/# apt-get install screen

Για να το δοκιμάσουμε το τρέχουμε

:/# screen
πατάμε <spacebar> και έχουμε ένα virtual terminal

για να δούμε σε ποιο terminal είμαστε τρέξτε

:/# who
Για να κάνετε detach το virtual terminal πατείστε CTRL-D

2.8. Εκκίνηση shoutcast server & δοκιμές

Ξεκινάμε κάνοντας tune την καρτα μας σε κάποιο σταθμό

:/# fm -d /dev/radio0 102.5 50000

Τρέχουμε το screen γιανα φτίαξει ένα terminal

:/# screen

<spacebar>

Ξεκινάμε τον shoutcast server μέσα από το screen terminal

:/# cd /etc/shoutcast
:etc/shoutcast# ./sc_serv sc_serv.conf

Πατάμε CTRL-D για να κάνουμε detach από αυτό το terminal

Σελ.10
Ξεκινάμε καινούριο terminal window

:/# screen

<spacebar>

Τρέχουμε το liveice

:/# liveice

Πατάμε CTRL-D για να κάνουμε detach από αυτό το terminal

o server μας τρέχει στο background !!!

Για να ακούσουμε από κάποιο απομακρυσμένο υπολογιστή

ανοίγουμε με κάποιον Player το url

http://10.x.x.x:8000

Σελ.11
3.2. Ρύθμιση για εκίνηση κατά το boot

Θα φτιάξουμε ένα μικρό script για να εκκινεί ο shoutcast server κατά το boot για να μην καθόμαστε
να κάνουμε manually ολη αυτή τη διαδικασία.

:/# cd /etc/init.d

Φτιαξτε ένα text αρχείο (π.χ) με όνομα fm και γράψτε μέσα το εξής.

#! /bin/sh
# /etc/init.d/fm
#
cd /usr/bin/
fm -d /dev/radio0 92.00 50000
cd /etc/shoutcast/
screen -d -m ./sc_serv sc_serv.conf
screen -d -m liveice

Δώστε execute (x) δικαιώματα στο αρχείο

/etc/init.d# chmod +x fm

και ύστερα κάντε update όλα τα runlevel του μηχκανήματος

/etc/init.d# update-rc.d fm

Κάθε φορά που ξεκινά το μηχάνημα θα ξεκινά και το script.


Αν θέλετε να το ξεκινήσετε ή να το σταματήσετε manually τότε γράφετε

:/# /etc/init.d/fm start

:/# /etc/init.d/fm stop

..:::.. zabounis 2007 (c)..::::..

Σελ.12

You might also like