Barputer

From VoidWarranties - Hackerspace Antwerp, Belgium
(Difference between revisions)
Jump to: navigation, search
 
(43 intermediate revisions by 12 users not shown)
Line 3: Line 3:
 
|Category=Electronics
 
|Category=Electronics
 
|Logo=Beer computer-300x290.jpg
 
|Logo=Beer computer-300x290.jpg
|Participants=Koen,
+
|Participants=Koen, Koert, berz, Warddr
 
|Locations=Den Bunker
 
|Locations=Den Bunker
 
|Short description=In a hackerspace a computer is needed everywhere, included behind the bar. So this project was born.
 
|Short description=In a hackerspace a computer is needed everywhere, included behind the bar. So this project was born.
 
}}
 
}}
= Ideas =
+
== Function ==
* In a bar we need music. So we'll set up an MPD server connected to an amplifier to allow everyone to play there favorite music.
+
*It allows everyone to play their favorite music.
* Where we well beer and Mate Point of sales and Stock management software seems obvious.
+
*Stock management for the bar
* The person running the bar might also want to follow talks going on in the other room. So the system should be able to display webcasts.
+
*General purpose computing
  
 
== Hardware ==
 
== Hardware ==
===What we have available===
+
The computer is situated next to the refrigerator. Its audio jack is connected to the amplifier to play music.
* Speakers
+
* Amplifier
+
* CD-player (optional)
+
* Old laptop (2,53GHz Pentium IV)
+
* Serial barcode scanner
+
  
= Software =
+
The touchscreen is a 17" LCD which connects using VGA. The touchscreen also has a serial port, which is connected to a serial-to-usb adapter.
  
== Point of sales & Stock management ==
+
===Case===
Using the Jostokassa application made by [[Koert]]
+
It is fancy.
 +
 
 +
===Misc===
 +
* We have a serial barcode scanner, but we don't use it at the moment
 +
** Is this still available? Yes!!!
 +
 
 +
==Software==
 +
