The Complete Idiot’s Guide to installing Dingux (plus some other facts about the Dingoo) - Using LINUX Edition

 

V1.0 18 July 2009

By Gadgetmiser (www.dingoo-scene.com)

 

Warning! Modifying any hardware can result in damage to it.  It’s unlikely to happen in this case, but nothing is impossible. So, if shite happens, bad luck.  If you choose to follow this guide, you do so at your own risk.  Otherwise, please burn this document.

 

IMPORTANT UPDATE:

 

This guide is out of date – and it’s just been been released! On 20 July 2009, Booboo released a new installer for Dingux (click here) which means that everything can be done through Windows, without the need to run Linux.  A revised version of this guide may be issued in due course, for Windows alone.

 

So why bother with this guide?

 

Well, at the moment, though this is likely to change very soon, all the existing emulators and apps will not work until they are recompiled for Booboo’s new iteration of Dingux.  So at the moment, this guide is still useful if you want to see Dingux running on your A320 with the existing apps, like, NOW.

 

Be warned however that if you follow this guide, at some point, you will have to reinstall Dingux using Booboo’s new version because over time, the iteration of Dingux installed by this guide is likely to be completely unsupported.


CHAPTER 1

SO, WHAT’S ALL THIS ABOUT THEN?

 

1.                  What is a Dingoo A320?

 

It is a Chinese made MP3/Video player, or personal media player. It is apparently marketed and manufactured by Shenzhen Dingoo Digital Ltd., although alternative branded versions of the same device are available (eg: “Chinavision”)

 

Apart from playing media, the Dingoo emulates the following classic gaming systems:

·         Gameboy Advance (GBA)

·         Capcom Play System (CPS1/2) 1 and 2

·         Sega Megadrive/Genesis

·         Nintendo Entertainment System (NES)

·         Super Nintendo Entertainment System (SNES)

·         SNK NEO-Geo

 

2.                  Every PMP out of China does something similar. What’s the big deal?

 

Well:

·         The Dingoo actually does what its specifications claim. Videos play without conversion, the interface is reasonable, and it is stable.

·         All the emulators are playable out of the box.  The GBA, CPS1/2 and NES emulators work the best.  The Megadrive and SNES emulators are considered the weakest, being prone to slowdown, or graphical glitches.

·         It has a proper controls: a dpad, four face and two shoulder buttons, which are critical for classic gaming.

·         At about US$83 delivered, it is cheap for a machine which is able to emulate such a wide range of systems.  Buy one from here: http://www.dealextreme.com/details.dx/sku.23032~28278619 !

·         It is light and small.

·         Its battery life is very good. 7 to 8 hours on one charge is common.

·         It has enough raw power to emulate most 8/16 bit game systems, including a 400mhz processor.

·         It is hackable, now more than ever, with the release of Dingux, which means tht the software on it is likely to improve over time.

·         In short, it’s a great machine at a low price as is, and is likely to get better now Linux (Dingux) runs on it!

 

3.                  What is firmware?

 

Firmware normally refers to software embedded in a chip which controls certain key functions of a device.

 

4.                  I have heard that the original Dingoo firmware was hacked. What’s all this about?

 

On 10 April 2009, Team Dingoo released the first Western modified firmware for the Dingoo.  The latest version of hacked firmware available at present is ver a320-1.03TD-3.  The modified firmware allowed enthusiasts to create customisable themes for the Dingoo’s main menu.

 

However, the manufacturers of Dingoo have not released the source code of the Dingoo firmware publicly.  Without the source code, it has been difficult to significantly modify the original firmware to fix significant bugs which affect the Dingoo’s performance, or to improve the Dingoo’s emulator performance.

 

5.                  Bugs?

 

The most well documented software bug is the Y/B button bug.  In some games, like Super Mario, it is critical to hold down the B button (to crouch) and to press the Y button (to shoot a shell) – resulting in a crouch shoot move.  On the Dingoo, pressing Y while B is pressed causes Mario to release the shell and jump, instead of perform a crouch shoot.  A workaround for this is normally done by remapping the Y/B keys in the SNES emulator. 

 

The Y/B bug is entirely a software bug, not a hardware fault. (If you install Dingux and run the Snes9x through Singux, this fixes the problem!)

 

