<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/index.php?action=history&amp;feed=atom&amp;title=DFBTerm_DirectFB_Terminal_Emulator</id>
	<title>DFBTerm DirectFB Terminal Emulator - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/index.php?action=history&amp;feed=atom&amp;title=DFBTerm_DirectFB_Terminal_Emulator"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=DFBTerm_DirectFB_Terminal_Emulator&amp;action=history"/>
	<updated>2026-04-11T12:27:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=DFBTerm_DirectFB_Terminal_Emulator&amp;diff=1118&amp;oldid=prev</id>
		<title>Hopspitfire: New page: = Overview= This allows you to run a real terminal emulator on the palm pre locally. The disadvantage is that you need to stop the phone GUI first, and do a bit of setup.  These are rough ...</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=DFBTerm_DirectFB_Terminal_Emulator&amp;diff=1118&amp;oldid=prev"/>
		<updated>2009-07-20T22:55:37Z</updated>

		<summary type="html">&lt;p&gt;New page: = Overview= This allows you to run a real terminal emulator on the palm pre locally. The disadvantage is that you need to stop the phone GUI first, and do a bit of setup.  These are rough ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Overview=&lt;br /&gt;
This allows you to run a real terminal emulator on the palm pre locally. The disadvantage is that you need to stop the phone GUI first, and do a bit of setup.&lt;br /&gt;
&lt;br /&gt;
These are rough notes; I plan to make this much prettier over the weekend, but of course wouldn't object if someone beats me to it.&lt;br /&gt;
&lt;br /&gt;
= Install and Run=&lt;br /&gt;
1. Set up a [[debian]] testing chroot environment, and then chroot into it. You can use the debian stable chroot environment as a base, and then just upgrade to testing.&lt;br /&gt;
2. Set up [[directfb]] in the chroot. Be sure to include the &amp;quot;no-linux-input-grab&amp;quot; line in your &amp;quot;/etc/directfbrc&amp;quot; file.&lt;br /&gt;
3. Install build-essential, build-deps for directfb, and pkg-config&lt;br /&gt;
4. Compile lite - http://www.directfb.org/index.php?path=Platform%2FLiTE - and then dfbterm - http://www.directfb.org/index.php?path=Projects%2FDFBTerm - from CVS sources. Alternatively, grab .debs from http://dclark.us/palm-pre/dbfterm/&lt;br /&gt;
5, In addition to the mounts listed in [[debian]], you will also need to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
mount -t devpts none /media/cf/dev/pts&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
6. Stop the Palm GUI&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/sbin/initctl stop LunaSysMgr&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
7. Run dfbterm&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
dfbterm --size=50x30&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or without modifying &amp;quot;/etc/directfbrc&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
dfbterm --size=50x30 --dfb:no-linux-input-grab&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Screenshot=&lt;br /&gt;
Here is a screenshot that also describes some of the work left to do:&lt;br /&gt;
&lt;br /&gt;
[[Image:Palm-pre-dfbterm-1s-nano.jpg]]&lt;br /&gt;
&lt;br /&gt;
= TODO List=&lt;br /&gt;
== Keyboard remapping==&lt;br /&gt;
* Need at least a ctrl key for this to be generally useful.&lt;br /&gt;
* See notes in screenshot.&lt;br /&gt;
&lt;br /&gt;
=== Research===&lt;br /&gt;
* loadkeys and dumpkeys: http://www.developertutorials.com/tutorials/linux/loadkeys-dumpkeys-050518/page1.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;gt; &amp;gt; Unicode, there's no need to recode. You could do me a favor and&lt;br /&gt;
&amp;gt; &amp;gt; install the DirectFB-examples package and check if your keyboard is&lt;br /&gt;
&amp;gt; &amp;gt; correctly handled by df_input. This little test application should&lt;br /&gt;
&amp;gt; &amp;gt; show raw keyboard codes as well as the symbol associated by the kernel&lt;br /&gt;
&amp;gt; &amp;gt; keymap.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Actually want to use the below command so display isn't continually updated by the acceleramator changes (/dev/input/event2 is the keyboard only).&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
df_input --dfb:linux-input-devices=/dev/input/event2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* How to do sticky modifier keys: https://wiki.edubuntu.org/Accessibility/doc/Guide/Mobility&lt;br /&gt;
&lt;br /&gt;
=== event1 (keypad1) - non-keyboard keys===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
df_input --dfb:linux-input-devices=/dev/input/event1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Shows that:&lt;br /&gt;
* volume up button = volume_up 115&lt;br /&gt;
* volume down button = volume_down 114&lt;br /&gt;
* power button = end 107&lt;br /&gt;
* silver button = (not detected, but hexdump shows it is on /dev/input/event1)&lt;br /&gt;
* vibrate/ring switch = (not detected, but hexdump shows it is on /dev/input/event1)&lt;br /&gt;
Note that if you don't tell directfb &amp;quot;linux-input-devices=/dev/input/event1&amp;quot; it won't use this keypad. Adding this line to &amp;quot;/etc/directfbrc&amp;quot; seems to make things just work (and you don't seem to need to explicitly include event2 as well, but it couldn't hurt)&lt;br /&gt;
&lt;br /&gt;
=== event2 (keypad0) - keyboard keys===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Make use of the touchscreen==&lt;br /&gt;
* Make gestures do something useful.&lt;br /&gt;
* See more research into mouse stuff on [[vala-terminal]] page.&lt;br /&gt;
&lt;br /&gt;
== Virtual Keyboard-Video-Monitor (KVM) Switch==&lt;br /&gt;
It would be great to be able to run DirectFB applications and LunaSysMgr at the same time, and switch between them. I haven't found a way of doing this yet, but here are the possibilities I've found so far:&lt;br /&gt;
* Per-process namespaces ( http://glandium.org/blog/?p=217 ) - I'm looking for a way of doing a sort of in-computer keybaord-video-monitor switch - have 2 applications that expect sole control of /dev/fb0 and /dev/input/* devices, want to be able to switch between them (with the background one just getting no i/o). This might be possible by giving each application a different /dev/fb0 and set of /dev/input/* devices, and then somehow hooking and unhooking those from the &amp;quot;real&amp;quot; devices (maybe with just like &amp;quot;cat&amp;quot;).&lt;br /&gt;
* v9fb - http://doc.cat-v.org/plan_9/IWP9/2008/v9fb.pdf (but can't find source code)&lt;br /&gt;
* Xen Virtual Framebuffer - http://wiki.xensource.com/xenwiki/VirtualFramebuffer (see also http://sourceforge.net/projects/embeddedxen/ - Xen for ARM)&lt;br /&gt;
* Port LunaSysMgr to use DirectFB and use DirectFB's support for running multiple applications (eg fusion, SaWMan)&lt;br /&gt;
* http://code.google.com/p/android-vnc/ ? (not sure but looks like this might redirect display to vnc; could then access it using directvnc-rev or simular)&lt;br /&gt;
&lt;br /&gt;
Prereq to most of these would be rebuilding linux from source, which is here: http://opensource.palm.com/packages.html&lt;br /&gt;
&lt;br /&gt;
= Contacts=&lt;br /&gt;
Daniel Clark &amp;lt;dclark@pobox.com&amp;gt; - djbclark in #webos-internals on freenode IRC.&lt;/div&gt;</summary>
		<author><name>Hopspitfire</name></author>
	</entry>
</feed>