*Berz tried using debian (concerned with the system's reliability) but couldn't get the touchscreen (which isn't supported by the kernel) configured
 +
*The barputer runs Xubuntu, which comes with Utouch, under we got the touchscreen working quickly
 +
 
 +
===Touch===
 +
Install the needed packages:
 +
sudo apt-get install xserver-xorg-input-elographics xserver-xorg-input-evdev-dev utouch sudo apt-get install xinput-calibrator
 +
Recognize the device at boot
 +
echo 'inputattach -elo /dev/ttyS2' >> /etc/rc.local
 +
Calibrate the touchscreen, and put the output here: /usr/share/X11/xorg.conf.d/99-calibration.conf
 +
xinput_calibrator
 +
This is the config I last used, but if you've got smaller finger feel free to optimize it:
 +
Section "InputClass"
 +
Identifier "calibration" MatchProduct "Elo Serial TouchScreen" Option "Calibration" "4015 -4 6 4026"
 +
EndSection
 +
 
 +
=== Music ===
 +
The technical aspect of the setup is documented here, if you just want to play some music, check out [[How to play music]]
 +
 
 +
We use MPD (Music Player Daemon) as a music server. This allows us to use various clients at the same time, including over the network and on portable devices.
 +
 
 +
MPD can play audio streams. The list of streams is populated by scanning /home/barputer/Music/streams
 +
Aditionally MPD scans for music in /home/barputer/Music/shares. However no music is kept on barputer, and we intend to keep it this way. Instead, this directory is dynamically populated by mounting available music directories over the network.
 +
==== RAF ====
 +
[[ Image:RAF.png | right | 100px ]]
 +
Raf is the name of the script that mounts the shared music dirs, and is an abbreviation of Remote Audio Folders. It scans the network for available samba shares, keeps only those whose name contains the string 'music' to prevent mounting the wrong shares, mounts and updates the MPD library if necessary. It also scans if all the mounted shares are still accessible and unmounts them if they are not. Raf is invoked automatically by cron, keeping the MPD library up to date.
 +
 
 +
If you're impatient, you can force a sync by executing the following command on barputer:
 +
# RAF sync
 +
 
 +
To add music to the MPD library we originally used djmount, a program which automatically mounts UPNP shares. This setup was copied from [http://0x20.be Whitespace] and is documented [http://0x20.be/Audio_System here].
 +
 
 +
==== Forwarding sound through pulseaudio ====
 +
Pulseaudio has replaced ALSA and OSS quite some time ago as the default sound server on linux. Since pulseaudio has networking built in by default, you can forward sound to barputer instead of your laptop speakers if you are running pulseaudio too (ie: run linux).
 +
 
 +
===== The CLI way =====
 +
PULSE_SERVER=192.168.42.103 rhythmbox
 +
This should start rhythmbox while sending the resulting audio to barputer. Warning: barputer's ip might change.
 +
 
 +
===== The GUI way (GNOME) =====
 +
You will need to have paprefs, pavucontrol and avahi installed. Avahi needs to be running to discover network devices. Launch paprefs and tell pulseaudio to make remote audio servers available locally. Reboot to or restart Pulseaudio. Launch pavucontrol. Under the 'playback' tab you will see all programs playing audio listed. If Avahi detects barputer's pulseaudio server you should be able to select it to play one of these streams
 +
 
 +
=== Point of sales & Stock management ===
 +
Using the vwcr application made by [[Koert]].  It's not completely finished yet, but it can be used (and is being used).
 +
 
 +
===Backups===
 +
====Images====
 +
Every once in a while we make a full snapshot. These are full images that can be restored to the drive. The last image was made on '''17/05/'12'''. The images are made using FSarchiver. We can't use Norton Ghost or Clonezilla since they don't have support for EXT4, which we use for barputer's root filesystem. Backup procedure:
 +
* Boot a live cd which has FSarchver (you can use System Resque CD).
 +
* Check the partition's name
 +
* Mount the backup partition on /mnt: mount /dev/sda1 /mnt
 +
* make an archive: fsarchiver savefs --compress=4 /mnt/images$(date +%F) /dev/sdb1
 +
**The first time we used --compress=5, which took a long time. So we should probably use level 4 or even 3.
 +
====Incremental====
 +
A backup of all the files on the root drive is taken every hour. These backups are rotated. Every fifth hourly backup is kept for 25 hours and is called a 'recent' backup. Every fifth recent backup is kept for 125 hours and called a 'medium' backup. Every fifth medium backup is called an 'old' backup and is kept indefinably. One hour in this context refers to an hour the computer is turned on. The snapshots are made and rotated automatically.
 +
 
 +
This scheme uses rsync for snapshotting, rsnapshot for rotating, and space usage is kept down using hardlinks (every version of a file is only saved once).
 +
<pre>
 +
$ sudo du -hs /media/backup/incremental/*
 +
4.0K /media/backup/incremental/counter
 +
3.8G /media/backup/incremental/hourly.0
 +
138M /media/backup/incremental/hourly.1
 +
71M /media/backup/incremental/hourly.2
 +
123M /media/backup/incremental/hourly.3
 +
72M /media/backup/incremental/hourly.4
 +
82M /media/backup/incremental/young.0
 +
</pre>
 +
 
 +
==TODO==
 +
<del>*MOAR DOCUMENTING (on this page and [[How to play music]])</del>
 +
*<del>clean up the server for clarity and minimizing diskspace</del>
 +
**<del>Uninstall unneeded packages (Ubuntu comes with many packages preinstalled we don't need)</del>
 +
**<del>Organize our directories and files</del>
 +
*<del>make a backup image we can roll back to in case of emergency</del>
 +
*<del>incremental backups so we can roll back a part of the system if we need to</del>
 +
*have barputer power itself on automatically when the space opens
 +
*have barputer power itself off automatically when the space closes
 +
*barputer hangs sometimes when booting, we don't know why
 +
*<del>we could use a relay so we don't have to turn the touchscreen's PSU on by hand when booting barputer</del>
 +
*<del>creating icon for barputer</del>

Latest revision as of 11:17, 23 August 2013


Barputer
What:
In a hackerspace a computer is needed everywhere, included behind the bar. So this project was born.
Beer computer-300x290.jpg
Participants:
Koen, Koert, berz, Warddr
Category:
Electronics
Locations:
Den Bunker

Contents

Function

Hardware

The computer is situated next to the refrigerator. Its audio jack is connected to the amplifier to play music.

The touchscreen is a 17" LCD which connects using VGA. The touchscreen also has a serial port, which is connected to a serial-to-usb adapter.

Case

It is fancy.

Misc

Software

Touch

Install the needed packages:

sudo apt-get install xserver-xorg-input-elographics xserver-xorg-input-evdev-dev utouch sudo apt-get install xinput-calibrator

Recognize the device at boot

echo 'inputattach -elo /dev/ttyS2' >> /etc/rc.local

Calibrate the touchscreen, and put the output here: /usr/share/X11/xorg.conf.d/99-calibration.conf

xinput_calibrator

This is the config I last used, but if you've got smaller finger feel free to optimize it:

Section "InputClass"
Identifier	"calibration" MatchProduct	"Elo Serial TouchScreen" Option	"Calibration"	"4015 -4 6 4026"
EndSection

Music

The technical aspect of the setup is documented here, if you just want to play some music, check out How to play music

We use MPD (Music Player Daemon) as a music server. This allows us to use various clients at the same time, including over the network and on portable devices.

MPD can play audio streams. The list of streams is populated by scanning /home/barputer/Music/streams Aditionally MPD scans for music in /home/barputer/Music/shares. However no music is kept on barputer, and we intend to keep it this way. Instead, this directory is dynamically populated by mounting available music directories over the network.

RAF

RAF.png

Raf is the name of the script that mounts the shared music dirs, and is an abbreviation of Remote Audio Folders. It scans the network for available samba shares, keeps only those whose name contains the string 'music' to prevent mounting the wrong shares, mounts and updates the MPD library if necessary. It also scans if all the mounted shares are still accessible and unmounts them if they are not. Raf is invoked automatically by cron, keeping the MPD library up to date.

If you're impatient, you can force a sync by executing the following command on barputer:

# RAF sync

To add music to the MPD library we originally used djmount, a program which automatically mounts UPNP shares. This setup was copied from Whitespace and is documented here.

Forwarding sound through pulseaudio

Pulseaudio has replaced ALSA and OSS quite some time ago as the default sound server on linux. Since pulseaudio has networking built in by default, you can forward sound to barputer instead of your laptop speakers if you are running pulseaudio too (ie: run linux).

The CLI way
PULSE_SERVER=192.168.42.103 rhythmbox

This should start rhythmbox while sending the resulting audio to barputer. Warning: barputer's ip might change.

The GUI way (GNOME)

You will need to have paprefs, pavucontrol and avahi installed. Avahi needs to be running to discover network devices. Launch paprefs and tell pulseaudio to make remote audio servers available locally. Reboot to or restart Pulseaudio. Launch pavucontrol. Under the 'playback' tab you will see all programs playing audio listed. If Avahi detects barputer's pulseaudio server you should be able to select it to play one of these streams

Point of sales & Stock management

Using the vwcr application made by Koert. It's not completely finished yet, but it can be used (and is being used).

Backups

Images

Every once in a while we make a full snapshot. These are full images that can be restored to the drive. The last image was made on 17/05/'12. The images are made using FSarchiver. We can't use Norton Ghost or Clonezilla since they don't have support for EXT4, which we use for barputer's root filesystem. Backup procedure:

Incremental

A backup of all the files on the root drive is taken every hour. These backups are rotated. Every fifth hourly backup is kept for 25 hours and is called a 'recent' backup. Every fifth recent backup is kept for 125 hours and called a 'medium' backup. Every fifth medium backup is called an 'old' backup and is kept indefinably. One hour in this context refers to an hour the computer is turned on. The snapshots are made and rotated automatically.

This scheme uses rsync for snapshotting, rsnapshot for rotating, and space usage is kept down using hardlinks (every version of a file is only saved once).

$ sudo du -hs /media/backup/incremental/*
4.0K	/media/backup/incremental/counter
3.8G	/media/backup/incremental/hourly.0
138M	/media/backup/incremental/hourly.1
71M	/media/backup/incremental/hourly.2
123M	/media/backup/incremental/hourly.3
72M	/media/backup/incremental/hourly.4
82M	/media/backup/incremental/young.0

TODO

*MOAR DOCUMENTING (on this page and How to play music)

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Content Creation
Belgian Spaces