This is a guide to setup a recent Ubuntu system on a Utilite ARM computer, to replace the official Ubuntu 12.04 OS.
Prerequisites
- You need to prepare a [kernel with cgroups](/?p=1073 "Building a new Linux kernel for your Utilite Computer") support.
- An ARM bootable microSD or USB. You can use the official Ubuntu 12.04 [Linux Utilite Image](http://www.compulab.co.il/utilite-computer/wiki/index.php/Utilite_Linux_Image "Linux Utilite Image") on the removable device.
- Backup any data you have on the original system!
Preparations
- Boot from microSD or USB.
-
Update the system and install
debootstrap
:$ sudo apt-get update $ sudo apt-get install debootstrap
- Mount the SATA root filesystem on /mnt:
$ sudo mount /dev/sda2 /mnt
- Clear the filesystem:
Note
Make sure you save any data you need, before doing this!.$ sudo rm -fr /mnt/*
Installation of an Ubuntu or Debian base system
- Use
debootstrap
to install the Ubuntu base system:$ sudo debootstrap --foreign --arch=armhf trusty /mnt http://ports.ubuntu.com/
You can use vivid instead of trusty if you are feeling adventurous.
For a Debian system use this command instead:
$ sudo debootstrap --foreign --arch armhf jessie /mnt http://ftp.uk.debian.org/debian
You can use stretch or sid instead of jessie if you are feeling lucky.
-
Chroot into the new system:
$ sudo mount -o bind /dev /mnt/dev $ sudo mount -o bind /dev/pts /mnt/dev/pts $ sudo mount -t sysfs /sys /mnt/sys $ sudo mount -t proc /proc /mnt/proc $ sudo cp /proc/mounts /mnt/etc/mtab $ sudo chroot /mnt
- Second stage
debootstrap
:After you enter the chroot jail, we need to complete the second stage of the base setup:
# /debootstrap/debootstrap --second-stage
Installing additional packages
- Setup the correct timezone:
# dpkg-reconfigure tzdata
- Add repositories in /etc/apt/sources.list.
-
For Ubuntu:
deb http://ports.ubuntu.com/ trusty main restricted universe multiverse deb http://ports.ubuntu.com/ trusty-security main restricted universe multiverse deb http://ports.ubuntu.com/ trusty-updates main restricted universe multiverse deb http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse deb-src http://ports.ubuntu.com/ trusty main restricted universe multiverse deb-src http://ports.ubuntu.com/ trusty-security main restricted universe multiverse deb-src http://ports.ubuntu.com/ trusty-updates main restricted universe multiverse deb-src http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse
- For Debian:
deb http://ftp.uk.debian.org/debian jessie main contrib non-free deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://ftp.uk.debian.org/debian jessie main contrib non-free deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free
- Run update after adding the repositories:
# apt-get update
- Install additional software.
- We need to create a fake
/sbin/initctl
to prevent apt from breaking:# dpkg-divert --local --rename --add /sbin/initctl # ln -s /bin/true /sbin/initctl
- Install the software you need:
# apt-get -y install language-pack-en ssh isc-dhcp-client net-tools man lsof less
- Remove the fake
/sbin/initctl
:# rm /sbin/initctl # dpkg-divert --local --rename --remove /sbin/initctl
- Setup users:
# passwd root # useradd -m -s /bin/bash utilite # passwd utilite # usermod -a -G adm,cdrom,sudo,dip,plugdev utilite
- Setup a kernel:
Now you need to deploy the [kernel we prepare earlier](/?p=1073#toc-deploy-the-tarball "Building a new Linux kernel for your Utilite Computer") and reboot.
Choose a role for your system
-
After you reboot you may find that networking is not working. If you are in a dhcp enabled network run
dhclient
to get an IP address:# dhclient
- Upgrade the system to the latest upgrades:
# apt-get update # apt-get -y dist-upgrade
- Check the available roles
-
On Ubuntu you may want to install
tasksel
(already installed on Debian):# apt-get install tasksel
-
See the available roles on Ubuntu:
# tasksel --list-tasks
i server Basic Ubuntu server
i openssh-server OpenSSH server
u dns-server DNS server
u lamp-server LAMP server
u mail-server Mail server
u postgresql-server PostgreSQL database
u print-server Print server
u samba-server Samba file server
u tomcat-server Tomcat Java server
u cloud-image Ubuntu Cloud Image (instance)
u virt-host Virtual Machine host
u ubuntustudio-graphics 2D/3D creation and editing suite
u ubuntustudio-audio Audio recording and editing suite
u edubuntu-desktop-gnome Edubuntu desktop
u kubuntu-active Kubuntu Active
u kubuntu-desktop Kubuntu desktop
u kubuntu-full Kubuntu full
u ubuntustudio-font-meta Large selection of font packages
u lubuntu-desktop Lubuntu Desktop
u lubuntu-core Lubuntu minimal installation
u mythbuntu-frontend Mythbuntu frontend
u mythbuntu-backend-master Mythbuntu master backend
u mythbuntu-backend-slave Mythbuntu slave backend
u ubuntustudio-photography Photograph touchup and editing suite
u ubuntustudio-publishing Publishing applications
u ubuntu-gnome-desktop Ubuntu GNOME desktop
u ubuntu-desktop Ubuntu desktop
u ubuntu-usb Ubuntu desktop USB
u ubuntustudio-video Video creation and editing suite
u xubuntu-desktop Xubuntu desktop
u edubuntu-dvd-live Edubuntu live DVD
u kubuntu-active-live Kubuntu Active Remix live CD
u kubuntu-live Kubuntu live CD
u kubuntu-dvd-live Kubuntu live DVD
u lubuntu-live Lubuntu live CD
u ubuntu-gnome-live Ubuntu GNOME live CD
u ubuntustudio-dvd-live Ubuntu Studio live DVD
u ubuntu-live Ubuntu live CD
u ubuntu-usb-live Ubuntu live USB
u xubuntu-live Xubuntu live CD
u manual Manual package selection -
See the available roles on debian:
$ tasksel --list-tasks i desktop Debian desktop environment u gnome-desktop GNOME u xfce-desktop Xfce u kde-desktop KDE u cinnamon-desktop Cinnamon u mate-desktop MATE i lxde-desktop LXDE u web-server web server u print-server print server u ssh-server SSH server u laptop laptop
- Choose a role.
If you would like a Desktop system, I suggest you choose something light like lubuntu-desktop or lxde-desktop.
-
Installing Lubuntu (Ubuntu):
# tasksel --task-packages lubuntu-desktop | xargs apt-get -y install
I prefer this method rather than the [TUI](https://en.wikipedia.org/wiki/Text-based_user_interface "Text-based User Interface") of tasksel, so as to have better overview and control of the process. Keep an eye on it every now and then, because it will ask you about keyboard-configuration and other questions. Select the default settings if you are unsure.
-
Installing LXDE Desktop (Debian):
# apt-get install task-lxde-desktop network-manager
For Desktop systems it may be a good idea to install network-manager as well.
-
Add the vivante GPU module on startup:
# echo vivante >> /etc/modules
After you finish you can reboot your system and start playing.
References
- https://github.com/umiddelb/armhf/wiki/Installing-Ubuntu-14.04-on-the-utilite-computer-from-scratch
- https://wiki.debian.org/InstallingDebianOn/CompuLab/PC-Utilite/wheezy
2 replies on “Setup a new Ubuntu or Debian system on the Utilite”
Hello Theodos!
Thank you for this article, it helped me on switching from Arch Linux ARM to Ubuntu 14.04 LTS on my Utilite home server. Few remarks and hints:
1) If you use the official Ubuntu 12.04 Linux Utilite Image, the bootstrap version is too old and you cannot update the system to Debian Jessie. If you have advice how to install newer version which support it would be nice.
2) Adding reposities for apt was a pain for newbie because you have to use vi editor instead something simpler like nano/pico. Google can help of course…
3) After install the user account “utilite” was not functional (could not even log in with it), I’ve had to re-create it afterwards.
I did no have time to compile kernel my self -> I’ve just used the Arch Linux Arm kernel from the installation package and renamed it. At least server system which need only the network interface seems to work ok.
Hi!
I am glad you found it useful :).
It’s been a long time when I did this so not sure. I guess you could build a user space chroot jailed Ubuntu 14.04 under 12.04 and run
debootstrap
inside there. Obviously an overkill but a nice drill if you have the time to play.You can run this:
These commands didn’t work in the first place?
Kernels are generally independent from user space programs so I am not surprised :).