Thursday, August 13, 2009

New release of dualboot and system

Get it all from here. You are urged to update at least zImage/rootfs to fix the data corruption on SD/MMC write.

Dualboot now supports partitionless cards (those in which filesystem starts at sector 0). Besides that, the only change is that now u-boot cannot be stopped (which was useful anyway only for those with a serial console installed). Noise in the RX line when undriven was causing garbage chars to be read as input and u-boot stopped boot and waited (forever) for further commands. This is most likely relevant only for people like me with a serial console installed, and even if you are one of those, you may have not noticed it, since it only happens if the RX pin is undriven and the USB cable is connected (noise probably comes from the USB circuitry).

If you have already a working system (which means your card is partitioned) and have never experienced spurious lockups during dingux boot, probably you don't need to update your dualboot, but I would advise to do so anyway.

The kernel has some minor fixes (likely unnecessary, just happened to notice them while hunting the miniSD data corruption on write bug) and the miniSD interface configuation set to 1-bit. Consider this a workaround, because it seems to fix the data corruption but kills throughput. You better have a slow interface than one that can kill your filesystem, no matter how low is the probability.

Regarding the rootfs, the changes are:
  • Updated initramfs to allow to specify several alternate "boot=" and"root=" arguments. This is required to support both partitionless and normal cards.
  • Added option "utf8" in initramfs when mounting boot partition, so foreign language characters are properly handled (thanks Rookie1).
  • Changed MMC controller to 1-BIT mode. Clobbers performance but data corruption on writes seems to be fixed. Workaround until the real problem is identified and fixed.
  • Added patch set for timidity in SDL_mixer (/etc/timidity.cfg and /usr/share/midi/instruments/*).
  • Upgraded to busybox-1.14.3.
REMEMBER: ethernet-over-USB and SD/MMC are as of this release suboptimally configured as a workaround for known bugs. I am working on these issues, please be patient.

Developers are encouraged to read README-A320.

And now for something completely different, I'm in touch with the Qi Hardware team. They are a group of former OpenMoko employees now working on both open hardware and software devices. Their first device is also based on an Ingenic SoC and they are making great efforts to improve kernel support. Most important is that they are in touch with Ingenic and are trying to get them to open more documentation and code (yesterday a newer 2.6.27.x kernel was released!). This is very promising and we will be working together.

31 comments:

  1. Thanks for the update. Great work fixing the corruption bug!

    ReplyDelete
  2. @raing3

    Sadly not really fixed, just a workaround. And you'll notice the MMC thoughput hit, but as I said, it's much better than the most remote chance of your entire filesystem getting trashed.

    ReplyDelete
  3. Ah ok. Well I'm going to give it a try now. I gave up with the previous release because it kept corrupting the SD. Thanks anyway for the work you are putting into Dingux. Without Dingux I probably wouldn't have even purchased the Dingoo.

    ReplyDelete
  4. Thks for your efford. you are the man.

    Saludos desde Huelva.

    ReplyDelete
  5. Booboo, thank you! I' the one who contacted you two days ago with the 16GB SD problem, and now it works great!!

    ReplyDelete
  6. Hi,

    I'm a software developer as well. Just got my dingoo today (with the later screen type).

    Trying to install the dual boot installer lead to a message like "Cannot write to flash, you will probably have to reinstall the flash loader" or something like that.

    Now when I boot my system the Dingux logo displays. If I hold select then the machine freezes and cannot be turned off. I'm currently waiting for it to run out of batteries or something.

    Thanks, James

    ReplyDelete
  7. James, press the reset near the mic button with something, it won't erase your data, only restart the machine.

    ReplyDelete
  8. Thanks Alphos, I gave the thing to my wife she's more sensible than me and found the reset button.

    I have the i9331_3 controller, maybe this _3 is causing dingux to fail for me.

    ReplyDelete
  9. @kiapura

    I tested both versions of the dual boot release, but I might have made some last minute mistake. Please try to install the previous dual-boot release and report results (go to the download section on google code and select search "all downloads" to see the older versions).

    The _3 suffix is normal and show in all ILI9331 A320 versions known to me.

    ReplyDelete
  10. booboo thanks the advice the previous boot loader works for me.

    ReplyDelete
  11. booboo, I have a Dingoo with the same LCD controller, and new dual-boot worked right for me.
    I really apreciate your job and I will donate for you as sum as possible.

    On a side note, I corromped 3 SD cards with older Dingoo, mainly because I used to play Ur Quan Master, a game who writes a lot of data on Dingoo. People normally plays only emulators, so they didn´t had a problem. I formatted my cards and installed your new version, no more corrupted data. I wish you well and good luck to find the real problem on SD writing.

    Kudos.

    ReplyDelete
  12. cheers man, hope you had a nice holliday!

    ReplyDelete
  13. Weird that mauro's install worked and not mine. I suppose there must be some slight difference in our hardware.

    We tried to install it from my linux pc and my wife's XP pc with two seperate downloads and got the same results, so it's unlikely that there was a file corruption or anything. Hmmm.

    ReplyDelete
  14. kiapura, maybe your PC has Chinachip driver´s installed. Maybe you need to remove it and use the driver packaged with the dualboot. (but I think not, because you installed previous bootloader).

    Maybe dingoo´s going with a newer LCD controller model ?

    ReplyDelete
  15. @kiapura

    Really weird. Would you please try again the new installer?.

    From your description, it is the flashing process which is failing, and those binaries are exactly the same used in the first release. The change is in the data written to flash (SPL+u-boot).

    A whole different thing would be if the install was successful but then the dual boot didn't work.

    ReplyDelete
  16. Excellent update. VERY stable so far compared to before. Looking forward to finally having some fun with Dingux.

    ReplyDelete
  17. mauromartins: No I'm running Linux and when I tested the same on my wife's XP computer I made sure there was no chinachip driver.

    booboo: I'll try again tomorrow and let you know if it works. If it works the second time.. then possibly that would suggest the new installer only works as an upgrade. Could be some minor thing like a missing "mkdir" in a script etc.

    ReplyDelete
  18. is it possible this is the same sd corruption bug that was fixed in custom kernels for nokia tablet a few years ago?
    https://bugs.maemo.org/show_bug.cgi?id=1204#c120

    if so, maybe the diffs for this older kernel could be helpful:
    http://fanoush.wz.cz/maemo/n770-49-mmc-2.6.18-osso55-sdhc.diff
    (diff also contains sd speed improvements, plus a bunch of stuff probably more specific to nokia hardware)

    ReplyDelete
  19. Hello, I've been following this project for a while now, but am just now getting around to installing this since I was waiting for a fix for the write corruption.

    However, I'm having some trouble with flashing the dualboot. I've used two computers to try this, a Mac and a PC running Debian Linux. On the Linux system, I am able to successfully run both commands needed to flash, but the Dingoo itself stays blank. When trying it on the Mac, I get "[ERR] Bulk write error (-99, Not a STREAM)".

    Any idea what I could be doing wrong?

    ReplyDelete
  20. Nevermind, I got it. For some reason going into USB mode with B+power was causing the issue. I tried B+reset and it worked with the Linux computer.

    Also, for people who are using Macs, when I formatted my card for FAT with Disk Utility, it was causing kernel panics when trying to boot Dingux. You're probably better off using a Windows computer to do it, if you have access to one.

    ReplyDelete
  21. Hi there,

    I'm having the same problem as kiapura where I receive a message saying that it failed to flash. I also tried the older boot installer, but got the same results.

    My LCD is ILI9331, I'm using Windows XP SP2 and I followed the instructions to the letter, so I have no idea what is wrong. The only thing I've noticed are what appear to be error messages (in red) when the boot installer first loads, but the screen scrolls and changes too quickly for me to make out much more than something to do with mounting.

    I appreciate the work you're doing here and look forward to the day I might be able to run Dingux.

    -J

    ReplyDelete
  22. this is probably a dumb question but do I need to install the newest dual-boot stuff to use the newest image release?
    I currently have dingux running and (apart from a chmod bug and the data corruption that seems more apparent when running cpud) it works great. I just wanted to try the new fixes (slowdown is not an issue for me... I am mostly playing with things on it... for the projects I am working on, I don't need 100% speed, but would like to not have to re-format my card every time I power off the a320).
    sorry for this being such a noob question, but I just don't want to screw it up...
    The Gh0ce_>0

    ReplyDelete
  23. I don't know if this is helpful but I am running the new dingux system and I noticed something very curious. Some times when I ftp files sometimes the files saved are larger in size than the original size but not always. I then noticed than renaming the file before transfer would change the size of the file saved.

    e.g.
    file a.out ftp across file size is then x bytes
    rename file a.out to b.out
    file b.out ftp across file size is then y bytes. also the file is corrupted in the process (i was copying excecutables)

    ReplyDelete
  24. I'm in the same boat as Jason. Neither dual boot packages succeeded when trying to flash. I'm on LCD Module: LCM_FAIR_ILI9331_3 but using Windows XP SP3.

    It failed, but boots with a Dingux splash screen.

    I'm a noob, but there is a toggle in the system settings pannel that reads "U Disk Immunity" and it's "On". Does that make a difference?

    ReplyDelete
  25. I'm also having a similar problem as Jason. I'm running firmware V1.11 LCM_FAIR_ILI9331_3 With Vista SP2. When updating the firmware I received an error about having to restore the firmware.

    Vista now refuses to recognise the Dingoo in USB mode but a different XP machine still does for some strange reason.

    The Dingoo boots with the Dingux logo but refuses to boot off the memory card, it locks up when I press select. I'm also unable to use the firmware restore tools from Dingoo as nothing seems to happen when I run it. The memory card is visible though Dingoo and I've tried several formatting tools

    ReplyDelete
  26. I just bought another dingoo and attempted to put dingux on it. I was unable put dingux it said firmware failure, you may have to reload your old firmware. I tryed to use the usbtool.exe method, which i used before on a old dingoo and it had worked, but this time i forgot to rename the zimagedual. So being in a big rush and not realizing my mistake, i instead did the version on the complete Idiots guide to installing dingux. I was able to boot up dingux on the dingoo but when prepare to flash the program, it gave an failure message and said i may want to reinstall orginal firmware. In the process of that i bricked my dingoo becuase used the wrong lcd controller while attempting to use the recovery tool. I was able to unbrick the dingo and install the 1.03d firmware. I attempted to rerun the usbtoo.exe with the needed correction but when the dingux began to run instead asking to flash the drive it asked wheter i wanted to install the dual boot or orginal firmware. I tryed dual boot but it still says failure to install, and tryed orginal firmware but it just resets the dingoo and will not fix the flashing of dingux.



    So my question is, Is there something Im missing here? how do I restart my firmware to allow it to install dingux? (note that have used the recovery tool to no avail) do I need to get a different dual boot installer?

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

    ReplyDelete
  28. [quote]
    Added patch set for timidity in SDL_mixer (/etc/timidity.cfg and /usr/share/midi/instruments/*).
    [/quote]

    Does this mean I won't need to copy timidity path files to "/local/lib/timidity/" anymore? If so, it doesn't work for me. I don't have music then and if I use the dmenu file browser, I don't have the "etc/timidity.cfg" file and "usr/share/midi" directory.

    Robert

    ReplyDelete
  29. Hi

    I appear to have a problem not mentioned in the above comments so perhaps this isn't the place from it, however running the usbtool from linux and having success reported for both files to their respective addresses, the Dingoo fails to boot into the install script. I have detached it reset, put back into boot mode and tried again a few times to no avail. any ideas?

    ReplyDelete