Thursday, October 22, 2009

New system/toolchain

Quick post. I just uploaded the latest system files and toolchain.

Changes are:
  • Compiled for MIPS32. Previous toolchain release was wrongly compiled again for MIPS I.
  • The whole system (libraries and executables) have been compiled with -O3.
  • Fixed MP3/OGG integer decoding in SDL_mixer.
Now for something completely different: if you are having trouble getting dingux up and running, try the following as suggested by some users:
  • If you can't get the dual-boot installer to start, that is, you see nothing on the A320 screen after successfully running the two usbtool commands, try to unplug then the USB cable. No idea at all what's the problem and how unplugging the cable fixes it, though (I would need such an A320 and attach a serial console).
  • If, after installing the dual-boot, you cannot get dingux running, try to do a complete FAT32 format of your card (with ot without partition, dingux now supports both), and then copy zImage and rootfs before anything else. There might be some problem in u-boot-1.1.6 preventing it from reading FAT32 files in some circumstances, though I tried to fix it by backporting code from the latest u-boot.

70 comments:

  1. Another thing to try if you can't get the dual boot installer to work is to re-flash the original firmware. This worked for me.

    ReplyDelete
  2. P.S. Any chance you could build in the OProfile package in the next rootfs?

    ReplyDelete
  3. Thank you.

    I tried the new system and there is still a problem playing .mod files using SDL_mixer. Any news on this issue?

    ReplyDelete
  4. @CongoZombie

    Profiling is of no use to the final user, plus you can enable it and compile a zImage yourself (if you encounter any trouble doing so, let me know).

    ReplyDelete
  5. Welcome back!
    Does the Gemei x760+ have the "blatant design mistakes" as the A320? Like not being able to read the LCD's registers?

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. @booboo I did try building my own rootfs with your sources last week really quickly, but it seemed to be trying to download the dingoo kernel sources from kernel.org.

    I shall try to configure buildroot again tomorrow.

    One more thing- I'm assuming that you disabled i2c support in the Kernel and I'll have to reconfigure and recompile again? I ask because I've found some sources for using the TV-Out chip in the dingoo from another device that has the same one, and wanted to see if I could hack together support for it.

    Thanks for your stellar effort on Dingoo Linux. You've made the device very pleasurable to develop for :)

    ReplyDelete
  8. What does it mean that the toolchain is compiled for MIPS32? My guess is that libstdc++ etc are now compiled for MIPS32, but the default target CPU for GCC is still MIPS I. I added "-march=mips32" to the compile flags for openMSX and the binary is now 9% smaller and executes a bit faster too.

    ReplyDelete
  9. Unplugging the USB cable doesn't fix the problem I'm having with the dual-boot installer. The Dingoo screen stays black.

    ReplyDelete
  10. Still having problems with the dual-boot installer. The Dingoo screen stays black. Unplugging the USB cable doesn't fix the problem. I really tried every installation guide out there, but no luck so far! Help needed please. Thanks.

    ReplyDelete
  11. New zImage does not work in my Dingoo, when I try it, Dingoo stays frozen on the boot screen (written Dingux on the center). I have to use the old version of zImage it in order to get it to work. My Dingoo arrived just a few weeks ago, so I think it may be have some different hardware.

    ReplyDelete
  12. Thanks, but it doesn't work. Flashing the dual boot worked good, but Dingoo freezes at the beginning. (Start Logo) I am using a 2GB micro SD Card with mini Card adapter. I also tried different zImage and rootfs versions with local 0.32 and local 0.32a. Nothing is working, Dingoo ist just freezing at startup. I did everything like you wrote. What can I try or do else ? Please help

    ReplyDelete
  13. Thanks for this Booboo!

    BTW, the JXD 1000 device uses the Sunplus 8000 chipset.

    Should you search Google for a documentation about it.

    ReplyDelete
  14. Thanks Booboo!

    is Buildroot also updated?

    ReplyDelete
  15. @Johnny Boy

    I know should do a little more testing before release, but I don't have much time. Can you please provide SDL_mixer code example so I can do testing of .mod playing?

    @doctoraltaica

    Still disassemblying the x760+ LCD code. Don't know yet about possible electronic design limitations.

    @CongoZombie

    RTF README-dingux inside buildroot package.

    i2c support is actually disabled in the kernel. Everything untested is disabled. Remember that besides properly configuring the CH7024 TV-out chip via I2C you'll have to place the LCD peripheal in "simple" LCD mode (as opposed to SLCD or smart LCD mode in which the ILI93xx works in the A320). This is complex because AFIK usage of either mode is a compile time decision. A new framebuffer driver would have to be written that allowed switching from one mode to another (plus changing resolution).

    @mth

    Means that the kernel, toolchain and system libraries and executables have been compiled for the MIPS32 target. I'm not sure, but this might also mean that the default toolchain target should be now MIPS32 too. Can you please confirm?.

    @meulenvds

    The only way to find out what's going on in your A320 is to open it up and connect a serial console. I'm willing to do it for you (install a serial console port) as I did with my A320, but you'd have to send me your A320 and wait a few days before getting it back. This is probably not worth unless you live in Spain or at least Europe.

    @Kronus

    Know already. There's little or no info about this chipset besides the CPU being an ARM926. Reverse enginnering the peripheals would be a huge task simply not worth, mostly being a SoC out there like the Ingenic one which has linux support from the manufacturer. Let's home someone sells a 4.3" LCD Ingenic based PMP soon.

    @Uguru

    No, buildroot is not updated, but all you have to do is copy "cp buildroot.config .config; make menuconfig", and change target architechture from MIPS I to MIPS 32.

    ReplyDelete
  16. @Uguru

    Forgot it: and change optimization level from 2 to 3 (in "Build Options".

    ReplyDelete
  17. @Uguru

    Never mind. I just made the configuration file changes and uploaded a new buildroot.

    There are a few things to fix, and I was either too lazy o had too little time to do it. I someone wants to help, have a look at README-dingux, do the fixes the best you can and send me a diff.

    ReplyDelete
  18. @booboo

    I compiled a simple benchmark that computes SHA1 hashes with no -march flag, with -march=mips1 and with -march=mips32, for -O0 to -O3. For every -O level, the binary without -march and the one with -march=mips1 were identical to each other, while the one with -march=mips32 was different (shorter). So this proves that MIPS32 is not the default target and very likely MIPS I is.

    What is strange though, is that tools like "readelf", "objdump" and "file" report MIPS32 on all binaries. There is a difference in the selected instructions, but I cannot find a difference in the headers.


    About buildroot: Maybe it would be useful to add this to SVN as well?


    Last weekend I sent you a mail about mininit having problems recognizing FAT partitions formatted on a Mac. Did you have time yet to look at that? I have experience with FAT (MSX uses it too), so if I can help with something, please let me know.

    ReplyDelete
  19. hi booboo! I don't know if you care about it, but i discovered a new jz4740-based device here:

    http://www.hanvon.com/en/products/EPD-applications/WISEreader_N516.html

    It is an ebook reader, so that I am very interested on its developement, since I bought my dingoo essentially as a cheap ebook reading device. The openinkpot guys (look at openinkpot.org) are supporting it yet in the latest pre-release, so maybe they can be helpful in solving kernel-related issues.

    ReplyDelete
  20. booboo, when will you release one for the Gemei X760+?

    ReplyDelete
  21. Many thanks for uploading!

    I'm compiling my soft under powerpc, that's why I need buildroot.

    ReplyDelete
  22. Hi. Now it works ! Dingux is running on my Dingoo and it is just great. Thank you very much for this!!! Information for all users where Dingux hangs on the boot screen: Try to format the SD card direct on your PC and NOT with a USB cable on the Dingoo. If this also doesn't work, try to format the card on a Linux system. (I formated the SD card in my Asus Netbook with Ubuntu, then it worked perfect. It seems that there are still problems when you format the SD card with a USB cable or with windows.) Or maybe it depends on the type of SD card? Anyway: Again: Dingux is just great !!!

    ReplyDelete
  23. Dang... I'm having issues still with file system corruption while doing things such as playing doomgoo, running gmu (listening to music), snes9x, etc.
    Usually it just corrupts my MP3's (which I have in /MY_MUSIC so that I can swap the card into my phone and it will work), but I have noticed it in doomgoo and snes9x as well. Recently it corrupted my main script and is thus causing kernel panic when I try to boot. I am running the latest rootfs and zImage and running toddler's 0.32a software pack. Any thoughts as to why it keeps pooping it's bed?
    Thanks
    The Gh0ce_>0

    ReplyDelete
  24. @Chainsaw

    Looks like u-boot 1.1.6 still has some issues with FAT32 (I even had to backfor fixes from latest u-boot at the time), and they seem to show up only when formatting under windows. Truth is that I use windows only exceptionally so it's not easy for me to test. I'll try to do some testing on windows next time a purchase a new card (so I can test it too the default formatting).

    @Gh0ce

    I know there's still a corruption problem. Setting the MMC interface in 1-bit mode only made it less likely to happen, but it's still there.

    I'm working on the problem but I'm stuck and don't have much time lately. #1 in the priority list, together with getting the x760+ to run dingux (people donated money for purchasing the x760+, so it's prioritary too, plus as I said I'm a bit stuck with the MMC corruption bug).

    ReplyDelete
  25. This comment has been removed by the author.

    ReplyDelete
  26. Hey Booboo, just wanted to say thanks! :)

    ReplyDelete
  27. I am not certain if this is related or not, but after making a change to the filesystem (using 32K block size instead of 4K block size) I seem to have a LOT less corruption. Still using FAT32, but I am uncertain as to if the larger block size is making a difference or if it is a coincidence.

    ReplyDelete
  28. thanks, it works fine ! The new toolchain is a bit faster, i won one fps on dingux-hugo :D,

    Zx

    ReplyDelete
  29. hi, I am considering getting a dingoo, is it likely that the SD/MMC corruption bug will be fixed? Does it happen often enough for it to be a big problem anymore?

    I'd like to help port stuff to dingux if I get a dingoo :)

    thanks for the help!

    ReplyDelete
  30. From my experience, upping the block size to 32K seems to have stopped the corruption issue. I would go for it if I were you... the a320 is an awesome tool/toy, and dingux makes it even better.

    ReplyDelete
  31. ok sure, thanks very much for the advice!

    ReplyDelete
  32. Booboo could you please work on the Gemei version??

    ReplyDelete
  33. Ignacio:
    estaba tratando de instalar el dingux, y la pantalla del dingoo se puso toda negra y no arranco mas. desconectar el cable no ayuda. lo volvi a conectar y el dingoo no responde, asi que no tengo forma de volver para atras lo instalado. Tengo un hermoso ladrillito negro que no prende. Alguna idea? Disfrute el dingoo por las 5 horas que lo tuve, me gustaria disfrutarlo un rato mas.

    Gracias :)

    ReplyDelete
  34. i'm encountering the same problems as meulenvds and with both firmware versions (1.1 as well as with 1.2).
    i would like to provide my dingoo for you to investigate that with the serial console.
    i'm in the uk these days, can i post you my device?

    ReplyDelete
  35. Thanks a lot for a great job!

    ReplyDelete
  36. I've just released dingux cross compiler build script for cygwin/macosx.

    please visit if interested.
    http://clogging.web.fc2.com/dingoo/

    ReplyDelete
  37. Booboo, how about a little,single,tiny new?

    ReplyDelete
  38. you have a nice site. thanks for sharing this valuable resources. keep it up. anyway, various kinds of ebooks are available here

    http://feboook.blogspot.com

    ReplyDelete
  39. @boukichi: just looked at your site: did you managed to get the RTC working? It's a good news! Can you tell us non-chinese speaking a little bit more about it?

    ReplyDelete
  40. @batman52 : Yes,jz4740 (chip in A320) has a RTC and I made patch and binary to enable it.

    but there is a problem that original firmware clears RTC register,
    so I needed to make an SPL to boot linux first.

    # I wrote README.TXT by English

    ReplyDelete
  41. I know that for x86 and amd64 archs, you will get better optimize with -O2 or -Os. I don't know your arch, but you may test it.

    You may use http://en.gentoo-wiki.com/wiki/Safe_Cflags as a guide to get a good choice of cflags.

    Acovea package can be useful too.

    ReplyDelete
  42. Anyone heard anything from Booboo the last 2 months?

    ReplyDelete
  43. Alive. Pretty much hostage of work (trying to keep company from going under).

    ReplyDelete
  44. all righty, food (and beer) first...
    I can completely understand that :)
    I hope things settle down a bit for you shortly

    ReplyDelete
  45. hang in there booboo! admire your work a lot!

    ReplyDelete
  46. Hey man, your work is incredible but one key feature I can't help but hope for in the future is TV out support. Will this any day be possible do you think?

    ReplyDelete
  47. I think there are some other much more important missing features/bugs.
    1). Confirmation SD cards with 32K block size eliminates the corruption bug.
    2). Double buffering video..
    3). Power off.
    4). TV out support is a lot of work I think as it uses the other LCD controller.

    ReplyDelete
  48. The 32K block size doesn't eliminate the corruption problem, it just makes it less likely to occur. Just like switching to 1-bit writes instead of 4-bit writes didn't remove the problem, just made it less likely to occur. I believe (but not fully tested) that it is when it does writes across a block boundry that it corrupts the disk. Or possibly when it has to expand a file into more than 1 continuous block... I am doing some testing on this...

    ReplyDelete
  49. I wonder if the write problem is due the hardware itself. I've noticed at times games don't save using the original firmware. At first I thought I was just tricking myself, but I kept testing it and found the problem repeated itself.

    ReplyDelete
  50. A guy just release a version of doom for gemei x760+, and he release the code, maybe this helps with the lcd problem booboo!

    ReplyDelete
  51. ...traigo
    sangre
    de
    la
    tarde
    herida
    en
    la
    mano
    y
    una
    vela
    de
    mi
    corazón
    para
    invitarte
    y
    darte
    este
    alma
    que
    viene
    para
    compartir
    contigo
    tu
    bello
    blog
    con
    un
    ramillete
    de
    oro
    y
    claveles
    dentro...


    desde mis
    HORAS ROTAS
    Y AULA DE PAZ


    TE SIGO TU BLOG




    CON saludos de la luna al
    reflejarse en el mar de la
    poesía...


    AFECTUOSAMENTE:
    DINGUX


    ESPERO SEAN DE VUESTRO AGRADO EL POST POETIZADO DE CABALLO, LA CONQUISTA DE AMERICA CRISOL Y EL DE CREPUSCULO.

    José
    ramón...

    ReplyDelete
  52. *Booboo, You are not going to work on Dingux anymore!



    *(reverse psichology)

    ReplyDelete
  53. Hi,I am new to dingux,I just bought an a320 console and I am going to install dingux.

    I want to ask you some things.
    If I want to write a C/C++ application for dingux,don't I need a special version of gcc?(for dingoo hardware?)
    Also,if I do,is there a SDK for it?

    Thank you,
    Marius

    ReplyDelete
  54. Booboo, the dingoo scene would and will be too much limited without your help...come on! Even Dosbox is being ported for it now man! But for sure everything will be fully improved with your help, please!

    ReplyDelete
  55. Can we help you with anything that you come back to the Dingoo scene and todo further Dingux development or just help people?

    ReplyDelete
  56. Hope you´re fine Booboo...
    :)

    ReplyDelete
  57. 6 months and nothing no news on the x760+ linux support... everyone who donated got scammed.

    ReplyDelete
  58. @ eraldo

    He is too much busy in his work, Just be patient, I am sure booboo is not happy with all this cituation.

    ReplyDelete
  59. booboo, I hope you're alright. The Dingoo A330 is coming sometime very soon, hope you update Dingux to support the extra 32MB of the A330 and X760+ support.

    ReplyDelete
  60. hey,booboo I think you are fine,
    I are not ersy to die.
    so,can you bring linux to 760+,
    we who have a x760+ have not dingoo a320 expect it so much.!

    ReplyDelete
  61. I are not ersy to die

    →you are not easy to die

    ReplyDelete
  62. there are some suggestion in my mind in a long time,
    If you are still try to bring linux to 760
    you may can use combo keys:
    ← + power to instead of dingoo's start button
    → + power to instead of dingoo's select
    B + power to instead of dingoo's L
    A + power to instead of dingoo's R
    ↑ + power to turn up Sound
    all above is my experience of use 760+
    if it is so,you may can take it,and we hope you bring linux to 760+ soon.

    ReplyDelete
  63. A little sign of life would be nice...

    ReplyDelete