Skip to main content

MOTOMING Camera: First V4L Bytes

After a week of thoughts and assumptions I finally succeeded getting some sort of image from v4l interface of my MOTOROLA MING A1200. The image below is a pbm’ized CAMERA_IMAGE_FORMAT_RAW8. As I have no experience with the digital cameras internals the decoding may take a while.


In case you wonder what’s the thing on the image: It is the top part of Nokia 6021 on a white background :). There is MOTOVISION application from Chineese dev’s that can capture the camera output. The only thing that it looks like it displays the video fullscreen and then reads framebuffer device. I don’t like this approach. The source for drivers is available from Motorola so there are chances that my “caming” app will be usable shortly (and Open Source, of course :) ).

It is certainly a phone

I've been using Motorola A1200 for a month and can say that I like it very much.


I'd like to express my deep respect to Motorola designers working on the exterior design (the transparent flip is not only cool but highly practical), and Motorola programmers that have built linux phone that is actually usable.

Ever thought of checking the time but had to open the phone to see one, just take A1200, click any button and you will see the time. Got new SMS? read it without opening the flip. Well, you can even reply to it with some stock phrases like “Merry Christmas” or “I love you” or “I arrived safely” :). You can even use camera. After you plug in your “round plug” headphones you can use Voice Recognition. Too bad that you have to press a button on the phone to start controlling it remotely (time to write headphones button daemon?). The transparent flip is simply great.

Unfortunately it looks like every new phone is more and more protected from user. I remember Mitsubushi Trium Mars that had an awesome network monitor back in 2000. Nokia 6021 had nothing extra and Motorola A1200 had locked the software choice to J2ME applications only which is a shame provided how J2ME applications stand out in terms of GUI and possibilities to interact with other components.

And even with J2ME apps the sky is not clear. e.g. Google Mail screenshot shows how useful this application is. With “valid.username” it says “You provided (valid.username)” though, hmm…

MidpSSH works fine, Talkonaut (pretty strange name) and its derivative, Gizmo5 work great. But they can not be started via Contacts menu say if I have a contact with xmpp account.

User interface flickers a lot while scrolling. Something that is not happening in 3D games like bundled Andretti Racing 3D, and it is really annoying, especially compared to Windows Mobile-driven communicator where scrolling happens smoothly even in thumbnail mode (list mode helps a bit).


Opera browser is working fine. It does its job great but this phone lacks landscape mode support, so you can not rotate the text in most applications. You can do this in built in Picsel Viewer to read documents or install Opera Mini. The major drawback is that you can not select text on the page if you activate “Grab and scroll” function which makes your phone look like iPhone with finger scrolling…

The reception is very good. I had no problems receiving or making calls. Instead my provider, “life:)” was having difficulties keeping the calls or finding free slot to put a call.

The camera is 2 Megapixel “EZX Camera” as v4l capabilities request says. It does its job well in sunlight but tends to make pictures blurry indoors, It has got no flash. It is usable but keep your single-purpose camera with you to make great photos. The video is not only low-framerate (i guess 10) but it is non-uniform. Looks like hardware framedrop is happening here and the quality is pretty low (memory bandwidth bottleneck?). Still the camera is accessible via V4L so I’m going to make it work as webcam, if time permits :(

But before you can do actual GNU/Linux things on this phone, you will need to refash it with firmware that allows installation of unsigned packages. Respect to and folks for reverse-engineering and building unlocked firmware.

Motorola has no plans releasing EZX SDK to the community that will certainly bring raise of interest from people dealing with OpenMoko and Opie, this will also allow multimedia/connectivity/PIM/whatever applications that will surely compete with other Motorola phones. Something that Motorola does not want. So these features are being investigated by the community by trial and error path. The unofficial SDK is available, it is not complete, not 100% working, but this is a great work. OpenEZX project is providing us with user-friendly way to install various common *nix utilities (heh, yesterday I used scp to transfer a file to a web server because the target computer nearby could not use bluetooth :) ). And I would happily dump the bundled Real Helix Player because it does not want to play my ogg files, it does bad job displaying the movies (heh, I could not make it show any decent video – used mplayer instead). I would rather make those “You have active forwardings enabled” messages not blocking the UI during the call (learned to use hardware button instead of “End”)… but we need the interface to the computer hardware and that is hidden. For now.

So in the end we have a linux computer running inside your pocket, not yet fully customizable but a great present to a computer geek. The more geeks we have with a1200 the more features will be reverse-engineered :)

So this will conclude this lengthy post and I would like to remind you that “It is certainly a phone” (as told by Moss from IT Crowd).

Logitech QuickCam Express Plus

Update: Merged into gspca2 (thanks to Ihor Catson for pushing this patch to the maintainer :))

