Thursday, October 11, 2012

Fedora Remix RC2 looks good on RPi

I have, and have had for quite some time, a passion for trying out new Linux OS's.
Certainly, I've used Fedora quite a lot in the past, including on my RPi but the lastest update, which has reached the Release Candidate stage, is now a fully usable, and quite impressive, arm-based OS.

The screenshot shows how my Desktop looks.
No, it's not the fastest but still very far from unusable as long as you're not involved in any time-critical activities.

Here are the steps I took to get to that stage:

1. Download zipped RC2 image from here. I downloaded it on my EeePC901 (still working very well after nearly four years of intensive use) as it's the only machine I have with a built-in SDCard reader.

2. Unzip using the command
$ unzip
to get the .img file.
(Because I didn't have enough room on the EeePC's SSD's, I moved the zip file to a 16GB usb key plugged into one of the usb ports and unzipped it there -- the .img is more than 3GB)

3. Now, burn the image file to the SD card.
I used a 4GB Transcend Class 4 card (the only one I had available at the time, although certainly it's worth investing in a class 10 card or better to remove some of the sluggishness from the RPi's performance).
Use this command
# dd bs=1M if=Image.img of=/dev/sdd
Make sure that you have designated the SDCard correctly and use the full disk address (/dev/sdd) rather than just a partition on it (for example, /dev/sdd1).
Before burning the image to the card, I always like to use Gparted to delete whatever was on the card, make on new partition and format that to ext4.
In my case the burn took about 6 minutes.

4. Next, with the SDCard still in its port, fire up Gparted and create a 256MB Swap partition on the SDcard as well as extending the size of the rootfs partition to take up all remaining available space. On my 4GB card, my rootfs partition rose to 3.4GB in size.
If you're not familiar with using Gparted, you really need to look into it if you're at all serious about getting to grips with Linux.

5. Now, insert the SDcard into the Raspberry Pi and switch it on.
It should boot without problems (you'll see the red PWR light first, followed by the yellow-green OK light, which flickers a little, then, if you have an ethernet cable plugged into the RPi, the FDX, LNK and I0M lights should all come on and stay on).

6. You will now be presented with a "First Run" dialog that permits you to configure your machine as you wish, including creating your own user account and password.
Unlike Raspbian, however, you are not offered the option to boot straight through to the Desktop so Fedora, for now at least, will boot only to a TTY (which I prefer as I think it's always preferable to do these things yourself rather than allow the machine to fiddle around in the configs without you knowing what has been done).

7. After the configuration, reboot and, after logging in, issue the startx command to get to the GUI desktop.
Now, it's time to have some fun.
Here's the first few things I did to get the Desktop organized as I like it:

i) Set up for Autologin by editing the /etc/gdm/custom.conf file (as root) and add the following in the [daemon] section:


Obviously, you change the word "paul" to whatever your username is. See this link for a little more detail.

ii) Applications Menu > Settings > Screensaver and uncheck the "Lock Screen After" box in order to prevent the screen locking, and requiring a password to unlock, if you happen to stop working on your computer for a minute or two.

iii) Use the Midori browser (comes pre-installed) to download a suitable wallpaper or, as I did, send one over from another machine using this command on the remote machine:

$ scp /path to file/wallpaper.png paul@192.168.x.y:Pictures

where 192.168.x.y is the internal IP of your Fedora machine and Pictures is a folder you created in your home directory. Change as desired.
Now, on the fedora Desktop, right-click, choose Desktop Settings and then the Background tab.
Use the "+" to add your new wallpaper image, select and close.

iv) Edit the /etc/sudoers file to enable my user to use "sudo" without a password.
Yes, this is potentially dangerous but only if other people regularly use your machine, which is not my case.
However, it does speed things up as regularly typing in your password, if it's unnecessary, will slow down your work.
As shipped, Fedora's /etc/sudoers file contains the line
%wheel   ALL=(ALL)          ALL
and, further down
# %wheel  ALL=(ALL)          NOPASSWD:  ALL