Two other “bugs” relate to:

·         Unacceptably slow/non performance in the built in SNES emulator for many games

·         Slowdown and graphical glitches (screen “tearing”) in the Megadrive Emulator

 

6.                  What is the SDK?

 

Shenzhen Dingoo Digital has publicly released a software development kit (SDK) for the Dingoo’s native firmware.  Some developers have used this SDK to produce homebrew software, such as a Wonderswan emulator, an Odyssey2 emulator, Star Lander, Mindsweeper and a Formula 1 game (check out www.dingoo-scene.com for more on these.) .

 

However, significant development with the SDK is difficult without the source code of the Dingoo’s firmware, and other technical information becoming readily available.  There are also limits to what can be achieved with the SDK alone.

 

7.                  So why doesn’t Shenzhen Dingoo Digital release the source code and other technical information?

 

We don’t know.  The economics of Chinese MP4 player manufacturing might mean that if they release it, it would just be ripped off by other manufacturers. 

 

Another likely reason is that they do not control all of this information.  The Dingoo contains technology of Ingenic and Chinachip, two large Chinese companies, and runs uCosII, an operating system for embedded devices.  From the websites of these companies they are willing to share only certain information publicly.  They appear to consider sharing more technical details of their products as detrimental to their interests.

 

8.                  What is Linux and why is it important for the Dingoo?

 

It’s an open source operating system which is able to drive the Dingoo’s hardware, as an alternative to the Dingoo’s built in firmware.

 

With Linux running on the Dingoo as its operating system, other linux applications can be made to work on Dingoo with less development effort than reverse engineering the Dingoo’s original firmware.  Linux is a very mature OS, and there are thousands of applications already available for it.

 

9.                  What is Dingux?

 

Dingux is the name given to the version of Linux which runs on the Dingoo hardware.

 

In early May 2009, Booboo successfully booted the first Linux kernel on the Dingoo.  On 18 May 2009, Booboo publicly released his working Dingux kernel.  Several improved kernels have been released since then, with the latest version always here: http://code.google.com/p/dingoo-linux/downloads/list  . 

 

The original Linux implementation on Dingoo required the Dingoo to be connected to a PC via a USB cable at all times to launch and run linux.

 

On 25 June 2009, Booboo released an installer which modifies the Dingoo’s bootcode, so that the Dingoo can boot directly into Linux if the [Select] key is pressed during boot.  So the Dingoo no longer needs to be connected to the PC to launch and run Linux.

 

10.              That’s all very nice, but why do I care about such technobabble?

 

You don’t need to care about Dingux at all.  The native Dingoo firmware works just fine, generally speaking.  However, since the release of Dingux, there have ben some notable applications released which will only run on Dingux, not the native firmware.

 

11.              What applications?

 

Waternet, SNES9x, OpenLiero, scummVM, Doom, Hexen, Heretic, Transball 2,Reminiscence, MAME4ALL, a GNUboy …..

 

12.              Is this the tip of the iceberg?

 

Hopefully!.  For example, the GP2x, which was deliberately designed to run Linux, has hundreds of apps available for it.  If the Dingoo gains in popularity, similar development effort should follow.

 

13.              OK, you twisted my arm.  How do I get Dingux going? Read on!


CHAPTER 2

WHAT’S INVOLVED IN GETTING DINGUX GOING

 

1.                  Is it hard? I’m scared!!

 

Hard is a relative word.  If you already have the technical skill to partition disks, copy files between folders, edit text files, burn DVDs and change the BIOS settings on your PC, you won’t find it difficult at all.

 

If none of the above made sense to you, then you might find some of the concepts outside your comfort zone.  Persevere! That’s what this idiot’s guide is for, and you might learn something as well.  Take heart that Linux has a reputation, generally (rightly or wrongly), for a bit of a bitch for everyone to use.  If you generally know your way around a graphical user interface, you will be fine!

 

 

2.                  Can I wreck my Dingoo putting Dingux on it?

 

The risk of permanently damaging your Dingoo in any way is remote.  Make sure your Dingoo is fully charged before flashing to it, and you should be fine.

 

