Root/
| 1 | |
| 2 | Linux for the Dingoo A320 |
| 3 | |
| 4 | ------------- |
| 5 | ** History ** |
| 6 | ------------- |
| 7 | |
| 8 | The initial port of Linux 2.6.24.3 to the A320 was done by Ignacio Garcia Perez |
| 9 | aka booboo. He added support for the Dingoo to the 2.6.24.3 kernel from Ingenic. |
| 10 | Ignacio Garcia Perez <iggarpe@gmail.com> |
| 11 | http://www.dingux.com/ |
| 12 | |
| 13 | The OpenDingux tree is a merge between booboo's patches and the qi-kernel tree |
| 14 | from Qi Hardware. This tree is kept up-to-date with the mainline kernel and |
| 15 | the latest drivers from Ingenic. |
| 16 | http://projects.qi-hardware.com/index.php/p/qi-kernel/ |
| 17 | |
| 18 | ------------------ |
| 19 | ** Contributing ** |
| 20 | ------------------ |
| 21 | |
| 22 | You can find the latest code on github: |
| 23 | http://github.com/mthuurne/opendingux-kernel |
| 24 | |
| 25 | Developers can be found on the #dingoonity channel on freenode IRC: |
| 26 | irc://irc.freenode.net/dingoonity |
| 27 | |
| 28 | ---------------- |
| 29 | ** Quickstart ** |
| 30 | ---------------- |
| 31 | |
| 32 | First download booboo's Dingux toolchain from: |
| 33 | http://code.google.com/p/dingoo-linux/downloads/list |
| 34 | It must be unpacked in /opt, otherwise applications will fail to link. |
| 35 | |
| 36 | Tell the Linux kernel build that you want to compile for MIPS: |
| 37 | export ARCH=mips |
| 38 | Alternatively, you can pass "ARCH=mips" to every "make" command. |
| 39 | |
| 40 | Use "make a320_defconfig" for a default configuration. |
| 41 | |
| 42 | If your A320 is one of the older models, you must change the LCD driver |
| 43 | to ILI9325: (the default config uses ILI9331) |
| 44 | |
| 45 | Device drivers |
| 46 | |---Graphics support |
| 47 | |---Support for framebuffer devices |
| 48 | |---SLCD panel |
| 49 | |
| 50 | If you have an A330, keep the ILI9331 setting. If you want to use the full |
| 51 | 64 MB of RAM, you need a new boot loader: |
| 52 | http://boards.dingoonity.org/dingux-releases/(release)-64mb-dingux-for-a330 |
| 53 | Also, you should tell Linux that there is 64 MB present: |
| 54 | |
| 55 | Kernel hacking |
| 56 | |---Built-in kernel command line |
| 57 | (... mem=64M) |
| 58 | |
| 59 | You can modify the kernel configuration using "make menuconfig". |
| 60 | |
| 61 | To build the kernel, use "make vmlinuz.bin". It will produce the kernel |
| 62 | binary named "vmlinuz.bin" in the top-level directory. The current u-boot |
| 63 | boot loaders expect the kernel image under its old name "zImage", so you |
| 64 | have to rename it if you put it on an SD card. |
| 65 | |
| 66 | -------------- |
| 67 | ** Keyboard ** |
| 68 | -------------- |
| 69 | |
| 70 | The keyboard driver has been completely rewritten now using the polled |
| 71 | input device code. The standard keyboard map is as follows: |
| 72 | |
| 73 | D-pad up KEY_UP KEY_VOLUMEUP 's' |
| 74 | D-pad down KEY_DOWN KEY_VOLUMEDOWN 'u' |
| 75 | D-pad left KEY_LEFT KEY_BRIGHTNESSDOWN 'e' |
| 76 | D-pad right KEY_RIGHT KEY_BRIGHTNESSUP 'i' |
| 77 | A button KEY_LEFTCTRL |
| 78 | B button KEY_LEFTATL |
| 79 | X button KEY_SPACE |
| 80 | Y button KEY_LEFTSHIFT |
| 81 | Left shoulder KEY_TAB KEY_EXIT |
| 82 | Right shoulder KEY_BACKSPACE |
| 83 | START button KEY_ENTER |
| 84 | SELECT button KEY_ESC KEY_MENU 'b' |
| 85 | |
| 86 | The second column is the generated keycode when the button is pressed normally. |
| 87 | The third column is the generated keycode when the button is pressed while the |
| 88 | power slider is pressed too. |
| 89 | The fourth column is the generated system request when the button is pressed |
| 90 | while both the power slider and the START button are pressed: |
| 91 | |
| 92 | 's' Emergency sync of all discs. |
| 93 | 'u' Remount all discs read-only. |
| 94 | 'e' Send SIGTERM to all processes except init. |
| 95 | 'i' Send SIGKILL to all processes except init. |
| 96 | 'b' Reboot immediately. |
| 97 | |
| 98 | For example, to reboot the console syncing all disces and mounting read-only, |
| 99 | press and hold POWER, press and hold START, and press secuentially UP, DOWN |
| 100 | and SELECT. Note that SELECT is also used in dual-boot to select linux boot, |
| 101 | so if you hold SELECT pressed at the end of the previous sequence, you should |
| 102 | reboot back into linux. |
| 103 | |
| 104 | Note that the POWER + key combinations are selected to enable an user space |
| 105 | daemon handle the volume, LCD bightness, and perhaps an on-screen keyboard. |
| 106 | |
| 107 | If you hold the power slider pressed alone this is what will happen: |
| 108 | - After two seconds a KEY_POWER key press and release will be generated. |
| 109 | - After five seconds, an inmediate reboot will happen. |
| 110 | |
| 111 | This is subject to change when hardware powerdown or idle support works. |
| 112 | |
| 113 | I did my best to come up with a clever and useful keyboard map, but if you |
| 114 | have any suggestions, please do not hesitate to contact me. |
| 115 | |
| 116 | ----------- |
| 117 | ** Sound ** |
| 118 | ----------- |
| 119 | |
| 120 | The audio driver uses ALSA. For backwards compatibility, the OSS PCM API |
| 121 | driver is enabled as well. |
| 122 | |
| 123 | The build of SDL in booboo's rootfs contains only OSS support. Some |
| 124 | applications are statically linked against an SDL that contains both OSS |
| 125 | and ALSA support. However, the latter tries to load libalsa at runtime, |
| 126 | which is not included in the rootfs. To force the use of OSS, set the |
| 127 | following environment variable: |
| 128 | export SDL_AUDIODRIVER=dsp |
| 129 | |
| 130 | --------------------------------- |
| 131 | ** IPU (Image Processing Unit) ** |
| 132 | --------------------------------- |
| 133 | |
| 134 | There is no IPU driver yet in this new kernel. |
| 135 | |
| 136 | --------------------------- |
| 137 | ** CPU frequency scaling ** |
| 138 | --------------------------- |
| 139 | |
| 140 | CPU frequency scaling is now default enabled. Have a look at the stuff |
| 141 | in /sys/devices/system/cpu/cpu0/cpufreq/. Default governor is "userspace". |
| 142 | It is untested, and anyway at the moment you can only REDUCE the CPU |
| 143 | frequency below the 336MHz set by the boot hardware initialization code |
| 144 | (in hwinit if you're booting vía USB boot). |
| 145 | |
| 146 | ------------- |
| 147 | ** Battery ** |
| 148 | ------------- |
| 149 | |
| 150 | You can read the battery status from the following file: |
| 151 | /sys/class/power_supply/battery/capacity |
| 152 | It contains a percentage: 0 is empty and 100 is full. |
| 153 | |
| 154 | The /proc/jz interface of the old kernel is no longer supported. The new |
| 155 | interface is platform independent, so using it will improve the portability |
| 156 | of your applications. |
| 157 | |
| 158 | ------------------- |
| 159 | ** LCD backlight ** |
| 160 | ------------------- |
| 161 | |
| 162 | You can change the LCD backlight level by writing a value between 0 (off) |
| 163 | and 255 (max) to: |
| 164 | /sys/class/backlight/pwm-backlight/brightness |
| 165 | |
| 166 | ------------------- |
| 167 | ** Miscellaneous ** |
| 168 | ------------------- |
| 169 | |
| 170 | Lots of JZ4740 hardware support is disabled. Not because it doesn't |
| 171 | work but because it is untested. Enable it at your own risk. |
| 172 | |
| 173 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9
