1. ARMv6 booted in QEmu

    Finally I booted ARMv6 rootfs in QEmu (used 2007-11-21 CVS one). All changes will be available in Poky in next few days.

    OpenedHand Linux (Poky) 3.0+snapshot-20071206 qemuarm ttyAMA0
    
    qemuarm login: root
    
    root@qemuarm:~# uname -a
    Linux qemuarm 2.6.23 #11 Fri Dec 7 19:59:57 CET 2007 armv6l unknown unknown GNU/Linux
    root@qemuarm:~# cat /proc/cpuinfo
    Processor       : ARMv6-compatible processor rev 3 (v6l)
    BogoMIPS        : 524.28
    Features        : swp half thumb fastmult vfp edsp java
    CPU implementer : 0x41
    CPU architecture: 6TEJ
    CPU variant     : 0x1
    CPU part        : 0xb36
    CPU revision    : 3
    Cache type      : write-through
    Cache clean     : not required
    Cache lockdown  : not supported
    Cache format    : Harvard
    I size          : 4096
    I assoc         : 4
    I line length   : 32
    I sets          : 32
    D size          : 65536
    D assoc         : 4
    D line length   : 32
    D sets          : 512
    
    Hardware        : ARM-Versatile PB
    Revision        : 0000
    Serial          : 0000000000000000
    
    Written by Marcin Juszkiewicz on
  2. Recent Poky changes

    During last days I spent time on adding ARMv6 related stuff into Poky.

    First problem was lack of ARMv6 support in QEmu which we use to generate binary locales (you need at least 128M of RAM to get localedef working on device). All information which I found in net was info from Paul Brook that he has ARMv6/v7 emulation working but can not release it due to license of ARM documentation.

    But finally he got signed permission to show code to the world and QEmu got ARMv6/v7 support. Refreshing all our patches took some time for me and Richard ‘RP’ Purdie but finally we got it working. Binary locales for ARMv4t and ARMv5te worked but not for ARMv6 ;( The solution was quite simple — adding “—cpu arm1136” into qemu-arm invocation. As a result I added new variable into “bitbake.conf” — QEMU_OPTIONS which set proper “—cpu” value.

    So now, when we have binary locales working for all our devices the next change was possibility to generate only UTF-8 locales (does someone use other ones?). Change was quite simple and that is how “LOCALE_UTF8_ONLY” variable was born.

    Now I have other thing to solve — get “qemuarm” (our ARM emulation machine) working with ARMv6 rootfs (I have to test it on something — all my ARM devices are ARMv4/v4t or v5te only). There is “RealView” emulation in QEmu which handle it but it lack many features so I have to rather try to get “VersatilePB” working with ARMv6. I just hope that messing with Linux kernel sources will not be too hard to get it working…

    Written by Marcin Juszkiewicz on
  3. GPS driver for FIC GTA01 in beta

    During night some selected people got link to page on one of OpenMoko servers. After accepting EULA they got gllin package.

    What is in package? Gllin binary itself, starter script and set of libraries from OM2007.1 release (OABI). They used “—library-path” option of dynamic linker to use old libraries on OM2007.2 system:

    lib/ld-linux.so.2 --library-path /home/root/gllin/lib:/home/root/gllin/usr/lib /home/root/gllin/gllin.real -low 5
    lib/ld-linux.so.2 --library-path /home/root/gllin/lib:/home/root/gllin/usr/lib /home/root/gllin/gllin.real -periodic 1
    

    What I do not like is location where those files are stored - $HOME should not be touched by packages… But they will probably change it later.

    Now who first will share informations how good it works for him/her?

    Written by Marcin Juszkiewicz on
  4. Audio routing in mobile phones

    I do not know how it is in other mobile phones but there is one annoying thing in my Sony Ericsson k750i phone. It is how it handle audio…

    As phone has FM radio integrated I use it very often. When I go somewhere I usually plug headset (which was provided with phone) and turn on radio. The problem is when someone calls me… The phone starts ringing but it does not use headset for output :( Yes — ring tone is played on internal loudspeaker instead of headset. Good part is that radio playing is interrupted so I have occasion to hear ring and press headset button to receive call. Bad part is that radio is interrupted from time to time sometimes even without calls so it is hard to find out sometimes is it radio problem or incoming call.

    If there will be a day that I will switch to Neo1973 (and I hope that it will be GTA02 version) then at least that problem will be solved. Or it will be solvable due to openness of platform.

    Written by Marcin Juszkiewicz on
  5. Converting ringtones (WMA -> MP3)

    Yesterday I had occasion to play with HTC Touch Dual smartphone. Nice phone, comfortable formfactor, a bit crappy keypad. No WiFi or GPS but HSDPA/UMTS/EDGE present so it can be used for browsing net.

    And it has nice ringtones :) I grabbed few of them to use with my SE k750i phone but they were in WMA format and my phone handle only MIDI or MP3 ringtones. So converting is required…

    How to convert WMA to MP3 then? There are many ways.

    First method require use of Mplayer and Lame:

    mplayer -ao pcm:waveheader ringtone.wma
    lame -h audiodump.wav -o ringtone.mp3
    

    Second way require GStreamer and lame plugin:

    gst-launch filesrc location=ringtone.wma ! decodebin ! lame ! filesink location=ringtone.mp3
    

    As a result I got ringtones in format accepted by my phone.

    Written by Marcin Juszkiewicz on
  6. 2.6.23 on Tosa

    Thanks to work done by Dmitry Baryshkov we have 2.6.23 kernel working properly on Zaurus SL-6000 (Tosa). Ångström images are already present so users can test how does it works for them.

    Today I reflashed Tosa with fresh build and did some testing. We still have problem with framebuffer (famous yellow lines) but otherwise it looks quite good. USB host is working very nice — I connected few devices:

    root@tosa:~$ lsusb
    Bus 1 Device 9: ID 1457:5122
    Bus 1 Device 8: ID 046d:c70a Logitech, Inc.
    Bus 1 Device 7: ID 046d:c70e Logitech, Inc.
    Bus 1 Device 6: ID 046d:0b02 Logitech, Inc.
    Bus 1 Device 5: ID 0a46:9601 Davicom Semiconductor, Inc.
    Bus 1 Device 4: ID 05e3:0606 Genesys Logic, Inc.
    Bus 1 Device 2: ID 0bb2:0302 Ambit Microsystems Corp.
    Bus 1 Device 1: ID 0000:0000
    

    Detailed checking as to wait until I charge this device to 100% because now it shutdown after few minutes.

    Written by Marcin Juszkiewicz on
  7. GIT and I do not match

    For both of my desktop machines I use git kernels and from time to time I add some additional patches to get something experimental to test. By default I use “quilt” to manage patches so my usual kernel session looks like:

    quilt pop -a
    git pull
    quilt push -a
    

    And as a result I have updated kernel with all my patches applied. If one of them do not apply I usually do updating by hand and call quilt refresh or search for newer version of patch.

    Today I decided to do another attempt to use just GIT for managing my patched kernel tree instead of using GIT + quilt. And I failed :(

    I cannot understand why GIT developers say that they hate CVS but follow its way when it comes to merging stuff… If any operation ends in merge conflicts all you get is file with CVS conflict markers inside. You need to call merge tool by hand, resolve problem, add files back to repository (do not ask me why adding files already known to SCM is needed) and tell that you resolved conflict. Even CVS or Subversion does not works that way…

    I like the way it works with monotone — if there is conflict during update (so git pull like) merge tool is called (kdiff3 on my system) and user has to resolve all conflicts before monotone will go into next step. Whole merging stuff is then stored as another revision (with git it can be then remove during git rebase).

    Maybe one day I will find a way to get familiar with git but it is not today…

    Written by Marcin Juszkiewicz on
Page 74 / 106