Help - Search - Members - Calendar
Full Version: Htc Universal
OESF Forums > Distros, Development, and Model Specific Forums > Distro Support and Discussion > Debian
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
datathief
I've been using an HTC Universal for a month now, and I've all but forgotten about my poor Zaurus. ohmy.gif

Pros:
  • Runs Debian EABI, including X.
  • About the same size as a clamshell Zaurus.
  • 640x480 screen.
  • I get about 9 hours life with the extended battery.
  • Was sold in Europe, and it's still easy to get accessories.
  • No touchscreen jitter.
  • Backlit keyboard.
  • Built-in Wifi, Bluetooth and GPRS/UMTS for internet access almost anywhere.
Cons:
  • Stuck at 2.6.21 (not a major problem).
  • Wifi driver is unstable.
  • Running from an SD card is slow.
  • No USB Host, CF or SD (SD socket is occupied because you can't install on the internal flash).
  • Takes some hacking to get everything working.
Does anyone else here have one of these? Would there be any interest in creating a Debian "distro" for it?

Update: See here for progress so far.

Update 2: I've uploaded a Debian package to install the keymap, power management, sound and phone functions here.
ZDevil
Wow. That's sounds really cool. Any pointer to setting it up?
Can you get phone functionality when running Debian?
datathief
QUOTE(ZDevil @ Apr 3 2008, 11:38 PM) *
Wow. That's sounds really cool. Any pointer to setting it up?
Can you get phone functionality when running Debian?


For a basic install:
  • Get a kernel and modules here (untar the rootfs, look in /boot for the kernel and /lib/modules for the modules).
  • Format an SD card (I think the above kernel supports ext2 and ext3) and put the Debian rootfs on it (I used debootstrap from my Zaurus), and copy in the modules.
  • Get a copy of HaRET.
  • Put HaRET (haret.exe), the kernel (zImage), and a config file (default.txt; see below) on the Universal. Insert the SD card, and run haret.exe.

The HaRET config file, default.txt:
CODE
set kernel "zImage"
set mtype "855"
set cmdline "root=/dev/mmcblk0p1 rw console=tty0 rootdelay=5 fbcon=rotate:1"
boot2


This was enough to get Debian to boot. USB networking works. Wifi works best if you set the speed to 1Mbps using iwconfig (I have to do this after associating with the AP). The keyboard goes a bit weird after suspending (there's a fix here).

The modem accepts AT commands over one serial port and exchanges data with pppd over a different serial port, so GPRS is tricky. I've written a daemon to handle this. In theory, it should be easy to add the ability to make and receive voice calls and SMS, but the interface needs some thought. Probably best to keep it simple - a command-line tool to dial, pick up, hang up and send SMS, and an interface like /etc/apm/ to handle events (incoming call, SMS). That should be enough for me to use it as my only phone.
ShiroiKuma
QUOTE(datathief @ Apr 4 2008, 12:53 PM) *
The modem accepts AT commands over one serial port and exchanges data with pppd over a different serial port, so GPRS is tricky. I've written a daemon to handle this. In theory, it should be easy to add the ability to make and receive voice calls and SMS, but the interface needs some thought. Probably best to keep it simple - a command-line tool to dial, pick up, hang up and send SMS, and an interface like /etc/apm/ to handle events (incoming call, SMS). That should be enough for me to use it as my only phone.

So, if I understand it correctly, you cannot use it currently as a normal phone? I.e. accept and make calls and send/receive SMS/MMS?

BTW the Universal has UMTS, as you mention in your fist post?

Can you workingly use GPRS, i.e. connect to the web easily?
speculatrix
very interesting to hear of progress on the HTC uni. it seemed so promising when started, shame it's only reached ?90%?

maybe with google android coming out on HTC devices, it will be possible that HTC will provide linux drivers for their hardware?
ArchiMark
Sounds interesting, datathief.....

How is the keyboard and display?

Also, is there handwriting recognition app available if you run linux?

Keep us posted....

smile.gif
scheck.r
QUOTE(ArchiMark @ Apr 11 2008, 04:03 AM) *
Sounds interesting, datathief.....

How is the keyboard and display?

Also, is there handwriting recognition app available if you run linux?

Keep us posted....

smile.gif

Yes , there is cellwriter
datathief
QUOTE(ArchiMark @ Apr 11 2008, 02:03 AM) *
How is the keyboard and display?

The keyboard is slightly noisy ("clicky"), but perfectly usable. The screen isn't quite as bright as my Zaurus, but is otherwise very similar (same size, resolution, etc.). I'm running screen, mutt and finch, but X works fine. I haven't tried cellwriter for handwriting recognition, but it's in the Debian repos.
datathief
QUOTE(ShiroiKuma @ Apr 10 2008, 08:24 PM) *
So, if I understand it correctly, you cannot use it currently as a normal phone? I.e. accept and make calls and send/receive SMS/MMS?

Not yet. I almost have basic SMS send/receive working. Once I can make and receive calls too, the Universal will be my primary phone.

QUOTE
BTW the Universal has UMTS, as you mention in your fist post?

Yes. I'm getting 384kbit/s in good conditions.

QUOTE
Can you workingly use GPRS, i.e. connect to the web easily?

Yes. I'll publish my daemon that handles this soon.
ShiroiKuma
Wow, I think I'm gonna go buy this phone...

Do you have any sources of info, or is your main one http://forum.xda-developers.com/showthread...178#post1680178

QUOTE(datathief @ Apr 14 2008, 04:15 PM) *
QUOTE(ShiroiKuma @ Apr 10 2008, 08:24 PM) *
So, if I understand it correctly, you cannot use it currently as a normal phone? I.e. accept and make calls and send/receive SMS/MMS?

Not yet. I almost have basic SMS send/receive working. Once I can make and receive calls too, the Universal will be my primary phone.


Checking at http://www.handhelds.org/moin/moin.cgi/UniversalStatus specifically with GPE/x11 it says phone calls are working. Yet it says SMS isn't. Can you give any pointers on what you've done to get SMS functionality, and what "almost" means in terms of SMS functionality?

QUOTE
QUOTE
Can you workingly use GPRS, i.e. connect to the web easily?

Yes. I'll publish my daemon that handles this soon.

Great, how soon do you expect to be able to publish this?
datathief
QUOTE(ShiroiKuma @ Apr 14 2008, 09:34 PM) *
Checking at http://www.handhelds.org/moin/moin.cgi/UniversalStatus specifically with GPE/x11 it says phone calls are working. Yet it says SMS isn't. Can you give any pointers on what you've done to get SMS functionality, and what "almost" means in terms of SMS functionality?

I've successfully sent and received SMS messages, and made and received calls, using standard AT commands. It all works, it's just not integrated with GPE etc.

I'm not interested in GPE, QTopia or OpenMoko, so I'm writing a daemon and command-line tools to handle GPRS, calls and SMS (GPRS and incoming SMS are working already). I should have something usable in the next few days, though it will probably still be buggy.
ShiroiKuma
QUOTE(datathief @ Apr 15 2008, 01:18 AM) *
I'm not interested in GPE, QTopia or OpenMoko, so I'm writing a daemon and command-line tools to handle GPRS, calls and SMS (GPRS and incoming SMS are working already). I should have something usable in the next few days, though it will probably still be buggy.

OK, how are you gonna integrate it into the phone interface? Hardware keys? Or do you assume, you'll accept calls etc via shell scripts? Or do you have a simple graphical frontend?

Referring further to your first post, I sorta assumed you were using GPE or sorts... How did you install debian, is there a rootfs tarball somewhere, or how did you proceed?

Which WM are you using, since you are not inclined the GPE way? IceWM?

Here's a thought, if you'd go the hardware keys phone functionality integration, how about ratpoison? Is this too radical for a phone?
datathief
QUOTE(ShiroiKuma @ Apr 15 2008, 08:55 AM) *
OK, how are you gonna integrate it into the phone interface? Hardware keys? Or do you assume, you'll accept calls etc via shell scripts? Or do you have a simple graphical frontend?

In X, I can imagine using zenity or similar. Use xmodmap to map the hardware keys to Enter and Escape. Pop up a dialog (while vibrating and/or playing a ringtone) for an incoming call. Enter accepts the call, Escape rejects it.

I don't intend to focus on the user interface. All I need is a "backend" that I can integrate into my own environment, however I want.

QUOTE
How did you install debian, is there a rootfs tarball somewhere, or how did you proceed?

See my second post in this thread.

QUOTE
Which WM are you using, since you are not inclined the GPE way? IceWM?

I'm not using X at all.
ShiroiKuma
QUOTE(datathief @ Apr 15 2008, 01:07 PM) *
I don't intend to focus on the user interface. All I need is a "backend" that I can integrate into my own environment, however I want.

Sounds reasonable.
QUOTE
QUOTE
How did you install debian, is there a rootfs tarball somewhere, or how did you proceed?

See my second post in this thread.

Doh... ohmy.gif)

Is there a difference between using the Opie exe or the cabs from other directories, i.e. PhoneGPE, whatever that is, etc.?

QUOTE
I'm not using X at all.

Why do you not use X at all? Are you using Opie, or plain console? For performance reasons, or what are the considerations?
ShiroiKuma
QUOTE(datathief @ Apr 14 2008, 04:15 PM) *
QUOTE
Can you workingly use GPRS, i.e. connect to the web easily?

Yes. I'll publish my daemon that handles this soon.

I'm getting the phone today. Can you publish even a work in progress of this daemon - so that one may get started utilizing the GPRS in debian? Also maybe the WIP of the call/sms daemon?
ZDevil
Cool! I am also going to receive it from ebay soon! Now we have a nice debian/zaurus-alternative.
This is gonna be my third handheld running debian eabi... am i mad?
ShiroiKuma
laugh.gif
You're not mad man, it's the way to go.

I've basically given up on the zaurus, as I've been tired of having a phone and a Z around for everything. But this Universal is very close to the ideal convergence gadget it seems. I've waited long for GNU/Linux to be workable on a mobile phone and this thread has given me the impetus.

Now if we can really get the GPRS and phone/sms to be able to connect from the Universal to the web and do hacking, it'll be good.

From http://forum.xda-developers.com/showthread.php?t=251584 it seems GNU/Linux on the Universal has matured to the usable stage as also a phone, but I didn't fancy using Qtopia, as I feel I need X, but datathief's confirmation that he's got it useable has gotten me started.

Let's see how far we can get going with this. BTW, I'm planning to use your clean configured rootfs tarball for the debian bootstrap on the Universal, but I anticipate problems could maybe occur with it, don't know...

What's your approach gonna be? Use it too, or start from scrach?
ZDevil
If there is enough interest, we can ask for a new HTC Universal subforum? wink.gif
datathief
QUOTE(ShiroiKuma @ Apr 16 2008, 07:48 AM) *
QUOTE(datathief @ Apr 14 2008, 04:15 PM) *
QUOTE
Can you workingly use GPRS, i.e. connect to the web easily?

Yes. I'll publish my daemon that handles this soon.

I'm getting the phone today. Can you publish even a work in progress of this daemon - so that one may get started utilizing the GPRS in debian? Also maybe the WIP of the call/sms daemon?

I've got calls and SMS working (no caller ID yet, but my Uni is now my primary phone). I'll be putting it on the web today - watch this space smile.gif
ZDevil
Just curious: How long does the battery last when the device is running Debian with phone functionalities? Is there any way to save power when just using the phone parts?
ZDevil
QUOTE(ShiroiKuma @ Apr 16 2008, 11:05 AM) *
What's your approach gonna be? Use it too, or start from scrach?

I think I will first do debbootstrap to get a ext2-compatible kernel. Then I will put my customized rootfs on my 4GB SD.
I will also try to install the same GUI (work in progress... 90% done) on it. wink.gif
datathief
QUOTE(ZDevil @ Apr 16 2008, 09:33 AM) *
Just curious: How long does the battery last when the device is running Debian with phone functionalities? Is there any way to save power when just using the phone parts?

I have the phone module always running - it wakes the main processor when there's an incoming call. I'm using the official extended battery (3800mAh), and after a day's use (including three or four hours connected to the internet via UMTS) it's usually still well above 50%. I think the battery charge drops by less than 0.5% per hour when suspended.

The standard battery is 1620mAh, so I would estimate:
100 hours standby
3 hours internet/calls

That's about half the "official" numbers, and I haven't tested it properly, so YMMV.
ZDevil
That's impressive ... Now i am thinking of buying a 4800mAh extended battery, which is cheap (US$25).
ShiroiKuma
QUOTE(ZDevil @ Apr 16 2008, 12:03 PM) *
I think I will first do debbootstrap to get a ext2-compatible kernel. Then I will put my customized rootfs on my 4GB SD.
I will also try to install the same GUI (work in progress... 90% done) on it. wink.gif

I guess I'm not following, what does doing debootstrap to get an ext2-compatible kernel mean in this instance. I thought you'd use the Qtopia directory kernel from the above site and what's the need for debootstrapping then?
ZDevil
Oops. Stupid me. I am confusing things here. tongue.gif
True. debbootstrap just gets the basic rootfs.
ZDevil
Two pointers:

http://forum.xda-developers.com/index.php
http://forum.xda-developers.com/forumdisplay.php?f=247

It's yet another vibrant handheld community like here!
ShiroiKuma
QUOTE(ZDevil @ Apr 16 2008, 12:59 PM) *
Oops. Stupid me. I am confusing things here. tongue.gif
True. debbootstrap just gets the basic rootfs.


Yep, so what's the advantage of doing it over reusing your old rootfs from the Zaurus? Customization for the Z too Z-oriented, so better start from scratch? If so, how about the rootfs from http://www.oesf.org/forum/index.php?showtopic=25421 This is not Z customized, so shouldn't it be a good start?
ShiroiKuma
QUOTE(datathief @ Apr 16 2008, 11:26 AM) *
I've got calls and SMS working (no caller ID yet, but my Uni is now my primary phone). I'll be putting it on the web today - watch this space smile.gif

Allright, it's up rolleyes.gif

Thanks a lot for your daemon, I'll begin testing tonight.
datathief
QUOTE(ShiroiKuma @ Apr 16 2008, 11:39 AM) *
Thanks a lot for your daemon, I'll begin testing tonight.

Let me know how it goes. The code may be a bit untidy still, but it should be quite hackable if you need to.
ZDevil
Great page. Thanks again, Mr. Titchy. smile.gif
ShiroiKuma
QUOTE(datathief @ Apr 16 2008, 01:50 PM) *
Let me know how it goes. The code may be a bit untidy still, but it should be quite hackable if you need to.

Yep, I'll report back on the process...
ZDevil
Hoho ... I am reading the chapter in the Service Manual (CONFIDENTIAL) on how to dismantle the device. It's so well-written and idiot-proof!
I've got a very cheap new replacement black case and keyboard (around ~EUR 15), together with a beefy batter, for my arriving 2nd MDA Pro. So it will look brand new and cool again. biggrin.gif
ArchiMark
QUOTE(datathief @ Apr 14 2008, 07:09 AM) *
QUOTE(ArchiMark @ Apr 11 2008, 02:03 AM) *
How is the keyboard and display?

The keyboard is slightly noisy ("clicky"), but perfectly usable. The screen isn't quite as bright as my Zaurus, but is otherwise very similar (same size, resolution, etc.). I'm running screen, mutt and finch, but X works fine. I haven't tried cellwriter for handwriting recognition, but it's in the Debian repos.


Thanks for the input, datathief....

So, main reason I assume that main reasons for using HTC Universal over Z is that it has built-in WiFi/BT and phone functions, right?

If I don't need phone function, then given that I use WiFi card or ethernet card with my 3200/Debian EABI, is there much reason to consider getting the HTC Universal?

Isn't performance better running Debian EABI on my 3200 on internal HD vs running it on a SD card on the HTC?

Thanks,

Mark
Somewhat tempted to get HTC Universal..... wink.gif
ZDevil
In terms of specs the Z and the HTC Universal have edges over each other:

Pros for the Z: CF slot, internal disk space, better quality screen.

Pros for the Universal: a full range of connectivity options, SDIO (and higher SD interface?), keyboard w/ backlight, faster processor (PXA270@520MHz), dual-camera, microphone, Transflective TFT, more power options (up to 4800 or even 5200 mAh!)

Otherwise, their weight, form factor, dimensions, pocketability and now compatibility with linux are very similar.
Then again, personally the Universal has more cool factors and feels more geeky. The Z just seems to be getting older and older now...
ArchiMark
QUOTE(ZDevil @ Apr 16 2008, 12:02 PM) *
In terms of specs the Z and the HTC Universal have edges over each other:

Pros for the Z: CF slot, internal disk space, better quality screen.

Pros for the Universal: a full range of connectivity options, SDIO (and higher SD interface?), keyboard w/ backlight, faster processor (PXA270@520MHz), dual-camera, microphone, Transflective TFT, more power options (up to 4800 or even 5200 mAh!)

Otherwise, their weight, form factor, dimensions, pocketability and now compatibility with linux are very similar.
Then again, personally the Universal has more cool factors and feels more geeky. The Z just seems to be getting older and older now...


Thanks for all that feedback, ZDevil!

So, Universal is sounding more and more tempting.....

Hmmm........


wink.gif
datathief
Some notes on Linux support for the HTC Universal:

QUOTE(ZDevil @ Apr 16 2008, 07:02 PM) *
a full range of connectivity options

I haven't tried bluetooth yet. Wifi works, but the driver is flaky (can be worked around). GPRS/UMTS works nicely.

QUOTE
SDIO (and higher SD interface?)

The SD card slot is occupied when running Linux (there's no way to install to the internal flash yet).

QUOTE
keyboard w/ backlight

One of my favourite features. smile.gif

QUOTE
faster processor (PXA270@520MHz)

cpufreq works, too.

QUOTE
dual-camera

No camera drivers yet. Apparently a Motorola phone uses the same camera, and there's a driver for that somewhere. My next project, I think...

QUOTE
microphone

Works under ALSA.

QUOTE
Transflective TFT

I'll see how this works out when summer comes...

QUOTE
more power options (up to 4800 or even 5200 mAh!)

I had some apm problems when I installed a 3800mAh battery, but once I charged and discharged it completely (to re-calibrate the charging controller) it works fine.
garmiste
The Universal looks more and more tempting. I have been getting tired hauling around a PDA AND a phone. The geek factor gets really high when I carry a PDA, cell phone, and a ham radio on my belt. Now this has me thinking... if I could run packet radio with a Universal and my radio, do APRS from the car with a built-in GPS... hmmmm.
ZDevil
@datathief:
Thanks for the update again.
I saw you mentioning that running the roofts off SD is a bit slow. Can you give us more specific info? In fact I find the speed running Debian EABI off SD on the Z is still quite acceptable. It seems unlikely that the speed of the SD interface on the Universal is lower than the Z's. If speed is acceptable then running X shouldn't be a big deal.
datathief
QUOTE(ZDevil @ Apr 16 2008, 09:20 PM) *
@datathief:
Thanks for the update again.
I saw you mentioning that running the roofts off SD is a bit slow. Can you give us more specific info? In fact I find the speed running Debian EABI off SD on the Z is still quite acceptable. It seems unlikely that the speed of the SD interface on the Universal is lower than the Z's. If speed is acceptable then running X shouldn't be a big deal.

It feels noticeably slower to load apps than my Zaurus - but not unacceptably so.

CODE
root@universal:~# hdparm -Tt /dev/mmcblk0

/dev/mmcblk0:
Timing cached reads:    30 MB in  2.01 seconds =  14.93 MB/sec
Timing buffered disk reads:    4 MB in  3.32 seconds =   1.20 MB/sec
ZDevil
Okay. For clearer comparison here are the results of the same test I ran earlier on and posted in another thread:

#1 Hitachi microdrive 6gb
CODE
/dev/hdc1:
Timing cached reads:   168 MB in  2.02 seconds =  83.17 MB/sec
Timing buffered disk reads:    6 MB in  3.26 seconds =   1.84 MB/sec


#2 Sandisk Extreme III CF 16gb
CODE
/dev/hda1:
Timing cached reads:   164 MB in  2.01 seconds =  81.59 MB/sec
Timing buffered disk reads:    8 MB in  3.26 seconds =   2.45 MB/sec


My question: Does the speed of the SD matter on the Universal, as it doesn't on the Z?
datathief
QUOTE(ZDevil @ Apr 16 2008, 10:06 PM) *
My question: Does the speed of the SD matter on the Universal, as it doesn't on the Z?

Here's the result for the same card in the Zaurus:
CODE
/dev/mmcblk0
Timing cached reads:    70 MB in  2.01 seconds =  33.85 MB/sec
Timing buffered disk reads:    6 MB in  3.52 seconds =   1.70 MB/sec

It looks like the card is capable of higher speeds, so I would guess that the card is not the limiting factor.
ZDevil
Digging out this pretty old review (30 months ago), but still a very nice one:

http://www.pdagold.com/articles/detail.asp?a=257

Remember it's three years back -- during the time when the Cxk series was launched ...
The design and features of the Universal are definitely superior than the Zs ...
... if you can forget about how much it was priced then: "The one I have reviewed was bought abroad for an unbelievable $1200 USD excluding VAT." blink.gif

What a quirky sense of fun: my future dream gadget would turn out to be such a (chronologically) backward machine ... laugh.gif
ShiroiKuma
All right, I just bought the phone, gettimg ready to hack.

Question, does anyone have an eabi rootfs tarball with python-serial, pppd, and socat installed already? Or can anyone confirm if they're present in the rootfs packages mentioned in the previous threads?

The reason being, so that I can start htcunid off of it right away, and connect to the web as explained in datathief's guide and then apt- upgrade and installing needed stuff would be easy...
ZDevil
Just chrooted into the rootfs on my SD and checked:
(alas,) none of these packages are installed yet...

A quick and dirty solution is to download and extract these packages to the rootfs. (ar -x PACKAGE && tar -xzf data.tar.gz)
It seems you can simply try these three packages: python-serial, ppp (including pppd) and socat, plus libpcap0.8 as a dependency.

Or to play safe you can first boot it up off the SD on the Z (flashing or simply kexecing the debian kernel), then apt-get install them, then run it on the Universal.
datathief
QUOTE(ShiroiKuma @ Apr 17 2008, 12:14 AM) *
All right, I just bought the phone, gettimg ready to hack.

Question, does anyone have an eabi rootfs tarball with python-serial, pppd, and socat installed already? Or can anyone confirm if they're present in the rootfs packages mentioned in the previous threads?

You should be able to get USB networking or wifi working without much trouble Load the htcuniversal-acx and acx modules for wifi. To prevent the wifi driver falling over, use iwconfig wlan0 rate 1M.

On a related note, there's another hack missing from my instructions. The wifi chipset is powered up by default, and it drains the battery rapidly. At boot time, I load htcuniversal-acx and acx, then rmmod acx. Don't rmmod htcuniversal-acx - it crashes if you try...
ShiroiKuma
OK, intermediate report, going quite well...

I've booted the Zdevil's clean and configured tarball, started x, obviously the display doesn't work. Will try to see if it's just the pointercal, copied one over from the OpenMoko image, which worked, so will try to see if it works with that.

Otherwise, it would be using another device for the input. If this is so, which one?
ShiroiKuma
Update, this doesn't solve it, so it's (probably logically) another device than on the Z. I've also noted no modules are loaded after starting.

datathief, do you have a base rootfs which maybe I should start from and disregard the Z rootfs, if that would be a better solution?
datathief
QUOTE(ShiroiKuma @ Apr 17 2008, 10:54 AM) *
OK, intermediate report, going quite well...

I've booted the Zdevil's clean and configured tarball, started x, obviously the display doesn't work. Will try to see if it's just the pointercal, copied one over from the OpenMoko image, which worked, so will try to see if it works with that.

Otherwise, it would be using another device for the input. If this is so, which one?

I don't remember having difficulty getting X running, but it's been a while. Try setting TS_DEVICE=/dev/input/event0.
ShiroiKuma
QUOTE(datathief @ Apr 17 2008, 12:25 PM) *
I don't remember having difficulty getting X running, but it's been a while. Try setting TS_DEVICE=/dev/input/event0.

Will try... You wouldn't remember which rootfs you used then, when you got started, would you?
ShiroiKuma
QUOTE(datathief @ Apr 17 2008, 12:25 PM) *
I don't remember having difficulty getting X running, but it's been a while. Try setting TS_DEVICE=/dev/input/event0.

This had no effect apparently, perhaps I'll try ts_calibrate before X, to see if it makes any difference.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.