Raspberry Pi Fedora Remix FAQ
What is the Raspberry Pi Fedora Remix?
The Raspberry Pi Fedora Remix is a software distribution based upon the Fedora ARM secondary architecture project, which in turn is a part of the [Project]. It includes some software which cannot be included in Fedora because it is not licensed under any of the licenses approved by the Open Source Initiative.
The Remix was produced by the Seneca Centre for Development of Open Technology in Toronto, Ontario, Canada.
How big is the Remix?
The Raspberry Pi Fedora Remix 14 fits comfortably on a 2GB SD card with a few hundred MB available, though you may want a larger card to leave more room for extra programs or for data. There is a lot of software available for the Remix that isn't in the initial card image -- you can add and remove software to get exactly the combination you want.
What's in the Remix?
The Remix package set was selected to provide a good selection of packages for both graphical and non-graphical operation, while providing a manageable download size and installing onto a 2GB SD card. Here are some highlights of the applications included:
- Desktop GUI environments
- LXDE
- XFCE
- GUI applications
- Abiword
- Gimp
- Gedit with syntax highlighting and plugins (terminal, python console, file manager, etc)
- Graphical file manager
- Tools to add/remove and update software
- System administration tools
- Command-line applications
- Vim
- Yum to add/remove and update software
- Utilities such as wget, curl, units
- System administration tools
- Scripting languages
- python
- ruby
- perl
- basic (brandy)
- bash
- System services
- sshd - remote access
- cron - scheduled tasks
- cups - printing
Other software can be easily added or removed using the graphical (gnome-packagekit) or command-line (yum) tools.
Why is the Remix slow?
The GUI in particular is slow, because the 2D graphics (the X Window System) are not yet connected to the 3D graphics processing unit on the SOC.
General tips for performance:
- Work with only one app at a time. Viewing the Raspberry Pi's output on a large, high-definition display invites running many applications at once, but the Raspberry Pi does not have a lot of memory.
- Consider adding swap space -- though the jury is still out on the value of swapping to an SD card.
- Use apps that have the same look and feel. It's more likely that these programs will use the same graphical toolkit (for example, GTK3 or Qt4), reducing the amount of memory used for shared libraries.
- Try alternate apps that provide similar functionality.
Where's the app for ...?
There are 16,000 software packages in the repositories, so it's probably there -- see the notes on adding and removing software.
If you don't find what you need, it might be hiding under a different name (search diligently, and ask the community!), or it might not work on ARM systems (yet), or it might not be packaged for Fedora. (You could consider packaging it for Fedora, or asking the community to package it for you.)
Where are the C and C++ compilers, development tools, and libraries?
They take about 600M of space, so they aren't included in the initial image (although perl, python, ruby, bash, and basic (brandy) are included). This command will install the entire basic development environment: yum groupinstall "Development Tools" "Development Libraries"
What does the term "Fedora Remix" mean?
The term Fedora Remix has a special meaning within the Fedora Project: it denotes a custom distribution of packages from the Fedora Project, optionally including packages which cannot be included in the main Fedora distribution because of licensing or other issues. In the case of the Raspberry Pi Fedora Remix, the proprietary software provided by the Raspberry Pi Foundation and the SOC vendor Broadcom cannot be included directly in Fedora.
In a practical sense, the Fedora Remix accesses software package repositories from the Fedora ARM project as well as a set of repositories specific to the Raspberry Pi, which are manged by Seneca. The Remix images are built from these repositories, and they are also accessed by yum for package update/installation/removal.
A Fedora Remix may use the Secondary Mark, a trademark for identifying remixes. We have obtained permission to modify the colour of the lozenge in the Secondary Mark to match the maroon colour in the Raspberry Pi logo.
What version of Fedora provided the packages for the Raspberry Pi Fedora Remix?
Each Raspberry Pi Fedora Remix is numbered to match the corresponding Fedora release. Thus, the Raspberry Pi Fedora Remix 14 contains packages from Fedora 14.
What are the Future Plans for the Raspberry Pi Fedora Remix?
The future of the Remix is closely tied to the plans of the Fedora ARM project. The next major release of Fedora ARM will be Fedora 17. It is intended that the Fedora ARM 17 release will be made concurrently with, or very close to, the release of Fedora 17 for primary architectures (x86 32- and 64-bit PCs) in May 2012. By the release of Fedora 18 in November 2012, the ARM architecture will hopefully be promoted to Primary Architecture status, meaning that the ARM release will be done in lock-step with the x86 PC release.
A group of students in the Seneca SBR600 class (Winter 2012) is working to polish the Remix for the F17/F18 releases.
The number of packages in the Raspberry Pi-specific repositories is expected to diminish over time -- by the time that Fedora 18 is released (November 2012), the Raspberry Pi repositories should contain only the VideoCore libraries and headers. (If these were ever to become licensed these under an OSI-approved license then the need for a Remix will be eliminated, and the Raspberry Pi could be directly supported as a Fedora target).
Can I Remix the Remix?
Sure! That's part of the beauty of Open Source.
(Just be sure you respect all of the license terms applicable to the various packages, such as making the source code available, as well as the Secondary Mark requirements).
The Remix doesn't configure swap space. How can I add it?
See the notes on adding swap.
How do I access the sample source code for the Raspberry Pi and build the multimedia demo programs?
There are four multimedia demo programs available:
- hello_world - the classic test program, that just prints "Hello, World!" on the screen
- hello_video - a simple H.264 video player
- hello_triangle - an OpenGL-ES demo program which displays a rolling cube with textures on each side
- hello_audo - an audio demo that plays a sine wave with a slow sine wave amplitude modulation
Here are the recommended steps for building these demo programs:
- Ensure that the
raspberrypi-vc-demo-source
package is installed (it's installed in the released image). - Install the C/C++ toolchain. If you have sufficient space (about 600M), it's recommended that you install the full set of development tools and libraries (
yum groupinstall "Development Tools" "Development Libraries"
). Alternately, you could install a minimal set of tools (gcc, make, etc). (TODO: come up with the minimum set of tools/libraries needed for the demo code). - It's recommended that you build and run the code as a regular user:
- Make a personal copy of the source code in your home directory:
cp -R /usr/share/raspberypi-vc-demo-source/hello-pi ~
- As root, change the permissions on the vchiq device so that all users can access it:
chmod a+rw /dev/vchiq
- Make a personal copy of the source code in your home directory:
- Select a demo. Change to that directory -- the directory name will be
~/hello_pi/nameOfDemo
-- for example, to change to the demo for the hello_audio program:cd ~/hello_pi/hello_audio
- Build the demo:
make
- The resulting program name will end in
.bin
-- run it by typing:./*.bin
- You can modify the programs by editing the C source code (files ending in
.c
) and recompiling the software by typingmake
Note that in the Remix, the vc (video core) libraries are in /usr/lib
and subdirectories, and the headers are in /usr/include
; utilities are in /usr/bin
and /usr/sbin
. This is different from the Foundation's reference image, which has these files in subdirectories of /opt/vc
. The move from /opt
to the system directories reflects the fact that these libraries are part of the base system and not a 3rd-party add-on.
License information for the libraries is contained in the corresponding header files.