12,285
edits
mNo edit summary |
|||
(40 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
The Raspberry Pi is an inexpensive Linux | The Raspberry Pi is an inexpensive Linux computer which you can for example use to play back videos (up to Full-HD). This page shows you how to set it up: | ||
== Making the RapberryPi run a video at startup == | == Making the RapberryPi run a video at startup == | ||
Install The Raspbian image (NOOBS is okay for the beginning, but it wastes a bit space on the SDcard for the recovery image which we don't need. [http://elinux.org/RPi_Easy_SD_Card_Setup Copy the raspbian on the card]. | === Prepare the system === | ||
Get a [http://elinux.org/RPi_SD_cards compatible and proven] SD Card (make sure it is not a knock-off). Install The Raspbian image (NOOBS is okay for the beginning, but it wastes a bit space on the SDcard for the recovery image which we don't need. [http://elinux.org/RPi_Easy_SD_Card_Setup Copy the raspbian on the card]. Read about [[#SD Card corruption issues]] to avoid those. | |||
Once that is done, connect to the Internet (Ethernet + DHCP) and bring the OS up to date: | Once that is done, connect to the Internet (Ethernet + DHCP) and bring the OS up to date: | ||
sudo apt-get update | sudo apt-get update | ||
sudo apt-get upgrade | sudo apt-get upgrade | ||
Line 11: | Line 11: | ||
sudo apt-get install raspberrypi-net-mods | sudo apt-get install raspberrypi-net-mods | ||
Then while we are at it we might want to check if the firmwarware is up to date too. "Firmware" is a bit confusing in this context as the raspberry apparently has no bios sitting on some chip, but all that "Firmware" is part of the stuff on the SD card. ([http://raspberrypiguide.de/howtos/raspberry-pi-firmware-update/ Source]) | |||
uname -a | |||
Will let us see the current version. Then there is a script we can run to update it. | |||
sudo apt-get install git | |||
wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update | |||
sudo rpi-update | |||
Optional: If you need every little bit of space of the memory card you may want to remove some software and example content to free some memory. | |||
sudo apt-get purge --auto-remove sonic-pi scratch squeak-vm idle idle3 timidity wolfram-engine python-pygame penguinspuzzle dillo pistore | |||
After all this we should re-boot | |||
sudo reboot | |||
=== Setup video playback === | |||
Test video playback: [http://www.raspberrypi.org/documentation/usage/video/README.md source] | Test video playback: [http://www.raspberrypi.org/documentation/usage/video/README.md source] | ||
Line 19: | Line 36: | ||
omxplayer -r /opt/vc/src/hello_pi/hello_video/test.h264 | omxplayer -r /opt/vc/src/hello_pi/hello_video/test.h264 | ||
make a file startup_script.sh (shell script) with the following content: | make a file startup_script.sh (shell script) | ||
touch startup_script.sh | |||
nano startup_script.sh | |||
with the following content: | |||
<syntaxhighlight lang="bash"> | |||
clear | |||
echo "Automatic start up script running" | |||
date '+Date %Y-%m-%d Time %H:%m' | |||
echo -e "This is \c" && hostname | |||
ifconfig | grep "inet addr" | |||
sleep 2 | |||
clear | |||
sudo shutdown -h +540 & omxplayer -r movie.mp4 --loop | |||
</syntaxhighlight> | |||
sudo shutdown -h +540 will shut the Raspberry down in 9 hours. | |||
You will have to make the file executable with | |||
sudo chmod 775 startup_script.sh | sudo chmod 775 startup_script.sh | ||
Line 42: | Line 71: | ||
Disable the getty program. | Disable the getty program. | ||
Find this line and comment it | Find this line and comment it out by adding a # at the beginning of the line | ||
<syntaxhighlight lang="bash"> | |||
#1:2345:respawn:/sbin/getty 115200 tty1 | |||
</syntaxhighlight> | |||
Add login program to inittab. | Add login program to inittab. | ||
Add the following line just below the commented line | Add the following line just below the commented line | ||
<syntaxhighlight lang="bash"> | |||
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1 | |||
</syntaxhighlight> | |||
This will run the login program with pi user and without any authentication | This will run the login program with pi user and without any authentication | ||
Line 55: | Line 88: | ||
sudo nano .bashrc | sudo nano .bashrc | ||
and right at the end put: | and right at the end put: | ||
<syntaxhighlight lang="bash"> | |||
if [ $(tty) == /dev/tty1 ]; then | if [ $(tty) == /dev/tty1 ]; then | ||
./startup_script.sh | ./startup_script.sh | ||
fi | fi | ||
</syntaxhighlight> | |||
(that last 'if' makes sure the script is not starting in an x session) | (that last 'if' makes sure the script is not starting in an x session) | ||
==HDMI Output== | |||
By default the RaspberryPi will check if HDMI is attached and switch video and audio output accordingly. This means you need to have the HDMI screen/projector switched on and connected before booting the Pi. Since this can be inconvenient (you may want to switch both on through the same multi-plug for example), you can also change this behaviour in the file /boot/config.txt | |||
If you always want HDMI output, you would like to uncomment the lines | |||
<syntaxhighlight lang="bash"> | |||
hdmi_force_hotplug=1 | |||
hdmi_drive=2 | |||
</syntaxhighlight> | |||
all of the switches are explained on [http://elinux.org/RPiconfig elinux] | |||
==Synchronizing multiple RaspberryPi== | ==Synchronizing multiple RaspberryPi== | ||
maybe you want to | maybe you want to give the different Pi different host names, so you don't get confused. Do it in the config utility: | ||
sudo raspi-config | sudo raspi-config | ||
Line 70: | Line 116: | ||
sudo apt-get install python-pexpect | sudo apt-get install python-pexpect | ||
install | install [https://github.com/LEW21/pydbus python bindings for DBUS] | ||
sudo apt-get install python3-setuptools | sudo apt-get install python3-setuptools | ||
sudo wget https://github.com/LEW21/pydbus/archive/master.zip | sudo wget https://github.com/LEW21/pydbus/archive/master.zip | ||
Line 99: | Line 145: | ||
omxplayer-sync -lubv synctest.mp4 | omxplayer-sync -lubv synctest.mp4 | ||
-b flag to make screen background black | -b flag to make screen background black. (Remove -v for verbose mode later once everything works) | ||
Note: You can use the startup_script above to do this, just replace the omxplayer command with the omxplayer-sync command from here. | |||
==Timing== | ==Timing== | ||
Line 107: | Line 153: | ||
dpkg-reconfigure tzdata | dpkg-reconfigure tzdata | ||
Note that the Raspberry is searching online for the current time when booting. If there is no Internet the time | Note that the Raspberry doesn't have a real-time clock on board. Instead it saves the current time in a file when it shuts down and resumes at the same point when it boots. It is searching online for the current time when booting. If there is no Internet connection the time will almost certainly not be accurate! (Alternatively you could add a real-time clock shield or a GPS receiver which would allow you to get the current time without Internet connection) | ||
===Shut down at specific time=== | ===Shut down at specific time=== | ||
The shutdown command has a timer built in, so when it is called like this | The shutdown command has a timer built in, so when it is called like this | ||
sudo shutdown -h 15:00 | sudo shutdown -h 15:00 | ||
the system will shut down at three in the | the system will shut down at three in the afternoon. | ||
sudo shutdown -h +30 | sudo shutdown -h +30 | ||
will shut the system down in 30 minutes from now. | will shut the system down in 30 minutes from now. | ||
Line 125: | Line 171: | ||
[https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=59520 source] | [https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=59520 source] | ||
== | ==SD Card corruption issues== | ||
It's a common problem when working with the Raspberry that the SD Card is getting corrupted and a boot fails. This is caused by not properly shutting down but cutting the power instead. When the raspberry is writing files to the scdard while the power is cut, the risk of SD Card corruption is high. | |||
=== | ===How to minimize the risk of SD Card corruption=== | ||
* Also read: [https://learn.adafruit.com/read-only-raspberry-pi read-only-raspberry-pi] | |||
* Make sure it is a proven, compatible and non-fake SD Card | |||
* A faster card may be more stable (shorter time to write - less times when it is dangerous when a power loss happens | |||
* Never plug the cable, leave Raspberry always on | |||
* Always shut down properly | |||
* Equip Raspberry with a battery pack | |||
* Use a read only file system | |||
* Consider AlpineLinux instead of Raspbian | |||
==Backup and copy== | |||
let's say /dev/mmcblk0 is your card reader | let's say /dev/mmcblk0 is your card reader | ||
Line 141: | Line 195: | ||
(both these commands take a long time and the terminal seems like frozen, there is no progress feedback) | (both these commands take a long time and the terminal seems like frozen, there is no progress feedback) | ||
==Power== | |||
reboot: | reboot: | ||
Line 150: | Line 203: | ||
sudo shutdown -h now | sudo shutdown -h now | ||
==Notes== | |||
===other resources=== | |||
Use multiple RasberryPis to make a video wall (needs one extra server-Pi, plus one Pi per client) [http://www.piwall.co.uk Piwall] | |||
[[Category:Max Neupert]] | |||
[[Category:Automation]] | [[Category:Automation]] | ||
[[Category:RaspberryPi]] | [[Category:RaspberryPi]] |