HP Touchpad and Preware to improve performance

My buddy Michael picked up an HP Touchpad at $99 and gave it to me for my birthday. I have been enjoying it a lot. At first it seemed too heavy to be a tablet. I thought you were supposed to be able to hold tablets with one hand comfortably but this one needs two after an extended period of time or it needs to lean against something.

Recently some of my friends who have had the Touchpad for a bit longer than me suggested I install Preware so I could install the Uberkernel which increases the CPU clock from the default of 1.1 GHz to around 1.5 GHz which is apparently what the CPU is rated to run at anyway.

My friend Adam created a great Preware setup guide on how to do all this.

I did run into one main problem which was installing the WebOS SDK since it is only distributed for Windows, Mac and Ubuntu Linux in deb format. Since I'm on Fedora 14 I can't use deb. I got around that with alien...

Download Alien tarball:

[john@laptop ~]$ wget http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.85.tar.gz
--2011-08-28 12:00:24-- http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.85.tar.gz
Resolving ftp.de.debian.org... 141.76.2.4
Connecting to ftp.de.debian.org|141.76.2.4|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 65025 (64K) [application/x-gzip]
Saving to: “alien_8.85.tar.gz”

100%[===========================================================================================================>] 65,025 94.6K/s in 0.7s

2011-08-28 12:00:25 (94.6 KB/s) - “alien_8.85.tar.gz” saved [65025/65025]

Extract Alien tarball

[john@laptop ~]$ tar -xvf alien_8.85.tar.gz
alien/
alien/Makefile.PL
alien/debian/
alien/debian/control
alien/debian/docs
alien/debian/rules
alien/debian/changelog
alien/debian/copyright
alien/debian/compat
alien/alien.spec.in
alien/README
alien/alien.spec
alien/Alien/
alien/Alien/Package.pm
alien/Alien/Package/
alien/Alien/Package/Slp.pm
alien/Alien/Package/Tgz.pm
alien/Alien/Package/Rpm.pm
alien/Alien/Package/Deb.pm
alien/Alien/Package/Lsb.pm
alien/Alien/Package/Pkg.pm
alien/gendiff.txt
alien/alien.pl
alien/GPL
alien/TODO
alien/INSTALL
alien/alien.lsm
alien/alien.lsm.in

The INSTALL file tells us we can try out alien before we install it:

[john@laptop ~]$ cd alien
[john@laptop alien]$ ls
Alien alien.lsm alien.lsm.in alien.pl alien.spec alien.spec.in debian gendiff.txt GPL INSTALL Makefile.PL README TODO
[john@laptop alien]$ less INSTALL

and indeed it works:

[john@laptop alien]$ ./alien.pl
You must specify a file to convert.

Usage: alien [options] file [...]
file [...] Package file or files to convert.
-d, --to-deb Generate a Debian deb package (default).
Enables these options:
--patch= Specify patch file to use instead of automatically
looking for patch in /var/lib/alien.
--nopatch Do not use patches.
--anypatch Use even old version os patches.
-s, --single Like --generate, but do not create .orig
directory.
--fixperms Munge/fix permissions and owners.
--test Test generated packages with lintian.
-r, --to-rpm Generate a Red Hat rpm package.
--to-slp Generate a Stampede slp package.
-l, --to-lsb Generate a LSB package.
-t, --to-tgz Generate a Slackware tgz package.
Enables these options:
--description= Specify package description.
--version= Specify package version.
-p, --to-pkg Generate a Solaris pkg package.
-i, --install Install generated package.
-g, --generate Generate build tree, but do not build package.
-c, --scripts Include scripts in package.
-v, --verbose Display each command alien runs.
--veryverbose Be verbose, and also display output of run commands.
-k, --keep-version Do not change version of generated package.
--bump=number Increment package version by this number.
-h, --help Display this help message.
-V, --version Display alien's version number.

