The Complete Idiot’s Guide to installing Dingux (plus some other facts about the Dingoo) - Using LINUX Edition
V1.0 18 July 2009
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.
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
· 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.
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!
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.
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-k188.8.131.52-seamonkey.iso )
e. USB memory stick/drive
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?
12. OK, I’m raring to go! What exactly do I do now?
Follow the steps in the next Chapter!
STEPS TO PUTTING DINGUX ON YOUR DINGOO USING LINUX
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
Get and boot into Puppy Linux
Connect to Dingoo and flash firmware
./usbtool-linux 1 hwinit.bin 0x80000000
You should see this:
./usbtool-linux zImage_dual_boot_installer_ILI9325 0x80600000 (if your Dingoo has an ILI9325 controller (see step 2 above))
./usbtool-linux zImage_dual_boot_installer_ILI9331 0x80600000 (if your Dingoo has an ILI9331 controller (see step 2 above))
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.
(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.
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:
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:
Sega Master Systems: /usr/games/roms/Seg-Master_System