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