Linux on StarTrek: Runs, Needs Work
Hi all,
I've learned that the StarTrek is able to boot the current kernel from the
Linwizard project without any modifications. I've posted a video of this at
http://vimeo.com/2114567. Before you get too excited, however, there's a few things to keep in mind:
- The buttons aren't mapped correctly by default.
- You need a networked computer to log in and do anything fun, for now.
- If you're wondering about Android, the answer is "not yet".
I will do my best to address the important things here; what works, what needs tweaks to work, and (most of all) what needs attention. I will also, over the next day or two, try to post my findings regarding the button GPIOs collected from HaRET, kernel modifications necessary to fix a few things. etc.
Consider this post a call for help. I'm hoping this will encourage others to contribute toward more complete linux support on the phone. I personally am driven by the opportunity to dual-boot Android on the device, but I have much to learn and can't do this alone. So, if you have kernel experience and a StarTrek, here's your motivation to get hacking! (If you'd like to help, but don't have a device to test kernels on, I'm often in #xda-devs.)
Status (Let me know if there's anything missing here.)
Internal LCD - YES - Seems to work great.
External LCD - ? - Shows the device's default image. Not sure how to control this in linux.
Backlight - ? - Unsure. As far as I can tell, Linux will retain the brightness level being used when HaRET finished loading the kernel.
USB Networking - YES - Works like a charm.
Audio - ? - No idea. I don't know how to test this.
Cellular - ? - No idea, but I don't think it will necessarily come easily.
Buttons/Keypad - SOME - By default, the keys and buttons are mapped either incorrectly or not at all. The phone keypad and some of the special buttons type random keystrokes, since we are using the mappings for the Wizard. I have a modified board-htcwizard.c with correct mappings for the StarTrek I'll post really soon, as well as a list of the GPIO readings for many of the buttons. Unfortunately, the Up/Down/Left/Right/Select/End buttons function differently than the other, matrix-based keys. I have yet to discover how to configure them.
Camera - ? - No idea, but they don't even have this working on the Wizard (Linwizard's primary target device).
Light Sensor - ? - I wouldn't know where to begin. It barely works in WM, anyway.
MicroSD - YES - I can mount the MicroSD with no issues, full read/write. Even managed to open my photos in the GPE photo gallery on the device (launched over telnet).
[B]X[\B] - YES - I am able to start X, by calling startx over the telnet connection. However, X will try to run a touch screen calibration before doing anything else, and this is a bit of a problem for us! Fortunately, on newer Linwizard versions, you can disable this by passing tslib=0 to the kernel (in the defaults.txt file you give to HaRET). GPE also seems to be running perfectly after X starts.
Problems - After a few idle minutes in linux, the screen likes to black itself out automatically, as per the design of Linwizard. Unfortunately, on the Star Trek, there seems to be no way to make the screen wake up. Telnet still works in this situation.
I promise to keep this post updated, and get my data together and uploaded soon. Please share your own results and tricks as they come along, and join me (and some talented people) in #xda-xevs and #htc-linux on irc.freenode.net. Happy hacking!
Attached:
arch/arm/mach-omap1/board-htcwizard.c - Contains key matrix mappings modified for StarTrek. Be sure to remove the ".txt" from the file extension before using.
default.txt - Used with HaRET to make Linux boot. The only thing unusual in here is the TSLIB=0 option that's passed to the kernel, telling linux to skip touchscreen-related tasks.