Howto install Debian GNU/Linux on HTC Universal


What follows is my personal experince in installing GNU/Linux on a HTC Universal pocketpc. I used Titchy Linux, a Debian Lenny based distribution with special drivers/config for HTC Universal. But the heart is Debian, and full support to Debian repois is grated.

Actually the only not working hardware is:
-wifi sometimes works, sometimes doesn’t, the driver is unstable.

First of all, I splitted a 1Gb SD memory stick into two partitions: the first with 32Mb of size and FAT32 filesystem, the second an ext2 filesystem in all the remaining space. In this way, I can port all my config in another HTC (launcher and Linux installation) and show the magic of Linux to all of my Universal-friends. If you need some shared data on memory card, between Windows Mobile and Linux, simply make the FAT32 partition bigger and use it for storing these data.

I followed the steps in Titchy wiki for Universal installation and I copied haret.exe, zImage and startup.txt in the FAT32 memory stick partition. After 30 minutes, thanks to Titchy image, my HTC Universal booted with Linux. Included in the image a very nice sms /calling graphical interface, access to it pressing the green phone key. That’s all, have fun!

For alternative install (no xfce file manager, encripted home partition and lot of tricks) there is another great resource, with lot of useful post-configurations. Be sure to read the Titchy wiki for UMTS and Bluetooth access to the Internet.

: The HTC Universal has only 64 Mb of ram, and the base system, with
textual console, uses 12 Mb of it. XFCE installed by Titchy is nice, but the ram
consumption arrive to 40 Mb and the system responsivity is very bad.
With IceVM, instead, the totat used ram is 24 Mb and the system
responsivity is still good.

And now, general tip’s tricks.


For software and drivers update, i need to connect HTC to my pc via
USB, and from my pc to the Internet. Obviusly, in the Titchy wiki,
there is the solution:

Check for this lines in /etc/network/interfaces file on pocketpc:

allow-hotplug usb0
iface usb0 inet static
post-up echo nameserver > /etc/resolv.conf

And run these commands in your pc:

ifconfig usb0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -j ACCEPT
iptables -t nat -A POSTROUTING -s -o eth0 -j MASQUERADE

If you prefer to have a working internet connection as soon as you plug
the Univesal USB cable into pc, just add these lines in your /etc/network/interfaces file, for Debian and Ubuntu derived distro (full disclosure here):

auto usb0
iface usb0 inet static
echo 1 > /proc/sys/net/ipv4/ip_forward; iptables -D FORWARD -j
ACCEPT; iptables -t nat -A POSTROUTING -s -o eth0 -j MASQUERADE

(pay attention to network address and interface name, 192.168.0.x and eth0 in the example)


Install ssh server and client metapackage with apt-get install ssh


apt-get install ntpdate

edit /etc/default/ntpdate and set to NO the value of NTPDATE_USE_NTP_CONF
hwclock –systohc


Titchy Linux use xdm and root access to the graphic environment. The first only consumes ram, and the second is a very bab security practice.

For first issue, change the runlevel to 2 for a normal text startup, editing the /etc/inittab file and setting 2 as default runlevel. For second issue i must create another user in the system and set xwindows to correctly start with this new user:
adduser legolas
echo “sudo /etc/X11/X” > /usr/bin/X
chmod 755 /usr/bin/X

If you obtain a similar error message: error /etc/X11/xinit/xserverrc: line 5: exec: /usr/bin/X11/X: cannot execute: No such file or directory, the solution is here:
ln -s /etc/X11/X /usr/bin/X11/X

icewm is a light and simple windows managar and, at least for me, is a better choice for the limited resource of HTC Universal. Install it with apt-get install icewm icewm-gnome-support icewm-theme.

if you need to recalibrate the screen, first delete a file with rm /etc/ts.conf and the run ts_calibrate.



Icehamster installation (a light web browser based on Mozilla Minimo).

Base office software: apt-get install abiword gnumeric xpdf claws-mail sylpheed mousepad

Compact/decompat utiliies: apt-get install grun zip unzip bzip2 arj

Misc useful things: apt-get install sudo gsudo

And, finally, a big thanks to Fabio for the HTC ;)

3 thoughts on “Howto install Debian GNU/Linux on HTC Universal

  1. Fabio, ci credi se ti dico che e’ da agosto 08 che ho questo post nelle bozze e non ho mai trovato il tempo, fino ad oggi, di rifinirlo per bene? :roll

    Comunque far girare un sistema operativo completo su un aggeggino del genere, seppur con tutte le limitazioni delll’hardware, e’ una cosa davvero interessante… Grandi cose ci aspettano in ambito mobile ;)

  2. I like lxde session! But the best works ICEWM + Lxlauncher!!! bad bot wifi can someone solved this problem or knows how to configure or reinstall the driver!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.