convert the previously downloaded deb SDK (see Adam's guide above) to an rpm using Alien:

[john@laptop alien]$ ./alien.pl -r ../palm-novacom_1.0.76_amd64.deb
Warning: alien is not running as root!
Warning: Ownerships of files in the generated packages will probably be wrong.
Warning: Skipping conversion of scripts in package palm-novacom: postinst postrm prerm
Warning: Use the --scripts parameter to include the scripts.
palm-novacom-1.0.76-2.x86_64.rpm generated

Install the newly created RPM

[root@laptop ~]# yum localinstall /home/john/alien/palm-novacom-1.0.76-2.x86_64.rpm --nogpgcheck
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Local Package Process
Examining /home/john/alien/palm-novacom-1.0.76-2.x86_64.rpm: palm-novacom-1.0.76-2.x86_64
Marking /home/john/alien/palm-novacom-1.0.76-2.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package palm-novacom.x86_64 0:1.0.76-2 set to be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================================================================
Installing:
palm-novacom x86_64 1.0.76-2 /palm-novacom-1.0.76-2.x86_64 120 k

Transaction Summary
====================================================================================================================================================================================
Install 1 Package(s)

Total size: 120 k
Installed size: 120 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : palm-novacom-1.0.76-2.x86_64 1/1

Installed:
palm-novacom.x86_64 0:1.0.76-2

Complete!

Now normally I think if you install the deb it will start up the novacomd service using some upstart script.. but it didn't do that for me. This daemon seems to connect to the Touchpad over USB and create a tty for the novaterm application to connect to. So let's start that daemon manually, otherwise the novaterm command won't work saying instead:

[john@laptop novacom]$ novaterm
failed to connect to server

So start the daemon manually:

[root@laptop novacom]# /opt/Palm/novacom/novacomd
[2011/8/28 12:13:34] novacom_usb_findandattach_thread:565: usb_handle 0x00000000, bus=002 dev=009
[2011/8/28 12:13:34] novacom_go_online:1bb8f388c083b83a10e2d2eefc03f47bdd6a6ddd
[2011/8/28 12:13:34] parse_devdata:658: id::topaz-linux
[2011/8/28 12:13:34] novacom_go_online:702: id:topaz-linux/()
[2011/8/28 12:13:34] dev '1bb8f388c083b83a10e2d2eefc03f47bdd6a6ddd' via usb type topaz-linux
[2011/8/28 12:13:34] novacom_usb_tx_thread:370: usbll(00020009) wrote tx packet len=80

Now in another terminal novaterm should work:

[john@laptop novacom]$ novaterm
root@JohnsHPTouchPad:/#

After I finished with Adam's Preware setup instructions I had my new kernel and other snazzy features working:

Linux JohnsHPTouchPad 2.6.35-palm-tenderloin #2 SMP PREEMPT Sat Aug 6 17:50:47 HST 2011 armv7l GNU/Linux

Comments

I haven't checked yet but

I haven't checked yet but have you posted this as a comment on Adam's blog? This is a great companion piece and taught me a lot about using alien. I've never successfully used it but I'll have to try again after seeing your writeup. Nice job on the documenting and on making the tablet yours!

What're you mostly using it for?

I would have but comments are

I would have but comments are closed!

error when running daemon

Thanks for posting this bit. I am still having a problem. I'm on Fedora 15, and when I run novacomd I get two repeating lines:

[2011/10/22 18:14:31] novacom_usb_rx_thread:434 -- usbll(00000000) reading packet, reads(2), duration(100ms), result(-1), last_errno 9
[2011/10/22 18:14:31] novacom_usb_rx_thread:413 -- usbll(00000000) error: reading packet, result(-1), errno 9

Any idea what might be the problem? Also you didn't mention using the SDK. Did you also install that with alien? I get a handful of missing library files when I do, but wasn't sure if I need to go through that mess or not.

Thanks.

Hmm. I have since installed

Hmm. I have since installed F15 on the system I tested that on and I don't remember if I installed the SDK separately. You would think I would have documented that. I would try it if it isn't working for you.

https://cdn.downloads.palm.com/sdkdownloads/3.0.4.669/sdkBinaries/palm-s...

then one of these depending on your architecture:

https://cdn.downloads.palm.com/sdkdownloads/3.0.4.669/sdkBinaries/palm-n...
https://cdn.downloads.palm.com/sdkdownloads/3.0.4.669/sdkBinaries/palm-n...

Do you see the device show up in dmesg before you run novacomd? Maybe try stracing it.. are you running it with the full path or just ./novacomd? I want to say I had to run it like this: /opt/Palm/novacom/novacomd (it wouldn't work otherwise?)