Siren
This document describes how to build Siren, a Raspberry Pi-based music player. Siren can play music made available by a DAAP server such as dmapd.
Siren is designed to run on the hardware listed below:
- Raspberry Pi Model B
- PiFace Control & Display
- PiFace Control & Display Case
- 5V Micro USB AC Adapter
- 8GB SD Card
- Edimax 802.11b/g/n Nano USB Adapter
- HDMI Cable
- USB Keyboard (For initial setup)
At the time of writing, most of this hardware is available from MCM Electronics.
Selecting the software for a Siren image
-
Obtain the OpenWrt source tree using
git clone git://git.openwrt.org/openwrt/openwrt.git
. -
Enter the OpenWrt source tree and modify the package configuration provided by
feeds.conf
to usesrc-git packages ssh://git@github.com/MikePetullo/packages.git
. Run./scripts/feeds update
. -
Pull the appropriate feeds, using
./scripts/feeds install \
freifunk-watchdog \
gst1-mod-mad \
gst1-mod-ogg \
gst1-mod-vorbis \
gst1-mod-flac \
lcdgrilo \
wpa-supplicant \
zoneinfo-core \
zoneinfo-northamerica</pre></li>
- Run
make menuconfig
and select:
- Target System: Broadcom BCM2708/BCM2709
- Subtarget: BCM2708 based boards
- Target Profile: Raspberry Pi Model B
- Base system:
- Remove dnsmasq
- Kernel Modules:
- Other modules: kmod-softdog
- SPI Support:
- kmod-spi-bcm2835
- kmod-spi-dev
- Wireless Drivers:
- kmod-rtl8192cu (for firmware)
- kmod-rtl8xxxu
- LuCI: Freifunk: freifunk-watchdog
- Multimedia:
- grilo-plugins
- Select grilo-plugins-dmap
- gstreamer1-plugins-base
- Select all GStreamer base modules
- gstreamer1-plugins-good
- Select all GStreamer good modules
- gstreamer1-plugins-ugly
- Select all GStreamer ugly modules
- lcdgrilo
- Network:
- Remove odhcpd
- wpa-supplicant
- Utilities:
- zoneinfo: zoneinfo-northamerica
- Create the directory
files
and populate it as described in the following sections.
Configure networking
etc/config/network
:
config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
config interface lan
option ifname wlan0
option proto dhcp
etc/config/wireless
(replace MACADDR, SSID, and KEY):
config wifi-device radio0
option type mac80211
option channel 11
option hwmode 11g
option country US
option macaddr MACADDR
config wifi-iface
option device radio0
option network lan
option mode sta
option ssid SSID
option encryption psk2
option key KEY
Configure basic system settings
etc/config/system
:
config system
option hostname siren.example.com
option timezone EST5EDT,M3.2.0,M11.1.0
config timeserver ntp
list server 0.openwrt.pool.ntp.org
list server 1.openwrt.pool.ntp.org
list server 2.openwrt.pool.ntp.org
list server 3.openwrt.pool.ntp.org
option enabled 1
option enable_server 0
etc/config/dropbear
:
config dropbear
option PasswordAuth 'off'
option RootPasswordAuth 'off'
option Port '22'
etc/config/freifunk-watchdog
:
config process
option process lcdgrilo
option initscript /etc/init.d/lcdgrilo
Build software and perform installation
- Run
make V=99
. - Use
dd
to copyopenwrt-brcm2708-bcm2708-rpi-b-ext4-sdcard.bin
to the Raspberry Pi’s flash card.