Difference between revisions of "Raspberry Pi"

From ArchWiki
Jump to: navigation, search
(update link(s) (avoid redirect))
(redirect to ARM category as it provides pointers to ALARM project)
(234 intermediate revisions by 74 users not shown)
Line 1: Line 1:
[[Category:Getting and installing Arch]]
#REDIRECT: [[:Category:ARM architecture]]
[[cs:Raspberry Pi]]
[[ru:Raspberry Pi]]
Raspberry Pi (RPi) is a minimalist computer built for the [[Wikipedia:ARMv6|ARMv6 architecture]]. [http://www.raspberrypi.org/ More information about this project] and [http://uk.farnell.com/raspberry-pi technical specification].
== Article Preface ==
This article is not meant to be an exhaustive setup guide and assumes that the reader has setup an Arch system before.  Arch newbies are encouraged to read the [[Beginners' guide]] if unsure how to preform standard tasks such as creating users, managing the system, etc.
{{Note|Support for the ARM architecture is provided on http://archlinuxarm.org not through posts to the official Arch Linux Forum.  Any posts related to ARM specific issues will be promptly closed per the [https://wiki.archlinux.org/index.php/Forum_Etiquette#Arch_Linux_Distribution_Support_ONLY Arch Linux Distribution Support ONLY] policy.}}
== Installing Arch Linux ARM ==
See the [http://archlinuxarm.org/platforms/armv6/raspberry-pi#qt-platform_tabs-ui-tabs2 Arch Linux ARM documentation].
== Audio ==
{{Note|The requisite module {{ic|snd-bcm2835}} should be autoloaded by default.}}
Install the '''alsa-utils''', '''alsa-firmware''', '''alsa-lib''' and '''alsa-plugins''' packages:
# pacman -S alsa-utils alsa-firmware alsa-lib alsa-plugins
Optionally adjust the default volume using {{ic|alsamixer}} and ensure that the sole source "PCM" is not muted (denoted by {{ic|MM}} if muted, press {{ic|M}} to unmute).
Select an audio source for output:
$ amixer cset numid=3 ''x''
Where {{ic|''x''}} corresponds to:
*0 for Auto
*1 for Analog out
*3 for HDMI
=== Caveats for HDMI Audio ===
Some applications require a setting in {{ic|/boot/config.txt}} to force audio over HDMI:
== Video ==
=== HDMI / Analog TV-Out ===
To turn the [[HDMI]] or analog TV-Out on or off, have a look at
Use the ''-s'' parameter to check the status of your display, the ''-o'' parameter to turn your display off and ''-p'' parameter to power on HDMI with preferred settings.
Adjustments are likely required to correct proper overscan/underscan and are easily achieved in {{ic|boot/config.txt}} in which many tweaks are set.  To fix, simply uncomment the corresponding lines and setup per the commented instructions:
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
Users wishing to use the analog video out should consult [https://raw.github.com/Evilpaul/RPi-config/master/config.txt this] config file which contains options for non-NTSC outputs.
A reboot is needed for new settings to take effect.
=== X.org driver ===
The X.org driver for Raspberry Pi can be installed with the '''xf86-video-fbdev''' package:
# pacman -S xf86-video-fbdev
== Onboard Hardware Sensors ==
=== Temperature ===
Temperatures sensors can be queried with utils in the '''raspberrypi-firmware-tools''' package.  The RPi offers a sensor on the BCM2835 SoC (CPU/GPU):
{{hc|$ /opt/vc/bin/vcgencmd measure_temp|2=
Alternatively, simply read from the file system:
{{hc|$ cat /sys/class/thermal/thermal_zone0/temp|2=
For human readable output:
{{hc|awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp|2=
=== Voltage ===
Four different voltages can be monitored via {{ic|/opt/vc/bin/vcgencmd}} as well:
$ /opt/vc/bin/vcgencmd measure_volts ''<id>''
Where {{ic|''<id>''}} is:
*core for core voltage
*sdram_c for sdram Core voltage
*sdram_i for sdram I/O voltage
*sdram_p for sdram PHY voltage
=== Lightweight Monitoring Suite ===
{{AUR|monitorix}} has specific support for the RPi since v3.2.0.  Screenshots available [http://www.monitorix.org/screenshots.html here].
== Overclocking/Underclocking ==
The RPi can be overclocked by editing {{ic|/boot/config.txt}}, for example:
The optional xxx_min lines define the min usage of their respective settings.  When the system is not under load, the values will drop down to those specified.  Consult the [http://elinux.org/RPiconfig#Overclocking Overclocking] article on elinux for additional options and examples.
A reboot is needed for new settings to take effect.
{{Note|The overclocked setting for CPU clock applies only when the governor throttles up the CPU, i.e. under load.}}
Users may query the current frequency of the CPU via this command:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
== Tips for Maximizing SD Card Performance ==
{{Accuracy|1=Very questionable tips, see also [https://wiki.archlinux.org/index.php?title=ArchWiki:Reports&diff=next&oldid=286971].}}
=== Enable TRIM and noatime by Mount Flags ===
Using this flag in one's {{ic|/etc/fstab}} enables TRIM and noatime on the root ext4 partition. For example:
/dev/root  /  ext4  noatime,'''discard'''  0  0
{{Note|/dev/root entry maybe missing from your /etc/fstab; by default it is mounted as a VFS by the kernel during system boot.}}
=== Move /var/log to  RAM ===
{{Warning|All system logs will be lost on every reboot.}}
Add this entry to your {{ic|/etc/fstab}} to create a RAM disk that is 16MiB in size:
tmpfs  /var/log        tmpfs  nodev,nosuid,size=16M  0      0
Delete your existing log directory:
# rm -R /var/log
Reboot system for changes to take affect.
=== Link bash_history to /dev/null ===
{{Warning|Your bash history be lost at the end of each session.}}
# ln -sf /dev/null ~/.bash_history
== Serial Console ==
Edit the default {{ic|/boot/cmdline.txt}}, change {{ic|loglevel}} to {{ic|5}} to see boot messages:
Change speed from 115200 to 38400:
console=ttyAMA0,38400 kgdboc=ttyAMA0,38400
Start getty service
# systemctl start getty@ttyAMA0
Enable on boot
# systemctl enable getty@ttyAMA0.service
Creating the proper service link:
# ln -s /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyAMA0.service
Then connect :)
# screen /dev/ttyUSB0 38400
== Raspberry Pi Camera module ==
The commands for the camera module are including as part of the '''raspberrypi-firmware-tools''' package - which is installed by default. You can then use:
$ /opt/vc/bin/raspistill
$ /opt/vc/bin/raspivid
You need to append to {{ic|/boot/config.txt}}:
== Hardware Random Number Generator ==
ArchLinux ARM for the Raspberry Pi is distributed with the '''rng-tools''' package installed and the '''bcm2708-rng''' module set to load at boot (see [http://archlinuxarm.org/forum/viewtopic.php?f=31&t=4993#p27708 this]), but we must also tell the Hardware RNG Entropy Gatherer Daemon ('''rngd''') where to find the hardware random number generator.
This can be done by editing {{ic|/etc/conf.d/rngd}}:
RNGD_OPTS="-o /dev/random -r /dev/hwrng"
and restarting the '''rngd''' daemon:
systemctl restart rngd
Once completed, this change ensures that data from the hardware random number generator is fed into the kernel's entropy pool at {{ic|/dev/random}}.
== GPIO ==
=== Python ===
To be able to use the GPIO pins from Python, you can use the [https://pypi.python.org/pypi/RPi.GPIO RPi.GPIO] library.
To install it, first install the '''base-devel''' group. Download the latest version of the library from PyPI (link above), extract it and run the following command:
# python setup.py install
== See also ==
* [http://elinux.org/RPiconfig RPi Config] - Excellent source of info relating to under-the-hood tweaks.
* [http://elinux.org/RPI_vcgencmd_usage RPi vcgencmd usage] - Overview of firmware command vcgencmd.
* [http://archpi.dabase.com/ Archlinux ARM on Raspberry PI] - A FAQ style site with hints and tips for running Archlinux on the rpi

Latest revision as of 23:52, 24 September 2017