Arch Linux Raspberry Pi Install Guide – Enlightenment + SLIM

This guide will explain how to install Arch Linux using the NOOBS (New Out Of Box Software) zip file provided by the Raspberry Pi Foundation on their download’s page. I will also explain how to install a window manager and graphical login manager as well as a few other applications to get you started. This guide will only explain how to install Arch as the ONLY OS on the SD card !!

NOTE : I have an updated Arch Linux install guide which can be found here. However if you want to install enlightenment rather than LXDE (which i used in the new guide) then please continue to use this guide.

You will need an SD card formatted to FAT32 and either the NOOBS.zip file or the NOOBS Lite.zip file from the Raspberry Pi downloads page. The process is amazingly simple, once downloaded all you have to do is extract the .zip file onto the SD card using the program of your choice (Linux = 7zip/PeaZip/Ark/etc Windows = WinZip/7-Zip/PeaZip/etc).

Once this is done plug the SD card into the Pi and turn it on, it will start re-sizing partitions and creating new ones, when it is finished you will be left with 3 partitions on your SD card, the normal 2 and an additional recovery partition. You will be greeted by a selection of operating systems to choose from, select Arch Linux and click the “Install” button. You will see a warning appear about over-writing all existing data, click “Yes”, it will start installing Arch on your system for you, sit back and grab a drink, when it’s done you will see a pop-up notifying you that the OS has been successfully installed, click “OK”.

The Pi will reboot and you will be greeted by a command line interface, log in using the username root and the password root. The first thing we will do is change the password :

# passwd

Change it to something memorable and secure. Arch uses a few files to control the startup scripts. These files are located in /etc. We need to do 2 things, change the timezone if necessary and give your pi a name.

The default timezone is “Europe/London”. If you live somewhere else, you can find the possible settings in the /usr/share/timezone/ directory. Find the subdirectory that describes where you live best, then find the file that corresponds to the location closest to you within your timezone :

# ls /usr/share/zoneinfo

# ls /usr/share/zoneinfo/America

These 2 commands would locate the timezone to America/New York, we now need to remove the old timezone link and create a new one :

# rm /etc/localtime

We now need to create a symlink to the timezone information :

# ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

We need to edit /etc/timezone so we will open it up using nano – a simple command line text editor and replace “Europe/London” with “America/New_York” :

# nano /etc/timezone

Press CTRL+X to exit, pressing Y to save and hitting ENTER when it asks for the name. Now we will change the name of the Pi :

# nano /etc/hostname

Change “alarmpi” to whatever name you would like to give your Pi, again hitting CTRL+X to exit and then pressing Y and ENTER to save. Because we changed the name of the Pi we need to edit the /etc/hosts file to reflect the name you have just chosen :

# nano /etc/hosts

You need to change the line that reads :

127.0.0.1 localhost.localdomain localhost yourhostname

Change “yourhostname” to whatever name you picked in the step previous to this one, once again exiting and saving. Now we will update the system using pacman. We need to create a pacman key first for this to work :

# pacman-key –init

NOTE – 2 dashes in front of init !!! So it should read <pacman-key><space><dash><dash><init> Thanks Julian Owens.

We need to create random entropy to help this process along, open a new terminal window with ALT+F2 and enter the following :

#ls -R / && ls -R / && ls -R /

You might have to do this a few times, keep switching back to the first console with ALT+F1 to check if it has generated a key yet, when it has we can update using this command :

# pacman -Syu

This will make pacman update your repositories and prompt you to update and software which may be out of date, once it is done you can reboot your pi using :

# reboot

That is the initial installation finished, these next steps are highly recommended if you haven’t used Arch Linux before. Log back into root using the username root and the password you specified earlier. Now we are going to install sudo :

# pacman -S sudo

To give your regular user permission to use sudo, you need to edit the configuration file using visudo:

# EDITOR=nano visudo

Locate the section marked as:

##

## User privilege specification

##

and uncomment the line below to say :

%wheel ALL=(ALL) ALL

Save and exit in the normal way.

Now we need to tell sudo that pi is allowed to use it. We will do this by adding the pi user to the sudo group :

