Tuesday, February 22, 2011

Scratchbox and script practice

Turns out sound *does* work in IZ2Se after all.  It was all in the SD card.  As soon as I switched from a 4GB card to a smaller one suitable for for the stock Zipit Z2 kernel the ALSA goodies all magically started to function.  So now I just had to make some nifty scripts to work around the other issue with the SD cards - they all seem to fail/timeout somewhere in the rockbox threads whenever rockbox wants to write something to the SD card.  I already fudged the executable to do all it's working file manipulation out of /tmp, so I just needed a script to move the save state files into /tmp before starting rockbox and out to the .rockbox dir when it's done.  I also wanted to give a chance to go to headphones only before starting, and restore the speaker afterward.  It took a bit of work, but I think I have a script that'll do all that in either flavor of IZ2S and even in WEJP's os.

Rename this to rb and put it in your bin directory to make things easy.

Even so, the IZ2S version of rockbox seems to stutter a bit on startup of the first song played.  It doesn't do that on WEJP's os so maybe it's the older pthreads lib, or the older kernel, or even possibly just a slower SD card.  I don't know, so I think I might have to take another look at porting GMU to IZ2S, just in case.  But that's got a bunch of dependencies, so it seemed like a good idea to practice my lame scratchbox build skills on something a bit lighter.  I took a peek at the nanonote apps and selected nightsky since it only seemed to add SDL_image to my library list.  I ended up making a new libpng and zlib as well, but I'm not actually sure if they're needed.  I also converted all the doubles to floats since I seemed to be getting NAN errors.  What does the pxa270 compiler do when you ask for doubles?  It's already slow enough at emulating regular floating point numbers.

Anyhow, I can't see how you need double precision floats to display dots on a 320x240 screen, so it should be ok.  Don't blame me if you get lost in the woods at night though...


Here's a nightsky executable for IZ2S, along with the SDL shared libraries.

nightsky-iz2s.zip

6 comments:

  1. Bonjour,
    Awesome work, thanks a lot !
    My Z2 is powered by IZ2Se 2.05 020410. I copied mplayer from the 2.04 to play some albums and wifi radios.
    On other stock Z2s I had sometimes no sound until I add to alsa-setup.sh the command to remove anyway the stock driver: rmmod audio_pxa
    Now with rockbox I can play my mpc with wifi sound :D but I could not launch any stream radio, any idea or back to mplayer ?
    The stutter is short, and switching from a song to another is very fluid and pleasant :P
    But there is another annoying bug: switching from a codec to another makes rockbox complain to not finding it ??? and crash.
    Not so annoying, I play only Musepack and my Z2 is now the better player I ever had !
    Thanks again
    Dom

    ReplyDelete
  2. Update,
    I have tested your new rb.sh, and it does not work for me. The alsa driver is launched, but its config does not give me sound. A typo ???

    ReplyDelete
  3. Update 2,
    Not wifi but HIFI sound for the BEST player !
    I have tested wejp small system and I was deceived by the jack bug. I tried to see if it came from the alsa config, but not, it seems this bug comes from the driver who does not correctly recognize a switch present in the female jack. This driver is not the IZ2S one. I could get sound and test from the speaker, and from moving my jack off of 1 mm...

    ReplyDelete
  4. There was a link to an updated kernel posted to the zipit IRC logs a week or 2 ago that supposedly solves the headphone driver bug on the wejp system. Look here, and leave a note if it works.

    http://www.mozzwald.com/irclog/readlog.php?chan=zipit&date=2011-2-13

    I know about the codec problem. It seems to run some code that pretends to use the rockbox threads to unload the old codec. This just copies the codec to /tmp though. I don't know why it crashes. Maybe it runs out of memory from the big files in /tmp. The android code did something different with this so I may look there. Or maybe I can just just reclaim the 512MB pre-allocated for plugins.

    ReplyDelete
  5. Bonjour,
    Here are some tests I made, if they can be usefull.
    WejpOS with new kernel works, gmu is really nice.
    But rockbox has hiccups when accessing to the card.
    My card is slow, but it seems to miss memory.

    I keep on being enchanted by your IZ2S version.
    Your script rb.sh contained enough indications
    to let me write my own easy access script.
    I have very rare and short stutter, I can surf
    the menu, switch file, font or theme (if the
    theme is not too heavy, and if I don't switch
    the codec. The new one should not be recognized,
    and all the playlist could be slowly scanned
    with no sound (it does not crash)).
    My audioCDs + eac + accurate rip + musepack
    are light to decode, and it's difficult to
    find a difference in quality with the original.
    I do not need to change, p2p is not quality.
    Thanks for nightsky, the blue cherry on the cake !
    The sky is really clear here, and I never could
    call the stars and constellations ! Now I can.
    Emacs works, and is a powerfull tool, but not
    now for a beginner like me.

    I hope you will go on compiling sometimes other
    nice goodies for IZ2S, and I wait for the next
    Z2lite, it seems it will be really fine.

    ReplyDelete
  6. hi,

    Cool blog, but I noticed your h7g input makes it rather difficult to run the nogx software in tiger mode, any thoughts?

    Also, how could I configure a flux capacitator to run with this program on the zipit?

    JUSST KIDDING hi dad! cool blog nerdz :)

    ReplyDelete