Saturday, June 27, 2009

Yet another dual-boot release: serious spurious bug fixed

You can download it here.

I didn't noticed this bug because as you know I modified my A320 and attached a serial port converter. Today I was playing around with it and noticed the problem.

It turns out that the Ingenic provided function to initialize the UART disables the pull-up resistors of the TX and RX pins. That means that the RX pin is left floating if not connected to an external circuit (which is the case of ALL of you). U-Boot listens to the serial port for commands, and if it detects a break condition or some other input, it stops the boot process and waits for further commands, which never arrive. The fix is as simple as leaving the pull-ups enabled.

I am sorry for not detecting this earlier. Please upgrade your dual boot.

Also, I made a couple of "aestetic" changes as suggested by someone: no more "white screens" while loading. The "white screen" glitch is caused by the LCD initialization code both in the original firmware system loader and in the linux framebuffer driver. Normally you should not see this white screen because the LCD backlight should be off. However the dual boot SPL shows the splash screen and leaves the LCD backlight on.

The original firmware case is solved by switching the backlight off just before jumping into the system loader. The system loader quickly initializes the LCD, so you'll see a black screen only for a split second.

However, in linux I cannot do that because it takes significantly longer for the framebuffer driver to kick in, so it's better to leave the LCD on. But here, as opposed to the original firmware, we have the sources. The solution has been just to always switch the backlight off before performing the LCD initialization in the framebuffer driver.

22 comments:

  1. Thanks for the new update booboo

    ReplyDelete
  2. awesome work on quickly bring about these updates

    ReplyDelete
  3. The new USBTool still doesn't work for me (the old one was ok). I've installed the driver that came with the zip-file and booted in USB boot mode, but USBTool does not find the device:

    D:\Dingoo>usbtool-win 1 hwinit.bin 0x80000000

    USBtool v0.4 - (C) 2008 Maurus Cuelenaere
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    [INFO] File size: 4576 bytes
    [INFO] Searching for device...
    [ERR] Device not found.
    [ERR] Ensure your device is in USB boot mode and run usbtool again.

    Does anybody have an idea what could be the problem?

    ReplyDelete
  4. @Master

    Please read the README. Have you uninstalled the old USB drivers ? (the ones that came with USB_Boot.exe in the first dual-boot release)

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

    ReplyDelete
  6. I had the same problem.. I just moved the boot.exe and boot.cfg from the older updates and it worked.

    ReplyDelete
  7. Yes, I uninstalled the old driver and pointed Windows to the one in the zip-file. In the Windows device manager, I now see:
    Ingenic Usb Boot Class
    - Usb boot device

    Is this what I should see?

    ReplyDelete
  8. Booboo, why not create a multiboot, instead of a dualboot.
    Why not increase these opportunities.

    Currently, we use the 'SELECT' to boot the 'zImage' of FAT32.

    Why not do the same for the 'START' and/or others keys.
    If you press' START 'or' L 'or' R 'on boot, you load other kernel from FAT32.

    This will enable us to compile other kernel, to put it on the FAT32 and try them without changing each time the 'zImage'.

    And to make more easy an update of 'dualboot', copying 'zImage_dual_boot_installer_ILIxxxx' on FAT32 and pressing 'START' on boot. You can keep the 2 kernel or more on FAT32.

    Or what you can not simply add these functions:
    On boot, if you press:

    'SELECT' =loading=> 'zImage'
    'START' =loading=> 'zImage_START'
    'L' =loading=> 'zImage_L'
    'R' =loading=> 'zImage_R'

    I do not know if it's a lot of work, or maybe you want dualboot is as simple as possible. But I think many people will be interested in these functions. What do you think about it ? Maybe later ?

    Thanx for all your work.

    ReplyDelete
  9. I have done everything to make the linux and minisd ready to use.. When I start dingoo linux the screen just blinking.. any idea why?

    ReplyDelete
  10. @Bayram: Blinking is a kernel panic. It should say on the screen what the cause is.

    A possible cause is failure to mount the root file system (the ext3 partition). Another possible cause is that the root file system was mounted, but /sbin/init was not found on it.

    ReplyDelete
  11. Yeah I see now on my dingoo its says init not found. How to fix this, I have tried to fix it bye remove the files and put it back, but its the same

    ReplyDelete
  12. I used the old USB_Boot.exe tool again and it worked immediately. Don't know why usbtool cannot find the device on Windows. On Linux (OpenSuse) it could find the device, but I got a 'bulk writing' error, so that didn't work neither.

    ReplyDelete
  13. Same problem here. I uninstalled old drivers, installed new drivers but no luck! Same problem as Master! I tried also on my laptop but no luck also there... why?

    ReplyDelete
  14. @Bayram: This is how init looks on my system:
    $ ls -la /media/A320_EXT3/sbin/init
    lrwxrwxrwx 1 root root 14 2009-06-24 00:53 /media/A320_EXT3/sbin/init -> ../bin/busybox

    @Master: Do you get the bulk write error on the hwinit.bin or on the zImage containing the installer? I get a bulk write error on the latter under OpenSUSE, but it can be avoided by unplugging and then replugging the USB cable between the two invocations of usbtool.

    ReplyDelete
  15. @mth

    I got bulk write error on ZImage. hwinit went fine. I'll try your method and see if that helps. Thanks!

    ReplyDelete
  16. Any clue why my pc didn't recognize my dingoo (like master)?? :(

    ReplyDelete
  17. @Giuseppe

    No idea. I tested the installation process on Windows using usbtool-win and it worked. I just had to uninstall the USB_Boot.exe drivers.

    I would really like to make a tutorial with screenshots and such, but I have limited access to my windows box at the moment, plus I'm a bit swamped (back to work, the one that pays the bills).

    ReplyDelete
  18. @booboo

    Thank you for replying me. Really i don't know why my 2 pc didn't recognize at all my dingoo... I tried everything. Maybe I'll try under ubuntu and will see... :(

    ReplyDelete
  19. Some news, after deinstalling old drivers, finally my dingoo has been recognized. All messages are ok, but the screen is always black...

    Is my minisd cursed?

    ReplyDelete
  20. Hi, I can't go through the dual boot installer... Instead of "success", it tells me that it failed and I most likely have to fo a full firmware restore...
    It also tells me to report the problem, so here I am !
    I have a 9331 by the way and userd the correct zimage...
    Thank you !

    ReplyDelete
  21. I've got the same error as Ben2303

    ReplyDelete
  22. I've also got the same error as Ben2303. When I turn on the Dingoo it flashes Dingux, I hold select and it won't boot off the memory card. I'm unable to repeat the flashing process as it won't display anything on the Dingoo after putting in usbtool -win 1 zImage_dual_boot_installer_iLi9331 0x806000000

    ReplyDelete