Every repository with this icon (
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed May 27 12:59:25 -0700 2009 | |
| |
Changelog | Thu Jun 04 12:49:12 -0700 2009 | |
| |
README.rdoc | Fri Jun 12 14:18:16 -0700 2009 | |
| |
Rakefile | Sat Jun 13 10:16:02 -0700 2009 | |
| |
TODO | Thu Jun 04 12:49:12 -0700 2009 | |
| |
config.sample | Wed May 27 12:59:25 -0700 2009 | |
| |
files/ | Sat Jun 13 10:16:02 -0700 2009 | |
| |
script/ | Fri Jun 12 10:29:40 -0700 2009 |
PigeBox
Free continuous recording solution
Components
- Debian stable system
- read-only root fs
- dhcp network configuration
- zeroconf hostname (avahi)
- alsa continuous recording daemon (github.com/albanpeignier/alsabackup)
- http access (nginx)
- ssh access
Network
The network configuration is retrieved by dhcp at boot. The zeroconf hostname +pigebox.local+ is published on the network.
The box is reachable via :
- ssh root@pigebox.local
- pigebox.local
The record files are available via :
Storage
- disk storage
- 15 minutes recording files
- automatic cleaning of older files
The storage filesystem must have the label pige and be writable for user pige. For example, to create your storage filesystem :
$ ssh root@pigebox.local # fdisk /dev/sda ... # mke2fs -L pige -j /dev/sda1 # mount /srv/pige # chown pige:audio /srv/pige
The alsa.backup daemon will detect automatically the new mount.
Monitoring
Munin
A munin node is started at boot.
Graphs are available on pigebox.local/munin/. These statistics are reset at each reboot.
For persistent statistics, use a external munin manager by adding a node for pigebox.local.
Log
alsa.backup daemon and cron log messages in syslog.
For the moment, it requires an ssh session :
ssh root@pigebox.local tail -f /var/log/syslog
Distribution
- iso image
- disk image
Build
To create quickly a first image :
rake setup pigebox:rebuild
The image can be backup and restored to save bootstrap time :
rake pigebox:bootstrap pigebox:backup # Then as many times as you need : rake pigebox:restore pigebox:configure pigebox:dist:iso
To build an iso image :
rake pigebox:dist:iso
To build an disk image :
rake pigebox:dist:disk
You can configure the build with using a config file :
ImageBuilder.default_debian_mirror = "http://localhost:9999/debian" ImageBuilder.ssh_pubkey = ENV['HOME'] + "/.ssh/another_id_rsa.pub"
See +rake -T+ for tasks details :
rake pigebox:backup # Save the current image directory in tar archive rake pigebox:bootstrap # Boostrap debian system in image directory rake pigebox:clean # Clean image temporary directory rake pigebox:configure # Configure the pigebox image rake pigebox:dist:iso # Create an iso file from pigebox image rake pigebox:dist:disk # Create a disk image rake pigebox:restore # Restore the image directory with existing tar archive rake setup # Install some of required tools to create pigebox image
Boot
For the moment, an iso image is builded. You can test it with qemu.
Install qemu and its module:
sudo apt-get install qemu kqemu-source sudo module-assistant a-i kqemu
Create an empty disk:
qemu-img create -f qcow2 /var/tmp/pigebox/disk.img 3G
You will need to initialize the pige storage after first boot (see Storage section).
Create a tap0 network interface:
sudo tunctl -u $USER -t tap0
Start qemu vm:
./script/boot cdrom # to use iso distribution ./script/boot disk # to use disk distribution
Create a bootable USB key with the pigebox distro
let's asume the USB key is mapped on /dev/sdc. Adapt with your own setup by looking
at dmesg right after plugging the key in the USB receptacle. You may need a 2GB key
for the standard setup, but a 512MB key may be enough for basic setup.
#create partitions on the key
sudo fdisk /dev/sdc
#delete every defined partition with 'd'
#Create the base partition
n
p
1
1
+500M
#Create the parameters partition
n
p
2
<enter> #this chooses the first cylinder after the last one allocated to the first partition
+100M
#The create 2 other partitions to handle distro updates (erf, sometime it will become a real product...)
n
p
3
<enter>
+500M
n
p
4
<enter>
<enter> #the last partition will use all the remaining space on the key
# make the base partition bootable
a
1
w #this writes the partition table on the USB key
Now remove and replug the USB key so that the new partition table is used
#let's format the different partitions
sudo mkfs.ext3 -L base -m 0 /dev/sdc1
sudo mkfs.ext3 -L params -m 0 /dev/sdc2
sudo mkfs.ext3 -L update1 -m 0 /dev/sdc3
sudo mkfs.ext3 -L update2 -m 0 /dev/sdc4
Once again, if partitions has not been auto-mounted, remove and replug the USB key
Now we copy the content of the pigebox image into the base partition
sudo cp -a /var/tmp/pigebox/image/* /media/base/
Then we must install grub on the USB key MBR
#first let's make a mark on the USB key
sudo touch /media/base/boot/usbkey
#The grub stuff
sudo grub
grub> find /boot/usbkey
(hd2,0)
grub> root (hd2,0)
grub> setup (hd2)
grub> quit
There you are, your USB should be bootable now !