Two weeks ago I bought a cheap webcam device Logitech QuickCam Express. Upon purchase we were not sure that this will work under Linux, the reports were positive, but you will never know for sure what hardware is inside today.

Having heard of Micael Xhaard and his awesome work to make webcams function under linux I decided to give it a try.

The camera is working fine, the sensor is spca561 (Sunplus) revision 012A which radically decreases the possibility of brightness/contrast control. It is done in software layer under Windows driver and there are few things that are configurable in hardware. The max resolution is QCIF 352×288 (640×480 under windows is done via software scaling).

The configurable items are exposure, gain, red/blue balance (which i guess is called white balance). spca561.h has nice implementation of brightness/contrast being controlled via exposure and gain, probably it will need to be done in decoder, but then we don’t have v4l interface to control these values.

So the only thing that was bothering me was white balance, i.e. I too brown (due to high red value as compared to green/blue). This was configurable by sending appropriate numbers to module parameters GRed/GBlue/GGreen but I missed the ability to fine-tune this while already broadcasting the video.

So i took gvim and hacked up white balance setting support via whiteness setting.

Have fun :)

eKonsole / mkezx

If your eKonsole no longer wants to start after you have mounted your mkezx image, edit to contain the following

if [ -f /home/native/.profile ]; then
. /home/native/.profile 2>/dev/null 1>/dev/null

instead of

. /home/native/.profile 2>/dev/null 1>/dev/null

Then add LD_LIBRARY_PATH which is corrupted somehow, i.e. source /etc/init.d/ and your eKonsole will be able to start again, still it is unclear what is changed by mkezx image...

OpenSSL Certificate Authority

You can find dozens of HOWTOs online about how you can easily create your own certificate authority. But most of them miss a very important point – for your root CA certificate to be really regarded as "CA", it should be generated with basicConstraints=CA:TRUE in openssl.conf file.

This page contains HOWTO that helps you create a real CA, note -extensions param to openssl req.

Jabber Client Conference in Google Talk

Turns out that Google Talk server fully supports MUC, but, being in beta stage the conferencing capabilities are not advertised so that xmpp-compatible clients will not detect their presence. But it does exist. Assuming that you have google account and google talk/gmail access, follow these steps to create new conference.

Update: For some reason you can now create chat rooms directly without messing up wit the web interface: Any room with id private-chat-%8x-%4x-%4x-%12x and server will do. You can use uuidgen to create GUID for such room. Credits go to Ulrikhe for finding this out, thanks!

Old content was removed.

Tooltips theming and padding – GTK 2.12

Hello, I’ve been using Ubuntu Gutsy (7.10) for quite a long time and I was pleased with the quality of the artwork of the gtk2 themes. The only thing that was out of place was the missing padding (i.e. the theme was not applied to them) of the tooltips:


Fortunately, some google keyword combination in search has finally brought me to the launchpad bug report #129699. The hint for the gtk tooltips has changed from gtk-tooltips to gtk-tooltip thus making themes that were not tested using the latest gtk loose the theme settings for tooltips. By changing the hint in the gtkrc file the padding was restored (Murrine Y snippet from gtkrc):

widget_class "*.tooltips.*.GtkToggleButton" style "theme-tasklist"
widget "gtk-tooltip"                        style "theme-tooltips"

And I am happy again:


Ubuntu Feisty & Gutsy Wireless on Boot

2012-11-15: This turned out to be a completely different issue. Will remain here for historical purpose. In fact, my attempts at solving this issue caused iSCSI outage for other people.

Finally. At least some light after months of “ifdown/ifup…”. I’ve even written the ifreset script to make this not so unpleasant… So, I’m writing this after my laptop started the network during the boot sequence! This is still a workaround but somehow closer to the real issue. Comment out the following line inside /etc/udev/rules.d/85-iupdown.rules:

ACTION=="add", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}"

It turns out that as soon as driver module gets loaded into the kernel, udev starts ifup which is not capable of bringing wpa_supplicant but still marks the interface as up (writing wlan0=wlan0 to the interfaces state list). During the boot sequence ifup is started again but won’t do anything as the interface is already marked as “up”.

Hope this helps at least somehow. I have a PCMCIA device which is never removed though… If you comment that section out, you will not have your network started automatically if you insert your usb card so you will have to restart networking after that. In case your card is not going to be wandering anywhere, this can be pretty safe.

See also:

Thunar OpenDocument Thumbnailer

Simple way


[Desktop Entry]
Type=X-Thumbnailer Name=OpenDocument Thumbnailer
X-Thumbnailer-Exec=/usr/lib/thunar/thunar-vfs-odf-thumbnailer-1 %i %o


unzip -p $1 Thumbnails/thumbnail.png | convert -flatten -matte png:- png:$2

See Also