Also, if you are running Linux on a PC which normally runs Windows, be very careful you do not partition your Windows hard drives by mistake when doing the Dingux install steps.

 

3.                  If I put Dingux on, will I be able to run the original Dingoo firmware?

 

Yes!  You will not lose the original firmware.  You will be able to select if you wish to run Dingux or the original firmware, each time you reset the Dingoo.

 

4.                  There are a few guides out there, and all the relevant Dingux installation files have instructions.  Why should I follow this guide?

 

This guide has been written to be as simple to follow as possible.  It is aimed at people who normally run Windows, and who may not have used Linux before.  If you follow the steps in this guide, the result will be a working Dingux installation which automatically boots into a graphical front end (dmenu) and which includes all emulators (includind MAME4ALL) developed for Dingux to date.  

I hope you will find it easy to follow.  You can of course use any other guides on the internet you find useful.  They may take different approaches to the steps involved, but they all work.

 

5.                  Is the method shown in this guide the only way to get Dingux going?

 

No, there are a variety of methods which may be followed to achieve the same result.

 

6.                  OK, what exactly will we be doing?

 

Basically, all we will be doing is:

1.                  flashing the firmware of the Dingoo (using these files: http://dingoo-linux.googlecode.com/files/dual_boot_installer_20090628.zip ) ; and

2.                  preparing a special mini-SD card (using Puppy Linux and these files: http://www.mediafire.com/%3Fnnbxnw34zhm ).

 

7.                  Why do we need to flash the firmware and prepare a miniSD Card?

 

When the Dingoo starts normally, it boots straight to the original firmware.  The code which boots the Dingoo is embedded in the Dingoo’s hardware, on a rewritable memory chip (NB: this is not the same memory chip as the 4GB of flash RAM which is built into the Dingoo).  To allow Dingux to run, the boot code on the rewritable memory chip must be modified (IE: the Dingoo’s firmware must be “flashed”) so that the Dingoo will bypass the original firmware, and boot the Dingux “kernel”. Think of the Dingux kernel as the “core” code of Dingux.

 

Following the method in this guide, Dingux kernel must be placed on a specially prepared (that is, specially partitioned) mini-SD card.  This card needs to have 2 partitions:

·         One partition must be in FAT32 format, which Windows can create and read/write to. 

·         Another partition must be in EXT3 format, which Windows cannot create, or read/write to. 

 

As Windows cannot create/or read/write to EXT3 partitions, the miniSD card can only be prepared by using a PC running Linux. The EXT3 partition also needs to be set up to contain a specific set of folders, which Dingux will be expecting to find. 

 

Once you have done all of the above, you can install individual Dingux applications, such as MAME4ALL and Snes9x.

 

Booboo has now released an iteration of Dingux which requires only FAT32 partitions, and so, will not require a PC running Linux to create the EXT3 partitions.  This means it can all be done in Windows.  Read more here: http://www.dingux.com/2009/07/system-installation-pack-and-toolchain.html 

 

However, the method used in this guide is really quite simple, works, and will result in a Dingoo with not only Dingux, but all the current available applications installed.  If you want to try Dingux right now, it is still worth following this guide.  Just remember however that if you follow this guide, you will probably need to reinstall the new version of Dingux in the very near future.

 

 

8.                  Oh gawd, I’ve read the above and don’t understand a word of it! What do I do?

 

Don’t panic.  You should be able to muddle through by follow the steps described below, even if you have no idea what you are doing. 

 

9.                  What do I need to install Dingux with this guide?

 

This guide assumes you have the following:

a.                   A Dingoo and its connecting USB Cable

b.                  A PC with CD/DVD Burner

c.                   A mini-SD Card

d.                  A copy of Puppy Linux (From here: ftp://ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.2.1-k2.6.25.16-seamonkey.iso )

e.                   USB memory stick/drive

 

This guide may also, but not necessarily, be distributed with the files you need to flash the Dingoo, and to set up the mini SD card.  However, these files may be out of date, so you should always check this link: http://code.google.com/p/dingoo-linux/downloads/list and www.dingoo-scene.com for the latest versions.

 

10.              Hang on, what’s this Puppy Linux? Other guides I have read mention Ubuntu Linux, or other types of Linux.  Which is which?

 

There are many flavours, or “distributions” of Linux which can be downloaded for free and which run on PCs.  Ubuntu is a very popular and stable distribution of Linux.  It really doesn’t matter which distribution you use, as long as you can get it to run on your PC.

 

This guide is based on the use of Puppy Linux, which is another excellent Linux distribution.  Puppy Linux is very small (~100MB), yet contains all the tools we will need to get Dingux going, and runs on a wide range of PC configurations.

 

11.              Can’t I do this all in Windows?

 

Booboo has now released an iteration of Dingux which requires only FAT32 partitions, and so, will not require a PC running Linux to create the EXT3 partitions.  This means it can all be done in Windows.  Read more here: http://www.dingux.com/2009/07/system-installation-pack-and-toolchain.html 

 

However, the method used in this guide is really quite simple, works, and will result in a Dingoo with not only Dingux, but all the current available applications installed.  If you want to try Dingux right now, it is still worth following this guide.  Just remember however that if you follow this guide, you will probably need to reinstall the new version of Dingux in the very near future.

 

12.              OK, I’m raring to go! What exactly do I do now?

 

Follow the steps in the next Chapter!


 

Chapter 3

STEPS TO PUTTING DINGUX ON YOUR DINGOO USING LINUX

 

HIGH LEVEL SUMMARY:

 

A.  Flash firmware:

1.   Grab and burn Puppy Linux from here

2.   Boot into Linux

3.   Connect to Dingoo and flash firmware using Booboo’s installer package

 

B.  Prepare mini SD Card

1.      Mount your miniSD Card to Puppy Linux can recognise it

2.      Use Gparted (which comes with Puppy Linux) to partition the miniSD Card

3.      Use PupZip to unzip z_man’s zip files onto the EXT3 partition on the miniSD Card

4.      Use ROX to copy the correct zimage file for your LCD controller to the FAT 32 partition

 

C.  Copy ROMS to correct directories

1.   Use ROX file manager to copy ROMS to the right directories

 

 

A.                Flash firmware

 

If you didn’t get this guide in a package with all the required files, get the Dingux files you need

 

1.   Make sure all the files you need are on a USB stick.  The files you will need are:

·         Booboo’s dual boot installer: dual_boot_installer_20090628.zip

·         Zman’s .zip file: Partitions2image.zip

·         Dingux zImage file: zImage-20090707-ILI9331 or zImage-20090707-ILI9325

 

Get and boot into Puppy Linux

 

  1. Download Puppy Linux from here: ftp://ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.2.1-k2.6.25.16-seamonkey.iso
  2. Burn the Puppy Linux ISO onto a CD (this guide assumes you know how to burn a .iso image to CD.  If you don’t know, try this guide: http://www.ehow.com/how_5018371_burn-iso-image-using-imgburn.html )
  3. Reboot your PC and enter the BIOS Settings. Look for a setting which allows you to boot your PC from the CD/DVD Drive, and ensure it is turned on (if you don’t know how to enter the BIOS settings, consult your PC manual, or try this: http://www.wikihow.com/Change-Computer-BIOS-Settings ). 
  4. Insert the Puppy Linux CD and boot your PC.  You should now be on a PC running Puppy Linux.

 

Connect to Dingoo and flash firmware

 

  1. Make sure your Dingoo is fully charged!  If you lose power while the Dingoo is being flashed during this step, you could brick your Dingoo!
  2. Turn on your Dingoo.  Pressing the following key combination: up-right-down-up-right-down. Then you will see a hidden diagnostics screen. Look around and you should see "ILI9325" or "ILI9331" somewhere. If you do not see it, you might have an unknown LCD model and should contact Booboo at: http://www.dingux.com/ . Write down which lcd controller your Dingoo has, "ILI9325" or "ILI9331”.
  3. Put your Dingoo in USB boot mode by resetting it while holding the B button pressed.  The Dingoo LCD will remain dark.  Plug the Dingoo into a USB port.
  4. Plug in your USB stick/drive with the files which we prepared previously.  Launch “Mount”:

  1. Find your USB stick/drive under the “usbdrv” tab.  Mount it when you find it by pressing the “Mount” button next to it. 

 


 

  1. The contents of your USB stick/drive should now appear (and the window should contain the files you copied to it previously).  Right click somewhere in the USB stick/drive contents window, and select “Terminal Here“.

 

  1. A new command line window should open.

 

  1. In the command line window, type:

 

./usbtool-linux 1 hwinit.bin 0x80000000

 

(NOTE: The readme file includes the command “sudo” before “./”.  You do not need to type “sudo” in Puppy Linux)

 

You should see this:


Then, type:

./usbtool-linux zImage_dual_boot_installer_ILI9325 0x80600000 (if your Dingoo has an ILI9325 controller (see step 2 above))

 

or

 

./usbtool-linux zImage_dual_boot_installer_ILI9331 0x80600000 (if your Dingoo has an ILI9331 controller (see step 2 above))

 

(NOTE: The readme file in the Dualboot installer package includes the command “sudo” before “./”.  You do not need to type “sudo” in Puppy Linux)

 

  1. Some people have reported that the command in step 8 results in a “Bulk Write Error”, leaving the Dingoo unflashed.

 

 

If a “Bulk Write Error” happens, simply disconnect the Dingoo from the PC right after step 8 has finished, wait a second or two, then reconnect the Dingoo.  Then type the command in step 8 again, and it should work as set out in the next step.


 

  1. You should now see your Dingoo launching the flasher script, and a screen like this should appear on it:

 

 

  1. Follow the instructions on the Dingoo’s screen, and at the end of it, something like this should appear:

 

 

  1. Your Dingoo will now reboot and you should see this screen on your Dingoo:

 

 

(Thanks to yoannd26 and GX Mod for the 3 pictures above!)

However, as you have not prepared the mini SD Card yet, it will boot through to the original Dingoo firmware.

 

B.                 Prepare the mini-SD Card

 

1.      Reset Dingoo.  Plug into your PC.

2.      In Puppy Linux, launch “Mount” (see 4 above).

3.      In Mount, look for “Chinachip” device under the “USBdrv” tab.  Mount should display both the Dingoo’s internal 4GB RAM, and the miniSD Card.  Identify the name of the miniSD Card (should be “sd[something]”).  Click on the mount button next to the miniSD Card (not the internal flash RAM!) to mount it (see 5 above).

4.      Launch Gparted (which is under “Menu”->”System”):

5.      Create 2 partitions on your mini-SD card with Gparted: one FAT32, one EXT3.  The FAT partition only needs to be small (100MB is more than enough).  The rest of your card’s capacity can be partitioned as EXT3.  Make sure you create the partitions on the miniSD card you identified using Mount in 3 above, and not anywhere else.  Check, double check and triple check!  Do no, in any circumstances, partition your Windows boot drive (or any other hard disk, for that matter)!

 

6.      After your mini-SD card has been partitioned, locate zman’s .zip file, Partitions2image.zip which should be on your USB drive/sticl.  Unzip everything in zman’s .zip file onto your EXT3 partition, by right clicking on the .zip file and using PupZip.

 

You should be able to figure Pupzip out – it’s pretty straightforward.

           

7.      Next, copy the latest Dingux zimage file FOR YOUR LCD CONTROLLER (either zImage-20090707-ILI9331 or zImage-20090707-ILI9325 ) to the FAT32 partition with ROX File manager.  You can find ROX in “Filesystem”->”Rox file manager”.

 

 

8.      Rename the file to “zImage” on the FAT32 partition after it has been copied.

WAHOO!

 

That’s it!  Unplug and reset your Dingoo while holding down the [Select] key.  Your Dingoo should boot into Dingux, automatically launch Dmenu, and you should see this screen:

 

 

Enjoy!


 

C.                Final tweaking

 

When you’ve played with Snes9x and MAME4ALL a bit, you will want to add additional ROMS to the different emulators.  Add them to these folders on your EXT3 partition, using the ROX File manager:

 

MAME: /root/mame4all/roms
SNES: /usr/games/roms/snes
Sega Master Systems: /usr/games/roms/Seg-Master_System
Gameboy: /usr/games/roms/gameboy


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

For much more on the Dingoo, go to

www.dingoo-scene.com , the premier Dingoo news site !