In Fedora, the new user is already a member of the Wheel group which means (because of the first line above) that your user can immediately use "sudo" but only with a password.
So, using a text editor (I used leafpad) as root, remove the comment marker (#) from the second of the above lines and comment out the first.
Save and reboot and now you can use sudo without a password.
Note that using a text editor other than visudo to edit the sudoers file is very much frowned upon and not at all recommended.
However, I've been doing it for years and have never had a problem.

v) Add appropriate ntp servers
Although the First Run dialog allows you to decide which ntp servers you want, I neglected to do this and found the defaults servers to be error-prone for my locations.
To change them, you first need to find the url's of your local ntp servers (just google) and then got to Applications Menu > Administration > System-Config-Date, add your password to the dialog that pops up, check the box named "Synchronize date and time ......" and edit the NTP servers box that appears to contain your local servers (and delete the defaults).
Under the Time Zone tab, check the System Clock uses UTC.
Click OK.

Now, in a terminal as root run

# ntpdate
and wait until the time in your clock is corrected (a few seconds).
Note that your server name will be almost certainly different to mine.

In general, when I boot into Fedora, the time shown on the Desktop is correct. However, for reasons I cannot explain, at times it isn't.
In those cases, I can run the above ntpdate command to correct the time.
Indeed, I have made an alias to facilitate use of this command (I'll explain later about aliases).

vi) Because of the RPi's lack of resources, it's going to be slow.
I find that using more keystokes and keyboard shortcuts rather than the mouse can significantly increase work speed.
Open Applications Menu > Settings > Keyboard > Application Shortcuts to add your own shortcuts to the defaults.
The ones I added are:

exo-open --launch TerminalEmulator "sudo ntpdate"
exo-open --launch TerminalEmulator "sudo reboot"
exo-open --launch TerminalEmulator "sudo shutdown now"

The shortcuts I used are the following in the same order:


These are extremely useful and very much minimize the use of the mouse.
Note that the xfce Desktop Environment uses exo-open commands rather than bash -c as I had previously employed in lxde.

vii) Certainly Midori is a decent lightweight browser, but it demands the mouse to use which is inconvenient on a slow box like the RPi.
So, I prefer Uzbl which is a browser much more attuned to keystroke manipulation.
Note, however, that Uzbl is not a beginner's browser and takes quite a bit of getting used to.
In my opinion, however, it's worth the effort.

Install it in Fedora with this command
sudo yum install uzbl-browser

viii) Next install the firmware updater rpi-update which you'll find here.
Once installed, run rpi-update from a terminal as root to ensure your Fedora install has the latest rpi firmware.

ix) Configure your wireless internet.
I use a MicroNet N150 (SP907NS) wifi dongle which I've described for Raspbian.
To get it working on Fedora was very easy as the driver (RTL8192CUS) is present in the kernel.
I just used Applications Menus > Settings > Network Connections > Wireless Tab
and then added my wireless details (SSID and password).
After a reboot, the blue light on the dongle started flashing and I had a wifi connection.

x) Now, do a full software update.
For reasons I don't yet understand, I had to exclude kernel updates for this to work, so the full update command I used was:

sudo yum update --skip-broken ---exclude=raspberrypi-kernel

xi) Add some aliases

Particularly for items you want to use frequently.
Open upen up ~/.bashrc
and add the following:

# User-specific aliases and functions

alias ntp="sudo ntpdate"
alias rpi="sudo rpi-update"
alias update="sudo yum update --skip-broken --exclude=rapsberrypi-kernel"
alias recon="killall conky && conky"

xii) Overclock

Without overclocking, the RPi really is painfully slow but with some extremely easy configuration, you can dramatically improve its performance.

The overclock settings that I used, without any problem in /boot/command.txt are


Without the force_turbo line, your RPi will only speed up to the selected values when your machine is under load.
But by selecting force_turbo=1 (the default value is 0), it will always run at the chosen speeds.

And that's it.
You should now have a fully-functioning fedora install on your rpi.

Well, when I say fully-functioning, I have to say that there are some problems. But this is only a release candidate, remember?

As this post has lapsed into the tl;dr category, I'll discuss the problems in my next post on this topic which is here.

No comments:

Post a Comment