# EDITOR=nano visudo

Locate the lines that are currently commented out as follows :

## Uncomment to allow members of group sudo to execute any command

# %sudo ALL=(ALL) NOPASSWD: ALL

Uncomment the second of the above lines, so that it reads as follows :

## Uncomment to allow members of group sudo to execute any command

%sudo ALL=(ALL) NOPASSWD: ALL

Save and Exit.

We will now create the regular user account but first we need to install adduser :

# pacman -S adduser

Now we will create the new user :

# adduser

Follow the on screen prompts; pick your username, using the next available UID is fine. Use the default users as the initial group. For additional groups, add the following :

audio,lp,optical,storage,video,wheel,games,power,scanner

The default home directory and shell are both fine. Unless you want one, don’t bother putting an expiration date in. The script will then ask you to confirm the entry as you’ve entered it. If all is satisfactory, continue to make the account, give the user a password, and add any other information it asks for as desired. Save and exit, then logout and back in :

# logout

login: newuser

password: yourpassword

$

(Note the change in prompt from # to $. This will help you know if you’re logged in as root or not.) From now on, you should use your regular user for everything. When root needs to do something on your system, use sudo. (The first time you use it, the display will show some general good behavior rules for its use.)

Now add a new group named sudo to the system and add the pi user to it:

# groupadd sudo

# usermod -a -G sudo your_username

And we can check if it stuck, with the following command:

# groups your_username

If all went well, you should see the full list of groups we set up when we created the pi user, and the new sudo group as well:

lp games video audio optical storage scanner power sudo users

When the pi user next logs in, or starts a new shell, then it will be allowed to use the sudo command.

To keep boot messages on the display follow this guide :

https://wiki.archlinux.org/index.php/Disable_Clearing_of_Boot_Messages

In Arch we use pacman to install packages. You can search for program names using :

$ pacman -Ss keyword

Install software with:

$ pacman -S program-name

If your keyboard is not set to the UK keymap please follow the first part of this guide :

http://qdosmsq.dunbar-it.co.uk/blog/2013/06/beginners-guide-to-arch-linux-on-the-raspberry-pi/

We will now install a window manager (Enlightenment) and a graphical login manager (SLiM). To install Enlightenment simply run :

$ sudo pacman -S enlightenment17 xf86-video-fbdev xf86-input-synaptics xorg-server xorg-server-utils xorg-xinit mesa xf86-input-keyboard xf86-input-mouse xterm

A ttf font is needed and should give you options to pick one during install. This is just in case you see that it did not.

To find all the ttf fonts available :

$ pacman -Ss ttf

or for simplicity :

$ sudo pacman -S ttf-dejavu

Now we will install the SLiM login manager and make it start automatically at boot :

$ sudo pacman -S slim

Now we have to enable the SLiM daemon by running this command :

$ sudo systemctl enable slim.service

From here you need to tell SLiM which environment it should be loading. You do this by editing your .xinitrc file :

$ sudo nano ~/.xinitrc

Add or uncomment the following, making sure there is only one exec for an environment uncommented :

exec enlightenment_start

Now just reboot :

$ reboot

From here you can further configure both SLiM and Enlightenment to your exact visual needs.

Login using the details you provided when you created your user, you should be at a graphical login. It will ask you for your keyboard layout and language on first login as well as these other options; window sizing,window focus,compositing,updates and if you want a taskbar. With Enlightenment the preferred network manager is connman. You do not need to use this, but for a GUI tool to configure your network you will need to install one of the following. Then configure them. I will just show what is preferred with Enlightenment :

$ sudo pacman -S connman

$ sudo systemctl enable connman

Alternative Network Managers :

$ sudo pacman -S wicd

$ sudo pacman -S networkmanager network-manager-applet

If you prefer to use a different terminal you can install it now, e.g :

$ sudo pacman -S lxterminal

A good lightweight browser is netsurf, install it with :

$ sudo pacman -S netsurf

Your system should now look something like this :

screenshot

You can install conky following this guide from the Arch wiki, check out this blog for a nice conkyrc to use with your Pi. For a list of other applications check out this link :

https://wiki.archlinux.org/index.php/List_of_Applications

Have a look through for some ideas, the only thing i would suggest is try not to install anything too resource heavy unless you plan on overclocking your Pi. You could always try installing DOOM using my guide if you fancy a bit of fun :

https://hreikin.wordpress.com/2013/12/18/doom-on-arch-linux/

One last thing and this is IMPORTANT; you will need this command to shutdown your Pi :

$ sudo shutdown -h now

Now go out and have fun exploring the world’s of Arch and the Raspberry Pi.


12 thoughts on “Arch Linux Raspberry Pi Install Guide – Enlightenment + SLIM

  1. Thanks for all the effort you put into this walkthrough. I tried to set things up according to this, and end up with the login screen, which is pinkish/reddish with artwork on it, but I do not get any further than this. It goes to a black screen when I log in, and then after a while goes back to the login screen. I had originally set things up without swap, but when I added swap, it didn’t help. I had thought of moving over to Arch for my ARM hardware, simply because ArchLinux ARM is taking ARM quite seriously, but I don’t have enough time for all this configuration and troubleshooting. A ready-to-roll image would be great.

    Like

    1. to me it looks like you may have messed up somewhere around here :

      From here you need to tell SLiM which environment it should be loading. You do this by editing your .xinitrc file :

      $ sudo nano ~/.xinitrc

      Add or uncomment the following, making sure there is only one exec for an environment uncommented :

      exec enlightenment_start

      the best place for support is the arch wiki (https://wiki.archlinux.org/) or the forums (https://bbs.archlinux.org/)

      i don’t know if there is a pre configured image available for just a vanilla arch linux arm based distro for the pi (there may be for other arm versions) but you could try this out :

      https://archassault.org/

      i haven’t tried it myself but from what i can gather it has everything pre configured for you it is just geared towards penetration testing rather than a vanilla desktop OS

      If you have anything which isn’t arm based you could try archbang as an easier way to install a preconfigured arch desktop but it doesn’t support arm unfortunately

      Like

  2. Hi,
    Great tutorial. I followed it till download of enlightenment.I am getting error with 3 packages while downloading.
    The packages are gnutls-3.3.9-1-armv6h.pkg.tar.xz, xorg-server-common-1.16.1-1-1-armv6h.pkg.tar.xz, xorg-server-1.16.1-1-armv6h.pkg.tar.xz.
    I am getting ‘404 not found’ error while trying to retrieve these files from mirror.archlinuxarm.org.
    Please let me know what are the alternative steps I can follow to install it.

    Like

    1. i dont have my pi available to help test this but here are a couple of suggestions:

      check /etc/pacman.conf to make sure you have the repos uncommented and then save/exit

      update with pacman -Syu then try installing again, you should be able to install those packages as far as i am aware, however the guide is a little old, you could try the updated version of the guide available here:

      https://hreikin.wordpress.com/2014/04/27/arch-linux-raspberry-pi-install-guide-updated/

      it looks similar but there are slight differences !

      Like

  3. Thanks for your reply.
    I have completed your second guide successfully for installing LXDE but I don’t like LXDE as it is slow. I want a very lightweight GUI which should be fast.I want to use it for teaching purposes.
    Also I read somewhere that Raspberry pi is replacing X window with wayland/weston. Please let me know your views on these things also.

    Like

    1. Lxde is not slow ! The specs of the raspberry pi make it slow as it is low on ram, etc. You should be able to replace lxde with enlightenment in the second guide and it should work

      Pis arent fast, if you want desktop like performance but at a similar cost (slightly higher) to a pi try an odroid or something similar

      As for wayland/weston i cant comment as i havent played with it yet

      Like

    2. As Mic suggested, you need to check your pacman.conf file. I had the same issue and after a while of digging through the arch mirror, I found that the extras repo was missing in my pacman.conf

      just add these two lines in the pacman.conf under the other repos
      [extra]
      Include = /etc/pacman.d/mirrorlist

      then run pacman -Syu
      and
      pacman -S xterm

      hth

      Like

Leave a comment