You are here: Start Linux and Computers Using the Asus WL-500g as Internet Radio Station.
Using the Asus WL-500g as Internet Radio Station. PDF Print E-mail
Written by Andreas Böhler   
Friday, 08 June 2007 01:00

Why not use your existing Wireless Router as Internet Radio Station? I can now listen to Internet Radio without turning on my Computer, controlled by my Cellphone!

My Asus now does the following:

  • Routes Internet Traffic
  • Provides Firewall-Service
  • Provides manual GPRS dial-up, when xDSL is not available
  • Provies DHCP-Server
  • Provides VPN Access-Point (PPTP)
  • Provides Bluetooth Access-Point for my Palm
  • Provides Bluetooth-Control for my Music Player via Cell-Phone
  • Plays Internet Radio via MPD
  • Serves as Print-Server for my Network
  • Provides Audio-Gateway for my MP3-Player
And this all with its little 125MHz MIPS-CPU! Quite cool...
But now some details how I set it all up!

I connected a very cheap USB-Soundcard with a C-Media Chipset to the Asus' USB-Port. Sound quality is really good, although it cost about 3 Euros.
I had to install some additional OpenWrt packages I found at, namely:
Kernel audio modules: they work on RC5 as well
esound-oss: I had too little space left for alsa! Necessary for the audio gateway
mpd: backport-repository; necessary for internet-radio
Here is a list of packages currently installed on my Asus:

root@OpenWrt:~# ipkg list_installed
audiofile - 0.2.6-1 - Audio File Library
base-files - 7 -
base-files-brcm - 2 - Board/architecture specific files
bluemote - 2.0-1 - Remote Control application over Bluetooth
bluez-libs - 2.23-1 - Bluez libs
bluez-utils - 2.23-2 - Bluez utils
bridge - 1.0.6-1 - Ethernet bridging tools
busybox - 1.00-3 - Core utilities for embedded Linux systems
cmix - 1.6-1 - Console OSS Mixer Application
dnsmasq - 2.26-1 -
dropbear - 0.47-1 - a small SSH 2 server/client designed for small memory environments.
esound-oss - 0.2.36-1 - Enlightened Sound Daemon
ez-ipupdate - 3.0.11b8-1 -
haserl - 0.8.0-1 - a CGI wrapper to embed shell scripts in HTML documents
ip - 2.6.11-050330-1 - iproute2 routing control utility
ipkg - 0.99.149-2 - lightweight package management system
iptables - 1.3.3-1 - The netfilter firewalling software for IPv4
iwlib - 28.pre7-1 - Library for setting up WiFi cards using the Wireless Extension
kernel - 2.4.30-brcm-3 -
kmod-bluetooth - 2.4.30-brcm-2 - Bluetooth support
kmod-brcm-wl - 2.4.30-brcm-3 -
kmod-crypto - 2.4.30-brcm-2 - CryptoAPI kernel modules
kmod-diag - 2.4.30-brcm-3 -
kmod-gre - 2.4.30-brcm-2 - Kernel GRE tunneling support
kmod-ipt-conntrack - 2.4.30-brcm-2 - Extra Netfilter (IPv4) kernel modules for connection tracking
kmod-ipt-filter - 2.4.30-brcm-2 - Netfilter (IPv4) kernel modules for packet content inspection
kmod-ipt-nat - 2.4.30-brcm-2 - Netfilter (IPv4) kernel modules for different NAT targets
kmod-lp - 2.4.30-brcm-2 - Kernel modules for parallel port support and line printer
kmod-mppe - 2.4.30-brcm-2 - Microsoft PPP Encryption/Compression support
kmod-ppp - 2.4.30-brcm-3 -
kmod-pppoe - 2.4.30-brcm-3 -
kmod-switch - 2.4.30-brcm-1 - switch driver for robo/admtek switch
kmod-usb-core - 2.4.30-brcm-2 - Kernel Support for USB
kmod-usb-ohci - 2.4.30-brcm-2 - Kernel driver for OHCI USB controllers
kmod-usb-printer - 2.4.30-brcm-2 - Kernel modules for USB Printer support
kmod-usb-serial - 2.4.30-brcm-2 - Kernel modules for USB-to-Serial converter support
kmod-usb-serial-pl2303 - 2.4.30-brcm-2 - Kernel module for Prolific PL2303 USB-to-Serial converter support
kmod-wlcompat - 2.4.30-brcm-3 - Compatibility module for using the Wireless Extension with broadcom's wl
libflac - 1.1.2-1 - Free Lossless Audio Codec library
libgcc - 3.4.4-5 - GCC support library
libid3tag - 0.15.1b-1 - An ID3 tag manipulation library
libltdl - 1.5.14-1pl1 - a generic dynamic object loading library
libmad - 0.15.1b-1 - An high-quality MPEG audio decoding library
libvorbisidec - 1.2.0-dave-1 - A fixed-point Ogg/Vorbis decoder library
mii-diag - 2.09 - Examines and sets the MII registers of network cards.
mpc - 0.11.2-1 - Music Player Client for Console
mpd - 0.12.0-1 - Music Player Daemon
mtd - 4 -
nvram - 1 - NVRAM utility and libraries for Broadcom hardware
p910nd - 0.7-2 - A small non-spooling printer server
ppp - 2.4.3-7 - a PPP (Point-to-Point Protocol) daemon (with MPPE/MPPC support)
ppp-mod-pppoe - 2.4.3-7 - a PPPoE (PPP over Ethernet) plugin for PPP
pptp - 1.6.0-3 - a Point-to-Point Tunneling Protocol (PPTP) client
pptpd - 1.2.3-2 -
uclibc - 0.9.27-7 -
webif - 0.2-1 - A modular, extensible web interface for OpenWrt.
wificonf - 6 - Replacement utility for wlconf
wireless-tools - 28.pre7-1 - Tools for setting up WiFi cards using the Wireless Extension
wol - 0.7.1-1 - A Program to send magic Wake-on-LAN packets
zlib - 1.2.2-2 - an implementation of the deflate compression method (library)
Successfully terminated.
Here are some necessary configuration-files:
/etc/modules.d/80-bluetooth: Bluetooth-Modules
root@OpenWrt:/etc/modules.d# cat 80-bluetooth 
/etc/modules.d/90-sound: Sound-Modules
root@OpenWrt:/etc/modules.d# cat 90-sound 
root@OpenWrt:/etc/# cat mpd.conf
music_directory "/tmp"
playlist_directory "/tmp"
db_file "/tmp/db_file"
log_file "/tmp/mpd.log"
error_file "/tmp/mpd.err"
pid_file "/var/run/"
audio_output {
type "oss"
name "USB OSS Output"
mixer_type "oss"
mixer_device "/dev/mixer"
mixer_control "PCM"
filesystem_charset "ISO-8859-1"
port "6600"
root@OpenWrt:/etc/init.d# cat S91sound
ln -s /dev/sound/mixer /dev/mixer
ln -s /dev/sound/dsp /dev/dsp
esd &
ln -s /etc/radio.m3u /tmp
sleep 2
localmpc load radio
/etc/radio.m3u is a playlist-file containing my favourite radio stations:
root@OpenWrt:/etc# cat radio.m3u
/usr/bin/localmpc is a very simple frontend for mpd. This script is taken from
root@OpenWrt:/usr/bin# cat localmpc
echo -e "$*\nclose" | nc 6600
/etc/esd.conf Configuration file for ESD to be able to stream Music to OpenWrt (works only when MPD is not playing!):
root@OpenWrt:/etc# cat esd.conf
spawn_options=-terminate -nobeeps -as 2 -public -tcp
# default options are used in spawned and non-spawned mode
default_options=-nobeeps -as 2 -public -tcp
/etc/init.d/S80usb-bluez: Starts up Bluetooth-support
root@OpenWrt:/etc/init.d# cat S80usb-bluez 
mkdir /var/lock
/usr/sbin/hcid -f /etc/bluetooth/hcid.conf
/usr/bin/rfcomm -f /etc/bluetooth/rfcomm.conf bind all
/usr/bin/dund --listen --persist --msdun call dun
/etc/ppp/peers/dun: PPP-Configuration file for Palm Internet Access
root@OpenWrt:/etc/ppp/peers# cat dun
ipparam "palm"
connect "sleep 2; echo -n CLIENTSERVER"
asyncmap 0
/etc/ppp/ip-up: Dynamic Firewall-Rules, when Palm connects
root@OpenWrt:/etc/ppp# cat ip-up
WAN=$(/usr/sbin/nvram get wan_ifname)

[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"

if [ "$6" = "palm" ]; then
/usr/sbin/iptables -A FORWARD -i $1 -o $WAN -j ACCEPT
/usr/sbin/iptables -A input_rule -i $1 -j ACCEPT
/etc/ppp/ip-down: The same when Palm disconnects
root@OpenWrt:/etc/ppp# cat ip-down
WAN=$(/usr/sbin/nvram get wan_ifname)

[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"
if [ "$6" = "palm" ]; then
/usr/sbin/iptables -D FORWARD -i $1 -o $WAN -j ACCEPT
/usr/sbin/iptables -D FORWARD -i $1 -o $PPP -j ACCEPT
/usr/sbin/iptables -D input_rule -i $1 -j ACCEPT
Comments (0)
Write comment
Your Contact Details:
[b] [i] [u] [url] [quote] [code] [img]   
Please input the anti-spam code that you can read in the image.
Last Updated on Monday, 15 June 2009 09:48
Template is Powered by © 2008 | CSS 2.1 | XHTML 1.0