<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.olimex.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LubOlimex</id>
	<title>Olimex - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.olimex.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LubOlimex"/>
	<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/Special:Contributions/LubOlimex"/>
	<updated>2026-04-24T07:56:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=PIC32-MAXI-WEB&amp;diff=3548</id>
		<title>PIC32-MAXI-WEB</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=PIC32-MAXI-WEB&amp;diff=3548"/>
		<updated>2025-02-12T08:16:25Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Customer projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Archived projects ==&lt;br /&gt;
Latest project is available at the main page of the device. In the wiki one can only find older projects, that still might be helpful. These projects are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same MPLAB version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older projects released by Olimex for PIC32-MAXI-WEB:&lt;br /&gt;
&lt;br /&gt;
1)PIC32-MAXI-WEB v1.01 for MPLABX 1.10 and XC32 1.20 (old) - https://www.olimex.com/Products/PIC/Development/PIC32-MAXI-WEB/resources/DemoSoftPIC32-MAXI-WEBv1_01.zip&lt;br /&gt;
&lt;br /&gt;
2)PIC32-MAXI-WEB v1.01 for MPLAB 8.xx and C32 1.10B (old) - https://www.olimex.com/Products/PIC/Development/PIC32-MAXI-WEB/resources/DemoSoftPIC32-MAXI-WEBv1_01.zip&lt;br /&gt;
&lt;br /&gt;
== Customer projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:PIC_Development_Boards]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=PIC32-MAXI-WEB&amp;diff=3547</id>
		<title>PIC32-MAXI-WEB</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=PIC32-MAXI-WEB&amp;diff=3547"/>
		<updated>2025-02-12T08:15:47Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Customer projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Archived projects ==&lt;br /&gt;
Latest project is available at the main page of the device. In the wiki one can only find older projects, that still might be helpful. These projects are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same MPLAB version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older projects released by Olimex for PIC32-MAXI-WEB:&lt;br /&gt;
&lt;br /&gt;
1)PIC32-MAXI-WEB v1.01 for MPLABX 1.10 and XC32 1.20 (old) - https://www.olimex.com/Products/PIC/Development/PIC32-MAXI-WEB/resources/DemoSoftPIC32-MAXI-WEBv1_01.zip&lt;br /&gt;
&lt;br /&gt;
2)PIC32-MAXI-WEB v1.01 for MPLAB 8.xx and C32 1.10B (old) - https://www.olimex.com/Products/PIC/Development/PIC32-MAXI-WEB/resources/DemoSoftPIC32-MAXI-WEBv1_01.zip&lt;br /&gt;
&lt;br /&gt;
== Customer projects ==&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:PIC_Development_Boards]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-RFID1356MIFARE&amp;diff=3546</id>
		<title>MOD-RFID1356MIFARE</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-RFID1356MIFARE&amp;diff=3546"/>
		<updated>2025-01-23T12:03:15Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Bootloader mode (firmware upgrade) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MOD-RFID1356MIFARE =&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
MOD-RFID1356MIFARE is an Olimex device that allows you to read and write NFC / MIFARE RFID tags operating at 13.56Mhz.&lt;br /&gt;
MOD-RFID1356MIFARE uses NXP PN532 to read and write NFC / MIFARE RFID cards. In addition we put second microcontroller on the board which allow 3 additional ways to communicate with host device: USB HID keyboard, USB CDC serial communication, and UART CMOS level for boards with UEXT.&lt;br /&gt;
&lt;br /&gt;
Notice! The firmware supports Classic and Ultralight tags.&lt;br /&gt;
&lt;br /&gt;
== Operation ==&lt;br /&gt;
&lt;br /&gt;
Plug the board to your personal computer via mini USB cable. The red LED would start to blink. &lt;br /&gt;
&lt;br /&gt;
The board can operate in the following user modes:&lt;br /&gt;
* USB-HID - acts as QWERTY keyboard, prints the ID of the read tags in a text field&lt;br /&gt;
* UART - allows connection to equipment via the serial cable at the UEXT, allows usage of different commands at fixed baud rate of 38400&lt;br /&gt;
* USB-CDC - same as above but via the mini USB port and can work up to 115200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there is another &amp;quot;service&amp;quot; mode:&lt;br /&gt;
* Bootloader mode - used to upgrade the firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the board is powered you can change the user mode of operation.&lt;br /&gt;
&lt;br /&gt;
Press and hold the button. All modes would cycle and each mode is identified by a different LED behavior. Wait until you reach the desired mode of operation and release the button to set the unit in that mode. The modes change cyclically after 2-3 seconds in the following order HID-CDC-UART. The combinations of LED behavior during a button press and board mode after button release are:&lt;br /&gt;
&lt;br /&gt;
* Only '''red''' led is blinking: USB-HID mode&lt;br /&gt;
* Only '''green''' led is blinking: USB-CDC mode&lt;br /&gt;
* Both '''green''' and '''red''' leds are blinking: UART mode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The mode selected is saved, in the event of power down and power up, the last mode selected gets loaded.&lt;br /&gt;
&lt;br /&gt;
The blinking would remain after the new mode is entered to indicate the current mode. You can disable the LEDs (e.g. to save power) with ml0 command. &lt;br /&gt;
&lt;br /&gt;
If you have disabled the LEDs with ml1 command - you can check the current mode with a brief button press and release - this would show the indication for the current mode of operation.&lt;br /&gt;
&lt;br /&gt;
=== Bootloader mode (firmware upgrade) ===&lt;br /&gt;
&lt;br /&gt;
In order to enter bootloader mode:&lt;br /&gt;
&lt;br /&gt;
1. Disconnect the board from the USB cable;&lt;br /&gt;
&lt;br /&gt;
2. Press and hold the button;&lt;br /&gt;
&lt;br /&gt;
3. Apply the USB cable to the mini USB connector;&lt;br /&gt;
&lt;br /&gt;
4. Wait at least 2 seconds and release the button.&lt;br /&gt;
&lt;br /&gt;
After that you'll see both LEDs blinking one after another for a few seconds. In this mode you can upload new firmware.&lt;br /&gt;
&lt;br /&gt;
==== Uploading new firmware ====&lt;br /&gt;
New versions of the firmware can be downloaded to the board via the mini USB connector from your personal computer with the help of a serial terminal software without the need of additional hardware.&lt;br /&gt;
&lt;br /&gt;
To update the firmware we need a couple of software resources:&lt;br /&gt;
&lt;br /&gt;
1.1. First install serial terminal software that is capable of sending files via the serial connection. We used the open source TeraTerm software here, and this is the terminal software that I would recommend under Windows. The web-page of TeraTerm is here: https://teratermproject.github.io/index-en.html&lt;br /&gt;
&lt;br /&gt;
Linux guys should use software terminal that supports XMODEM transfer.&lt;br /&gt;
&lt;br /&gt;
The serial baud rate for updating the firmware should be 19200.&lt;br /&gt;
&lt;br /&gt;
1.2. Download the archive with the latest firmware that is provided by Olimex. In the archive you can find this description, the firmware img and some pictures. Link to the archive:&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/open?id=1Fl1wAhNq9U5F0fSRMPaNGsKUO5fVeJWO&lt;br /&gt;
&lt;br /&gt;
At this point all software requirements are already available at the PC! Proceed:&lt;br /&gt;
&lt;br /&gt;
2.1. Enter the MOD-RFID1356MIFARE board in bootloader mode as described in the previous chapter.&lt;br /&gt;
&lt;br /&gt;
2.2. Open &amp;quot;Windows Device Manager&amp;quot; and identify the COM port that the board created. It is in the &amp;quot;Ports (COM &amp;amp; LPT)&amp;quot; section. Remember the COM port number or keep the manager open for a quick reference.&lt;br /&gt;
&lt;br /&gt;
2.3. (optional) If the board is listed in &amp;quot;Ports (COM &amp;amp; LPT)&amp;quot; but reports that the it is unrecognized, then you would need to install a driver. The driver files are located in folder &amp;quot;2.WINDOWS_DRIVER&amp;quot; - in order to install the driver point manually to to folder inf file. It usually goes like this: right-click over the entry for the unit in &amp;quot;Windows Device Manager&amp;quot; –&amp;gt; &amp;quot;Update Driver Software&amp;quot; –&amp;gt; &amp;quot;Browse My Computer For Driver Software&amp;quot; –&amp;gt; &amp;quot;Let me pick from a list of device drivers on my computer&amp;quot; –&amp;gt; mark the entry of the RFID unit –&amp;gt; &amp;quot;Have Disk&amp;quot; –&amp;gt; &amp;quot;Browse&amp;quot; –&amp;gt; point to olimexvirser.inf –&amp;gt; &amp;quot;Open&amp;quot; –&amp;gt; &amp;quot;OK&amp;quot; –&amp;gt; &amp;quot;Next&amp;quot; –&amp;gt; if a warning pops-up ignore it –&amp;gt; &amp;quot;Finish&amp;quot;. You might need to disable &amp;quot;Windows Driver Signature&amp;quot; enforcement if the unit still gets blocked.&lt;br /&gt;
&lt;br /&gt;
2.4. Start TeraTerm&lt;br /&gt;
&lt;br /&gt;
2.5. Select the bottom radio button &amp;quot;Serial&amp;quot; and select the COM port identified in point 2.2. Click &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2.6. You would establish a connection with the board and you would see &amp;quot;CCCC...&amp;quot; coming from the board. This means that the board is ready to receive new firmware.&lt;br /&gt;
&lt;br /&gt;
2.7. Navigate to &amp;quot;File&amp;quot; -&amp;gt; &amp;quot;Transfer&amp;quot; -&amp;gt; &amp;quot;XMODEM&amp;quot; -&amp;gt; &amp;quot;Send...&amp;quot;; this would bring an explorer window and we have to point to the img file that contains the firmware. It is located in folder &amp;quot;FIRMWARE IMAGES&amp;quot; of the folder that you downloaded in point 1.2.&lt;br /&gt;
&lt;br /&gt;
2.8. Once the download is complete, wait for a few seconds and power cycle the board (remove the USB cable, wait a few seconds, plug it back in). Your board now has the latest firmware.&lt;br /&gt;
&lt;br /&gt;
=== Firmware releases download ===&lt;br /&gt;
&lt;br /&gt;
220 - Latest release [recommended] - Added new commands: for locking key for reading; unlocking performs key reset; Fixed bash issue - now space character can also be used as separator (in addition to comma): [https://drive.google.com/open?id=1Fl1wAhNq9U5F0fSRMPaNGsKUO5fVeJWO download link 2.20]&lt;br /&gt;
&lt;br /&gt;
219 - Eight release - fixed update bug preventing certain version of the firmware from successful update; added EEPROM format before firmware update; this update deletes the EEPROM contents so if you have stored important data to the MIFARE make sure to back it up before upgrading to version 219: [https://drive.google.com/file/d/1ZRUlnqpZ--S6VCTQYENmKuAcfmPT8nK0/view?usp=sharing download link 2.19]&lt;br /&gt;
&lt;br /&gt;
218 - Seventh release - fixed bug - hang in CDC mode due to large string of data after printing the response to &amp;quot;i&amp;quot;, &amp;quot;?&amp;quot;, &amp;quot;h&amp;quot;.: [https://drive.google.com/file/d/1NJQ7HW4KRrxgWmxxphnbZR3HUQiCJ1v4/view?usp=sharing download link]&lt;br /&gt;
&lt;br /&gt;
216 - Sixth release - fixed two major bugs - 7 byte cards reading in CDC mode and setting saving between power downs: [https://drive.google.com/open?id=1q-9w5CbUwuigC_wTy6PdHD0-xtbRwWtn download link]&lt;br /&gt;
&lt;br /&gt;
200 - Fifth release - complete re-write of the original firmware; also separate images for each mode available: [https://drive.google.com/open?id=1yp6Xmiqg5jBiMKPBvrl4Jesp89A1HV3d download link]&lt;br /&gt;
&lt;br /&gt;
103 - Fourth release - fixed delay bug; several minor improvements: [https://drive.google.com/open?id=0BwplT87k9SCgcWs4VzJTeDhTcUU download link]&lt;br /&gt;
&lt;br /&gt;
102 - Third release - added compatibility for MIFARE Ultralight and MIFARE Ultralight EV1 tags; several other improvements: [https://drive.google.com/file/d/0BwplT87k9SCgNkVTRkgwc0Z6QUU/view?usp=sharing download link]&lt;br /&gt;
&lt;br /&gt;
101 - Second release - several improvements and fixes over release 100; most notably fixed unavailability for reading tags with EEPROM different from FF:FF:FF:FF:FF:FF:FF:FF: [https://drive.google.com/file/d/0BwplT87k9SCgNEtqOEx4dFkzelE/view?usp=sharing download link]&lt;br /&gt;
&lt;br /&gt;
100 - Initial release (not recommended): [https://drive.google.com/open?id=0BwplT87k9SCgS1BkS1lwWjZjV28 download link]&lt;br /&gt;
&lt;br /&gt;
=== USB-HID mode ===&lt;br /&gt;
&lt;br /&gt;
The device is shown as keyboard. In this mode only the red LED blinks. On Linux machine you should see something like this:&lt;br /&gt;
&lt;br /&gt;
  # dmesg&lt;br /&gt;
  &lt;br /&gt;
  usb 3-2: new full-speed USB device number 5 using ohci-pci&lt;br /&gt;
  usb 3-2: New USB device found, idVendor=15ba, idProduct=0039&lt;br /&gt;
  usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220&lt;br /&gt;
  usb 3-2: Product: MOD-RFID1356MIFARE&lt;br /&gt;
  usb 3-2: Manufacturer: Olimex Ltd&lt;br /&gt;
  usb 3-2: SerialNumber: 95xxxxxxxxx0C1D0&lt;br /&gt;
  input: Olimex Ltd MOD-RFID1356MIFARE as /devices/pci0000:00/0000:00:13.0/usb4/4-4/4-4:1.0/0003:15BA:0039.0003/input/input11&lt;br /&gt;
  hid-generic hid-generic 0003:15BA:0039.0003: input,hidraw2: USB HID v1.11 Keyboard [Olimex Ltd MOD-RFID1356MIFARE] on usb-0000:00:13.0-4/&lt;br /&gt;
&lt;br /&gt;
How to use it? &lt;br /&gt;
&lt;br /&gt;
Open some text editor and approach card to the reader, you will see RFID-card UUID typed as if entered by keyboard. &lt;br /&gt;
&lt;br /&gt;
Note that state of your keyboard CAPSLOCK, SHIFT, CONTROL etc buttons will affect what is typen. For instance if the tag info is '''74bc3eb7''' and you press CAPSLOCK the reader will type '''74BC3EB7''', if SHIFT is pressed the reader will type '''&amp;amp;$BC#EB&amp;amp;'''&lt;br /&gt;
&lt;br /&gt;
Note that there is a separate firmware that has ONLY this mode enabled.&lt;br /&gt;
&lt;br /&gt;
=== USB-CDC mode ===&lt;br /&gt;
When you switch to this mode, only green LED is blinking, and in the terminal you'll see something like:&lt;br /&gt;
 # dmesg&lt;br /&gt;
  &lt;br /&gt;
 usb 3-2: new full-speed USB device number 5 using ohci-pci&lt;br /&gt;
 usb 3-2: New USB device found, idVendor=15ba, idProduct=003a&lt;br /&gt;
 usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=4&lt;br /&gt;
 usb 3-2: Product: MOD-RFID1356MIFARE&lt;br /&gt;
 usb 3-2: Manufacturer: Olimex Ltd&lt;br /&gt;
 usb 3-2: SerialNumber: xxxxxxxxxxxxxxx&lt;br /&gt;
 cdc_acm 3-2:1.0: ttyACM0: USB ACM device&lt;br /&gt;
&lt;br /&gt;
As you can see a new device '''/dev/ttyACM0''' was created. If can be opened by any terminal emulator such as putty, minicom, etc. Since the device is USB-CDC it supports various baud rates - up to 115200.&lt;br /&gt;
&lt;br /&gt;
Open device:&lt;br /&gt;
 # picocom -b 115200 /dev/ttyACM0&lt;br /&gt;
&lt;br /&gt;
Press '''Enter''' and you'll see cursor marker:&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
To see firmware info enter '''i''':&lt;br /&gt;
 &amp;gt;i&lt;br /&gt;
  MOD-RFID1356MIFARE&lt;br /&gt;
  FRev: 2.00&lt;br /&gt;
  Read WIKI at https://www.olimex.com/wiki/MOD-RFID1356MIFARE&lt;br /&gt;
&lt;br /&gt;
==== COMMAND SET FOR CDC AND UART MODE ==== &lt;br /&gt;
&lt;br /&gt;
Note that there is no command line help in the latest firmware (no space available for help); however we introduced error messages, that can be seen! The switch to bootloader mode command was also removed. The commands available are described below follows:&lt;br /&gt;
&lt;br /&gt;
 i - shows information about the firmware;&lt;br /&gt;
 erB - Read data in block B;&lt;br /&gt;
 erS,E - Read data from block S to block E;&lt;br /&gt;
 ewB,X - Write data to block B. X must be hex, maximum 16 bytes. If mkl enabled - should be preceded by muA;&lt;br /&gt;
 e0 - Disable eeprom read;&lt;br /&gt;
 e1 - Enable eeprom read;&lt;br /&gt;
 mlE - Set led mode to disabled (E=0) or enabled (E=1);&lt;br /&gt;
 mtF - Set scan interval. Values between 1 and 30000 are accepted;&lt;br /&gt;
 mkK - Set work key, (K=a) for Key_A or (K=b) for Key_B;&lt;br /&gt;
 kA - Read current key, where A is 'a', 'b' or '?'. Will not work if locked with mkl;&lt;br /&gt;
 mkl - Locks the reading of all keys for security reasons. Disables key read kA command. The only way to disable is the mku command;&lt;br /&gt;
 muA - set UID of target card for next write operation (A=UID);&lt;br /&gt;
 mku - Unlocks read command and resets keys to ka=000000000000 and kb=FFFFFFFFFFFF;&lt;br /&gt;
 kA,X - Set new key, where A is 'a' or 'b'. X is 6 bytes in hex format.&lt;br /&gt;
&lt;br /&gt;
Usage if the commands is as follow: &lt;br /&gt;
&lt;br /&gt;
*'''erB''' - Read data in block B. This will read 16 bytes from block B. Usually card have up to 64 blocks. For example to read what is stored in block 10 type:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;er0,7&lt;br /&gt;
&lt;br /&gt;
Next time when you check card this will pop:&lt;br /&gt;
 -1E68EFA6&lt;br /&gt;
 Block   0 : 1E 68 EF A6 3F 88 04 00 47 B9 94 D6 45 30 36 09 &lt;br /&gt;
 Block   1 : 12 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
 Block   2 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &lt;br /&gt;
 Block   3 : 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF &lt;br /&gt;
 Block   4 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &lt;br /&gt;
 Block   5 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &lt;br /&gt;
 Block   6 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &lt;br /&gt;
 Block   7 : 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF &lt;br /&gt;
 OK&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''eWB,X''' - Write data to block B. X must be hex, maximum 16 bytes. This will write hex number to EEPROM. Again your card should '''NOT''' be locked. To write 0x1234 to block 9:&lt;br /&gt;
 &amp;gt;ew9,1234&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Write will be executed only once. When you check card:&lt;br /&gt;
 &amp;gt;er9&lt;br /&gt;
 -1E68EFA6&lt;br /&gt;
 Block   9 : 12 34 FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The remaining unused bytes are replaced with F.&lt;br /&gt;
&lt;br /&gt;
*'''e0''' - Disable eeprom read.&lt;br /&gt;
 -74BC3EB72&lt;br /&gt;
 Block   9 : 12 34 FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
 OK&lt;br /&gt;
 &amp;gt;e0&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
 -74BC3EB7&lt;br /&gt;
 -74BC3EB7&lt;br /&gt;
 -74BC3EB7&lt;br /&gt;
*'''e1''' - Enable eeprom read.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;e1&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
 -74BC3EB72&lt;br /&gt;
 Block   9 : 12 34 FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
 OK&lt;br /&gt;
 -74BC3EB72&lt;br /&gt;
 Block   9 : 12 34 FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
 OK&lt;br /&gt;
*'''mlE''' - Set led mode to disabled (E=0) or enabled (E=1) To enable leds:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;ml1&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
To disable leds:&lt;br /&gt;
 &amp;gt;ml0&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The blinking would remain after the new mode is entered to indicate the current mode. You can disable the LEDs (e.g. to save power) with ml0 command. You can enable them with ml1 command.&lt;br /&gt;
&lt;br /&gt;
If you have disabled the LEDs with ml0 command - you can check the current mode with a brief button press and release - this would show the indication for the current mode of operation.&lt;br /&gt;
&lt;br /&gt;
*'''mtF''' - Set scan interval. Values between 1 and 30000 are accepted Defines scanning interval for near cards. If you want 1 second between scans:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;mt1000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
* '''mkA''' - mkK - Set work key, (K=a) for Key_A or (K=b) for Key_B. Key B is optional for some cards.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;mka&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
* '''kA,X''' -  Set new key, where A is 'a' or 'b'. X is 6 bits in hex format&lt;br /&gt;
 &amp;gt;ka,112233445566&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
* '''kA''' - Read current key, where A is 'a' or 'b'.&lt;br /&gt;
 &amp;gt;ka&lt;br /&gt;
 Key A : 112233445566&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
* '''k?''' - Shows the currently selected key and the value stored, unless locked with mkl&lt;br /&gt;
  &lt;br /&gt;
  &amp;gt;k?&lt;br /&gt;
  Key B : FFFFFFFFFFFF&lt;br /&gt;
  OK&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''mkl''' - Locks the reading of all keys for security reasons. Disables key read kA command. The only way to disable is the mku command&lt;br /&gt;
  &amp;gt;mkl&lt;br /&gt;
  ok&lt;br /&gt;
  &amp;gt;ka 112233445566&lt;br /&gt;
  ok&lt;br /&gt;
  &amp;gt;k?&lt;br /&gt;
  ERR:0x7f&lt;br /&gt;
  &amp;gt;ka&lt;br /&gt;
  ERR:0x7f&lt;br /&gt;
  &amp;gt;er6 7&lt;br /&gt;
  OK&lt;br /&gt;
  &amp;gt;-AA0E012C-&lt;br /&gt;
  Block   6 : 12 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
  Block   7 : 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF &lt;br /&gt;
  OK&lt;br /&gt;
&lt;br /&gt;
* '''muA''' - set UID of target card for next write operation (A=UID)&lt;br /&gt;
  &amp;gt;muaa0e012c&lt;br /&gt;
  OK&lt;br /&gt;
  &amp;gt;ew6 223344&lt;br /&gt;
  OK                          &lt;br /&gt;
  &amp;gt;-AA0E012C-&lt;br /&gt;
  SAVED&lt;br /&gt;
  &amp;gt;-AA0E012C-&lt;br /&gt;
  Block   6 : 22 33 44 FF FF FF FF FF FF FF FF FF FF FF FF FF &lt;br /&gt;
  OK&lt;br /&gt;
&lt;br /&gt;
* '''mku''' - Unlocks read command and resets keys to ka=000000000000 and kb=FFFFFFFFFFFF&lt;br /&gt;
  &amp;gt;mku&lt;br /&gt;
  OK&lt;br /&gt;
  &amp;gt;ka&lt;br /&gt;
  Key A : 000000000000&lt;br /&gt;
  OK&lt;br /&gt;
  &amp;gt;kb&lt;br /&gt;
  Key B : FFFFFFFFFFFF&lt;br /&gt;
  OK&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ERROR SET FOR CDC AND UART MODE ====&lt;br /&gt;
&lt;br /&gt;
Error messages are now shown in the following command:&lt;br /&gt;
&lt;br /&gt;
  ERR:0xXX&lt;br /&gt;
&lt;br /&gt;
for easier processing using scripts.&lt;br /&gt;
&lt;br /&gt;
Error codes:&lt;br /&gt;
&lt;br /&gt;
  0x01	Time Out, the target has not answered&lt;br /&gt;
  0x02	A CRC error has been detected by the contactless UART&lt;br /&gt;
  0x03	A Parity error has been detected by the contactless UART&lt;br /&gt;
  0x04	During a MIFARE anticollision/select operation, an erroneous Bit Count has been detected&lt;br /&gt;
  0x05	Framing error during MIFARE operation&lt;br /&gt;
  0x06	An abnormal bit-collision has been detected during bit wise anticollision at 106 kbps&lt;br /&gt;
  0x07	Communication buffer size insufficient&lt;br /&gt;
  0x09	RF Buffer overflow has been detected by the contactless UART (bit BufferOvfl of the &lt;br /&gt;
  register CL_ERROR)&lt;br /&gt;
  0x0a	In active communication mode, the RF field has not been switched on in time by the &lt;br /&gt;
  counterpart (as defined in NFCIP-1 standard)&lt;br /&gt;
  0x0b	RF Protocol error (cf. reference [4], description of the CL_ERROR register)&lt;br /&gt;
  0x0d	Temperature error: the internal temperature sensor has detected overheating, and therefore &lt;br /&gt;
  has automatically switched off the antenna drivers&lt;br /&gt;
  0x0e	Internal buffer overflow&lt;br /&gt;
  0x10	Invalid parameter (range, format, ...)&lt;br /&gt;
  0x12	DEP Protocol: The the PN532 configured in target mode does not support the command received &lt;br /&gt;
  from the initiator (the command received is not one of the following: ATR_REQ, WUP_REQ, PSL_REQ, &lt;br /&gt;
  DEP_REQ, DSL_REQ, RLS_REQ&lt;br /&gt;
  0x13	DEP Protocol / Mifare / ISO/IEC 14443-4: The data format does not match to the &lt;br /&gt;
  specification.&lt;br /&gt;
  0x14	Mifare: Authentication error (improper Key used); make sure EEPROM is present and readable&lt;br /&gt;
  0x23	ISO/IEC 14443-3: UID Check byte is wrong&lt;br /&gt;
  0x7f	unknown command&lt;br /&gt;
&lt;br /&gt;
==== Recognition problem and solution ====&lt;br /&gt;
&lt;br /&gt;
In some cases, while in CDC mode, the board might get mis-recognized by the operating system. Under Linux create udev rule to ignore it, create file /etc/udev/rules.d/99-mifare.rules and inside it type:&lt;br /&gt;
&lt;br /&gt;
  ATTRS{idVendor}==&amp;quot;15ba&amp;quot; ATTRS{idProduct}==&amp;quot;003a&amp;quot;, ENV{ID_MM_DEVICE_IGNORE}=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== UART mode ===&lt;br /&gt;
&lt;br /&gt;
This mode is usually meant for embedded connection. The commands and error messages are the same as in USB-CDC mode (refer to the previous section). The difference is connection method and fixed baud-rate.&lt;br /&gt;
&lt;br /&gt;
Connect the USB serial converter as follows:&lt;br /&gt;
&lt;br /&gt;
* UEXT pin 2 (GND) -&amp;gt; GND &lt;br /&gt;
* UEXT pin 3 (RX) -&amp;gt; Convertor TX &lt;br /&gt;
* UEXT pin 4 (TX) -&amp;gt; Convertor RX&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Open serial port at baud-rate '''38400'''.&lt;br /&gt;
&lt;br /&gt;
== Change log ==&lt;br /&gt;
&lt;br /&gt;
=== Version 2.2.0 (26 FEB 2020) ===&lt;br /&gt;
&lt;br /&gt;
* Added new commands: for locking key for reading; unlocking performs key reset&lt;br /&gt;
* Fixed bash issue - now space can also be used as separator (in addition to comma)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.1.9 (11 MAR 2019) ===&lt;br /&gt;
&lt;br /&gt;
* Before updating backup any EEPROM data since the EEPROM would be formatted clean!&lt;br /&gt;
* Included EEPROM format before firmware upgrade, else certain version couldn't upgrade.&lt;br /&gt;
&lt;br /&gt;
=== Version 2.1.8 (17 OCT 2018) ===&lt;br /&gt;
&lt;br /&gt;
* Fixed hang in CDC mode due to large string of data after printing the response to &amp;quot;i&amp;quot;, &amp;quot;?&amp;quot;, &amp;quot;h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Version 2.1.6 (29 AUG 2018) ===&lt;br /&gt;
&lt;br /&gt;
* Fixed command saving between power-downs.&lt;br /&gt;
* Fixed the ID truncation of 7 byte cards.&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0.0 (06 SEP 2017) ===&lt;br /&gt;
&lt;br /&gt;
* Completely re-written. A lot of improvements.&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0.3 (27 APR 2017) ===&lt;br /&gt;
&lt;br /&gt;
* Fixed delay bug&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0.2 (3 APR 2017) ===&lt;br /&gt;
&lt;br /&gt;
* Added support for Ultralight tags&lt;br /&gt;
* Fixed some typos&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0.1 (29 SEP 2016) ===&lt;br /&gt;
&lt;br /&gt;
* Increased UART baudrate to 38400&lt;br /&gt;
* Added option for selecting authentication key&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0.0 (24 MAY 2016) ===&lt;br /&gt;
&lt;br /&gt;
* Initial release&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RFID]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3545</id>
		<title>A13-OLinuXino</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3545"/>
		<updated>2024-12-02T13:33:20Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android for microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A13-OLinuXino-MAXI-WIFI-1.jpg|thumb| A13-OlinuXino-WIFI]]&lt;br /&gt;
&lt;br /&gt;
[[File:A13-OLinuXino-MICRO.jpg|thumb| A13-OlinuXino-MICRO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 processor from Allwinner runs at 1GHz with a Mali400 GPU. It was designed for integration into tablets. Olimex has made several development board designs based around this chip. This wiki page contains information about hardware and software to help make use of these development boards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 based boards currently available are&amp;lt;br /&amp;gt;&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-WIFI/ A13-OLinuXino-WIFI] - Recommended if your developing software for the A13 for the first time as its the only one with network connectivity.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino/ A13-OLinuXino] - This is the same as the WIFI version but without WIFI module and NAND flash. Note: Android requires NAND flash to run, so this board can't run Android.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/ A13-OLinuXino-MICRO] - Similar to the A13-OlinuXino but with less extras&lt;br /&gt;
*[https://www.olimex.com/Products/SOM/A13/A13-SOM-512/ A13-SOM-512] - System-on-Module A13 board recommended for users with experience in Allwinner development. Allows developing custom extensions with only the peripherals needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
The official Debian images are suitable only for microSD card. Information on booting Debian from the NAND might be found at the forum.&lt;br /&gt;
&lt;br /&gt;
Download methods and locations might be found below!&lt;br /&gt;
&lt;br /&gt;
'''Please note that you might need different Debian Linux images for different boards with different hardware - you would need to inspect the DDR3 RAM memory and use the image suitable for your board. We use either HYNIX H5TQ2G83CFR, or SAMSUNG K4B2G0846Q.'''&lt;br /&gt;
&lt;br /&gt;
'''Newest official Debian release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download for Debian release 11.3 suitable for boards with SAMSUNG K4B2G0846Q DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_mainline_u-boot_release_11_3.7z A13 Debian Linux with kernel 3.4.90+, suitable for boards with SAMSUNG DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
Direct download Debian release 10 suitable for boards with HYNIX H5TQ2G83CFR DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_3G_video_accell_release_10.7z Debian A13 Linux with kernel 3.4.90+, suitable for HYNIX DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
'''Instructions and required files for preparing the Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building Linux for A13-OLinuXino and A13-OLinuXino-WIFI]'''&lt;br /&gt;
&lt;br /&gt;
The images include the following:&lt;br /&gt;
*Linux Kernel 3.4.90+&lt;br /&gt;
*LXDE desktop environment&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*xorg&lt;br /&gt;
*Python 2.7&lt;br /&gt;
*vlc&lt;br /&gt;
*mplayer&lt;br /&gt;
*smplayer&lt;br /&gt;
*midori browser&lt;br /&gt;
*usb-modeswitch&lt;br /&gt;
*sshfs&lt;br /&gt;
*wvdial&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the A13-OLinuXino-SD card which we have on our webshop contain same image on 4GB Class10 fast micro sd-card, if you want to use this image please use Class10 fast card or the performance of Linux will slow down&lt;br /&gt;
&lt;br /&gt;
The file A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z is an archive of A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file. &lt;br /&gt;
&lt;br /&gt;
So in order to write the image on SD card you have to unzip A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file:&lt;br /&gt;
&lt;br /&gt;
For Windows use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) for image writing&lt;br /&gt;
&lt;br /&gt;
For Linux use p7zip package. If you have no installed 7zip then type &lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
&lt;br /&gt;
Copy A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file in your directory and unzip it with &lt;br /&gt;
&lt;br /&gt;
    #7za e A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
&lt;br /&gt;
The output should be a new 4GB file named A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
&lt;br /&gt;
    #dd if=A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z &amp;lt;br&amp;gt;of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main tested onboard hardware modules are:&lt;br /&gt;
&lt;br /&gt;
'''GPIO'''	-	they are located in /sys/class/gpio directory. Note that first you have to export GPIOs. &lt;br /&gt;
For example: to add PB03&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
to make PB03 output&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo out &amp;gt; /sys/class/gpio/gpio1_pb3/direction&lt;br /&gt;
&lt;br /&gt;
to make PB03 high level(3.3V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
to make PB03 low level(0V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 0 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio12_pg9  gpio1_pb3   gpio4_pe4  gpio7_pe7 &lt;br /&gt;
    gpio10_pe10  gpio13_pg10  gpio2_pb4   gpio5_pe5  gpio8_pe8 &lt;br /&gt;
    gpio11_pe11  gpio14_pg11  gpio3_pb10  gpio6_pe6  gpio9_pe9&lt;br /&gt;
&lt;br /&gt;
note that:&lt;br /&gt;
&lt;br /&gt;
gpio12_pg9(GPIO2/pin10) is connected to on board LED and it is multiplexed with UART3_TX and gpio13_pg10(GPIO2/pin8) is multiplexed with UART3_RX&lt;br /&gt;
Therfore if you want to use these ports like GPIO then UART3_TX and UART3_RX will not be available. &lt;br /&gt;
&lt;br /&gt;
'''LCD'''	-	4.3&amp;quot;(480x272), 7&amp;quot;(800x480), 10&amp;quot;(1024x600)&lt;br /&gt;
&lt;br /&gt;
'''VGA'''	- 	800x600, 1024x768&lt;br /&gt;
&lt;br /&gt;
'''Touch_screen'''	-	you need calibrate LCD touch screen usi it. Note that by default the X environment does not start like root user. In our case the X starts with user named olimex&lt;br /&gt;
&lt;br /&gt;
Therefore if you want to use the touch screen in X environment then you have to run calibrate procedure like olimex user. For example type: &lt;br /&gt;
&lt;br /&gt;
    #su olimex&lt;br /&gt;
&lt;br /&gt;
enter the olimex password:olimex&lt;br /&gt;
&lt;br /&gt;
    #sudo ts_calibrate&lt;br /&gt;
&lt;br /&gt;
calibrate the touch screen and reboot the board&lt;br /&gt;
&lt;br /&gt;
    #sudo reboot&lt;br /&gt;
&lt;br /&gt;
ASIX8877 USB-LAN	-	https://www.olimex.com/Products/OLinuXino/A13/USB-ETHERNET-AX88772B/&lt;br /&gt;
&lt;br /&gt;
WEB camera A4TECH&lt;br /&gt;
&lt;br /&gt;
MOD-WIFI-RTL8188	-	https://www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188/ instructions on how to enable it might be found here: [[How_to_configure_MOD-RTL8188_on_official_OLinuXino_Debian_releases]]&lt;br /&gt;
&lt;br /&gt;
USB_OTG		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_up		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_down	-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
mico_SD_card	&lt;br /&gt;
&lt;br /&gt;
I2C2(100KHz)	-	/dev/i2c-2&lt;br /&gt;
&lt;br /&gt;
I2C1(100KHz)	-	/dev/i2c-1&lt;br /&gt;
&lt;br /&gt;
UART3	-	/dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
'''[https://drive.google.com/file/d/0B-bAEPML8fwlYnUwdnpkUllVNFU/edit?usp=sharing A13 Debian 4GB SD-card image armel (softfloat) with: MONO complete]'''&lt;br /&gt;
*Linux Kernel 3.4.67+&lt;br /&gt;
*XFCE4 desktop environment&lt;br /&gt;
*Mplayer CLI&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*iceweasel WEB browser&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*apache2&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*vlc&lt;br /&gt;
*xorg&lt;br /&gt;
*Scratch&lt;br /&gt;
*GCC&lt;br /&gt;
*Python 2.7.3 &lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*OpenCV&lt;br /&gt;
*mono-complete&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
====Android for NAND====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are different images depending on the screen output settings. Also there are different images depending on the WIFI module placed. Latest hardware revisions use MOD-WIFI-RTL8188ETV and an updated image.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 4.3&amp;quot; 480x272 and touchscreen:'''&lt;br /&gt;
 &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_480x272_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188ETV module]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_NAND_LCD_480x272_EN_first_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188 module]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 7&amp;quot; 800x480 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_fifh_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_third_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND images with LCD 10&amp;quot; 1024x600 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_1024x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 10&amp;quot; 1024x600 and touchscreen]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 10&amp;quot; 1024x600 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND image with VGA 800x600 support, torrents:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_VGA_800x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with VGA 800x600 support]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_VGA_800x600_EN_third_release.img A13-OLinuXino Android for NAND memory with VGA 800x600 support]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Android for microSD card====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Torrent of Android release 3 with LCD support for microSD card (recommended): &lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%d0%b0ndroid_images/sd/a13_android_sd_800x480_USB_OTG_8G_third_release.7z A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 3]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*Only LCD support - 800x480 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Older (not recommended) releases:'''&lt;br /&gt;
&lt;br /&gt;
Torrent of Android release 2 with LCD support for microSD card (not recommended, the USB OTG does not work properly due to fex error): [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%d0%b0ndroid_images/sd/a13_android_sd_800x480_second_release.7z A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 2]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HOWTOs==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
'''How to write the Debain image to a microSD card?'''&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
'''How to change VGA and LCD resolutions under Debian?'''&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for 800x600 VGA video output. If you want to change to some other LCD or VGA resolution then you have to start change_display.sh script file in /root directory.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
   &lt;br /&gt;
    ./change_display* (press 'TAB' to auto-complete)  &lt;br /&gt;
or&lt;br /&gt;
    ./change_display_A13.sh&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.   &lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you might need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*1. 800x600&lt;br /&gt;
*2. 1024x768&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Linux related===&lt;br /&gt;
'''How to build latest official Debian release'''&lt;br /&gt;
&lt;br /&gt;
The latest official instructions might be found here:&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building the latest official Debian release, at Olimex GitHub]&lt;br /&gt;
&lt;br /&gt;
There are a number of unofficial guides to building the Debian, among them:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A13/olinuxino-debian.pdf How to build Debian for A13-OLinuXino-WIFI by Marcin Twardak]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
'''How to edit my MAC address?'''&lt;br /&gt;
&lt;br /&gt;
However, it is very easy to change MAC under Debian.&lt;br /&gt;
 &lt;br /&gt;
All you have to do is:&lt;br /&gt;
 &lt;br /&gt;
1. turn off the network interface (it is off by default, can be turned off by “ifdown eth0”)&lt;br /&gt;
2. open /etc/network/interfaces with a text editor (for instance “nano /etc/network/interfaces”)&lt;br /&gt;
3. add the following line under eth0 definitions: “hwaddress ether 00:11:22:33:44:55”, where 00:11:22:33:44:55 is the desired MAC address.&lt;br /&gt;
4. save and turn on the network interface (“ifup eth0”)&lt;br /&gt;
 &lt;br /&gt;
You can think of own way implementing own MAC address (for instance storing a consecutive number in the small EEPROM and then loading it).&lt;br /&gt;
&lt;br /&gt;
'''How to enable WIFI?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
'''How to enable Ethernet?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===Android related===&lt;br /&gt;
'''How to compile new Android image?'''&lt;br /&gt;
&lt;br /&gt;
Good guide shared by Akshay Mathur might be found here: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/Android-JellyBean pdf instructions available at GitHub]&lt;br /&gt;
&lt;br /&gt;
'''How to make code to run on power up?'''&lt;br /&gt;
&lt;br /&gt;
You would need an application that works in kiosk mode. There is a lot of information available online on how to write an application capable of autostart.&lt;br /&gt;
&lt;br /&gt;
'''How to access GPIOs?'''&lt;br /&gt;
&lt;br /&gt;
There is an application we wrote to demonstrate how this can be done under Android. Please check the following two links:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=fBydZn8FylE YouTube video of relay control via MOD-IO under Android]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/ANDROID-MOD-IO Source code of the above example]&lt;br /&gt;
&lt;br /&gt;
'''How to add PWM support?''' &lt;br /&gt;
&lt;br /&gt;
There is a separate article on the subject here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A13-OLinuXino is called pyA13. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA13 Link to pyA13 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===Scratch===&lt;br /&gt;
&lt;br /&gt;
There are a number of SCRATCH resources we have published. The following might be of interested for you if you are interested in SCRATCH or OpenCV:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=Pyidx-zOsm4 YouTube video of A13-OLinuXino running SCRATCH + OPENCV interractive project with web camera]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=DzmvqlQodac YouTube video of A13-OLinuXino-WIFI + SCRATCH animation of GPIO-2 connector with buttons and LEDs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13 source code and other scratch-related project available at Github]&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-OLinuXino A13-OLinuXino schematic in PDF format and Eagle CAD files]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-PDFs A13 datasheet and user manual PDFs]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/A13_Register_guide A13 Registers Guide]&lt;br /&gt;
&lt;br /&gt;
GPIOs&lt;br /&gt;
&lt;br /&gt;
UEXT&lt;br /&gt;
&lt;br /&gt;
LCD&lt;br /&gt;
&lt;br /&gt;
RTC&lt;br /&gt;
&lt;br /&gt;
[[Serial connection to A13]] description of how to connect a computer to the A13 board over serial cable.&lt;br /&gt;
&lt;br /&gt;
===Power supply===&lt;br /&gt;
&lt;br /&gt;
The A13-OLinuXino can be partially powered over Micro USB, but to power all peripherals, a 6+ watt DC power supply between 6 and 16 volts can be used.  The connector is a positive-center 2.5mm barrel plug.  There is also an on-board connector for a Li-PO battery.&lt;br /&gt;
'''Important note: A13-OLinuXino-MICRO works with +5V only! If you apply more than 5V you will damage the board.'''&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Main_Page A generic wiki for the Allwinner devices might be found here. It contains some great detailed info]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bare Metal programming - no OS ===&lt;br /&gt;
&lt;br /&gt;
It is possible to program and debug code written directly on the chip without an OS such as linux or android.&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantage is no kernel overhead and tighter control of the CPU operation.&lt;br /&gt;
&lt;br /&gt;
[[Bare Metal programming A13]]&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - Nand flash ===&lt;br /&gt;
&lt;br /&gt;
The Wifi version of the A13 board comes preprogrammed with android, which is held in the Nand flash.&lt;br /&gt;
&lt;br /&gt;
The image in the Nand flash can be updated using the tools found at the following links:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/file/d/0B7WHuNCASY8cWlZ2djh4X0QtV0U/edit?usp=sharing LiveSuit for Windows]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/LiveSuit LiveSuit for loading images]&lt;br /&gt;
&lt;br /&gt;
to the NAND flash; to activate A13 bootloader do as follows: run Livesuit, disconnect the power supply and USB cable, then press HOME button, apply power supply, attach USB cable and release the button, Livesuit will detect the bootloader and will ask which file to program to the NAND flash.&lt;br /&gt;
&lt;br /&gt;
Prebuilt images that can be programmed into the Nand flash can be found here.&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - SD card ===&lt;br /&gt;
The A13 board can boot from an SD card. Just plug it in an imaged uSD card and connect power.&lt;br /&gt;
&lt;br /&gt;
Note: The SD card can easily be corrupted if power is removed while the system is booting or writing to system files.&lt;br /&gt;
To avoid this do not remove power while it is booting and shut the system down properly before disconnecting power.&lt;br /&gt;
&lt;br /&gt;
==== Prebuilt images ====&lt;br /&gt;
&lt;br /&gt;
Some prebuilt images have been created, follow the link below for details.&lt;br /&gt;
&lt;br /&gt;
[[Prebuilt SD card images running debian]]&lt;br /&gt;
&lt;br /&gt;
==== Build your own kernel and image onto SD card ====&lt;br /&gt;
&lt;br /&gt;
Some developers want more control over the kernel and modules that are included. The link below shows directions to build your own kernel and image it onto an SD card.&lt;br /&gt;
&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Step by step instructions how to make SD card image with above Kernel and U-boot&lt;br /&gt;
&lt;br /&gt;
====Setup and configure the installed debian image====&lt;br /&gt;
&lt;br /&gt;
There are several settings that can be made for a particular hardware configuration in the script file. &lt;br /&gt;
&lt;br /&gt;
The following link explains the script file as well as wifi or ethernet setup and GPIO settings &lt;br /&gt;
&lt;br /&gt;
[[Configuration of hardware in the debian image]]&lt;br /&gt;
&lt;br /&gt;
====Installing UsbVideoClass(UVC) on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To work with USB Video Cameras you have to enable the UVC support in the kernel. The link below explains how to do it.&lt;br /&gt;
&lt;br /&gt;
[[UVC support]]&lt;br /&gt;
&lt;br /&gt;
====Setup VLC player for video streaming on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To setup video streaming you should first have installed UVC support so you can connect USB cameras to A13-OLinuXino.&lt;br /&gt;
&lt;br /&gt;
[[VLC streaming]]&lt;br /&gt;
&lt;br /&gt;
=== Creating a program to run on the A13-OlinuXino board ===&lt;br /&gt;
&lt;br /&gt;
[[Programming for A13 in debian]] Step by step instructions to make your first hello world program run on the A13 board running debian.&lt;br /&gt;
&lt;br /&gt;
=== Software links ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Sunxi-tools Tools to hack A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/11/23/running-debian-with-xfce4-on-a13-olinuxino/ Installing Xfce4 graphical interface on Debian] How to install XFCE4 on A13-OLinuXino&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.0.3 ICS ===&lt;br /&gt;
&lt;br /&gt;
The official Allwinner repository contains all official files, including the files required to build Android ACS 4.0.3 NAND image for A13-OLinuXino-WIFI.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/allwinner-dev-team Allwinner's official GitHub]&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.1 JB ===&lt;br /&gt;
&lt;br /&gt;
This is version 1.5 of A13-SDK which builds Android 4.1 Jelly Beans image. It works slower than 4.0.3 and we personally do not see any advantage to use 4.1 vs 4.0.3&lt;br /&gt;
&lt;br /&gt;
[http://emicrotec.at/public/ Andreas Auer kindly offered to host this 4GB image]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Projects people from the olinuxino community are working on or have finished and how they did it.&lt;br /&gt;
&lt;br /&gt;
'''LINUX:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Run Debian and u-boot, Step by step instructions how to make SD card image.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Prebuilt SD card images running debian]] &lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2014/03/06/bootling-linux-on-a13-for-less-than-1-second/ Booting Linux for less than 1 second] optimization made by Miroslav Bendik.&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/23/a13-olinuxino-playing-with-gpios/ Change GPIOs using scripts in linux]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=436.msg4066#msg4066 A13 OLinuXino fast GPIO with /dev/mem now achieve up to 2 Mhz toggle]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=899.0 A13 kernel module for direct support of UEXT MOD-IO board, adding ADC, relays etc, cool project can be used as reference how to make your own kernel modules]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/open?id=0B7WHuNCASY8cWnRrQ0tGVFMybFk Instructions how to run MOD-BT with A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/asfluido/olinuxino/ Customer project of A13-OLinuXino communication via SPI with MOD-MRF89-868]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/18/a13-olinuxino-wifi-and-opencv-face-detection-project/ A13-Olinuxino-WIFI and opencv face detection]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/02/scratch-control-for-mod-io/ Controlling Relays, Switching ON/OFF of 220V appliances and home automation]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/28/make-door-security-logger-with-a13-olinuxino-wifi-opencv/ Door security logger, image capture]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/08/gps-logger-with-google-maps-viewer-made-with-a13-olinuxino-and-mod-gps/ GPS logger with google maps viewer, MOD-GPS module on UEXT]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/02/25/a13-olinuxino-web-server-with-mod-rgb-controlling-rgb-led-stripe-over-internet/ Web server with MOD-RGB controlling RGB LED strip]&lt;br /&gt;
&lt;br /&gt;
'''ANDROID:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/24/a13-olinuxino-project-control-relays-and-read-adcs-and-ios-with-android/ Interface MOD-IO board with I2C under Android ]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/13/mame4droid-is-running-on-a13-olinuxino/ Run old games on android mame4droid]&lt;br /&gt;
&lt;br /&gt;
'''No OS'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Bare Metal programming A13]] Programming directly for the chip without an OS&lt;br /&gt;
&lt;br /&gt;
'''FreedomBox:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.debian.org/FreedomBox/UniLeipzigPractical FreedomBox/UniLeipzigPractical is the documentation of a freedom box related practical course at the AKSW Research Group at the University of Leipzig]&lt;br /&gt;
&lt;br /&gt;
== List of Contributors ==&lt;br /&gt;
&lt;br /&gt;
'''Henrik Nordstrom''' - a.k.a. hno, uboot for A13 development, A1X guru, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Dimitar Gamishev''' - a.k.a. HEHOPMAJIEH, Linux kernel configuration for OLinuXino, Android images, LCD touchscreen&lt;br /&gt;
&lt;br /&gt;
'''Alexandro Mery''' - a.k.a. mnemoc, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Davide Fabbri''' - Linaro kernel and lubuntu image&lt;br /&gt;
&lt;br /&gt;
'''Scott Anderson''' - A13 wiki maintainer&lt;br /&gt;
&lt;br /&gt;
'''Jeffrey Wischkaemper''' - a.k.a. jwischka,  A13-OLinuXino Debian image with X &lt;br /&gt;
&lt;br /&gt;
'''Maxime Ripard''' - ARM Linux patches&lt;br /&gt;
&lt;br /&gt;
'''Jason Plum''' - Arch Linux support&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3544</id>
		<title>A13-OLinuXino</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3544"/>
		<updated>2024-12-02T13:31:51Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android for NAND */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A13-OLinuXino-MAXI-WIFI-1.jpg|thumb| A13-OlinuXino-WIFI]]&lt;br /&gt;
&lt;br /&gt;
[[File:A13-OLinuXino-MICRO.jpg|thumb| A13-OlinuXino-MICRO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 processor from Allwinner runs at 1GHz with a Mali400 GPU. It was designed for integration into tablets. Olimex has made several development board designs based around this chip. This wiki page contains information about hardware and software to help make use of these development boards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 based boards currently available are&amp;lt;br /&amp;gt;&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-WIFI/ A13-OLinuXino-WIFI] - Recommended if your developing software for the A13 for the first time as its the only one with network connectivity.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino/ A13-OLinuXino] - This is the same as the WIFI version but without WIFI module and NAND flash. Note: Android requires NAND flash to run, so this board can't run Android.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/ A13-OLinuXino-MICRO] - Similar to the A13-OlinuXino but with less extras&lt;br /&gt;
*[https://www.olimex.com/Products/SOM/A13/A13-SOM-512/ A13-SOM-512] - System-on-Module A13 board recommended for users with experience in Allwinner development. Allows developing custom extensions with only the peripherals needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
The official Debian images are suitable only for microSD card. Information on booting Debian from the NAND might be found at the forum.&lt;br /&gt;
&lt;br /&gt;
Download methods and locations might be found below!&lt;br /&gt;
&lt;br /&gt;
'''Please note that you might need different Debian Linux images for different boards with different hardware - you would need to inspect the DDR3 RAM memory and use the image suitable for your board. We use either HYNIX H5TQ2G83CFR, or SAMSUNG K4B2G0846Q.'''&lt;br /&gt;
&lt;br /&gt;
'''Newest official Debian release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download for Debian release 11.3 suitable for boards with SAMSUNG K4B2G0846Q DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_mainline_u-boot_release_11_3.7z A13 Debian Linux with kernel 3.4.90+, suitable for boards with SAMSUNG DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
Direct download Debian release 10 suitable for boards with HYNIX H5TQ2G83CFR DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_3G_video_accell_release_10.7z Debian A13 Linux with kernel 3.4.90+, suitable for HYNIX DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
'''Instructions and required files for preparing the Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building Linux for A13-OLinuXino and A13-OLinuXino-WIFI]'''&lt;br /&gt;
&lt;br /&gt;
The images include the following:&lt;br /&gt;
*Linux Kernel 3.4.90+&lt;br /&gt;
*LXDE desktop environment&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*xorg&lt;br /&gt;
*Python 2.7&lt;br /&gt;
*vlc&lt;br /&gt;
*mplayer&lt;br /&gt;
*smplayer&lt;br /&gt;
*midori browser&lt;br /&gt;
*usb-modeswitch&lt;br /&gt;
*sshfs&lt;br /&gt;
*wvdial&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the A13-OLinuXino-SD card which we have on our webshop contain same image on 4GB Class10 fast micro sd-card, if you want to use this image please use Class10 fast card or the performance of Linux will slow down&lt;br /&gt;
&lt;br /&gt;
The file A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z is an archive of A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file. &lt;br /&gt;
&lt;br /&gt;
So in order to write the image on SD card you have to unzip A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file:&lt;br /&gt;
&lt;br /&gt;
For Windows use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) for image writing&lt;br /&gt;
&lt;br /&gt;
For Linux use p7zip package. If you have no installed 7zip then type &lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
&lt;br /&gt;
Copy A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file in your directory and unzip it with &lt;br /&gt;
&lt;br /&gt;
    #7za e A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
&lt;br /&gt;
The output should be a new 4GB file named A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
&lt;br /&gt;
    #dd if=A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z &amp;lt;br&amp;gt;of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main tested onboard hardware modules are:&lt;br /&gt;
&lt;br /&gt;
'''GPIO'''	-	they are located in /sys/class/gpio directory. Note that first you have to export GPIOs. &lt;br /&gt;
For example: to add PB03&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
to make PB03 output&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo out &amp;gt; /sys/class/gpio/gpio1_pb3/direction&lt;br /&gt;
&lt;br /&gt;
to make PB03 high level(3.3V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
to make PB03 low level(0V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 0 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio12_pg9  gpio1_pb3   gpio4_pe4  gpio7_pe7 &lt;br /&gt;
    gpio10_pe10  gpio13_pg10  gpio2_pb4   gpio5_pe5  gpio8_pe8 &lt;br /&gt;
    gpio11_pe11  gpio14_pg11  gpio3_pb10  gpio6_pe6  gpio9_pe9&lt;br /&gt;
&lt;br /&gt;
note that:&lt;br /&gt;
&lt;br /&gt;
gpio12_pg9(GPIO2/pin10) is connected to on board LED and it is multiplexed with UART3_TX and gpio13_pg10(GPIO2/pin8) is multiplexed with UART3_RX&lt;br /&gt;
Therfore if you want to use these ports like GPIO then UART3_TX and UART3_RX will not be available. &lt;br /&gt;
&lt;br /&gt;
'''LCD'''	-	4.3&amp;quot;(480x272), 7&amp;quot;(800x480), 10&amp;quot;(1024x600)&lt;br /&gt;
&lt;br /&gt;
'''VGA'''	- 	800x600, 1024x768&lt;br /&gt;
&lt;br /&gt;
'''Touch_screen'''	-	you need calibrate LCD touch screen usi it. Note that by default the X environment does not start like root user. In our case the X starts with user named olimex&lt;br /&gt;
&lt;br /&gt;
Therefore if you want to use the touch screen in X environment then you have to run calibrate procedure like olimex user. For example type: &lt;br /&gt;
&lt;br /&gt;
    #su olimex&lt;br /&gt;
&lt;br /&gt;
enter the olimex password:olimex&lt;br /&gt;
&lt;br /&gt;
    #sudo ts_calibrate&lt;br /&gt;
&lt;br /&gt;
calibrate the touch screen and reboot the board&lt;br /&gt;
&lt;br /&gt;
    #sudo reboot&lt;br /&gt;
&lt;br /&gt;
ASIX8877 USB-LAN	-	https://www.olimex.com/Products/OLinuXino/A13/USB-ETHERNET-AX88772B/&lt;br /&gt;
&lt;br /&gt;
WEB camera A4TECH&lt;br /&gt;
&lt;br /&gt;
MOD-WIFI-RTL8188	-	https://www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188/ instructions on how to enable it might be found here: [[How_to_configure_MOD-RTL8188_on_official_OLinuXino_Debian_releases]]&lt;br /&gt;
&lt;br /&gt;
USB_OTG		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_up		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_down	-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
mico_SD_card	&lt;br /&gt;
&lt;br /&gt;
I2C2(100KHz)	-	/dev/i2c-2&lt;br /&gt;
&lt;br /&gt;
I2C1(100KHz)	-	/dev/i2c-1&lt;br /&gt;
&lt;br /&gt;
UART3	-	/dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
'''[https://drive.google.com/file/d/0B-bAEPML8fwlYnUwdnpkUllVNFU/edit?usp=sharing A13 Debian 4GB SD-card image armel (softfloat) with: MONO complete]'''&lt;br /&gt;
*Linux Kernel 3.4.67+&lt;br /&gt;
*XFCE4 desktop environment&lt;br /&gt;
*Mplayer CLI&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*iceweasel WEB browser&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*apache2&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*vlc&lt;br /&gt;
*xorg&lt;br /&gt;
*Scratch&lt;br /&gt;
*GCC&lt;br /&gt;
*Python 2.7.3 &lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*OpenCV&lt;br /&gt;
*mono-complete&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
====Android for NAND====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are different images depending on the screen output settings. Also there are different images depending on the WIFI module placed. Latest hardware revisions use MOD-WIFI-RTL8188ETV and an updated image.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 4.3&amp;quot; 480x272 and touchscreen:'''&lt;br /&gt;
 &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_480x272_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188ETV module]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_NAND_LCD_480x272_EN_first_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188 module]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 7&amp;quot; 800x480 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_fifh_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_third_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND images with LCD 10&amp;quot; 1024x600 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_1024x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 10&amp;quot; 1024x600 and touchscreen]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 10&amp;quot; 1024x600 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND image with VGA 800x600 support, torrents:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_VGA_800x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with VGA 800x600 support]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_VGA_800x600_EN_third_release.img A13-OLinuXino Android for NAND memory with VGA 800x600 support]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Android for microSD card====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Torrent of Android release 3 with LCD support for microSD card (recommended): &lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_sd_800x480_USB_OTG_8G_third_release.torrent‎‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 3]]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*Only LCD support - 800x480 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Older (not recommended) releases:'''&lt;br /&gt;
&lt;br /&gt;
Torrent of Android release 2 with LCD support for microSD card (not recommended, the USB OTG does not work properly due to fex error): [[Media:A13_android_sd_800x480_second_release.torrent‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HOWTOs==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
'''How to write the Debain image to a microSD card?'''&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
'''How to change VGA and LCD resolutions under Debian?'''&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for 800x600 VGA video output. If you want to change to some other LCD or VGA resolution then you have to start change_display.sh script file in /root directory.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
   &lt;br /&gt;
    ./change_display* (press 'TAB' to auto-complete)  &lt;br /&gt;
or&lt;br /&gt;
    ./change_display_A13.sh&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.   &lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you might need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*1. 800x600&lt;br /&gt;
*2. 1024x768&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Linux related===&lt;br /&gt;
'''How to build latest official Debian release'''&lt;br /&gt;
&lt;br /&gt;
The latest official instructions might be found here:&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building the latest official Debian release, at Olimex GitHub]&lt;br /&gt;
&lt;br /&gt;
There are a number of unofficial guides to building the Debian, among them:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A13/olinuxino-debian.pdf How to build Debian for A13-OLinuXino-WIFI by Marcin Twardak]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
'''How to edit my MAC address?'''&lt;br /&gt;
&lt;br /&gt;
However, it is very easy to change MAC under Debian.&lt;br /&gt;
 &lt;br /&gt;
All you have to do is:&lt;br /&gt;
 &lt;br /&gt;
1. turn off the network interface (it is off by default, can be turned off by “ifdown eth0”)&lt;br /&gt;
2. open /etc/network/interfaces with a text editor (for instance “nano /etc/network/interfaces”)&lt;br /&gt;
3. add the following line under eth0 definitions: “hwaddress ether 00:11:22:33:44:55”, where 00:11:22:33:44:55 is the desired MAC address.&lt;br /&gt;
4. save and turn on the network interface (“ifup eth0”)&lt;br /&gt;
 &lt;br /&gt;
You can think of own way implementing own MAC address (for instance storing a consecutive number in the small EEPROM and then loading it).&lt;br /&gt;
&lt;br /&gt;
'''How to enable WIFI?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
'''How to enable Ethernet?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===Android related===&lt;br /&gt;
'''How to compile new Android image?'''&lt;br /&gt;
&lt;br /&gt;
Good guide shared by Akshay Mathur might be found here: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/Android-JellyBean pdf instructions available at GitHub]&lt;br /&gt;
&lt;br /&gt;
'''How to make code to run on power up?'''&lt;br /&gt;
&lt;br /&gt;
You would need an application that works in kiosk mode. There is a lot of information available online on how to write an application capable of autostart.&lt;br /&gt;
&lt;br /&gt;
'''How to access GPIOs?'''&lt;br /&gt;
&lt;br /&gt;
There is an application we wrote to demonstrate how this can be done under Android. Please check the following two links:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=fBydZn8FylE YouTube video of relay control via MOD-IO under Android]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/ANDROID-MOD-IO Source code of the above example]&lt;br /&gt;
&lt;br /&gt;
'''How to add PWM support?''' &lt;br /&gt;
&lt;br /&gt;
There is a separate article on the subject here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A13-OLinuXino is called pyA13. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA13 Link to pyA13 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===Scratch===&lt;br /&gt;
&lt;br /&gt;
There are a number of SCRATCH resources we have published. The following might be of interested for you if you are interested in SCRATCH or OpenCV:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=Pyidx-zOsm4 YouTube video of A13-OLinuXino running SCRATCH + OPENCV interractive project with web camera]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=DzmvqlQodac YouTube video of A13-OLinuXino-WIFI + SCRATCH animation of GPIO-2 connector with buttons and LEDs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13 source code and other scratch-related project available at Github]&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-OLinuXino A13-OLinuXino schematic in PDF format and Eagle CAD files]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-PDFs A13 datasheet and user manual PDFs]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/A13_Register_guide A13 Registers Guide]&lt;br /&gt;
&lt;br /&gt;
GPIOs&lt;br /&gt;
&lt;br /&gt;
UEXT&lt;br /&gt;
&lt;br /&gt;
LCD&lt;br /&gt;
&lt;br /&gt;
RTC&lt;br /&gt;
&lt;br /&gt;
[[Serial connection to A13]] description of how to connect a computer to the A13 board over serial cable.&lt;br /&gt;
&lt;br /&gt;
===Power supply===&lt;br /&gt;
&lt;br /&gt;
The A13-OLinuXino can be partially powered over Micro USB, but to power all peripherals, a 6+ watt DC power supply between 6 and 16 volts can be used.  The connector is a positive-center 2.5mm barrel plug.  There is also an on-board connector for a Li-PO battery.&lt;br /&gt;
'''Important note: A13-OLinuXino-MICRO works with +5V only! If you apply more than 5V you will damage the board.'''&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Main_Page A generic wiki for the Allwinner devices might be found here. It contains some great detailed info]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bare Metal programming - no OS ===&lt;br /&gt;
&lt;br /&gt;
It is possible to program and debug code written directly on the chip without an OS such as linux or android.&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantage is no kernel overhead and tighter control of the CPU operation.&lt;br /&gt;
&lt;br /&gt;
[[Bare Metal programming A13]]&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - Nand flash ===&lt;br /&gt;
&lt;br /&gt;
The Wifi version of the A13 board comes preprogrammed with android, which is held in the Nand flash.&lt;br /&gt;
&lt;br /&gt;
The image in the Nand flash can be updated using the tools found at the following links:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/file/d/0B7WHuNCASY8cWlZ2djh4X0QtV0U/edit?usp=sharing LiveSuit for Windows]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/LiveSuit LiveSuit for loading images]&lt;br /&gt;
&lt;br /&gt;
to the NAND flash; to activate A13 bootloader do as follows: run Livesuit, disconnect the power supply and USB cable, then press HOME button, apply power supply, attach USB cable and release the button, Livesuit will detect the bootloader and will ask which file to program to the NAND flash.&lt;br /&gt;
&lt;br /&gt;
Prebuilt images that can be programmed into the Nand flash can be found here.&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - SD card ===&lt;br /&gt;
The A13 board can boot from an SD card. Just plug it in an imaged uSD card and connect power.&lt;br /&gt;
&lt;br /&gt;
Note: The SD card can easily be corrupted if power is removed while the system is booting or writing to system files.&lt;br /&gt;
To avoid this do not remove power while it is booting and shut the system down properly before disconnecting power.&lt;br /&gt;
&lt;br /&gt;
==== Prebuilt images ====&lt;br /&gt;
&lt;br /&gt;
Some prebuilt images have been created, follow the link below for details.&lt;br /&gt;
&lt;br /&gt;
[[Prebuilt SD card images running debian]]&lt;br /&gt;
&lt;br /&gt;
==== Build your own kernel and image onto SD card ====&lt;br /&gt;
&lt;br /&gt;
Some developers want more control over the kernel and modules that are included. The link below shows directions to build your own kernel and image it onto an SD card.&lt;br /&gt;
&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Step by step instructions how to make SD card image with above Kernel and U-boot&lt;br /&gt;
&lt;br /&gt;
====Setup and configure the installed debian image====&lt;br /&gt;
&lt;br /&gt;
There are several settings that can be made for a particular hardware configuration in the script file. &lt;br /&gt;
&lt;br /&gt;
The following link explains the script file as well as wifi or ethernet setup and GPIO settings &lt;br /&gt;
&lt;br /&gt;
[[Configuration of hardware in the debian image]]&lt;br /&gt;
&lt;br /&gt;
====Installing UsbVideoClass(UVC) on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To work with USB Video Cameras you have to enable the UVC support in the kernel. The link below explains how to do it.&lt;br /&gt;
&lt;br /&gt;
[[UVC support]]&lt;br /&gt;
&lt;br /&gt;
====Setup VLC player for video streaming on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To setup video streaming you should first have installed UVC support so you can connect USB cameras to A13-OLinuXino.&lt;br /&gt;
&lt;br /&gt;
[[VLC streaming]]&lt;br /&gt;
&lt;br /&gt;
=== Creating a program to run on the A13-OlinuXino board ===&lt;br /&gt;
&lt;br /&gt;
[[Programming for A13 in debian]] Step by step instructions to make your first hello world program run on the A13 board running debian.&lt;br /&gt;
&lt;br /&gt;
=== Software links ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Sunxi-tools Tools to hack A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/11/23/running-debian-with-xfce4-on-a13-olinuxino/ Installing Xfce4 graphical interface on Debian] How to install XFCE4 on A13-OLinuXino&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.0.3 ICS ===&lt;br /&gt;
&lt;br /&gt;
The official Allwinner repository contains all official files, including the files required to build Android ACS 4.0.3 NAND image for A13-OLinuXino-WIFI.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/allwinner-dev-team Allwinner's official GitHub]&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.1 JB ===&lt;br /&gt;
&lt;br /&gt;
This is version 1.5 of A13-SDK which builds Android 4.1 Jelly Beans image. It works slower than 4.0.3 and we personally do not see any advantage to use 4.1 vs 4.0.3&lt;br /&gt;
&lt;br /&gt;
[http://emicrotec.at/public/ Andreas Auer kindly offered to host this 4GB image]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Projects people from the olinuxino community are working on or have finished and how they did it.&lt;br /&gt;
&lt;br /&gt;
'''LINUX:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Run Debian and u-boot, Step by step instructions how to make SD card image.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Prebuilt SD card images running debian]] &lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2014/03/06/bootling-linux-on-a13-for-less-than-1-second/ Booting Linux for less than 1 second] optimization made by Miroslav Bendik.&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/23/a13-olinuxino-playing-with-gpios/ Change GPIOs using scripts in linux]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=436.msg4066#msg4066 A13 OLinuXino fast GPIO with /dev/mem now achieve up to 2 Mhz toggle]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=899.0 A13 kernel module for direct support of UEXT MOD-IO board, adding ADC, relays etc, cool project can be used as reference how to make your own kernel modules]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/open?id=0B7WHuNCASY8cWnRrQ0tGVFMybFk Instructions how to run MOD-BT with A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/asfluido/olinuxino/ Customer project of A13-OLinuXino communication via SPI with MOD-MRF89-868]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/18/a13-olinuxino-wifi-and-opencv-face-detection-project/ A13-Olinuxino-WIFI and opencv face detection]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/02/scratch-control-for-mod-io/ Controlling Relays, Switching ON/OFF of 220V appliances and home automation]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/28/make-door-security-logger-with-a13-olinuxino-wifi-opencv/ Door security logger, image capture]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/08/gps-logger-with-google-maps-viewer-made-with-a13-olinuxino-and-mod-gps/ GPS logger with google maps viewer, MOD-GPS module on UEXT]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/02/25/a13-olinuxino-web-server-with-mod-rgb-controlling-rgb-led-stripe-over-internet/ Web server with MOD-RGB controlling RGB LED strip]&lt;br /&gt;
&lt;br /&gt;
'''ANDROID:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/24/a13-olinuxino-project-control-relays-and-read-adcs-and-ios-with-android/ Interface MOD-IO board with I2C under Android ]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/13/mame4droid-is-running-on-a13-olinuxino/ Run old games on android mame4droid]&lt;br /&gt;
&lt;br /&gt;
'''No OS'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Bare Metal programming A13]] Programming directly for the chip without an OS&lt;br /&gt;
&lt;br /&gt;
'''FreedomBox:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.debian.org/FreedomBox/UniLeipzigPractical FreedomBox/UniLeipzigPractical is the documentation of a freedom box related practical course at the AKSW Research Group at the University of Leipzig]&lt;br /&gt;
&lt;br /&gt;
== List of Contributors ==&lt;br /&gt;
&lt;br /&gt;
'''Henrik Nordstrom''' - a.k.a. hno, uboot for A13 development, A1X guru, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Dimitar Gamishev''' - a.k.a. HEHOPMAJIEH, Linux kernel configuration for OLinuXino, Android images, LCD touchscreen&lt;br /&gt;
&lt;br /&gt;
'''Alexandro Mery''' - a.k.a. mnemoc, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Davide Fabbri''' - Linaro kernel and lubuntu image&lt;br /&gt;
&lt;br /&gt;
'''Scott Anderson''' - A13 wiki maintainer&lt;br /&gt;
&lt;br /&gt;
'''Jeffrey Wischkaemper''' - a.k.a. jwischka,  A13-OLinuXino Debian image with X &lt;br /&gt;
&lt;br /&gt;
'''Maxime Ripard''' - ARM Linux patches&lt;br /&gt;
&lt;br /&gt;
'''Jason Plum''' - Arch Linux support&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3543</id>
		<title>A13-OLinuXino</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3543"/>
		<updated>2024-12-02T06:57:46Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android for NAND */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A13-OLinuXino-MAXI-WIFI-1.jpg|thumb| A13-OlinuXino-WIFI]]&lt;br /&gt;
&lt;br /&gt;
[[File:A13-OLinuXino-MICRO.jpg|thumb| A13-OlinuXino-MICRO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 processor from Allwinner runs at 1GHz with a Mali400 GPU. It was designed for integration into tablets. Olimex has made several development board designs based around this chip. This wiki page contains information about hardware and software to help make use of these development boards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 based boards currently available are&amp;lt;br /&amp;gt;&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-WIFI/ A13-OLinuXino-WIFI] - Recommended if your developing software for the A13 for the first time as its the only one with network connectivity.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino/ A13-OLinuXino] - This is the same as the WIFI version but without WIFI module and NAND flash. Note: Android requires NAND flash to run, so this board can't run Android.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/ A13-OLinuXino-MICRO] - Similar to the A13-OlinuXino but with less extras&lt;br /&gt;
*[https://www.olimex.com/Products/SOM/A13/A13-SOM-512/ A13-SOM-512] - System-on-Module A13 board recommended for users with experience in Allwinner development. Allows developing custom extensions with only the peripherals needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
The official Debian images are suitable only for microSD card. Information on booting Debian from the NAND might be found at the forum.&lt;br /&gt;
&lt;br /&gt;
Download methods and locations might be found below!&lt;br /&gt;
&lt;br /&gt;
'''Please note that you might need different Debian Linux images for different boards with different hardware - you would need to inspect the DDR3 RAM memory and use the image suitable for your board. We use either HYNIX H5TQ2G83CFR, or SAMSUNG K4B2G0846Q.'''&lt;br /&gt;
&lt;br /&gt;
'''Newest official Debian release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download for Debian release 11.3 suitable for boards with SAMSUNG K4B2G0846Q DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_mainline_u-boot_release_11_3.7z A13 Debian Linux with kernel 3.4.90+, suitable for boards with SAMSUNG DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
Direct download Debian release 10 suitable for boards with HYNIX H5TQ2G83CFR DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_3G_video_accell_release_10.7z Debian A13 Linux with kernel 3.4.90+, suitable for HYNIX DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
'''Instructions and required files for preparing the Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building Linux for A13-OLinuXino and A13-OLinuXino-WIFI]'''&lt;br /&gt;
&lt;br /&gt;
The images include the following:&lt;br /&gt;
*Linux Kernel 3.4.90+&lt;br /&gt;
*LXDE desktop environment&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*xorg&lt;br /&gt;
*Python 2.7&lt;br /&gt;
*vlc&lt;br /&gt;
*mplayer&lt;br /&gt;
*smplayer&lt;br /&gt;
*midori browser&lt;br /&gt;
*usb-modeswitch&lt;br /&gt;
*sshfs&lt;br /&gt;
*wvdial&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the A13-OLinuXino-SD card which we have on our webshop contain same image on 4GB Class10 fast micro sd-card, if you want to use this image please use Class10 fast card or the performance of Linux will slow down&lt;br /&gt;
&lt;br /&gt;
The file A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z is an archive of A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file. &lt;br /&gt;
&lt;br /&gt;
So in order to write the image on SD card you have to unzip A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file:&lt;br /&gt;
&lt;br /&gt;
For Windows use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) for image writing&lt;br /&gt;
&lt;br /&gt;
For Linux use p7zip package. If you have no installed 7zip then type &lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
&lt;br /&gt;
Copy A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file in your directory and unzip it with &lt;br /&gt;
&lt;br /&gt;
    #7za e A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
&lt;br /&gt;
The output should be a new 4GB file named A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
&lt;br /&gt;
    #dd if=A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z &amp;lt;br&amp;gt;of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main tested onboard hardware modules are:&lt;br /&gt;
&lt;br /&gt;
'''GPIO'''	-	they are located in /sys/class/gpio directory. Note that first you have to export GPIOs. &lt;br /&gt;
For example: to add PB03&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
to make PB03 output&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo out &amp;gt; /sys/class/gpio/gpio1_pb3/direction&lt;br /&gt;
&lt;br /&gt;
to make PB03 high level(3.3V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
to make PB03 low level(0V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 0 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio12_pg9  gpio1_pb3   gpio4_pe4  gpio7_pe7 &lt;br /&gt;
    gpio10_pe10  gpio13_pg10  gpio2_pb4   gpio5_pe5  gpio8_pe8 &lt;br /&gt;
    gpio11_pe11  gpio14_pg11  gpio3_pb10  gpio6_pe6  gpio9_pe9&lt;br /&gt;
&lt;br /&gt;
note that:&lt;br /&gt;
&lt;br /&gt;
gpio12_pg9(GPIO2/pin10) is connected to on board LED and it is multiplexed with UART3_TX and gpio13_pg10(GPIO2/pin8) is multiplexed with UART3_RX&lt;br /&gt;
Therfore if you want to use these ports like GPIO then UART3_TX and UART3_RX will not be available. &lt;br /&gt;
&lt;br /&gt;
'''LCD'''	-	4.3&amp;quot;(480x272), 7&amp;quot;(800x480), 10&amp;quot;(1024x600)&lt;br /&gt;
&lt;br /&gt;
'''VGA'''	- 	800x600, 1024x768&lt;br /&gt;
&lt;br /&gt;
'''Touch_screen'''	-	you need calibrate LCD touch screen usi it. Note that by default the X environment does not start like root user. In our case the X starts with user named olimex&lt;br /&gt;
&lt;br /&gt;
Therefore if you want to use the touch screen in X environment then you have to run calibrate procedure like olimex user. For example type: &lt;br /&gt;
&lt;br /&gt;
    #su olimex&lt;br /&gt;
&lt;br /&gt;
enter the olimex password:olimex&lt;br /&gt;
&lt;br /&gt;
    #sudo ts_calibrate&lt;br /&gt;
&lt;br /&gt;
calibrate the touch screen and reboot the board&lt;br /&gt;
&lt;br /&gt;
    #sudo reboot&lt;br /&gt;
&lt;br /&gt;
ASIX8877 USB-LAN	-	https://www.olimex.com/Products/OLinuXino/A13/USB-ETHERNET-AX88772B/&lt;br /&gt;
&lt;br /&gt;
WEB camera A4TECH&lt;br /&gt;
&lt;br /&gt;
MOD-WIFI-RTL8188	-	https://www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188/ instructions on how to enable it might be found here: [[How_to_configure_MOD-RTL8188_on_official_OLinuXino_Debian_releases]]&lt;br /&gt;
&lt;br /&gt;
USB_OTG		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_up		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_down	-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
mico_SD_card	&lt;br /&gt;
&lt;br /&gt;
I2C2(100KHz)	-	/dev/i2c-2&lt;br /&gt;
&lt;br /&gt;
I2C1(100KHz)	-	/dev/i2c-1&lt;br /&gt;
&lt;br /&gt;
UART3	-	/dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
'''[https://drive.google.com/file/d/0B-bAEPML8fwlYnUwdnpkUllVNFU/edit?usp=sharing A13 Debian 4GB SD-card image armel (softfloat) with: MONO complete]'''&lt;br /&gt;
*Linux Kernel 3.4.67+&lt;br /&gt;
*XFCE4 desktop environment&lt;br /&gt;
*Mplayer CLI&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*iceweasel WEB browser&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*apache2&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*vlc&lt;br /&gt;
*xorg&lt;br /&gt;
*Scratch&lt;br /&gt;
*GCC&lt;br /&gt;
*Python 2.7.3 &lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*OpenCV&lt;br /&gt;
*mono-complete&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
====Android for NAND====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are different images depending on the screen output settings. Also there are different images depending on the WIFI module placed. Latest hardware revisions use MOD-WIFI-RTL8188ETV and an updated image.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 4.3&amp;quot; 480x272 and touchscreen:'''&lt;br /&gt;
 &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_480x272_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188ETV module]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_NAND_LCD_480x272_EN_first_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188 module]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 7&amp;quot; 800x480 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_fifh_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_third_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND images with LCD 10&amp;quot; 1024x600 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_1024x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 10&amp;quot; 1024x600 and touchscreen]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 10&amp;quot; 1024x600 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND image with VGA 800x600 support, torrents:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_VGA_800x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with VGA 800x600 support]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_8G_NAND_VGA_800x600_EN_third_release.torrent‎‎|A13-OLinuXino Android for NAND memory with VGA 800x600 support]]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Android for microSD card====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Torrent of Android release 3 with LCD support for microSD card (recommended): &lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_sd_800x480_USB_OTG_8G_third_release.torrent‎‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 3]]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*Only LCD support - 800x480 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Older (not recommended) releases:'''&lt;br /&gt;
&lt;br /&gt;
Torrent of Android release 2 with LCD support for microSD card (not recommended, the USB OTG does not work properly due to fex error): [[Media:A13_android_sd_800x480_second_release.torrent‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HOWTOs==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
'''How to write the Debain image to a microSD card?'''&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
'''How to change VGA and LCD resolutions under Debian?'''&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for 800x600 VGA video output. If you want to change to some other LCD or VGA resolution then you have to start change_display.sh script file in /root directory.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
   &lt;br /&gt;
    ./change_display* (press 'TAB' to auto-complete)  &lt;br /&gt;
or&lt;br /&gt;
    ./change_display_A13.sh&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.   &lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you might need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*1. 800x600&lt;br /&gt;
*2. 1024x768&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Linux related===&lt;br /&gt;
'''How to build latest official Debian release'''&lt;br /&gt;
&lt;br /&gt;
The latest official instructions might be found here:&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building the latest official Debian release, at Olimex GitHub]&lt;br /&gt;
&lt;br /&gt;
There are a number of unofficial guides to building the Debian, among them:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A13/olinuxino-debian.pdf How to build Debian for A13-OLinuXino-WIFI by Marcin Twardak]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
'''How to edit my MAC address?'''&lt;br /&gt;
&lt;br /&gt;
However, it is very easy to change MAC under Debian.&lt;br /&gt;
 &lt;br /&gt;
All you have to do is:&lt;br /&gt;
 &lt;br /&gt;
1. turn off the network interface (it is off by default, can be turned off by “ifdown eth0”)&lt;br /&gt;
2. open /etc/network/interfaces with a text editor (for instance “nano /etc/network/interfaces”)&lt;br /&gt;
3. add the following line under eth0 definitions: “hwaddress ether 00:11:22:33:44:55”, where 00:11:22:33:44:55 is the desired MAC address.&lt;br /&gt;
4. save and turn on the network interface (“ifup eth0”)&lt;br /&gt;
 &lt;br /&gt;
You can think of own way implementing own MAC address (for instance storing a consecutive number in the small EEPROM and then loading it).&lt;br /&gt;
&lt;br /&gt;
'''How to enable WIFI?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
'''How to enable Ethernet?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===Android related===&lt;br /&gt;
'''How to compile new Android image?'''&lt;br /&gt;
&lt;br /&gt;
Good guide shared by Akshay Mathur might be found here: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/Android-JellyBean pdf instructions available at GitHub]&lt;br /&gt;
&lt;br /&gt;
'''How to make code to run on power up?'''&lt;br /&gt;
&lt;br /&gt;
You would need an application that works in kiosk mode. There is a lot of information available online on how to write an application capable of autostart.&lt;br /&gt;
&lt;br /&gt;
'''How to access GPIOs?'''&lt;br /&gt;
&lt;br /&gt;
There is an application we wrote to demonstrate how this can be done under Android. Please check the following two links:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=fBydZn8FylE YouTube video of relay control via MOD-IO under Android]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/ANDROID-MOD-IO Source code of the above example]&lt;br /&gt;
&lt;br /&gt;
'''How to add PWM support?''' &lt;br /&gt;
&lt;br /&gt;
There is a separate article on the subject here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A13-OLinuXino is called pyA13. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA13 Link to pyA13 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===Scratch===&lt;br /&gt;
&lt;br /&gt;
There are a number of SCRATCH resources we have published. The following might be of interested for you if you are interested in SCRATCH or OpenCV:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=Pyidx-zOsm4 YouTube video of A13-OLinuXino running SCRATCH + OPENCV interractive project with web camera]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=DzmvqlQodac YouTube video of A13-OLinuXino-WIFI + SCRATCH animation of GPIO-2 connector with buttons and LEDs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13 source code and other scratch-related project available at Github]&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-OLinuXino A13-OLinuXino schematic in PDF format and Eagle CAD files]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-PDFs A13 datasheet and user manual PDFs]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/A13_Register_guide A13 Registers Guide]&lt;br /&gt;
&lt;br /&gt;
GPIOs&lt;br /&gt;
&lt;br /&gt;
UEXT&lt;br /&gt;
&lt;br /&gt;
LCD&lt;br /&gt;
&lt;br /&gt;
RTC&lt;br /&gt;
&lt;br /&gt;
[[Serial connection to A13]] description of how to connect a computer to the A13 board over serial cable.&lt;br /&gt;
&lt;br /&gt;
===Power supply===&lt;br /&gt;
&lt;br /&gt;
The A13-OLinuXino can be partially powered over Micro USB, but to power all peripherals, a 6+ watt DC power supply between 6 and 16 volts can be used.  The connector is a positive-center 2.5mm barrel plug.  There is also an on-board connector for a Li-PO battery.&lt;br /&gt;
'''Important note: A13-OLinuXino-MICRO works with +5V only! If you apply more than 5V you will damage the board.'''&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Main_Page A generic wiki for the Allwinner devices might be found here. It contains some great detailed info]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bare Metal programming - no OS ===&lt;br /&gt;
&lt;br /&gt;
It is possible to program and debug code written directly on the chip without an OS such as linux or android.&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantage is no kernel overhead and tighter control of the CPU operation.&lt;br /&gt;
&lt;br /&gt;
[[Bare Metal programming A13]]&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - Nand flash ===&lt;br /&gt;
&lt;br /&gt;
The Wifi version of the A13 board comes preprogrammed with android, which is held in the Nand flash.&lt;br /&gt;
&lt;br /&gt;
The image in the Nand flash can be updated using the tools found at the following links:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/file/d/0B7WHuNCASY8cWlZ2djh4X0QtV0U/edit?usp=sharing LiveSuit for Windows]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/LiveSuit LiveSuit for loading images]&lt;br /&gt;
&lt;br /&gt;
to the NAND flash; to activate A13 bootloader do as follows: run Livesuit, disconnect the power supply and USB cable, then press HOME button, apply power supply, attach USB cable and release the button, Livesuit will detect the bootloader and will ask which file to program to the NAND flash.&lt;br /&gt;
&lt;br /&gt;
Prebuilt images that can be programmed into the Nand flash can be found here.&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - SD card ===&lt;br /&gt;
The A13 board can boot from an SD card. Just plug it in an imaged uSD card and connect power.&lt;br /&gt;
&lt;br /&gt;
Note: The SD card can easily be corrupted if power is removed while the system is booting or writing to system files.&lt;br /&gt;
To avoid this do not remove power while it is booting and shut the system down properly before disconnecting power.&lt;br /&gt;
&lt;br /&gt;
==== Prebuilt images ====&lt;br /&gt;
&lt;br /&gt;
Some prebuilt images have been created, follow the link below for details.&lt;br /&gt;
&lt;br /&gt;
[[Prebuilt SD card images running debian]]&lt;br /&gt;
&lt;br /&gt;
==== Build your own kernel and image onto SD card ====&lt;br /&gt;
&lt;br /&gt;
Some developers want more control over the kernel and modules that are included. The link below shows directions to build your own kernel and image it onto an SD card.&lt;br /&gt;
&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Step by step instructions how to make SD card image with above Kernel and U-boot&lt;br /&gt;
&lt;br /&gt;
====Setup and configure the installed debian image====&lt;br /&gt;
&lt;br /&gt;
There are several settings that can be made for a particular hardware configuration in the script file. &lt;br /&gt;
&lt;br /&gt;
The following link explains the script file as well as wifi or ethernet setup and GPIO settings &lt;br /&gt;
&lt;br /&gt;
[[Configuration of hardware in the debian image]]&lt;br /&gt;
&lt;br /&gt;
====Installing UsbVideoClass(UVC) on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To work with USB Video Cameras you have to enable the UVC support in the kernel. The link below explains how to do it.&lt;br /&gt;
&lt;br /&gt;
[[UVC support]]&lt;br /&gt;
&lt;br /&gt;
====Setup VLC player for video streaming on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To setup video streaming you should first have installed UVC support so you can connect USB cameras to A13-OLinuXino.&lt;br /&gt;
&lt;br /&gt;
[[VLC streaming]]&lt;br /&gt;
&lt;br /&gt;
=== Creating a program to run on the A13-OlinuXino board ===&lt;br /&gt;
&lt;br /&gt;
[[Programming for A13 in debian]] Step by step instructions to make your first hello world program run on the A13 board running debian.&lt;br /&gt;
&lt;br /&gt;
=== Software links ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Sunxi-tools Tools to hack A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/11/23/running-debian-with-xfce4-on-a13-olinuxino/ Installing Xfce4 graphical interface on Debian] How to install XFCE4 on A13-OLinuXino&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.0.3 ICS ===&lt;br /&gt;
&lt;br /&gt;
The official Allwinner repository contains all official files, including the files required to build Android ACS 4.0.3 NAND image for A13-OLinuXino-WIFI.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/allwinner-dev-team Allwinner's official GitHub]&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.1 JB ===&lt;br /&gt;
&lt;br /&gt;
This is version 1.5 of A13-SDK which builds Android 4.1 Jelly Beans image. It works slower than 4.0.3 and we personally do not see any advantage to use 4.1 vs 4.0.3&lt;br /&gt;
&lt;br /&gt;
[http://emicrotec.at/public/ Andreas Auer kindly offered to host this 4GB image]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Projects people from the olinuxino community are working on or have finished and how they did it.&lt;br /&gt;
&lt;br /&gt;
'''LINUX:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Run Debian and u-boot, Step by step instructions how to make SD card image.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Prebuilt SD card images running debian]] &lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2014/03/06/bootling-linux-on-a13-for-less-than-1-second/ Booting Linux for less than 1 second] optimization made by Miroslav Bendik.&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/23/a13-olinuxino-playing-with-gpios/ Change GPIOs using scripts in linux]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=436.msg4066#msg4066 A13 OLinuXino fast GPIO with /dev/mem now achieve up to 2 Mhz toggle]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=899.0 A13 kernel module for direct support of UEXT MOD-IO board, adding ADC, relays etc, cool project can be used as reference how to make your own kernel modules]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/open?id=0B7WHuNCASY8cWnRrQ0tGVFMybFk Instructions how to run MOD-BT with A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/asfluido/olinuxino/ Customer project of A13-OLinuXino communication via SPI with MOD-MRF89-868]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/18/a13-olinuxino-wifi-and-opencv-face-detection-project/ A13-Olinuxino-WIFI and opencv face detection]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/02/scratch-control-for-mod-io/ Controlling Relays, Switching ON/OFF of 220V appliances and home automation]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/28/make-door-security-logger-with-a13-olinuxino-wifi-opencv/ Door security logger, image capture]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/08/gps-logger-with-google-maps-viewer-made-with-a13-olinuxino-and-mod-gps/ GPS logger with google maps viewer, MOD-GPS module on UEXT]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/02/25/a13-olinuxino-web-server-with-mod-rgb-controlling-rgb-led-stripe-over-internet/ Web server with MOD-RGB controlling RGB LED strip]&lt;br /&gt;
&lt;br /&gt;
'''ANDROID:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/24/a13-olinuxino-project-control-relays-and-read-adcs-and-ios-with-android/ Interface MOD-IO board with I2C under Android ]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/13/mame4droid-is-running-on-a13-olinuxino/ Run old games on android mame4droid]&lt;br /&gt;
&lt;br /&gt;
'''No OS'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Bare Metal programming A13]] Programming directly for the chip without an OS&lt;br /&gt;
&lt;br /&gt;
'''FreedomBox:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.debian.org/FreedomBox/UniLeipzigPractical FreedomBox/UniLeipzigPractical is the documentation of a freedom box related practical course at the AKSW Research Group at the University of Leipzig]&lt;br /&gt;
&lt;br /&gt;
== List of Contributors ==&lt;br /&gt;
&lt;br /&gt;
'''Henrik Nordstrom''' - a.k.a. hno, uboot for A13 development, A1X guru, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Dimitar Gamishev''' - a.k.a. HEHOPMAJIEH, Linux kernel configuration for OLinuXino, Android images, LCD touchscreen&lt;br /&gt;
&lt;br /&gt;
'''Alexandro Mery''' - a.k.a. mnemoc, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Davide Fabbri''' - Linaro kernel and lubuntu image&lt;br /&gt;
&lt;br /&gt;
'''Scott Anderson''' - A13 wiki maintainer&lt;br /&gt;
&lt;br /&gt;
'''Jeffrey Wischkaemper''' - a.k.a. jwischka,  A13-OLinuXino Debian image with X &lt;br /&gt;
&lt;br /&gt;
'''Maxime Ripard''' - ARM Linux patches&lt;br /&gt;
&lt;br /&gt;
'''Jason Plum''' - Arch Linux support&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3542</id>
		<title>A13-OLinuXino</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3542"/>
		<updated>2024-11-29T08:28:23Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android for NAND */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A13-OLinuXino-MAXI-WIFI-1.jpg|thumb| A13-OlinuXino-WIFI]]&lt;br /&gt;
&lt;br /&gt;
[[File:A13-OLinuXino-MICRO.jpg|thumb| A13-OlinuXino-MICRO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 processor from Allwinner runs at 1GHz with a Mali400 GPU. It was designed for integration into tablets. Olimex has made several development board designs based around this chip. This wiki page contains information about hardware and software to help make use of these development boards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 based boards currently available are&amp;lt;br /&amp;gt;&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-WIFI/ A13-OLinuXino-WIFI] - Recommended if your developing software for the A13 for the first time as its the only one with network connectivity.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino/ A13-OLinuXino] - This is the same as the WIFI version but without WIFI module and NAND flash. Note: Android requires NAND flash to run, so this board can't run Android.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/ A13-OLinuXino-MICRO] - Similar to the A13-OlinuXino but with less extras&lt;br /&gt;
*[https://www.olimex.com/Products/SOM/A13/A13-SOM-512/ A13-SOM-512] - System-on-Module A13 board recommended for users with experience in Allwinner development. Allows developing custom extensions with only the peripherals needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
The official Debian images are suitable only for microSD card. Information on booting Debian from the NAND might be found at the forum.&lt;br /&gt;
&lt;br /&gt;
Download methods and locations might be found below!&lt;br /&gt;
&lt;br /&gt;
'''Please note that you might need different Debian Linux images for different boards with different hardware - you would need to inspect the DDR3 RAM memory and use the image suitable for your board. We use either HYNIX H5TQ2G83CFR, or SAMSUNG K4B2G0846Q.'''&lt;br /&gt;
&lt;br /&gt;
'''Newest official Debian release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download for Debian release 11.3 suitable for boards with SAMSUNG K4B2G0846Q DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_mainline_u-boot_release_11_3.7z A13 Debian Linux with kernel 3.4.90+, suitable for boards with SAMSUNG DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
Direct download Debian release 10 suitable for boards with HYNIX H5TQ2G83CFR DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_3G_video_accell_release_10.7z Debian A13 Linux with kernel 3.4.90+, suitable for HYNIX DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
'''Instructions and required files for preparing the Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building Linux for A13-OLinuXino and A13-OLinuXino-WIFI]'''&lt;br /&gt;
&lt;br /&gt;
The images include the following:&lt;br /&gt;
*Linux Kernel 3.4.90+&lt;br /&gt;
*LXDE desktop environment&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*xorg&lt;br /&gt;
*Python 2.7&lt;br /&gt;
*vlc&lt;br /&gt;
*mplayer&lt;br /&gt;
*smplayer&lt;br /&gt;
*midori browser&lt;br /&gt;
*usb-modeswitch&lt;br /&gt;
*sshfs&lt;br /&gt;
*wvdial&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the A13-OLinuXino-SD card which we have on our webshop contain same image on 4GB Class10 fast micro sd-card, if you want to use this image please use Class10 fast card or the performance of Linux will slow down&lt;br /&gt;
&lt;br /&gt;
The file A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z is an archive of A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file. &lt;br /&gt;
&lt;br /&gt;
So in order to write the image on SD card you have to unzip A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file:&lt;br /&gt;
&lt;br /&gt;
For Windows use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) for image writing&lt;br /&gt;
&lt;br /&gt;
For Linux use p7zip package. If you have no installed 7zip then type &lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
&lt;br /&gt;
Copy A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file in your directory and unzip it with &lt;br /&gt;
&lt;br /&gt;
    #7za e A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
&lt;br /&gt;
The output should be a new 4GB file named A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
&lt;br /&gt;
    #dd if=A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z &amp;lt;br&amp;gt;of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main tested onboard hardware modules are:&lt;br /&gt;
&lt;br /&gt;
'''GPIO'''	-	they are located in /sys/class/gpio directory. Note that first you have to export GPIOs. &lt;br /&gt;
For example: to add PB03&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
to make PB03 output&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo out &amp;gt; /sys/class/gpio/gpio1_pb3/direction&lt;br /&gt;
&lt;br /&gt;
to make PB03 high level(3.3V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
to make PB03 low level(0V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 0 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio12_pg9  gpio1_pb3   gpio4_pe4  gpio7_pe7 &lt;br /&gt;
    gpio10_pe10  gpio13_pg10  gpio2_pb4   gpio5_pe5  gpio8_pe8 &lt;br /&gt;
    gpio11_pe11  gpio14_pg11  gpio3_pb10  gpio6_pe6  gpio9_pe9&lt;br /&gt;
&lt;br /&gt;
note that:&lt;br /&gt;
&lt;br /&gt;
gpio12_pg9(GPIO2/pin10) is connected to on board LED and it is multiplexed with UART3_TX and gpio13_pg10(GPIO2/pin8) is multiplexed with UART3_RX&lt;br /&gt;
Therfore if you want to use these ports like GPIO then UART3_TX and UART3_RX will not be available. &lt;br /&gt;
&lt;br /&gt;
'''LCD'''	-	4.3&amp;quot;(480x272), 7&amp;quot;(800x480), 10&amp;quot;(1024x600)&lt;br /&gt;
&lt;br /&gt;
'''VGA'''	- 	800x600, 1024x768&lt;br /&gt;
&lt;br /&gt;
'''Touch_screen'''	-	you need calibrate LCD touch screen usi it. Note that by default the X environment does not start like root user. In our case the X starts with user named olimex&lt;br /&gt;
&lt;br /&gt;
Therefore if you want to use the touch screen in X environment then you have to run calibrate procedure like olimex user. For example type: &lt;br /&gt;
&lt;br /&gt;
    #su olimex&lt;br /&gt;
&lt;br /&gt;
enter the olimex password:olimex&lt;br /&gt;
&lt;br /&gt;
    #sudo ts_calibrate&lt;br /&gt;
&lt;br /&gt;
calibrate the touch screen and reboot the board&lt;br /&gt;
&lt;br /&gt;
    #sudo reboot&lt;br /&gt;
&lt;br /&gt;
ASIX8877 USB-LAN	-	https://www.olimex.com/Products/OLinuXino/A13/USB-ETHERNET-AX88772B/&lt;br /&gt;
&lt;br /&gt;
WEB camera A4TECH&lt;br /&gt;
&lt;br /&gt;
MOD-WIFI-RTL8188	-	https://www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188/ instructions on how to enable it might be found here: [[How_to_configure_MOD-RTL8188_on_official_OLinuXino_Debian_releases]]&lt;br /&gt;
&lt;br /&gt;
USB_OTG		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_up		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_down	-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
mico_SD_card	&lt;br /&gt;
&lt;br /&gt;
I2C2(100KHz)	-	/dev/i2c-2&lt;br /&gt;
&lt;br /&gt;
I2C1(100KHz)	-	/dev/i2c-1&lt;br /&gt;
&lt;br /&gt;
UART3	-	/dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
'''[https://drive.google.com/file/d/0B-bAEPML8fwlYnUwdnpkUllVNFU/edit?usp=sharing A13 Debian 4GB SD-card image armel (softfloat) with: MONO complete]'''&lt;br /&gt;
*Linux Kernel 3.4.67+&lt;br /&gt;
*XFCE4 desktop environment&lt;br /&gt;
*Mplayer CLI&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*iceweasel WEB browser&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*apache2&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*vlc&lt;br /&gt;
*xorg&lt;br /&gt;
*Scratch&lt;br /&gt;
*GCC&lt;br /&gt;
*Python 2.7.3 &lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*OpenCV&lt;br /&gt;
*mono-complete&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
====Android for NAND====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are different images depending on the screen output settings. Also there are different images depending on the WIFI module placed. Latest hardware revisions use MOD-WIFI-RTL8188ETV and an updated image.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 4.3&amp;quot; 480x272 and touchscreen (torrents):'''&lt;br /&gt;
 &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_480x272_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188ETV module]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_NAND_LCD_480x272_EN_first_release.torrent‎‎|A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188 module]]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 7&amp;quot; 800x480 and touchscreen support (torrents):'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_fifh_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_8G_NAND_LCD_800x480_EN_third_release.torrent|A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND images with LCD 10&amp;quot; 1024x600 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_1024x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 10&amp;quot; 1024x600 and touchscreen]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 10&amp;quot; 1024x600 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND image with VGA 800x600 support, torrents:'''&lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_VGA_800x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with VGA 800x600 support]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_8G_NAND_VGA_800x600_EN_third_release.torrent‎‎|A13-OLinuXino Android for NAND memory with VGA 800x600 support]]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Android for microSD card====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Torrent of Android release 3 with LCD support for microSD card (recommended): &lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_sd_800x480_USB_OTG_8G_third_release.torrent‎‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 3]]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*Only LCD support - 800x480 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Older (not recommended) releases:'''&lt;br /&gt;
&lt;br /&gt;
Torrent of Android release 2 with LCD support for microSD card (not recommended, the USB OTG does not work properly due to fex error): [[Media:A13_android_sd_800x480_second_release.torrent‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HOWTOs==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
'''How to write the Debain image to a microSD card?'''&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
'''How to change VGA and LCD resolutions under Debian?'''&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for 800x600 VGA video output. If you want to change to some other LCD or VGA resolution then you have to start change_display.sh script file in /root directory.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
   &lt;br /&gt;
    ./change_display* (press 'TAB' to auto-complete)  &lt;br /&gt;
or&lt;br /&gt;
    ./change_display_A13.sh&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.   &lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you might need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*1. 800x600&lt;br /&gt;
*2. 1024x768&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Linux related===&lt;br /&gt;
'''How to build latest official Debian release'''&lt;br /&gt;
&lt;br /&gt;
The latest official instructions might be found here:&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building the latest official Debian release, at Olimex GitHub]&lt;br /&gt;
&lt;br /&gt;
There are a number of unofficial guides to building the Debian, among them:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A13/olinuxino-debian.pdf How to build Debian for A13-OLinuXino-WIFI by Marcin Twardak]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
'''How to edit my MAC address?'''&lt;br /&gt;
&lt;br /&gt;
However, it is very easy to change MAC under Debian.&lt;br /&gt;
 &lt;br /&gt;
All you have to do is:&lt;br /&gt;
 &lt;br /&gt;
1. turn off the network interface (it is off by default, can be turned off by “ifdown eth0”)&lt;br /&gt;
2. open /etc/network/interfaces with a text editor (for instance “nano /etc/network/interfaces”)&lt;br /&gt;
3. add the following line under eth0 definitions: “hwaddress ether 00:11:22:33:44:55”, where 00:11:22:33:44:55 is the desired MAC address.&lt;br /&gt;
4. save and turn on the network interface (“ifup eth0”)&lt;br /&gt;
 &lt;br /&gt;
You can think of own way implementing own MAC address (for instance storing a consecutive number in the small EEPROM and then loading it).&lt;br /&gt;
&lt;br /&gt;
'''How to enable WIFI?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
'''How to enable Ethernet?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===Android related===&lt;br /&gt;
'''How to compile new Android image?'''&lt;br /&gt;
&lt;br /&gt;
Good guide shared by Akshay Mathur might be found here: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/Android-JellyBean pdf instructions available at GitHub]&lt;br /&gt;
&lt;br /&gt;
'''How to make code to run on power up?'''&lt;br /&gt;
&lt;br /&gt;
You would need an application that works in kiosk mode. There is a lot of information available online on how to write an application capable of autostart.&lt;br /&gt;
&lt;br /&gt;
'''How to access GPIOs?'''&lt;br /&gt;
&lt;br /&gt;
There is an application we wrote to demonstrate how this can be done under Android. Please check the following two links:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=fBydZn8FylE YouTube video of relay control via MOD-IO under Android]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/ANDROID-MOD-IO Source code of the above example]&lt;br /&gt;
&lt;br /&gt;
'''How to add PWM support?''' &lt;br /&gt;
&lt;br /&gt;
There is a separate article on the subject here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A13-OLinuXino is called pyA13. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA13 Link to pyA13 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===Scratch===&lt;br /&gt;
&lt;br /&gt;
There are a number of SCRATCH resources we have published. The following might be of interested for you if you are interested in SCRATCH or OpenCV:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=Pyidx-zOsm4 YouTube video of A13-OLinuXino running SCRATCH + OPENCV interractive project with web camera]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=DzmvqlQodac YouTube video of A13-OLinuXino-WIFI + SCRATCH animation of GPIO-2 connector with buttons and LEDs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13 source code and other scratch-related project available at Github]&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-OLinuXino A13-OLinuXino schematic in PDF format and Eagle CAD files]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-PDFs A13 datasheet and user manual PDFs]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/A13_Register_guide A13 Registers Guide]&lt;br /&gt;
&lt;br /&gt;
GPIOs&lt;br /&gt;
&lt;br /&gt;
UEXT&lt;br /&gt;
&lt;br /&gt;
LCD&lt;br /&gt;
&lt;br /&gt;
RTC&lt;br /&gt;
&lt;br /&gt;
[[Serial connection to A13]] description of how to connect a computer to the A13 board over serial cable.&lt;br /&gt;
&lt;br /&gt;
===Power supply===&lt;br /&gt;
&lt;br /&gt;
The A13-OLinuXino can be partially powered over Micro USB, but to power all peripherals, a 6+ watt DC power supply between 6 and 16 volts can be used.  The connector is a positive-center 2.5mm barrel plug.  There is also an on-board connector for a Li-PO battery.&lt;br /&gt;
'''Important note: A13-OLinuXino-MICRO works with +5V only! If you apply more than 5V you will damage the board.'''&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Main_Page A generic wiki for the Allwinner devices might be found here. It contains some great detailed info]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bare Metal programming - no OS ===&lt;br /&gt;
&lt;br /&gt;
It is possible to program and debug code written directly on the chip without an OS such as linux or android.&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantage is no kernel overhead and tighter control of the CPU operation.&lt;br /&gt;
&lt;br /&gt;
[[Bare Metal programming A13]]&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - Nand flash ===&lt;br /&gt;
&lt;br /&gt;
The Wifi version of the A13 board comes preprogrammed with android, which is held in the Nand flash.&lt;br /&gt;
&lt;br /&gt;
The image in the Nand flash can be updated using the tools found at the following links:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/file/d/0B7WHuNCASY8cWlZ2djh4X0QtV0U/edit?usp=sharing LiveSuit for Windows]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/LiveSuit LiveSuit for loading images]&lt;br /&gt;
&lt;br /&gt;
to the NAND flash; to activate A13 bootloader do as follows: run Livesuit, disconnect the power supply and USB cable, then press HOME button, apply power supply, attach USB cable and release the button, Livesuit will detect the bootloader and will ask which file to program to the NAND flash.&lt;br /&gt;
&lt;br /&gt;
Prebuilt images that can be programmed into the Nand flash can be found here.&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - SD card ===&lt;br /&gt;
The A13 board can boot from an SD card. Just plug it in an imaged uSD card and connect power.&lt;br /&gt;
&lt;br /&gt;
Note: The SD card can easily be corrupted if power is removed while the system is booting or writing to system files.&lt;br /&gt;
To avoid this do not remove power while it is booting and shut the system down properly before disconnecting power.&lt;br /&gt;
&lt;br /&gt;
==== Prebuilt images ====&lt;br /&gt;
&lt;br /&gt;
Some prebuilt images have been created, follow the link below for details.&lt;br /&gt;
&lt;br /&gt;
[[Prebuilt SD card images running debian]]&lt;br /&gt;
&lt;br /&gt;
==== Build your own kernel and image onto SD card ====&lt;br /&gt;
&lt;br /&gt;
Some developers want more control over the kernel and modules that are included. The link below shows directions to build your own kernel and image it onto an SD card.&lt;br /&gt;
&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Step by step instructions how to make SD card image with above Kernel and U-boot&lt;br /&gt;
&lt;br /&gt;
====Setup and configure the installed debian image====&lt;br /&gt;
&lt;br /&gt;
There are several settings that can be made for a particular hardware configuration in the script file. &lt;br /&gt;
&lt;br /&gt;
The following link explains the script file as well as wifi or ethernet setup and GPIO settings &lt;br /&gt;
&lt;br /&gt;
[[Configuration of hardware in the debian image]]&lt;br /&gt;
&lt;br /&gt;
====Installing UsbVideoClass(UVC) on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To work with USB Video Cameras you have to enable the UVC support in the kernel. The link below explains how to do it.&lt;br /&gt;
&lt;br /&gt;
[[UVC support]]&lt;br /&gt;
&lt;br /&gt;
====Setup VLC player for video streaming on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To setup video streaming you should first have installed UVC support so you can connect USB cameras to A13-OLinuXino.&lt;br /&gt;
&lt;br /&gt;
[[VLC streaming]]&lt;br /&gt;
&lt;br /&gt;
=== Creating a program to run on the A13-OlinuXino board ===&lt;br /&gt;
&lt;br /&gt;
[[Programming for A13 in debian]] Step by step instructions to make your first hello world program run on the A13 board running debian.&lt;br /&gt;
&lt;br /&gt;
=== Software links ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Sunxi-tools Tools to hack A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/11/23/running-debian-with-xfce4-on-a13-olinuxino/ Installing Xfce4 graphical interface on Debian] How to install XFCE4 on A13-OLinuXino&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.0.3 ICS ===&lt;br /&gt;
&lt;br /&gt;
The official Allwinner repository contains all official files, including the files required to build Android ACS 4.0.3 NAND image for A13-OLinuXino-WIFI.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/allwinner-dev-team Allwinner's official GitHub]&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.1 JB ===&lt;br /&gt;
&lt;br /&gt;
This is version 1.5 of A13-SDK which builds Android 4.1 Jelly Beans image. It works slower than 4.0.3 and we personally do not see any advantage to use 4.1 vs 4.0.3&lt;br /&gt;
&lt;br /&gt;
[http://emicrotec.at/public/ Andreas Auer kindly offered to host this 4GB image]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Projects people from the olinuxino community are working on or have finished and how they did it.&lt;br /&gt;
&lt;br /&gt;
'''LINUX:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Run Debian and u-boot, Step by step instructions how to make SD card image.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Prebuilt SD card images running debian]] &lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2014/03/06/bootling-linux-on-a13-for-less-than-1-second/ Booting Linux for less than 1 second] optimization made by Miroslav Bendik.&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/23/a13-olinuxino-playing-with-gpios/ Change GPIOs using scripts in linux]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=436.msg4066#msg4066 A13 OLinuXino fast GPIO with /dev/mem now achieve up to 2 Mhz toggle]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=899.0 A13 kernel module for direct support of UEXT MOD-IO board, adding ADC, relays etc, cool project can be used as reference how to make your own kernel modules]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/open?id=0B7WHuNCASY8cWnRrQ0tGVFMybFk Instructions how to run MOD-BT with A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/asfluido/olinuxino/ Customer project of A13-OLinuXino communication via SPI with MOD-MRF89-868]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/18/a13-olinuxino-wifi-and-opencv-face-detection-project/ A13-Olinuxino-WIFI and opencv face detection]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/02/scratch-control-for-mod-io/ Controlling Relays, Switching ON/OFF of 220V appliances and home automation]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/28/make-door-security-logger-with-a13-olinuxino-wifi-opencv/ Door security logger, image capture]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/08/gps-logger-with-google-maps-viewer-made-with-a13-olinuxino-and-mod-gps/ GPS logger with google maps viewer, MOD-GPS module on UEXT]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/02/25/a13-olinuxino-web-server-with-mod-rgb-controlling-rgb-led-stripe-over-internet/ Web server with MOD-RGB controlling RGB LED strip]&lt;br /&gt;
&lt;br /&gt;
'''ANDROID:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/24/a13-olinuxino-project-control-relays-and-read-adcs-and-ios-with-android/ Interface MOD-IO board with I2C under Android ]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/13/mame4droid-is-running-on-a13-olinuxino/ Run old games on android mame4droid]&lt;br /&gt;
&lt;br /&gt;
'''No OS'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Bare Metal programming A13]] Programming directly for the chip without an OS&lt;br /&gt;
&lt;br /&gt;
'''FreedomBox:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.debian.org/FreedomBox/UniLeipzigPractical FreedomBox/UniLeipzigPractical is the documentation of a freedom box related practical course at the AKSW Research Group at the University of Leipzig]&lt;br /&gt;
&lt;br /&gt;
== List of Contributors ==&lt;br /&gt;
&lt;br /&gt;
'''Henrik Nordstrom''' - a.k.a. hno, uboot for A13 development, A1X guru, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Dimitar Gamishev''' - a.k.a. HEHOPMAJIEH, Linux kernel configuration for OLinuXino, Android images, LCD touchscreen&lt;br /&gt;
&lt;br /&gt;
'''Alexandro Mery''' - a.k.a. mnemoc, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Davide Fabbri''' - Linaro kernel and lubuntu image&lt;br /&gt;
&lt;br /&gt;
'''Scott Anderson''' - A13 wiki maintainer&lt;br /&gt;
&lt;br /&gt;
'''Jeffrey Wischkaemper''' - a.k.a. jwischka,  A13-OLinuXino Debian image with X &lt;br /&gt;
&lt;br /&gt;
'''Maxime Ripard''' - ARM Linux patches&lt;br /&gt;
&lt;br /&gt;
'''Jason Plum''' - Arch Linux support&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3541</id>
		<title>A13-OLinuXino</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A13-OLinuXino&amp;diff=3541"/>
		<updated>2024-11-29T08:27:37Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android for NAND */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A13-OLinuXino-MAXI-WIFI-1.jpg|thumb| A13-OlinuXino-WIFI]]&lt;br /&gt;
&lt;br /&gt;
[[File:A13-OLinuXino-MICRO.jpg|thumb| A13-OlinuXino-MICRO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 processor from Allwinner runs at 1GHz with a Mali400 GPU. It was designed for integration into tablets. Olimex has made several development board designs based around this chip. This wiki page contains information about hardware and software to help make use of these development boards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A13 based boards currently available are&amp;lt;br /&amp;gt;&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-WIFI/ A13-OLinuXino-WIFI] - Recommended if your developing software for the A13 for the first time as its the only one with network connectivity.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino/ A13-OLinuXino] - This is the same as the WIFI version but without WIFI module and NAND flash. Note: Android requires NAND flash to run, so this board can't run Android.&lt;br /&gt;
*[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/ A13-OLinuXino-MICRO] - Similar to the A13-OlinuXino but with less extras&lt;br /&gt;
*[https://www.olimex.com/Products/SOM/A13/A13-SOM-512/ A13-SOM-512] - System-on-Module A13 board recommended for users with experience in Allwinner development. Allows developing custom extensions with only the peripherals needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
The official Debian images are suitable only for microSD card. Information on booting Debian from the NAND might be found at the forum.&lt;br /&gt;
&lt;br /&gt;
Download methods and locations might be found below!&lt;br /&gt;
&lt;br /&gt;
'''Please note that you might need different Debian Linux images for different boards with different hardware - you would need to inspect the DDR3 RAM memory and use the image suitable for your board. We use either HYNIX H5TQ2G83CFR, or SAMSUNG K4B2G0846Q.'''&lt;br /&gt;
&lt;br /&gt;
'''Newest official Debian release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download for Debian release 11.3 suitable for boards with SAMSUNG K4B2G0846Q DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_mainline_u-boot_release_11_3.7z A13 Debian Linux with kernel 3.4.90+, suitable for boards with SAMSUNG DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
Direct download Debian release 10 suitable for boards with HYNIX H5TQ2G83CFR DDR3 RAM memory: [https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/2.legacy_images_kernel_3.4.x/A13_debian_34_90_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_3G_video_accell_release_10.7z Debian A13 Linux with kernel 3.4.90+, suitable for HYNIX DDR3 RAM]&lt;br /&gt;
&lt;br /&gt;
'''Instructions and required files for preparing the Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building Linux for A13-OLinuXino and A13-OLinuXino-WIFI]'''&lt;br /&gt;
&lt;br /&gt;
The images include the following:&lt;br /&gt;
*Linux Kernel 3.4.90+&lt;br /&gt;
*LXDE desktop environment&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*xorg&lt;br /&gt;
*Python 2.7&lt;br /&gt;
*vlc&lt;br /&gt;
*mplayer&lt;br /&gt;
*smplayer&lt;br /&gt;
*midori browser&lt;br /&gt;
*usb-modeswitch&lt;br /&gt;
*sshfs&lt;br /&gt;
*wvdial&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the A13-OLinuXino-SD card which we have on our webshop contain same image on 4GB Class10 fast micro sd-card, if you want to use this image please use Class10 fast card or the performance of Linux will slow down&lt;br /&gt;
&lt;br /&gt;
The file A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z is an archive of A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file. &lt;br /&gt;
&lt;br /&gt;
So in order to write the image on SD card you have to unzip A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file:&lt;br /&gt;
&lt;br /&gt;
For Windows use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) for image writing&lt;br /&gt;
&lt;br /&gt;
For Linux use p7zip package. If you have no installed 7zip then type &lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
&lt;br /&gt;
Copy A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z file in your directory and unzip it with &lt;br /&gt;
&lt;br /&gt;
    #7za e A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
&lt;br /&gt;
The output should be a new 4GB file named A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
&lt;br /&gt;
    #dd if=A13_debian_34_75_WIFI_RALINK_GCC_GPIO_X_I2C_100KHz_UVC_TS_FTDI_video_release_9.7z &amp;lt;br&amp;gt;of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main tested onboard hardware modules are:&lt;br /&gt;
&lt;br /&gt;
'''GPIO'''	-	they are located in /sys/class/gpio directory. Note that first you have to export GPIOs. &lt;br /&gt;
For example: to add PB03&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
to make PB03 output&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo out &amp;gt; /sys/class/gpio/gpio1_pb3/direction&lt;br /&gt;
&lt;br /&gt;
to make PB03 high level(3.3V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
to make PB03 low level(0V)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 0 &amp;gt; /sys/class/gpio/gpio1_pb3/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio12_pg9  gpio1_pb3   gpio4_pe4  gpio7_pe7 &lt;br /&gt;
    gpio10_pe10  gpio13_pg10  gpio2_pb4   gpio5_pe5  gpio8_pe8 &lt;br /&gt;
    gpio11_pe11  gpio14_pg11  gpio3_pb10  gpio6_pe6  gpio9_pe9&lt;br /&gt;
&lt;br /&gt;
note that:&lt;br /&gt;
&lt;br /&gt;
gpio12_pg9(GPIO2/pin10) is connected to on board LED and it is multiplexed with UART3_TX and gpio13_pg10(GPIO2/pin8) is multiplexed with UART3_RX&lt;br /&gt;
Therfore if you want to use these ports like GPIO then UART3_TX and UART3_RX will not be available. &lt;br /&gt;
&lt;br /&gt;
'''LCD'''	-	4.3&amp;quot;(480x272), 7&amp;quot;(800x480), 10&amp;quot;(1024x600)&lt;br /&gt;
&lt;br /&gt;
'''VGA'''	- 	800x600, 1024x768&lt;br /&gt;
&lt;br /&gt;
'''Touch_screen'''	-	you need calibrate LCD touch screen usi it. Note that by default the X environment does not start like root user. In our case the X starts with user named olimex&lt;br /&gt;
&lt;br /&gt;
Therefore if you want to use the touch screen in X environment then you have to run calibrate procedure like olimex user. For example type: &lt;br /&gt;
&lt;br /&gt;
    #su olimex&lt;br /&gt;
&lt;br /&gt;
enter the olimex password:olimex&lt;br /&gt;
&lt;br /&gt;
    #sudo ts_calibrate&lt;br /&gt;
&lt;br /&gt;
calibrate the touch screen and reboot the board&lt;br /&gt;
&lt;br /&gt;
    #sudo reboot&lt;br /&gt;
&lt;br /&gt;
ASIX8877 USB-LAN	-	https://www.olimex.com/Products/OLinuXino/A13/USB-ETHERNET-AX88772B/&lt;br /&gt;
&lt;br /&gt;
WEB camera A4TECH&lt;br /&gt;
&lt;br /&gt;
MOD-WIFI-RTL8188	-	https://www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188/ instructions on how to enable it might be found here: [[How_to_configure_MOD-RTL8188_on_official_OLinuXino_Debian_releases]]&lt;br /&gt;
&lt;br /&gt;
USB_OTG		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_up		-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
USB_HOST_down	-	low/full/high USB host&lt;br /&gt;
&lt;br /&gt;
mico_SD_card	&lt;br /&gt;
&lt;br /&gt;
I2C2(100KHz)	-	/dev/i2c-2&lt;br /&gt;
&lt;br /&gt;
I2C1(100KHz)	-	/dev/i2c-1&lt;br /&gt;
&lt;br /&gt;
UART3	-	/dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
'''[https://drive.google.com/file/d/0B-bAEPML8fwlYnUwdnpkUllVNFU/edit?usp=sharing A13 Debian 4GB SD-card image armel (softfloat) with: MONO complete]'''&lt;br /&gt;
*Linux Kernel 3.4.67+&lt;br /&gt;
*XFCE4 desktop environment&lt;br /&gt;
*Mplayer CLI&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*iceweasel WEB browser&lt;br /&gt;
*LCD and touchscreen support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*apache2&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*vlc&lt;br /&gt;
*xorg&lt;br /&gt;
*Scratch&lt;br /&gt;
*GCC&lt;br /&gt;
*Python 2.7.3 &lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*OpenCV&lt;br /&gt;
*mono-complete&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
====Android for NAND====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are different images depending on the screen output settings. Also there are different images depending on the WIFI module placed. Latest hardware revisions use MOD-WIFI-RTL8188ETV and an updated image.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 4.3&amp;quot; 480x272 and touchscreen (torrents):'''&lt;br /&gt;
 &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_480x272_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188ETV module]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_NAND_LCD_480x272_EN_first_release.torrent‎‎|A13-OLinuXino Android for NAND memory with video settings for 480x272 display output + MOD-WIFI-RTL8188 module]]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 4.3&amp;quot; 480x272 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''A13 Android NAND images with LCD 7&amp;quot; 800x480 and touchscreen support (torrents):'''&lt;br /&gt;
&lt;br /&gt;
[ftp://staging.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_800x480_EN_fifh_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_8G_NAND_LCD_800x480_EN_third_release.torrent|A13-OLinuXino Android for NAND memory with video settings for LCD 7&amp;quot; 800x480 and touchscreen]]&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*LCD 7&amp;quot; 800x480 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND images with LCD 10&amp;quot; 1024x600 and touchscreen support:'''&lt;br /&gt;
&lt;br /&gt;
[ftp://staging.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_LCD_1024x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with video settings for LCD 10&amp;quot; 1024x600 and touchscreen]&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188-ETV wifi module&lt;br /&gt;
*LCD 10&amp;quot; 1024x600 pixels with backlight&lt;br /&gt;
*Touchscreen support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A13 Android NAND image with VGA 800x600 support, torrents:'''&lt;br /&gt;
&lt;br /&gt;
[ftp://staging.olimex.com/Allwinner_Images/A13-OLinuXino/4.%D0%B0ndroid_images/nand/A13_android_8G_NAND_VGA_800x600_EN_fifth_release.img A13-OLinuXino Android for NAND memory with VGA 800x600 support]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188ETV wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_8G_NAND_VGA_800x600_EN_third_release.torrent‎‎|A13-OLinuXino Android for NAND memory with VGA 800x600 support]]&lt;br /&gt;
'''&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*MOD-WIFI-RTL8188 wifi module&lt;br /&gt;
*VGA 800x600 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Android for microSD card====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Torrent of Android release 3 with LCD support for microSD card (recommended): &lt;br /&gt;
&lt;br /&gt;
[[Media:A13_android_sd_800x480_USB_OTG_8G_third_release.torrent‎‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 3]]&lt;br /&gt;
&lt;br /&gt;
*Android_version - 4.0.3&lt;br /&gt;
*Baseband version - 1.2&lt;br /&gt;
*Kernel version 3.0.8+&lt;br /&gt;
*Only LCD support - 800x480 pixels&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Older (not recommended) releases:'''&lt;br /&gt;
&lt;br /&gt;
Torrent of Android release 2 with LCD support for microSD card (not recommended, the USB OTG does not work properly due to fex error): [[Media:A13_android_sd_800x480_second_release.torrent‎|A13-OLinuXino A13 Android for microSD card with video support for 800x480 LCD, release 2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HOWTOs==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
'''How to write the Debain image to a microSD card?'''&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
'''How to change VGA and LCD resolutions under Debian?'''&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for 800x600 VGA video output. If you want to change to some other LCD or VGA resolution then you have to start change_display.sh script file in /root directory.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
   &lt;br /&gt;
    ./change_display* (press 'TAB' to auto-complete)  &lt;br /&gt;
or&lt;br /&gt;
    ./change_display_A13.sh&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.   &lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you might need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*1. 800x600&lt;br /&gt;
*2. 1024x768&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Linux related===&lt;br /&gt;
'''How to build latest official Debian release'''&lt;br /&gt;
&lt;br /&gt;
The latest official instructions might be found here:&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/A13-build building the latest official Debian release, at Olimex GitHub]&lt;br /&gt;
&lt;br /&gt;
There are a number of unofficial guides to building the Debian, among them:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A13/olinuxino-debian.pdf How to build Debian for A13-OLinuXino-WIFI by Marcin Twardak]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
'''How to edit my MAC address?'''&lt;br /&gt;
&lt;br /&gt;
However, it is very easy to change MAC under Debian.&lt;br /&gt;
 &lt;br /&gt;
All you have to do is:&lt;br /&gt;
 &lt;br /&gt;
1. turn off the network interface (it is off by default, can be turned off by “ifdown eth0”)&lt;br /&gt;
2. open /etc/network/interfaces with a text editor (for instance “nano /etc/network/interfaces”)&lt;br /&gt;
3. add the following line under eth0 definitions: “hwaddress ether 00:11:22:33:44:55”, where 00:11:22:33:44:55 is the desired MAC address.&lt;br /&gt;
4. save and turn on the network interface (“ifup eth0”)&lt;br /&gt;
 &lt;br /&gt;
You can think of own way implementing own MAC address (for instance storing a consecutive number in the small EEPROM and then loading it).&lt;br /&gt;
&lt;br /&gt;
'''How to enable WIFI?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
'''How to enable Ethernet?'''&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===Android related===&lt;br /&gt;
'''How to compile new Android image?'''&lt;br /&gt;
&lt;br /&gt;
Good guide shared by Akshay Mathur might be found here: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/Android-JellyBean pdf instructions available at GitHub]&lt;br /&gt;
&lt;br /&gt;
'''How to make code to run on power up?'''&lt;br /&gt;
&lt;br /&gt;
You would need an application that works in kiosk mode. There is a lot of information available online on how to write an application capable of autostart.&lt;br /&gt;
&lt;br /&gt;
'''How to access GPIOs?'''&lt;br /&gt;
&lt;br /&gt;
There is an application we wrote to demonstrate how this can be done under Android. Please check the following two links:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=fBydZn8FylE YouTube video of relay control via MOD-IO under Android]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13/ANDROID-MOD-IO Source code of the above example]&lt;br /&gt;
&lt;br /&gt;
'''How to add PWM support?''' &lt;br /&gt;
&lt;br /&gt;
There is a separate article on the subject here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A13-OLinuXino is called pyA13. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA13 Link to pyA13 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===Scratch===&lt;br /&gt;
&lt;br /&gt;
There are a number of SCRATCH resources we have published. The following might be of interested for you if you are interested in SCRATCH or OpenCV:&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=Pyidx-zOsm4 YouTube video of A13-OLinuXino running SCRATCH + OPENCV interractive project with web camera]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=DzmvqlQodac YouTube video of A13-OLinuXino-WIFI + SCRATCH animation of GPIO-2 connector with buttons and LEDs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A13 source code and other scratch-related project available at Github]&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-OLinuXino A13-OLinuXino schematic in PDF format and Eagle CAD files]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A13-PDFs A13 datasheet and user manual PDFs]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/A13_Register_guide A13 Registers Guide]&lt;br /&gt;
&lt;br /&gt;
GPIOs&lt;br /&gt;
&lt;br /&gt;
UEXT&lt;br /&gt;
&lt;br /&gt;
LCD&lt;br /&gt;
&lt;br /&gt;
RTC&lt;br /&gt;
&lt;br /&gt;
[[Serial connection to A13]] description of how to connect a computer to the A13 board over serial cable.&lt;br /&gt;
&lt;br /&gt;
===Power supply===&lt;br /&gt;
&lt;br /&gt;
The A13-OLinuXino can be partially powered over Micro USB, but to power all peripherals, a 6+ watt DC power supply between 6 and 16 volts can be used.  The connector is a positive-center 2.5mm barrel plug.  There is also an on-board connector for a Li-PO battery.&lt;br /&gt;
'''Important note: A13-OLinuXino-MICRO works with +5V only! If you apply more than 5V you will damage the board.'''&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Main_Page A generic wiki for the Allwinner devices might be found here. It contains some great detailed info]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bare Metal programming - no OS ===&lt;br /&gt;
&lt;br /&gt;
It is possible to program and debug code written directly on the chip without an OS such as linux or android.&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantage is no kernel overhead and tighter control of the CPU operation.&lt;br /&gt;
&lt;br /&gt;
[[Bare Metal programming A13]]&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - Nand flash ===&lt;br /&gt;
&lt;br /&gt;
The Wifi version of the A13 board comes preprogrammed with android, which is held in the Nand flash.&lt;br /&gt;
&lt;br /&gt;
The image in the Nand flash can be updated using the tools found at the following links:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/file/d/0B7WHuNCASY8cWlZ2djh4X0QtV0U/edit?usp=sharing LiveSuit for Windows]&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/LiveSuit LiveSuit for loading images]&lt;br /&gt;
&lt;br /&gt;
to the NAND flash; to activate A13 bootloader do as follows: run Livesuit, disconnect the power supply and USB cable, then press HOME button, apply power supply, attach USB cable and release the button, Livesuit will detect the bootloader and will ask which file to program to the NAND flash.&lt;br /&gt;
&lt;br /&gt;
Prebuilt images that can be programmed into the Nand flash can be found here.&lt;br /&gt;
&lt;br /&gt;
=== Using an operating system - SD card ===&lt;br /&gt;
The A13 board can boot from an SD card. Just plug it in an imaged uSD card and connect power.&lt;br /&gt;
&lt;br /&gt;
Note: The SD card can easily be corrupted if power is removed while the system is booting or writing to system files.&lt;br /&gt;
To avoid this do not remove power while it is booting and shut the system down properly before disconnecting power.&lt;br /&gt;
&lt;br /&gt;
==== Prebuilt images ====&lt;br /&gt;
&lt;br /&gt;
Some prebuilt images have been created, follow the link below for details.&lt;br /&gt;
&lt;br /&gt;
[[Prebuilt SD card images running debian]]&lt;br /&gt;
&lt;br /&gt;
==== Build your own kernel and image onto SD card ====&lt;br /&gt;
&lt;br /&gt;
Some developers want more control over the kernel and modules that are included. The link below shows directions to build your own kernel and image it onto an SD card.&lt;br /&gt;
&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Step by step instructions how to make SD card image with above Kernel and U-boot&lt;br /&gt;
&lt;br /&gt;
====Setup and configure the installed debian image====&lt;br /&gt;
&lt;br /&gt;
There are several settings that can be made for a particular hardware configuration in the script file. &lt;br /&gt;
&lt;br /&gt;
The following link explains the script file as well as wifi or ethernet setup and GPIO settings &lt;br /&gt;
&lt;br /&gt;
[[Configuration of hardware in the debian image]]&lt;br /&gt;
&lt;br /&gt;
====Installing UsbVideoClass(UVC) on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To work with USB Video Cameras you have to enable the UVC support in the kernel. The link below explains how to do it.&lt;br /&gt;
&lt;br /&gt;
[[UVC support]]&lt;br /&gt;
&lt;br /&gt;
====Setup VLC player for video streaming on A13-OLinuXino board====&lt;br /&gt;
&lt;br /&gt;
To setup video streaming you should first have installed UVC support so you can connect USB cameras to A13-OLinuXino.&lt;br /&gt;
&lt;br /&gt;
[[VLC streaming]]&lt;br /&gt;
&lt;br /&gt;
=== Creating a program to run on the A13-OlinuXino board ===&lt;br /&gt;
&lt;br /&gt;
[[Programming for A13 in debian]] Step by step instructions to make your first hello world program run on the A13 board running debian.&lt;br /&gt;
&lt;br /&gt;
=== Software links ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://linux-sunxi.org/Sunxi-tools Tools to hack A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/11/23/running-debian-with-xfce4-on-a13-olinuxino/ Installing Xfce4 graphical interface on Debian] How to install XFCE4 on A13-OLinuXino&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.0.3 ICS ===&lt;br /&gt;
&lt;br /&gt;
The official Allwinner repository contains all official files, including the files required to build Android ACS 4.0.3 NAND image for A13-OLinuXino-WIFI.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/allwinner-dev-team Allwinner's official GitHub]&lt;br /&gt;
&lt;br /&gt;
=== A13-SDK Android 4.1 JB ===&lt;br /&gt;
&lt;br /&gt;
This is version 1.5 of A13-SDK which builds Android 4.1 Jelly Beans image. It works slower than 4.0.3 and we personally do not see any advantage to use 4.1 vs 4.0.3&lt;br /&gt;
&lt;br /&gt;
[http://emicrotec.at/public/ Andreas Auer kindly offered to host this 4GB image]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Projects people from the olinuxino community are working on or have finished and how they did it.&lt;br /&gt;
&lt;br /&gt;
'''LINUX:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Build Bootable SD Card with Debian]] Run Debian and u-boot, Step by step instructions how to make SD card image.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Prebuilt SD card images running debian]] &lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2014/03/06/bootling-linux-on-a13-for-less-than-1-second/ Booting Linux for less than 1 second] optimization made by Miroslav Bendik.&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/23/a13-olinuxino-playing-with-gpios/ Change GPIOs using scripts in linux]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=436.msg4066#msg4066 A13 OLinuXino fast GPIO with /dev/mem now achieve up to 2 Mhz toggle]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/forum/index.php?topic=899.0 A13 kernel module for direct support of UEXT MOD-IO board, adding ADC, relays etc, cool project can be used as reference how to make your own kernel modules]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/open?id=0B7WHuNCASY8cWnRrQ0tGVFMybFk Instructions how to run MOD-BT with A13-OLinuXino]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/asfluido/olinuxino/ Customer project of A13-OLinuXino communication via SPI with MOD-MRF89-868]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/18/a13-olinuxino-wifi-and-opencv-face-detection-project/ A13-Olinuxino-WIFI and opencv face detection]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/04/02/scratch-control-for-mod-io/ Controlling Relays, Switching ON/OFF of 220V appliances and home automation]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/28/make-door-security-logger-with-a13-olinuxino-wifi-opencv/ Door security logger, image capture]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/08/gps-logger-with-google-maps-viewer-made-with-a13-olinuxino-and-mod-gps/ GPS logger with google maps viewer, MOD-GPS module on UEXT]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/02/25/a13-olinuxino-web-server-with-mod-rgb-controlling-rgb-led-stripe-over-internet/ Web server with MOD-RGB controlling RGB LED strip]&lt;br /&gt;
&lt;br /&gt;
'''ANDROID:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[http://olimex.wordpress.com/2012/10/24/a13-olinuxino-project-control-relays-and-read-adcs-and-ios-with-android/ Interface MOD-IO board with I2C under Android ]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/03/13/mame4droid-is-running-on-a13-olinuxino/ Run old games on android mame4droid]&lt;br /&gt;
&lt;br /&gt;
'''No OS'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Bare Metal programming A13]] Programming directly for the chip without an OS&lt;br /&gt;
&lt;br /&gt;
'''FreedomBox:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.debian.org/FreedomBox/UniLeipzigPractical FreedomBox/UniLeipzigPractical is the documentation of a freedom box related practical course at the AKSW Research Group at the University of Leipzig]&lt;br /&gt;
&lt;br /&gt;
== List of Contributors ==&lt;br /&gt;
&lt;br /&gt;
'''Henrik Nordstrom''' - a.k.a. hno, uboot for A13 development, A1X guru, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Dimitar Gamishev''' - a.k.a. HEHOPMAJIEH, Linux kernel configuration for OLinuXino, Android images, LCD touchscreen&lt;br /&gt;
&lt;br /&gt;
'''Alexandro Mery''' - a.k.a. mnemoc, Linux-Sunxi maintainer&lt;br /&gt;
&lt;br /&gt;
'''Davide Fabbri''' - Linaro kernel and lubuntu image&lt;br /&gt;
&lt;br /&gt;
'''Scott Anderson''' - A13 wiki maintainer&lt;br /&gt;
&lt;br /&gt;
'''Jeffrey Wischkaemper''' - a.k.a. jwischka,  A13-OLinuXino Debian image with X &lt;br /&gt;
&lt;br /&gt;
'''Maxime Ripard''' - ARM Linux patches&lt;br /&gt;
&lt;br /&gt;
'''Jason Plum''' - Arch Linux support&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3540</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3540"/>
		<updated>2024-09-30T07:59:29Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Official Images from OLIMEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to FTP locations with sunxi Linux images Debian images and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #16 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.zip A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to FTP location of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.img.7z A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 16GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20-LIME2-ANDROID-SD-expanded-16GB_LCD10_cfg0_0.zip A20-OLinuXino-Lime2 Android for 16GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3539</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3539"/>
		<updated>2024-09-30T07:58:48Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Official Images from OLIMEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to FTP location with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #16 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.zip A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to FTP location of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.img.7z A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 16GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20-LIME2-ANDROID-SD-expanded-16GB_LCD10_cfg0_0.zip A20-OLinuXino-Lime2 Android for 16GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3538</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3538"/>
		<updated>2024-09-30T07:57:34Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to FTP location with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #16 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.zip A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to FTP location of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.img.7z A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 16GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20-LIME2-ANDROID-SD-expanded-16GB_LCD10_cfg0_0.zip A20-OLinuXino-Lime2 Android for 16GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3537</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3537"/>
		<updated>2024-09-30T07:57:17Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Official Images from OLIMEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to FTP location with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #16 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.zip A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Torrents of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.img.7z A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 16GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20-LIME2-ANDROID-SD-expanded-16GB_LCD10_cfg0_0.zip A20-OLinuXino-Lime2 Android for 16GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3536</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3536"/>
		<updated>2024-09-30T07:56:55Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to torrents with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #16 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.zip A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Torrents of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.img.7z A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 2 for 16GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/sd/A20-LIME2-ANDROID-SD-expanded-16GB_LCD10_cfg0_0.zip A20-OLinuXino-Lime2 Android for 16GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3535</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3535"/>
		<updated>2024-09-30T07:54:47Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to torrents with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #16 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.zip A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Torrents of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Android/nand/A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.img A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[[Media:A20_Lime2_Android_4.22_SD_card_LCD_1024x600_HDMI.torrent|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for 4GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 4GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3534</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3534"/>
		<updated>2024-09-30T07:45:25Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Linux images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to torrents with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #16 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.zip A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Torrents of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [[Media:A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.torrent‎|A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [[Media:A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.torrent‎‎|A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[[Media:A20_Lime2_Android_4.22_SD_card_LCD_1024x600_HDMI.torrent|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for 4GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 4GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3533</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3533"/>
		<updated>2024-09-30T07:44:36Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Linux images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to torrents with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]&lt;br /&gt;
&lt;br /&gt;
Torrent of official Debian Jessie release #15 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [[Media:A20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.torrent|A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Torrents of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [[Media:A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.torrent‎|A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [[Media:A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.torrent‎‎|A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[[Media:A20_Lime2_Android_4.22_SD_card_LCD_1024x600_HDMI.torrent|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for 4GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 4GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3532</id>
		<title>A20-OLinuXino-LIME2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME2&amp;diff=3532"/>
		<updated>2024-09-30T07:44:16Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Linux images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 looks similar to both [[A20-OLinuXino-LIME]] and [[A10-OLinuXino-LIME]]. The major differences between A20-OLinuXino-LIME2 and A20-OLinuXino-LIME are:&lt;br /&gt;
&lt;br /&gt;
*LIME2 has gigabit Ethernet (GbE), compared to the standard 100Mb Ethernet of the LIME&lt;br /&gt;
*LIME2 design provides double the RAM memory, compared to the LIME design (1024 vs 512)&lt;br /&gt;
*Much better routing of DDR3 memory. &lt;br /&gt;
*Increased the number of layers from 6 in LIME to 8 in LIME2&lt;br /&gt;
*Corrected pinout of the LCD and GPIO connectors (shields designed for the LIME layout are not  compatible with the LIME2 layout)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-LIME]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-LIME might work out-of-the-box with A20-OLinuXino-LIME2. Additionally, pinout tables, GPIO maps, etc released for A20-OLinuXino-LIME would apply to A20-OLinuXino-LIME2 &amp;lt;b&amp;gt;(except for the 0.05&amp;quot; step connectors - LCD display and all the GPIOs connectors, which have a different layout compared to both A20-OLinuXino-LIME and A10-OLinuXino-LIME)&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*'''1GB DDR3 RAM memory'''&lt;br /&gt;
*'''1 gigabit native Ethernet'''&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
In this chapter you would find links to torrents with the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find useful our build instructions also published here.&lt;br /&gt;
&lt;br /&gt;
The downloaded file xxxx.7z is an archive of xxx.img file. In order to write the image on SD card you have to extract the xxx.7z file. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime2_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime2_debian_second_release.7z&lt;br /&gt;
where a20_Lime2_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lime2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The Debian Linux image is 4GB and the file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   ./resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. Older sunxi images can be found as direct downloads at our FTP. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie)''' '''Both images are suitable for the standard version A20-OLinuXino-LIME2. However A20-OLinuXino-LIME2-n4GB and A20-OLinuXino-LIME2-n8GB have different image compared to A20-OLinuXino-LIME2-e4GB''':'''&lt;br /&gt;
&lt;br /&gt;
FTP location for official Debian Jessie release #13 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-n4GB, and A20-OLinuXino-LIME2-n8GB (not suitable for boards with eMMC flash): [[Media:https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME2/Debian/sd/a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_NAND_rel_13.img.7z A20-OLinuXino-LIME2 Debian Jessie with kernel 3.4.103+ release 13]]&lt;br /&gt;
&lt;br /&gt;
Torrent of official Debian Jessie release #15 for A20-OLinuXino-LIME2, A20-OLinuXino-LIME2-e4GB (not suitable for boards with NAND flash): [[Media:A20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.torrent|A20 lime2 mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 16]]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME2-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME2-DEBIAN-SD card which we have in our web store contains the image suitable for board with no flash or board with NAND memory on a 8GB Class10 fast microSD card. The A20-LIME2-eMMC-DEBIAN-SD contains the image suitable for boards with extra eMMC memory. If you want to use our images, please, use card with speed Class10 or higher. Else the Linux performance would be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Torrents of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
For the NAND flash memory:&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for NAND memory (with HDMI and 7 inch 800x480 support - LCD-OLinuXino-7TS): [[Media:A20_Lime2_android_4_22_NAND_LCD7_HDMI_release1.torrent‎|A20-OLinuXino-Lime2 Android for NAND with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for NAND memory (with HDMI and 10 inch 1024x600 support - LCD-OLinuXino-10TS): [[Media:A20_Lime2_android_4_22_NAND_LCD10_HDMI_release1.torrent‎‎|A20-OLinuXino-Lime2 Android for NAND with HDMI and 10 inch display support]]&lt;br /&gt;
&lt;br /&gt;
For microSD card:&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_8GB_release_2.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 2 for 8GB microSD card (with HDMI and 1024x600 support): &lt;br /&gt;
[[Media:A20_Lime2_Android_4.22_SD_card_LCD_1024x600_HDMI.torrent|A20-OLinuXino-Lime2 Android for 8GB microSD card with HDMI and 10 inch display support, this image requires loading via PhoenixSuit, refer to the FAQ section at the end of this page]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for 4GB microSD card (with HDMI and 800x480 support): [[Media:A20_Lime2_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.torrent‎‎‎‎|A20-OLinuXino-Lime2 Android for 4GB microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME2 Armbian images: [https://www.armbian.com/olimex-lime-2/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXIno-LIME2 openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME2 is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_ascii/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME2 user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/resources/A20-OLinuXino-LIME2-UM.pdf User's manual for A20-OLinuXino-LIME2 and A20-OLinuXino-LIME2-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME2 shield templates===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 Eagle and KiCAD shield templates for LIME2]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-OLinuXino-LIME2/3.%20Templates%20and%20more/A20_LIME2_GPIOs.pdf A20-OLinuXino-LIME2 GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME2 has power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image of A10-OLinuXino-LIME which has almost identical layout. It is available as .png here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME2 is an Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME2 GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2_top_naming_extras.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME2 bottom naming.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python library for GPIO, I2C and SPI control===&lt;br /&gt;
&lt;br /&gt;
The Debian Linux Python package for A20-OLinuXino-LIME2 is called pyA20Lime2. It makes the access to GPIO, I2C and SPI considerably easier. It is installed in the default Debian image. More information and examples on how it can be used might be found here:&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20Lime2 Link to pyA20Lime2 package at python.org]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME2? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[how to connect display to a Lime board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to download the image to the NAND memory:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend either a 4GB or a 8GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[how to edit board configurations and definitions in the official Debian Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3528</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3528"/>
		<updated>2024-07-18T07:48:05Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Archive firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Latest manual revision, suitable for MOD-IO2 hardware revision C and newer: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2.pdf available here]&lt;br /&gt;
&lt;br /&gt;
User manual revision F, suitable for MOD-IO2 hardware revisions A and B: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO_manual_F.pdf available here]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B schematic: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf click for PDF export]&lt;br /&gt;
&lt;br /&gt;
Hardware revision B sources for Eagle CAD: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip click to download ZIP archive]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32: [https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip click to download ZIP archive]&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2) MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
3) MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
4) MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
5) MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
6) MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3527</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3527"/>
		<updated>2024-07-18T07:47:10Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Latest manual revision, suitable for MOD-IO2 hardware revision C and newer: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2.pdf available here]&lt;br /&gt;
&lt;br /&gt;
User manual revision F, suitable for MOD-IO2 hardware revisions A and B: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO_manual_F.pdf available here]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B schematic: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf click for PDF export]&lt;br /&gt;
&lt;br /&gt;
Hardware revision B sources for Eagle CAD: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip click to download ZIP archive]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32: [https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip click to download ZIP archive]&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2) MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3) MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4) MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5) MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3526</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3526"/>
		<updated>2024-07-17T06:00:45Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B schematic: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf click for PDF export]&lt;br /&gt;
&lt;br /&gt;
Hardware revision B sources for Eagle CAD: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip click to download ZIP archive]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32: [https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip click to download ZIP archive]&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2) MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3) MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4) MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5) MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3525</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3525"/>
		<updated>2024-07-17T06:00:23Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B schematic: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf click for PDF export]&lt;br /&gt;
&lt;br /&gt;
Hardware revision B sources for Eagle CAD: [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip click to download ZIP archive]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32:&lt;br /&gt;
&lt;br /&gt;
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2) MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3) MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4) MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5) MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3524</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3524"/>
		<updated>2024-07-17T05:59:27Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Archive firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B schematic: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf&lt;br /&gt;
&lt;br /&gt;
Hardware revision B sources for Eagle CAD: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32:&lt;br /&gt;
&lt;br /&gt;
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2) MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3) MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4) MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5) MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3523</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3523"/>
		<updated>2024-07-17T05:59:16Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Archive firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B schematic: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf&lt;br /&gt;
&lt;br /&gt;
Hardware revision B sources for Eagle CAD: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32:&lt;br /&gt;
&lt;br /&gt;
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1) MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2) MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3) MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4) MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5 )MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3522</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3522"/>
		<updated>2024-07-17T05:58:50Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B schematic: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf&lt;br /&gt;
&lt;br /&gt;
Hardware revision B sources for Eagle CAD: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32:&lt;br /&gt;
&lt;br /&gt;
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2)MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3)MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4)MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5)MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3521</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3521"/>
		<updated>2024-07-17T05:57:59Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B shcematic: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf&lt;br /&gt;
&lt;br /&gt;
Hardware revision B souyrces for Eagle CAD: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
Demo with OLIMEXINO-STM32:&lt;br /&gt;
&lt;br /&gt;
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2)MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3)MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4)MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5)MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3520</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3520"/>
		<updated>2024-07-17T05:57:47Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B shcematic: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf&lt;br /&gt;
&lt;br /&gt;
Hardware revision B souyrces for Eagle CAD: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Older software, compatible with board hardware revisions up to B:&lt;br /&gt;
&lt;br /&gt;
OLIMEXINO-STM32:&lt;br /&gt;
&lt;br /&gt;
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/resources/OLIMEXINO-STM32_MOD-IO2_relay.zip&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2)MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3)MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4)MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5)MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3519</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3519"/>
		<updated>2024-07-17T05:57:03Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Design files for older hardware revisions:&lt;br /&gt;
&lt;br /&gt;
Hardware revision B shcematic: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2-Rev-B-schematic.pdf&lt;br /&gt;
&lt;br /&gt;
Hardware revision B souyrces for Eagle CAD: https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_brd_sch_eagle.zip&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2)MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3)MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4)MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5)MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3518</id>
		<title>MOD-IO2</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=MOD-IO2&amp;diff=3518"/>
		<updated>2024-07-17T05:35:17Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Archive firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Documents ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== Archive firmware ==&lt;br /&gt;
'''Latest firmware is available at the main page of the device.''' In the wiki one can only find older firmware, that still might be helpful. The projects listed below are no longer officially supported. The best practice is to use the EXACT same compiler as mentioned and in most cases the exact same IDE version as mentioned.&lt;br /&gt;
&lt;br /&gt;
Older firmware released by Olimex for MOD-IO2:&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v4.3 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v43.zip click to download] - this is the last firmware suitable for boards with PIC16 (before revision C changed main chip to CH32V003), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
1)MOD-IO2 v3.2/3.02 - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_02.zip click to download] - this lacked analog out (DAC), which was added in its newer 4.3 version&lt;br /&gt;
&lt;br /&gt;
2)MOD-IO2 v3.1/3.01 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v_3_1.zip click to download] - it lacked several functions which are now added, refer to the readme in the folder of the newest 3.02 firmware&lt;br /&gt;
&lt;br /&gt;
3)MOD-IO2 v3 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_firmware_v3.zip click to download] - it has a bug with the internal weak pull-ups&lt;br /&gt;
&lt;br /&gt;
4)MOD-IO2 v2 firmware - binary, source, and how-to - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2+OLinuXino.zip click to download] - protocol fixes&lt;br /&gt;
&lt;br /&gt;
5)MOD-IO2 v1 firmware - C source and HEX for I2C control - [https://www.olimex.com/Products/Modules/IO/MOD-IO2/resources/MOD-IO2_demo_and_firmware.zip click to download] - initial release&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:IO]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3517</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3517"/>
		<updated>2024-05-15T12:06:23Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Debian for NAND memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_SD_release2.img RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3516</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3516"/>
		<updated>2024-05-15T11:52:07Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* How to download the ready Debian image to the NAND memory of RK3188-SOM? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_SD_release2.img RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3515</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3515"/>
		<updated>2024-05-15T11:51:34Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* How to download the ready Debian image to the NAND memory of RK3188-SOM? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_SD_release2.img RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img|RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3514</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3514"/>
		<updated>2024-05-15T11:51:14Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Debian for NAND memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_SD_release2.img RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [&amp;lt;nowiki&amp;gt;https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img&amp;lt;/nowiki&amp;gt; | RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3513</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3513"/>
		<updated>2024-05-15T11:44:49Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Debian for NAND memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_SD_release2.img RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img|RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3512</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3512"/>
		<updated>2024-05-15T11:43:54Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* How to download the ready Debian image to the NAND memory of RK3188-SOM? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_SD_release2.img RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/Rockchip_images/nand/debian/RK3188_debian_3.0.36_NAND_release1.img.7z|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_NAND_release1.img|RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3511</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3511"/>
		<updated>2024-05-15T11:10:57Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Debian for microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/RK3188_Images/RK3188_debian_3.0.36_SD_release2.img RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/Rockchip_images/nand/debian/RK3188_debian_3.0.36_NAND_release1.img.7z|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/Rockchip_images/nand/debian/RK3188_debian_3.0.36_NAND_release1.img.7z%7CRK3188-SOM|RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-MICRO&amp;diff=3503</id>
		<title>A20-OLinuXino-MICRO</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-MICRO&amp;diff=3503"/>
		<updated>2023-12-06T08:45:01Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Download locations Linux images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino.jpeg]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-MICRO features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*1GB DDR3 RAM memory&lt;br /&gt;
*Optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*VGA output on 6-pin 1.25mm (0.05&amp;quot;) step connector&lt;br /&gt;
*100MBit native Ethernet&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*Audio headphones output&lt;br /&gt;
*Microphone input on connector&lt;br /&gt;
*2x UEXT connectors&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*SD/MMC card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*10 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*4 mount holes&lt;br /&gt;
*6-16V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 142 x 82 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official Images Released and Recommended by Olimex ==&lt;br /&gt;
&lt;br /&gt;
Below you would find links to the official Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. &lt;br /&gt;
&lt;br /&gt;
If you are an experienced embedded Linux professional you might also find build instructions to our images.&lt;br /&gt;
&lt;br /&gt;
=== Linux Images ===&lt;br /&gt;
&lt;br /&gt;
There are three different types of Olimex-made official Linux images:&lt;br /&gt;
&lt;br /&gt;
* Recent kernel and u-boot Armbian-based Ubuntu Bionic and Debian Buster Linux images for general purpose Linux experience&lt;br /&gt;
* KODI images, LibreElec-based, if you wish to use your A20 board as TV box&lt;br /&gt;
* Debian 8 Jessie images with v3.4.x sunxi kernel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The official Linux images should be downloaded to a microSD card. Images can be downloaded either from our FTP or via torrent client. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND or eMMC might be found in these wiki article: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
== Download locations Linux images ==&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Main FTP hub folder for all Olimex-made A20 official images:&lt;br /&gt;
&lt;br /&gt;
ftp://staging.olimex.com/Allwinner_Images/A20-OLinuXino/&lt;br /&gt;
&lt;br /&gt;
'''Latest mainline kernel official images:'''&lt;br /&gt;
&lt;br /&gt;
1. Latest Ubuntu Desktop Linux images can be found here: [ftp://staging.olimex.com/Allwinner_Images/A20-OLinuXino/1.latest_mainline_images/bionic/images/ FTP directory with latest Ubuntu Bionic images]&lt;br /&gt;
&lt;br /&gt;
2. Latest Debian Server Linux images can be found here:&lt;br /&gt;
[ftp://staging.olimex.com/Allwinner_Images/A20-OLinuXino/1.latest_mainline_images/buster/images/ FTP directory with latest Debian Buster images]&lt;br /&gt;
&lt;br /&gt;
'''Latest KODI player official images:'''&lt;br /&gt;
&lt;br /&gt;
3. Latest KODI player LibreElec Linux images here:&lt;br /&gt;
[ftp://staging.olimex.com/Allwinner_Images/A20-OLinuXino/4.LibreELEC_KODI_images/ FTP directory with latest KODI/LibreElec images]&lt;br /&gt;
&lt;br /&gt;
'''Latest sunxi kernel official images (not recommended):'''&lt;br /&gt;
&lt;br /&gt;
Latest sunxi-kernel (v3.4.x) Debian 8 Jessie Linux images here: [ftp://staging.olimex.com/Allwinner_Images/A20-OLinuXino/2.legacy_images_kernel_3.4.x/ FTP location with all sunxi-kernel Debian 8 images here]&lt;br /&gt;
&lt;br /&gt;
FTP link of official Debian Jessie release #18, suitable for boards with no extra flash memory or with extra eMMC flash memory (not suitable for boards with NAND memory): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-MICRO/Debian/sd/A20_OLinuxino_Micro_debian_Jessie_34_103_2G_eMMC_release_18.zip A20 OLinuxino Micro debian Jessie 34 103 2G eMMC release 18]&lt;br /&gt;
&lt;br /&gt;
FTP link of official Debian Jessie release #15, suitable for boards with no extra flash memory or with extra NAND memory (not suitable for boards with eMMC memory): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-MICRO/Debian/sd/A20_OLinuxino_Micro_debian_Jessie_34_103_2G_NAND_release_15.7z A20-OLinuXino-MICRO Debian Jessie with kernel 3.4.103+ release 15]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build-3.4.103-release-7/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_6.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-MICRO-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this caused big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
FTP links of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
FTP link of Android release 3 for NAND memory with HDMI and 7 inch LCD (800x480) support: [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-MICRO/Android/nand/A20_android_422_TS_USB_UART_I2C_WIFI_LAN_HDMI_LCD_800x480_release_3.img A20-OLinuXino Android for NAND with HDMI and 800x480 video support]&lt;br /&gt;
&lt;br /&gt;
If you want to use it with our RTL8188ETV module then consider release #4: &lt;br /&gt;
&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-MICRO/Android/nand/A20_android_422_TS_USB_UART_I2C_WIFI_LAN_HDMI_LCD_800x480_release_4.img A20-OLinuXino-MICRO Android for NAND memory with video settings for 800x480 display output + MOD-WIFI-RTL8188ETV module]]&lt;br /&gt;
&lt;br /&gt;
FTP of Android release 3 for NAND memory with HDMI and 10 inch LCD (1024x600) support: [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-MICRO/Android/nand/A20_android_422_TS_USB_UART_I2C_WIFI_LAN_HDMI_LCD_1024x600_release_3.img A20-OLinuXino Android for NAND with HDMI and 1024x600 video support]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android release 1 for microSD card with HDMI and 7 inch LCD (800x480) support: [[Media:A20_SD_4G_android_422_TS_USB_UART_I2C_WIFI_LAN_HDMI_LCD_800x480_release_1.torrent‎‎‎|A20-OLinuXino Android for microSD card with HDMI and 800x480 video support]]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android release 1 for microSD card with HDMI and 10 inch LCD (1024x600) support: [[Media:A20_SD_4G_android_422_TS_USB_UART_I2C_WIFI_LAN_HDMI_LCD_1024x600_release_1_fix.torrent‎‎|A20-OLinuXino Android for microSD card with HDMI and 1024x600 video support]]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
The Android image has the following features:&lt;br /&gt;
*Android 4.2.2&lt;br /&gt;
*NAND image i.e. will work only on [https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO-4GB/ A20-OLinuXino-MICRO-4GB]&lt;br /&gt;
*Supports [https://www.olimex.com/Products/OLinuXino/A13/A13-LCD7-TS 7&amp;quot; LCD 800x480 pixels] and [https://www.olimex.com/Products/OLinuXino/A13/A13-LCD10TS 10&amp;quot; LCD 1024x600 pixels]&lt;br /&gt;
*HDMI support (720p default)&lt;br /&gt;
*both LCD and HDMI work together&lt;br /&gt;
*Touchscreen supported&lt;br /&gt;
*GPIO support&lt;br /&gt;
*Native Ethernet 100Mbit&lt;br /&gt;
*USB-Ethernet [https://www.olimex.com/Products/OLinuXino/A13/USB-ETHERNET-AX88772B/ ASIX 88772]&lt;br /&gt;
*USB-WIFI [https://www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188/ RTL8188]&lt;br /&gt;
*USB-OTG support USB device and USB host with Low/Full/High speed&lt;br /&gt;
*USB-HOST-top Low/Full/High speed&lt;br /&gt;
*USB-HOST-bottom Low/Full/High speed&lt;br /&gt;
*micro SD card&lt;br /&gt;
*Audio OUT&lt;br /&gt;
*Audio In&lt;br /&gt;
*I2C1&lt;br /&gt;
*I2C2&lt;br /&gt;
*UART6&lt;br /&gt;
*UART7&lt;br /&gt;
*Buttons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What is left unsupported in Android:&lt;br /&gt;
*SATA&lt;br /&gt;
*SD-MMC card on bottom&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-MICRO Armbian images: [https://www.armbian.com/olimex-micro/ link to LIME2 article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-MICRO is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A20-OLinuXino-MICRO openSUSE wiki link]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-MICRO is recognized by the Devuan community and there are official releases here might be found here: [https://files.devuan.org/devuan_jessie_rc/embedded/ Devuan list of files link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino Board User Manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO-4GB/resources/A20-OLinuXino-Micro.pdf A20-OLinuXino user manual]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/A20-PDFs/A20%20brief%2020130407.pdf A20 brief description]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 users manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino can be powered from three sources:&lt;br /&gt;
*+6-16VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 0.17-0.25A depend on processor load&lt;br /&gt;
*+6VDC input power: 0.18-0.33A depend on processor load&lt;br /&gt;
*+16VDC input power: 0.11-0.17A depend on processor load &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino have power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-MICRO hardware revision M dimensions in mils:[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO/resources/A20-OLinuXino-MICRO-revsion-M-dimensions.png image in PNG format]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-MICRO hardware revision D dimensions in mils: [https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO/resources/a20-dimensions.png image in PNG format]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-MICRO is Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-MICRO GitHub]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-FRONT.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-BACK.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Be careful with TV monitors without grounding===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/22/bevare-non-grounded-tv-monitors-can-damage-your-olinuxino/ Here] you can read how easy you can damage your OLinuXino if you connect it to TV without grounding.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://pypi.python.org/pypi/pyA20 pyA20 is Python library for access to A20-OLinuXino-MICRO GPIOs, I2C, SPI]&lt;br /&gt;
&lt;br /&gt;
Use:&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env python&lt;br /&gt;
    &lt;br /&gt;
    import A20_GPIO as GPIO&lt;br /&gt;
    &lt;br /&gt;
    #init module&lt;br /&gt;
    GPIO.init()&lt;br /&gt;
    &lt;br /&gt;
    #configure module&lt;br /&gt;
    GPIO.setcfg(GPIO.PIN#, GPIO.OUTPUT)&lt;br /&gt;
    GPIO.setcfg(GPIO.PIN#, GPIO.INPUT)&lt;br /&gt;
    &lt;br /&gt;
    #read the current GPIO configuration&lt;br /&gt;
    config = GPIO.getcfg(GPIO.PIN#)&lt;br /&gt;
    &lt;br /&gt;
    #set GPIO high&lt;br /&gt;
    GPIO.output(GPIO.PIN#, GPIO.HIGH)&lt;br /&gt;
    &lt;br /&gt;
    #set GPIO low&lt;br /&gt;
    GPIO.output(GPIO.PIN#, GPIO.LOW)&lt;br /&gt;
    &lt;br /&gt;
    #read input&lt;br /&gt;
    state = GPIO.input(GPIO.PIN#)&lt;br /&gt;
    &lt;br /&gt;
    #cleanup&lt;br /&gt;
    GPIO.cleanup()&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
A very good GPIO guide by Dr. Guido Pelz might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/A20-PDFs/A20-GPIO.pdf https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/A20-PDFs/A20-GPIO.pdf]&lt;br /&gt;
&lt;br /&gt;
You can read data from a given GPIO port. The logical ranges are usually as follows: 0V-1V for LOW (or 0) and 2.4V-3.3V for HIGH (or 1). All voltages are measured against ground (GND).&lt;br /&gt;
&lt;br /&gt;
If the input signal is to high, you will at least destroy the port!&lt;br /&gt;
&lt;br /&gt;
In order to use A20 GPIO's first you have to export them. You can export a single GPIO:&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# echo gpioXX &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
To export a range of GPIOs (from 1-230 in the example below) use:&lt;br /&gt;
&lt;br /&gt;
    root@A20:~#  for i in `seq 1 1 230`; do echo $i &amp;gt; /sys/class/gpio/export; done&lt;br /&gt;
&lt;br /&gt;
list of all available GPIO&lt;br /&gt;
&lt;br /&gt;
    root@A20:~# ls /sys/class/gpio/&lt;br /&gt;
    export       gpio21_pc3/  gpio33_pb8/  gpio45_ph27/ gpio57_ph17/ gpio69_pg5/&lt;br /&gt;
    gpio10_pe9/  gpio22_pc7/  gpio34_pb10/ gpio46_ph0/  gpio58_ph18/ gpio6_pe5/&lt;br /&gt;
    gpio11_pe10/ gpio23_pc16/ gpio35_pb11/ gpio47_ph2/  gpio59_ph19/ gpio70_pg6/&lt;br /&gt;
    gpio12_pe11/ gpio24_pc17/ gpio36_pb12/ gpio48_ph7/  gpio5_pe4/   gpio71_pg7/&lt;br /&gt;
    gpio13_pi14/ gpio25_pc18/ gpio37_pb13/ gpio49_ph9/  gpio60_ph20/ gpio72_pg8/&lt;br /&gt;
    gpio14_pi15/ gpio26_pc23/ gpio38_pb14/ gpio4_pe3/   gpio61_ph21/ gpio73_pg9/&lt;br /&gt;
    gpio15_pi0/  gpio27_pc24/ gpio39_pb15/ gpio50_ph10/ gpio62_ph22/ gpio74_pg10/&lt;br /&gt;
    gpio16_pi1/  gpio28_pb3/  gpio3_pe2/   gpio51_ph11/ gpio63_ph23/ gpio75_pg11/&lt;br /&gt;
    gpio17_pi2/  gpio29_pb4/  gpio40_pb16/ gpio52_ph12/ gpio64_pg0/  gpio7_pe6/&lt;br /&gt;
    gpio18_pi3/  gpio2_pe1/   gpio41_pb17/ gpio53_ph13/ gpio65_pg1/  gpio8_pe7/&lt;br /&gt;
    gpio19_pi10/ gpio30_pb5/  gpio42_ph24/ gpio54_ph14/ gpio66_pg2/  gpio9_pe8/&lt;br /&gt;
    gpio1_pe0/   gpio31_pb6/  gpio43_ph25/ gpio55_ph15/ gpio67_pg3/  gpiochip1/&lt;br /&gt;
    gpio20_pi11/ gpio32_pb7/  gpio44_ph26/ gpio56_ph16/ gpio68_pg4/  unexport&lt;br /&gt;
&lt;br /&gt;
Example on how to write to a GPIO. For instance - toggle onboard LED. The LED is connected to PH2.&lt;br /&gt;
&lt;br /&gt;
1. Export gpio47_ph2&lt;br /&gt;
    &lt;br /&gt;
    root@A20:~# echo gpio47 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
2. Set PH2 as output&lt;br /&gt;
&lt;br /&gt;
    root@A20:/sys/class/gpio/gpio47_ph2# echo out &amp;gt; direction&lt;br /&gt;
&lt;br /&gt;
3. Set high position (1) of PH2 - LED is ON&lt;br /&gt;
&lt;br /&gt;
    root@A20:/sys/class/gpio/gpio47_ph2# echo 1 &amp;gt; value&lt;br /&gt;
&lt;br /&gt;
4. Set low position (0) of PH2 - LED is OFF&lt;br /&gt;
&lt;br /&gt;
    root@A20:/sys/class/gpio/gpio47_ph2# echo 0 &amp;gt; value&lt;br /&gt;
&lt;br /&gt;
Example on how to read GPIO (with GPIO #49):&lt;br /&gt;
&lt;br /&gt;
1. Export GPIO 49&lt;br /&gt;
&lt;br /&gt;
    echo 49 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
2. Set input&lt;br /&gt;
&lt;br /&gt;
    echo &amp;quot;in&amp;quot; &amp;gt; /sys/class/gpio/gpio49_ph9/direction&lt;br /&gt;
&lt;br /&gt;
3. Read value GPIO 49&lt;br /&gt;
&lt;br /&gt;
    cat /sys/class/gpio/gpio49_ph9/value &lt;br /&gt;
&lt;br /&gt;
4. Unexport GPIO 49 when finished&lt;br /&gt;
&lt;br /&gt;
    echo 49 &amp;gt; /sys/class/gpio/unexport&lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===How to correctly power off OLinuXino running from NAND Flash===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/24/how-to-correctly-power-off-olinuxino-running-android/ In this Blog post] we explain what are the problems. This is common problem for all computers running OS. [http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc Here] you can read more about MLC NAND Flash and Linux file system.&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.103-release-7 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2014/03/07/building-a20-olinuxino-micro-debian-image-with-hardware-accelerated-video/ Official Olimex wordpress article on how to extend the previous build of Debian Linux 3.4 with hardware acceleration support, keep a look at the wordpress for more interesting articles]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To repair the image on the NAND re-upload it following these steps:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply (6-16)V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
images on Gdrive are compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply (6-16)V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===How do I write the Linux image to a micro SD card to use with my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
===How to change HDMI, VGA and LCD resolutions in the official Debian image?===&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for HDMI 720p/60Hz. If you want to change to some other LCD, VGA or HDMI resolution then you have to start change_display.sh script file in /root directory. When you are logged as super user in the board type:&lt;br /&gt;
&lt;br /&gt;
   For Debian Wheezy releases: ./change_display* (* = press 'tab')&lt;br /&gt;
   For Debian Jessie releases: change_display* (* = press 'tab')&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Note that the script should be executed as super user. Under the command line interface you are automatically logged as super user (user &amp;quot;root&amp;quot;, password &amp;quot;olimex&amp;quot;). However, under the graphical environment you are not auto-logged as super user and you must type &amp;quot;sudo&amp;quot; before the command (in the GUI the super-user is &amp;quot;olimex&amp;quot; and the password is &amp;quot;olimex&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD, HDMI or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
*4. 15.6&amp;quot; (1366x768)&lt;br /&gt;
&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you would need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For HDMI:'''&lt;br /&gt;
&lt;br /&gt;
*0. 480i&lt;br /&gt;
*1. 576i&lt;br /&gt;
*2. 480p&lt;br /&gt;
*3. 576p&lt;br /&gt;
*4. 720p50&lt;br /&gt;
*5. 720p60&lt;br /&gt;
*6. 1080i50&lt;br /&gt;
*7. 1080i60&lt;br /&gt;
*8. 1080p24&lt;br /&gt;
*9. 1080p50&lt;br /&gt;
*10. 1080p60&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''For VGA:''' (note that the VGA signals are routed to custom 6 pin connector and you need from adapter to standard VGA connector)&lt;br /&gt;
&lt;br /&gt;
*0. 1680x1050&lt;br /&gt;
*1. 1440x900&lt;br /&gt;
*2. 1360x768&lt;br /&gt;
*3. 1280x1024&lt;br /&gt;
*4. 1024x768&lt;br /&gt;
*5. 800x600&lt;br /&gt;
*6. 640x480&lt;br /&gt;
*7. 1920x1080&lt;br /&gt;
*8. 1280x720&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to install Android on SD-card? ===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/android-4-2-2-images-for-a20-olinuxino-running-from-sd-card-is-updated-on-wiki/ Blog post about it]&lt;br /&gt;
&lt;br /&gt;
===How to access UART, I2C, GPIOs under Android? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/a20-olinuxino-tools-for-android-released/ Use our Open Source OLinuXino A20-TOOLS]&lt;br /&gt;
&lt;br /&gt;
===How to control PWM under Linux? ===&lt;br /&gt;
&lt;br /&gt;
There is an article here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===How to build the Android 4.2.2 image for A20-OLinuXino-MICRO? ===&lt;br /&gt;
&lt;br /&gt;
First you need to Download the [http://dl.linux-sunxi.org/users/tsvetan/ANDROID-4.2.2-SDK2.0-KERNEL-3.4/ A20 SDK2.0 Linux Kernel 3.4] &lt;br /&gt;
&lt;br /&gt;
Second you need to configure your environment read the instructions [http://source.android.com/source/initializing.html here]&lt;br /&gt;
&lt;br /&gt;
Then Build the kernel, kernel modules and u-boot&lt;br /&gt;
&lt;br /&gt;
    cd lichee&lt;br /&gt;
    ./build.sh -psun7i_android&lt;br /&gt;
&lt;br /&gt;
When done, continue with Bulding the android image:&lt;br /&gt;
&lt;br /&gt;
    cd ../android4.2&lt;br /&gt;
    cd device/softwinner/&lt;br /&gt;
    tar zxfv olinuxino-a20.tgz&lt;br /&gt;
    cd ../../&lt;br /&gt;
    source build/envsetup.sh&lt;br /&gt;
    lunch #select olinuxino-a20_eng&lt;br /&gt;
    extract-bsp&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
Dave from Axon instruments wrote more detailed [http://axonjakarta.wordpress.com/2014/02/14/olimex-a20-android-building-4/ blog post] about how he generates the Android image&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to properly calibrate a display under Debian===&lt;br /&gt;
&lt;br /&gt;
Latest Debian Jessie images should be calibrated as detailed here: https://www.olimex.com/wiki/Touch_calibration_official_images&lt;br /&gt;
&lt;br /&gt;
If using older Debian Wheezy image follow the algorithm below:&lt;br /&gt;
&lt;br /&gt;
Make sure you are properly logged in the LXDE visual interface! Else applying calibration would not happen for the current user - if you are calibrating from the X graphical interface make sure that you are logged as user “olimex” (if calibrating without the X, the user is “root”).&lt;br /&gt;
&lt;br /&gt;
    #su olimex&lt;br /&gt;
enter the olimex password:olimex&lt;br /&gt;
&lt;br /&gt;
    #sudo ts_calibrate&lt;br /&gt;
calibrate the touch screen and reboot the board&lt;br /&gt;
&lt;br /&gt;
    #sudo reboot&lt;br /&gt;
&lt;br /&gt;
It would be a good idea to test with Android or another Debian image also, it has a built-in calibration application by default.&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=ICE40HX1K-EVB&amp;diff=3502</id>
		<title>ICE40HX1K-EVB</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=ICE40HX1K-EVB&amp;diff=3502"/>
		<updated>2023-10-05T11:53:24Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:iCE40HX1K-EVB.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
[https://www.latticesemi.com/~/media/LatticeSemi/Documents/ProductBrochures/NZ/ProductSelectorGuide.PDF Product Selection Guilde]&lt;br /&gt;
&lt;br /&gt;
[https://www.latticesemi.com/~/media/LatticeSemi/Documents/Handbooks/iCE40FamilyHandbook.pdf iCE40 Family Handbook]&lt;br /&gt;
&lt;br /&gt;
[https://www.latticesemi.com/~/media/LatticeSemi/Documents/DataSheets/iCE/iCE40LPHXFamilyDataSheet.pdf iCE40 datasheet]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/iCE40HX1K-EVB/tree/master/gpio1-pcf GPIO headers and TCF]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[https://github.com/OLIMEX/iCE40HX1K-EVB GitHub repository with the hardware files]&lt;br /&gt;
&lt;br /&gt;
iCE40HX1K-EVB programming connector&lt;br /&gt;
&lt;br /&gt;
[[File:iCE40PGM.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
iCE40HX1K-EVB 34-pin bus connector&lt;br /&gt;
&lt;br /&gt;
[[File:iCE40BUS.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Get started under Linux ===&lt;br /&gt;
&lt;br /&gt;
The hardware requirements to develop for the platform are:&lt;br /&gt;
    - iCE40HX1K-EVB or iCE40HX8K-EVB&lt;br /&gt;
    - 3.3V programmer board - OLIMEXINO-32U4 (customers have reported success using other Arduino compatible boards; and also RPi2, RPiB2+, RPi3, RPiB3+ - we have no first-hand experience with anything else than OLIMEXINNO-32U4)&lt;br /&gt;
    - IDC10-15cm cable to connect iCE40HX1K-EVB with OLIMEXINO-32U4&lt;br /&gt;
    - SY0605E 5V power supply adapter&lt;br /&gt;
    - USB-MINI cable&lt;br /&gt;
    - optional but recommended USB-ISO&lt;br /&gt;
&lt;br /&gt;
====Installing Icestorm FOSS tools for iCE40====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we need to install the tools necessary to build Icestorm:&lt;br /&gt;
&lt;br /&gt;
    sudo apt-get install build-essential clang bison flex libreadline-dev \&lt;br /&gt;
                     gawk tcl-dev libffi-dev git mercurial graphviz   \&lt;br /&gt;
                     xdot pkg-config python python3 libftdi-dev&lt;br /&gt;
&lt;br /&gt;
Installing the IceStorm Tools (icepack, icebox, iceprog, icetime, chip databases):&lt;br /&gt;
&lt;br /&gt;
    git clone https://github.com/cliffordwolf/icestorm.git icestorm&lt;br /&gt;
    cd icestorm&lt;br /&gt;
    make -j$(nproc)&lt;br /&gt;
    sudo make install&lt;br /&gt;
&lt;br /&gt;
Installing Arachne-PNR (the place&amp;amp;route tool):&lt;br /&gt;
&lt;br /&gt;
    git clone https://github.com/cseed/arachne-pnr.git arachne-pnr&lt;br /&gt;
    cd arachne-pnr&lt;br /&gt;
    make -j$(nproc)&lt;br /&gt;
    sudo make install&lt;br /&gt;
&lt;br /&gt;
Installing Yosys (Verilog synthesis):&lt;br /&gt;
&lt;br /&gt;
    git clone https://github.com/cliffordwolf/yosys.git yosys&lt;br /&gt;
    cd yosys&lt;br /&gt;
    make -j$(nproc)&lt;br /&gt;
    sudo make install&lt;br /&gt;
&lt;br /&gt;
The Arachne-PNR build converts the IceStorm text chip databases into the arachne-pnr binary chip databases. Always rebuild Arachne-PNR after updating your IceStorm installation.&lt;br /&gt;
&lt;br /&gt;
Notes for Archlinux: just install icestorm-git, arachne-pnr-git and yosys-git from the Arch User Repository (no need to follow the install instructions above).&lt;br /&gt;
&lt;br /&gt;
You might want to try a new alternative tool instead of  arachne-pnr: nextpnr is new place and route tool from the IceStorm-project. It has improved capabilities like GUI to show the connections between cells of FPGA and support for TRISTATE buffer. You might want to check it here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/YosysHQ/nextpnr&lt;br /&gt;
&lt;br /&gt;
====Preparing OLIMEXINO-32U4 as programmer====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download latest [https://www.arduino.cc/en/Main/Software Arduino IDE] we recommend you to use the one from Arduino.cc current revision is 1.6.9. &lt;br /&gt;
&lt;br /&gt;
Copy iceprog.ino sketch from GitHub/iCE40HX1K-EVB/programmer/olimexino-32u4 firmware to examples folder.&lt;br /&gt;
&lt;br /&gt;
Plug the USB cable to OLIMEXINO-32U4 and start the Arduino IDE&lt;br /&gt;
&lt;br /&gt;
    cd arduino-1.6.9&lt;br /&gt;
    sudo ./arduino&lt;br /&gt;
&lt;br /&gt;
From Tools select 'Arduino Leonardo' as board.&lt;br /&gt;
&lt;br /&gt;
From same menu select the PORT where the board is attached it will be something like: '/dev/ttyACM0 (Arduino Leonardo)' or '/dev/ttyUSB0 (Arduino Leonardo)'&lt;br /&gt;
&lt;br /&gt;
Also install the SPIMemory library version 2.2.0 (formerly known as SPIFlash). Older versions can't be installed via the Arduino Library Manager so you need to do it manually, download the ZIP archive from here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Marzogh/SPIMemory/releases/tag/v2.2.0&lt;br /&gt;
&lt;br /&gt;
Load the library in Arduino from Sketch -&amp;gt; Include Library -&amp;gt; Add .ZIP library...&lt;br /&gt;
&lt;br /&gt;
Open the iceprog.ino sketch&lt;br /&gt;
&lt;br /&gt;
Compile and Upload the sketch.&lt;br /&gt;
&lt;br /&gt;
If everything completes without errors now you have your OLIMEXINO-32U4 set as iCE40HX1K-EVB programmer!&lt;br /&gt;
&lt;br /&gt;
==== Hardware connection between OLIMEXINO-32U4 and iCE40HX1K-EVB====&lt;br /&gt;
&lt;br /&gt;
It is a pretty straight-forward - use a 10-pin UEXT compatible cable between the two boards (like CABLE-IDC10-15cm). However, also make sure that the switching button of OLIMEXINO-32U4 is set to position 3.3V!&lt;br /&gt;
&lt;br /&gt;
The signals at the PGM1 connector of iCE40HX1K-EVB are at 3.3V DC! If you use a 5V-only board instead of OLIMEXINO-32U4 you need to drive all SPI signals to 3.3V DC externally. Else there might be a short-circuit or the connection would be unsuccessful.&lt;br /&gt;
&lt;br /&gt;
====Add iceprogduino to IceStorm====&lt;br /&gt;
&lt;br /&gt;
Copy iceprogduino folder from GitHub [https://github.com/OLIMEX/iCE40HX1K-EVB/tree/master/programmer programmer] to icestorm and build it&lt;br /&gt;
&lt;br /&gt;
    cd icestorm/iceprogduino&lt;br /&gt;
    make clean&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
====Make LED blink with IceStorm====&lt;br /&gt;
&lt;br /&gt;
Copy from GitHub ice40hx1k-evb to icestorm/examples then&lt;br /&gt;
&lt;br /&gt;
    cd icestorm/examples/ice40hx1k-evb&lt;br /&gt;
    make&lt;br /&gt;
    make prog&lt;br /&gt;
&lt;br /&gt;
LED1 and LED2 should start blink which means the code is successfully loaded&lt;br /&gt;
&lt;br /&gt;
====Iceprog with Raspberry PI====&lt;br /&gt;
&lt;br /&gt;
This section is contributed by Andreas Seltenreich&lt;br /&gt;
&lt;br /&gt;
[[File:iceprog.jpg]]&lt;br /&gt;
&lt;br /&gt;
If you have a raspberry PI around, you can use the flashrom utility with Linux’ /dev/spidev to program a bitstream to your ICE40HX1K-EVB or iCE40HX8K-EVB. The following table shows the wiring required for the Pi B+ or 2 (the connection is similar for RPi3 and RPi3B+). I used IDC connectors with a rainbow ribbon for convenient wiring (image above).&lt;br /&gt;
&lt;br /&gt;
    | Raspi 2/B+ |          | ICE40-EVB |              | comment  |&lt;br /&gt;
    |------------+----------+-----------+--------------+----------|&lt;br /&gt;
    |         17 | =3v3=    |         1 | =3v3=        |          |&lt;br /&gt;
    |         18 | =gpio24= |         6 | =creset=     |          |&lt;br /&gt;
    |         19 | =mosi=   |         8 | =sdo=        |          |&lt;br /&gt;
    |         20 | =gnd=    |         2 | =gnd=        |          |&lt;br /&gt;
    |         21 | =miso=   |         7 | =sdi=        |          |&lt;br /&gt;
    |         22 | =gpio25= |         5 | =cdone=      | optional |&lt;br /&gt;
    |         23 | =clk=    |         9 | =sck=        |          |&lt;br /&gt;
    |         24 | =ce0=    |        10 | =#cd = ss_b= |          |&lt;br /&gt;
    |         25 | =gnd=    |           |              |          |&lt;br /&gt;
    |         26 | =ce1=    |           |              |          |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
enable SPI device on the Pi (needs reboot)&lt;br /&gt;
: echo dtparam=spi=on &amp;gt;&amp;gt; /boot/config.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
build and install flashrom&lt;br /&gt;
: git clone https://www.flashrom.org/git/flashrom.git&lt;br /&gt;
: cd flashrom&lt;br /&gt;
: make CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you have enabled the SPI interface and once you have installed flashrom you you can use manual commands or check the scripts that easen it up below.&lt;br /&gt;
&lt;br /&gt;
'''Manual operation:'''&lt;br /&gt;
&lt;br /&gt;
claim GPIO24 for sysfs-control&lt;br /&gt;
: echo 24 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pull GPIO24 low to put the ice40 into reset.  The cdone-LED on the board should turn off.&lt;br /&gt;
: echo out &amp;gt; /sys/class/gpio/gpio24/direction&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Read the flash chip at 20MHz (for short cabling)&lt;br /&gt;
: flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=20000 -r dump&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply swap -r for -w to write the dump back&lt;br /&gt;
: flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=20000 -w dump&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As generated bitstreams are smaller than size of the flash chip, you&lt;br /&gt;
need to add padding for flashrom to accept them as image.  I used the&lt;br /&gt;
follwing commands to do that:&lt;br /&gt;
: tr '\0' '\377' &amp;lt; /dev/zero | dd bs=2M count=1 of=image&lt;br /&gt;
: dd if=my_bitstream conv=notrunc of=image&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deassert creset to let the ice40 read the configuration from the bus:&lt;br /&gt;
: echo in &amp;gt; /sys/class/gpio/gpio24/direction&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Automated scripts:'''&lt;br /&gt;
&lt;br /&gt;
Check Sagar Acharya's repo, he did some testing with RPi3 and RPi3B+ and made scripts that automate the process described above:&lt;br /&gt;
&lt;br /&gt;
https://notabug.org/sagaracharya/swarajya/src/master/hdl_to_hx8k&lt;br /&gt;
&lt;br /&gt;
=== Get started under Windows ===&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Under construction&lt;br /&gt;
&lt;br /&gt;
[[Category:FPGA]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3500</id>
		<title>A20-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3500"/>
		<updated>2023-09-01T05:39:09Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Old Linux images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-SOM-1 jpeg.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
*A20 dual core Cortex-A7 processor&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*AXP209 PMU IC&lt;br /&gt;
*MicroSD card&lt;br /&gt;
*UART console&lt;br /&gt;
*4GB NAND Flash&lt;br /&gt;
*Status LEDs&lt;br /&gt;
*RESET, RECOVERY buttons&lt;br /&gt;
*6 connectors x 40 pin 0.05&amp;quot; step&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Note that only the microSD connector is suitable for booting the desired operating system, the SD-MMC connector is not suitable for booting since it is not a part of the boot sequence (refer to A20 datasheet).&lt;br /&gt;
&lt;br /&gt;
=== Old Linux images ===&lt;br /&gt;
&lt;br /&gt;
These Debian images should be downloaded to a microSD card. You need a properly set torrent client to download the official images - they are available only as torrents. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND or eMMC might be found in these wiki article: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official image - Debian 9 (Jessie)''' '''(recommended for all board revisions)''':'''&lt;br /&gt;
&lt;br /&gt;
FTP download location for the official Debian Jessie release #10 (suitable for boards with NAND): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_NAND_rel_10.img.7z A20-SOM Debian Jessie with kernel 3.4.103+ for boards with NAND flash memory release 10]&lt;br /&gt;
&lt;br /&gt;
FTP download for A20-SOM (suitable for boards with eMMC): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino/2.legacy_images_kernel_3.4.x/boards_with_eMMC/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_eMMC_SPI_rel_13.zip A20-SOM Debian Jessie with kernel 3.4.103+ for boards with eMMC flash memory release 13] you might also want to check files and instructions in this folder on how to get boards boot from eMMC if you have troubles: [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino/2.legacy_images_kernel_3.4.x/boards_with_eMMC/sunxi-spi-emmc/ how to boot from eMMC with newer boards with 5.1 eMMC]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build-3.4.103-release-7/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_6.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-SOM-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this caused big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
The Debian Linux file system can be extended to suit a bigger card. If the whole SD card is not used, use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support):  [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/nand/A20_SOM_camera_LCD7_HDMI_release1.img A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support):&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/sd/A20_SOM_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.img.7z A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20-Brief description]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 Users manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Board Layout===&lt;br /&gt;
[[File:A20-SOM-1_top_named.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
[[File:a20-som_dimensions.png|675px]]&lt;br /&gt;
&lt;br /&gt;
A20-SOM and A20-SOM-4GB basic dimensions in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM/resources/a20-som_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB basic dimension in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/a20-som-evb_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A20-SOM typically consumes between 0.20A and 0.25A when connected to a 5V &lt;br /&gt;
voltage source (provided at pins GND and 5VEXT).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.35A &lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.50A @ 5V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
Make sure your supply is capable of providing at least half an ampere of &lt;br /&gt;
current at 5V of voltage.&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM + A20-SOM-EVB'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The consumption of the combination A20-SOM + A20-SOM-EVB is betwen 0.10A and 0.15A when the A20-SOM-EVB is connected to a 12V voltage source (provided at the board's PWR jack).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.20A @ 12V&lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.25A @ 12V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM A20-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
KiCAD files of the connectors of A20-SOM/A20-SOM-EVB that are perfect as a template for own design can be found here: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM/KiCAD%20connector%20library KiCAD templates A20-SOM]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available here [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/A20-SOM-EVB_eagle_sources.zip A20-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to correctly power off OLinuXino running from NAND Flash===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/24/how-to-correctly-power-off-olinuxino-running-android/ In this Blog post] we explain what are the problems. This is common problem for all computers running OS. [http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc Here] you can read more about MLC NAND Flash and Linux file system.&lt;br /&gt;
&lt;br /&gt;
===How to build the official Debian Linux image for A20-SOM? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Jessie images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.103-release-2 build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Wheezy images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.90 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20-SOM-4GB board?===&lt;br /&gt;
&lt;br /&gt;
In order to download the Android image to the NAND memory of the board follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing google drive location]).&lt;br /&gt;
&lt;br /&gt;
2. Download and extract the latest official image - can be found above in the Android section of  this article. Make sure that the download link you visit clearly indicates that the image is suitable for the NAND memory since there are images suitable for microSD card also. The images suitable for the microSD memory and those suitable for microSD card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
3. Go to firmware tab of the program and point to the already downloaded and extracted Android image.&lt;br /&gt;
&lt;br /&gt;
4. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
5. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
6. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
7. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
8. PhoenixSuit will detect the board and would ask whether you wish to also of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
9. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
2. Go to the firmware tab of the program and point to a valid Android image (note that the images on Google drive are compressed and you have to extract the archives to .img files to be able write them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
3. Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
4. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
6. You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===How do I write the Linux image to a micro SD card to use with my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to change HDMI, VGA and LCD resolutions in the official Debian image?===&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for HDMI 720p/60Hz. If you want to change to some other LCD, VGA or HDMI resolution then you have to start change_display.sh script file in /root directory. When you are logged as super user in the board type:&lt;br /&gt;
&lt;br /&gt;
   For Debian Wheezy releases: ./change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
   For Debian Jessie releases: change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Note that the script should be executed as super user. Under the command line interface you are automatically logged as super user (user &amp;quot;root&amp;quot;, password &amp;quot;olimex&amp;quot;). However, under the graphical environment you are not auto-logged as super user and you must type &amp;quot;sudo&amp;quot; before the command (in the GUI the super-user is &amp;quot;olimex&amp;quot; and the password is &amp;quot;olimex&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD, HDMI or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
*4. 15.6&amp;quot; (1366x768)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you would need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For HDMI:'''&lt;br /&gt;
&lt;br /&gt;
*0. 480i&lt;br /&gt;
*1. 576i&lt;br /&gt;
*2. 480p&lt;br /&gt;
*3. 576p&lt;br /&gt;
*4. 720p50&lt;br /&gt;
*5. 720p60&lt;br /&gt;
*6. 1080i50&lt;br /&gt;
*7. 1080i60&lt;br /&gt;
*8. 1080p24&lt;br /&gt;
*9. 1080p50&lt;br /&gt;
*10. 1080p60&lt;br /&gt;
*11. pal&lt;br /&gt;
*14. ntsc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&lt;br /&gt;
*0. 1680x1050&lt;br /&gt;
*1. 1440x900&lt;br /&gt;
*2. 1360x768&lt;br /&gt;
*3. 1280x1024&lt;br /&gt;
*4. 1024x768&lt;br /&gt;
*5. 800x600&lt;br /&gt;
*6. 640x480&lt;br /&gt;
*7. 1920x1080&lt;br /&gt;
*8. 1280x720&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to install Android on SD-card? ===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/android-4-2-2-images-for-a20-olinuxino-running-from-sd-card-is-updated-on-wiki/ Blog post about it]&lt;br /&gt;
&lt;br /&gt;
===How to access UART, I2C, GPIOs under Android? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/a20-olinuxino-tools-for-android-released/ Use our Open Source OLinuXino A20-TOOLS]&lt;br /&gt;
&lt;br /&gt;
===How to control PWM under Linux? ===&lt;br /&gt;
&lt;br /&gt;
There is an article here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===How to build the Android 4.2.2 image for A20-OLinuXino-MICRO? ===&lt;br /&gt;
&lt;br /&gt;
First you need to Download the [http://dl.linux-sunxi.org/users/tsvetan/ANDROID-4.2.2-SDK2.0-KERNEL-3.4/ A20 SDK2.0 Linux Kernel 3.4] &lt;br /&gt;
&lt;br /&gt;
Second you need to configure your environment read the instructions [http://source.android.com/source/initializing.html here]&lt;br /&gt;
&lt;br /&gt;
Then Build the kernel, kernel modules and u-boot&lt;br /&gt;
&lt;br /&gt;
    cd lichee&lt;br /&gt;
    ./build.sh -psun7i_android&lt;br /&gt;
&lt;br /&gt;
When done, continue with Bulding the android image:&lt;br /&gt;
&lt;br /&gt;
    cd ../android4.2&lt;br /&gt;
    cd device/softwinner/&lt;br /&gt;
    tar zxfv olinuxino-a20.tgz&lt;br /&gt;
    cd ../../&lt;br /&gt;
    source build/envsetup.sh&lt;br /&gt;
    lunch #select olinuxino-a20_eng&lt;br /&gt;
    extract-bsp&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dave from Axon instruments wrote more detailed [http://axonjakarta.wordpress.com/2014/02/14/olimex-a20-android-building-4/ blog post] about how he generates the Android image]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3499</id>
		<title>A20-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3499"/>
		<updated>2023-09-01T05:38:36Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Old Linux images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-SOM-1 jpeg.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
*A20 dual core Cortex-A7 processor&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*AXP209 PMU IC&lt;br /&gt;
*MicroSD card&lt;br /&gt;
*UART console&lt;br /&gt;
*4GB NAND Flash&lt;br /&gt;
*Status LEDs&lt;br /&gt;
*RESET, RECOVERY buttons&lt;br /&gt;
*6 connectors x 40 pin 0.05&amp;quot; step&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Note that only the microSD connector is suitable for booting the desired operating system, the SD-MMC connector is not suitable for booting since it is not a part of the boot sequence (refer to A20 datasheet).&lt;br /&gt;
&lt;br /&gt;
=== Old Linux images ===&lt;br /&gt;
&lt;br /&gt;
These Debian images should be downloaded to a microSD card. You need a properly set torrent client to download the official images - they are available only as torrents. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND or eMMC might be found in these wiki article: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official image - Debian 9 (Jessie)''' '''(recommended for all board revisions)''':'''&lt;br /&gt;
&lt;br /&gt;
FTP download location for the official Debian Jessie release #10 (suitable for boards with NAND): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_NAND_rel_10.img.7z A20-SOM Debian Jessie with kernel 3.4.103+ for boards with NAND flash memory release 10]&lt;br /&gt;
&lt;br /&gt;
FTP download for A20-SOM (suitable for boards with eMMC): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino/2.legacy_images_kernel_3.4.x/boards_with_eMMC/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_eMMC_SPI_rel_13.zip A20-SOM Debian Jessie with kernel 3.4.103+ for boards with eMMC flash memory release 13] you might also want to check this document on how to get boards boot from eMMC if you have troubles: [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino/2.legacy_images_kernel_3.4.x/boards_with_eMMC/sunxi-spi-emmc/ how to boot from eMMC with newer boards with 5.1 eMMC]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build-3.4.103-release-7/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_6.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-SOM-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this caused big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
The Debian Linux file system can be extended to suit a bigger card. If the whole SD card is not used, use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support):  [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/nand/A20_SOM_camera_LCD7_HDMI_release1.img A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support):&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/sd/A20_SOM_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.img.7z A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20-Brief description]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 Users manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Board Layout===&lt;br /&gt;
[[File:A20-SOM-1_top_named.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
[[File:a20-som_dimensions.png|675px]]&lt;br /&gt;
&lt;br /&gt;
A20-SOM and A20-SOM-4GB basic dimensions in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM/resources/a20-som_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB basic dimension in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/a20-som-evb_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A20-SOM typically consumes between 0.20A and 0.25A when connected to a 5V &lt;br /&gt;
voltage source (provided at pins GND and 5VEXT).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.35A &lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.50A @ 5V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
Make sure your supply is capable of providing at least half an ampere of &lt;br /&gt;
current at 5V of voltage.&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM + A20-SOM-EVB'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The consumption of the combination A20-SOM + A20-SOM-EVB is betwen 0.10A and 0.15A when the A20-SOM-EVB is connected to a 12V voltage source (provided at the board's PWR jack).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.20A @ 12V&lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.25A @ 12V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM A20-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
KiCAD files of the connectors of A20-SOM/A20-SOM-EVB that are perfect as a template for own design can be found here: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM/KiCAD%20connector%20library KiCAD templates A20-SOM]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available here [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/A20-SOM-EVB_eagle_sources.zip A20-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to correctly power off OLinuXino running from NAND Flash===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/24/how-to-correctly-power-off-olinuxino-running-android/ In this Blog post] we explain what are the problems. This is common problem for all computers running OS. [http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc Here] you can read more about MLC NAND Flash and Linux file system.&lt;br /&gt;
&lt;br /&gt;
===How to build the official Debian Linux image for A20-SOM? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Jessie images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.103-release-2 build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Wheezy images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.90 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20-SOM-4GB board?===&lt;br /&gt;
&lt;br /&gt;
In order to download the Android image to the NAND memory of the board follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing google drive location]).&lt;br /&gt;
&lt;br /&gt;
2. Download and extract the latest official image - can be found above in the Android section of  this article. Make sure that the download link you visit clearly indicates that the image is suitable for the NAND memory since there are images suitable for microSD card also. The images suitable for the microSD memory and those suitable for microSD card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
3. Go to firmware tab of the program and point to the already downloaded and extracted Android image.&lt;br /&gt;
&lt;br /&gt;
4. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
5. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
6. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
7. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
8. PhoenixSuit will detect the board and would ask whether you wish to also of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
9. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
2. Go to the firmware tab of the program and point to a valid Android image (note that the images on Google drive are compressed and you have to extract the archives to .img files to be able write them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
3. Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
4. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
6. You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===How do I write the Linux image to a micro SD card to use with my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to change HDMI, VGA and LCD resolutions in the official Debian image?===&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for HDMI 720p/60Hz. If you want to change to some other LCD, VGA or HDMI resolution then you have to start change_display.sh script file in /root directory. When you are logged as super user in the board type:&lt;br /&gt;
&lt;br /&gt;
   For Debian Wheezy releases: ./change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
   For Debian Jessie releases: change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Note that the script should be executed as super user. Under the command line interface you are automatically logged as super user (user &amp;quot;root&amp;quot;, password &amp;quot;olimex&amp;quot;). However, under the graphical environment you are not auto-logged as super user and you must type &amp;quot;sudo&amp;quot; before the command (in the GUI the super-user is &amp;quot;olimex&amp;quot; and the password is &amp;quot;olimex&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD, HDMI or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
*4. 15.6&amp;quot; (1366x768)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you would need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For HDMI:'''&lt;br /&gt;
&lt;br /&gt;
*0. 480i&lt;br /&gt;
*1. 576i&lt;br /&gt;
*2. 480p&lt;br /&gt;
*3. 576p&lt;br /&gt;
*4. 720p50&lt;br /&gt;
*5. 720p60&lt;br /&gt;
*6. 1080i50&lt;br /&gt;
*7. 1080i60&lt;br /&gt;
*8. 1080p24&lt;br /&gt;
*9. 1080p50&lt;br /&gt;
*10. 1080p60&lt;br /&gt;
*11. pal&lt;br /&gt;
*14. ntsc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&lt;br /&gt;
*0. 1680x1050&lt;br /&gt;
*1. 1440x900&lt;br /&gt;
*2. 1360x768&lt;br /&gt;
*3. 1280x1024&lt;br /&gt;
*4. 1024x768&lt;br /&gt;
*5. 800x600&lt;br /&gt;
*6. 640x480&lt;br /&gt;
*7. 1920x1080&lt;br /&gt;
*8. 1280x720&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to install Android on SD-card? ===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/android-4-2-2-images-for-a20-olinuxino-running-from-sd-card-is-updated-on-wiki/ Blog post about it]&lt;br /&gt;
&lt;br /&gt;
===How to access UART, I2C, GPIOs under Android? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/a20-olinuxino-tools-for-android-released/ Use our Open Source OLinuXino A20-TOOLS]&lt;br /&gt;
&lt;br /&gt;
===How to control PWM under Linux? ===&lt;br /&gt;
&lt;br /&gt;
There is an article here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===How to build the Android 4.2.2 image for A20-OLinuXino-MICRO? ===&lt;br /&gt;
&lt;br /&gt;
First you need to Download the [http://dl.linux-sunxi.org/users/tsvetan/ANDROID-4.2.2-SDK2.0-KERNEL-3.4/ A20 SDK2.0 Linux Kernel 3.4] &lt;br /&gt;
&lt;br /&gt;
Second you need to configure your environment read the instructions [http://source.android.com/source/initializing.html here]&lt;br /&gt;
&lt;br /&gt;
Then Build the kernel, kernel modules and u-boot&lt;br /&gt;
&lt;br /&gt;
    cd lichee&lt;br /&gt;
    ./build.sh -psun7i_android&lt;br /&gt;
&lt;br /&gt;
When done, continue with Bulding the android image:&lt;br /&gt;
&lt;br /&gt;
    cd ../android4.2&lt;br /&gt;
    cd device/softwinner/&lt;br /&gt;
    tar zxfv olinuxino-a20.tgz&lt;br /&gt;
    cd ../../&lt;br /&gt;
    source build/envsetup.sh&lt;br /&gt;
    lunch #select olinuxino-a20_eng&lt;br /&gt;
    extract-bsp&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dave from Axon instruments wrote more detailed [http://axonjakarta.wordpress.com/2014/02/14/olimex-a20-android-building-4/ blog post] about how he generates the Android image]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3498</id>
		<title>A20-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3498"/>
		<updated>2023-08-31T13:56:03Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Old Linux images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-SOM-1 jpeg.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
*A20 dual core Cortex-A7 processor&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*AXP209 PMU IC&lt;br /&gt;
*MicroSD card&lt;br /&gt;
*UART console&lt;br /&gt;
*4GB NAND Flash&lt;br /&gt;
*Status LEDs&lt;br /&gt;
*RESET, RECOVERY buttons&lt;br /&gt;
*6 connectors x 40 pin 0.05&amp;quot; step&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Note that only the microSD connector is suitable for booting the desired operating system, the SD-MMC connector is not suitable for booting since it is not a part of the boot sequence (refer to A20 datasheet).&lt;br /&gt;
&lt;br /&gt;
=== Old Linux images ===&lt;br /&gt;
&lt;br /&gt;
These Debian images should be downloaded to a microSD card. You need a properly set torrent client to download the official images - they are available only as torrents. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND or eMMC might be found in these wiki article: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official image - Debian 9 (Jessie)''' '''(recommended for all board revisions)''':'''&lt;br /&gt;
&lt;br /&gt;
FTP download location for the official Debian Jessie release #10 (suitable for boards with NAND): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_NAND_rel_10.img.7z A20-SOM Debian Jessie with kernel 3.4.103+ for boards with NAND flash memory release 10]&lt;br /&gt;
&lt;br /&gt;
FTP download for A20-SOM (suitable for boards with eMMC): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino/2.legacy_images_kernel_3.4.x/boards_with_eMMC/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_eMMC_SPI_rel_13.zip A20-SOM Debian Jessie with kernel 3.4.103+ for boards with eMMC flash memory release 13]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build-3.4.103-release-7/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_6.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-SOM-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this caused big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
The Debian Linux file system can be extended to suit a bigger card. If the whole SD card is not used, use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support):  [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/nand/A20_SOM_camera_LCD7_HDMI_release1.img A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support):&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/sd/A20_SOM_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.img.7z A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20-Brief description]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 Users manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Board Layout===&lt;br /&gt;
[[File:A20-SOM-1_top_named.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
[[File:a20-som_dimensions.png|675px]]&lt;br /&gt;
&lt;br /&gt;
A20-SOM and A20-SOM-4GB basic dimensions in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM/resources/a20-som_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB basic dimension in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/a20-som-evb_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A20-SOM typically consumes between 0.20A and 0.25A when connected to a 5V &lt;br /&gt;
voltage source (provided at pins GND and 5VEXT).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.35A &lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.50A @ 5V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
Make sure your supply is capable of providing at least half an ampere of &lt;br /&gt;
current at 5V of voltage.&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM + A20-SOM-EVB'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The consumption of the combination A20-SOM + A20-SOM-EVB is betwen 0.10A and 0.15A when the A20-SOM-EVB is connected to a 12V voltage source (provided at the board's PWR jack).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.20A @ 12V&lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.25A @ 12V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM A20-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
KiCAD files of the connectors of A20-SOM/A20-SOM-EVB that are perfect as a template for own design can be found here: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM/KiCAD%20connector%20library KiCAD templates A20-SOM]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available here [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/A20-SOM-EVB_eagle_sources.zip A20-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to correctly power off OLinuXino running from NAND Flash===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/24/how-to-correctly-power-off-olinuxino-running-android/ In this Blog post] we explain what are the problems. This is common problem for all computers running OS. [http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc Here] you can read more about MLC NAND Flash and Linux file system.&lt;br /&gt;
&lt;br /&gt;
===How to build the official Debian Linux image for A20-SOM? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Jessie images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.103-release-2 build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Wheezy images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.90 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20-SOM-4GB board?===&lt;br /&gt;
&lt;br /&gt;
In order to download the Android image to the NAND memory of the board follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing google drive location]).&lt;br /&gt;
&lt;br /&gt;
2. Download and extract the latest official image - can be found above in the Android section of  this article. Make sure that the download link you visit clearly indicates that the image is suitable for the NAND memory since there are images suitable for microSD card also. The images suitable for the microSD memory and those suitable for microSD card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
3. Go to firmware tab of the program and point to the already downloaded and extracted Android image.&lt;br /&gt;
&lt;br /&gt;
4. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
5. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
6. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
7. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
8. PhoenixSuit will detect the board and would ask whether you wish to also of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
9. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
2. Go to the firmware tab of the program and point to a valid Android image (note that the images on Google drive are compressed and you have to extract the archives to .img files to be able write them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
3. Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
4. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
6. You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===How do I write the Linux image to a micro SD card to use with my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to change HDMI, VGA and LCD resolutions in the official Debian image?===&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for HDMI 720p/60Hz. If you want to change to some other LCD, VGA or HDMI resolution then you have to start change_display.sh script file in /root directory. When you are logged as super user in the board type:&lt;br /&gt;
&lt;br /&gt;
   For Debian Wheezy releases: ./change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
   For Debian Jessie releases: change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Note that the script should be executed as super user. Under the command line interface you are automatically logged as super user (user &amp;quot;root&amp;quot;, password &amp;quot;olimex&amp;quot;). However, under the graphical environment you are not auto-logged as super user and you must type &amp;quot;sudo&amp;quot; before the command (in the GUI the super-user is &amp;quot;olimex&amp;quot; and the password is &amp;quot;olimex&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD, HDMI or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
*4. 15.6&amp;quot; (1366x768)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you would need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For HDMI:'''&lt;br /&gt;
&lt;br /&gt;
*0. 480i&lt;br /&gt;
*1. 576i&lt;br /&gt;
*2. 480p&lt;br /&gt;
*3. 576p&lt;br /&gt;
*4. 720p50&lt;br /&gt;
*5. 720p60&lt;br /&gt;
*6. 1080i50&lt;br /&gt;
*7. 1080i60&lt;br /&gt;
*8. 1080p24&lt;br /&gt;
*9. 1080p50&lt;br /&gt;
*10. 1080p60&lt;br /&gt;
*11. pal&lt;br /&gt;
*14. ntsc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&lt;br /&gt;
*0. 1680x1050&lt;br /&gt;
*1. 1440x900&lt;br /&gt;
*2. 1360x768&lt;br /&gt;
*3. 1280x1024&lt;br /&gt;
*4. 1024x768&lt;br /&gt;
*5. 800x600&lt;br /&gt;
*6. 640x480&lt;br /&gt;
*7. 1920x1080&lt;br /&gt;
*8. 1280x720&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to install Android on SD-card? ===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/android-4-2-2-images-for-a20-olinuxino-running-from-sd-card-is-updated-on-wiki/ Blog post about it]&lt;br /&gt;
&lt;br /&gt;
===How to access UART, I2C, GPIOs under Android? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/a20-olinuxino-tools-for-android-released/ Use our Open Source OLinuXino A20-TOOLS]&lt;br /&gt;
&lt;br /&gt;
===How to control PWM under Linux? ===&lt;br /&gt;
&lt;br /&gt;
There is an article here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===How to build the Android 4.2.2 image for A20-OLinuXino-MICRO? ===&lt;br /&gt;
&lt;br /&gt;
First you need to Download the [http://dl.linux-sunxi.org/users/tsvetan/ANDROID-4.2.2-SDK2.0-KERNEL-3.4/ A20 SDK2.0 Linux Kernel 3.4] &lt;br /&gt;
&lt;br /&gt;
Second you need to configure your environment read the instructions [http://source.android.com/source/initializing.html here]&lt;br /&gt;
&lt;br /&gt;
Then Build the kernel, kernel modules and u-boot&lt;br /&gt;
&lt;br /&gt;
    cd lichee&lt;br /&gt;
    ./build.sh -psun7i_android&lt;br /&gt;
&lt;br /&gt;
When done, continue with Bulding the android image:&lt;br /&gt;
&lt;br /&gt;
    cd ../android4.2&lt;br /&gt;
    cd device/softwinner/&lt;br /&gt;
    tar zxfv olinuxino-a20.tgz&lt;br /&gt;
    cd ../../&lt;br /&gt;
    source build/envsetup.sh&lt;br /&gt;
    lunch #select olinuxino-a20_eng&lt;br /&gt;
    extract-bsp&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dave from Axon instruments wrote more detailed [http://axonjakarta.wordpress.com/2014/02/14/olimex-a20-android-building-4/ blog post] about how he generates the Android image]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RT5350F-OLinuXino&amp;diff=3497</id>
		<title>RT5350F-OLinuXino</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RT5350F-OLinuXino&amp;diff=3497"/>
		<updated>2023-07-28T08:21:36Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Prebuilt files and system restore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=RT5350F-OLinuXino official images build instructions=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
==Quick-start==&lt;br /&gt;
&lt;br /&gt;
1. Connect USB&amp;lt;-&amp;gt;serial cable between the UART0 pins of the board and your personal computer. &lt;br /&gt;
&lt;br /&gt;
2. Open your favourite serial terminal software on the COM port, created by your USB&amp;lt;-&amp;gt;serial cable. &lt;br /&gt;
&lt;br /&gt;
3. Set the baud rate for the connection to 57600. &lt;br /&gt;
&lt;br /&gt;
4. Power on RT5350F-OLinuXino-EVB.&lt;br /&gt;
&lt;br /&gt;
==Prebuilt files and system restore==&lt;br /&gt;
&lt;br /&gt;
RT5350F-OLinuXino comes with an image loaded into the SPI flash memory. If something goes wrong you can restore the original image.&lt;br /&gt;
&lt;br /&gt;
The original files can be found at this FTP location: &lt;br /&gt;
&lt;br /&gt;
https://ftp.olimex.com/Ralink/RT5350F-OLinuXino/1.latest_images/&lt;br /&gt;
&lt;br /&gt;
The repository contains six (7) files, two (2) upgrade binaries for each variant of Olimex-made RT5350 boards; and a text file with a link to u-boot+factory binary that serves as a restore point should a serious problem with u-boot or bootloader appears. The upgrade can be performed over different mediums, but the restore requires a programmer.&lt;br /&gt;
&lt;br /&gt;
We have three variants of RT5350F-OLinuXino - RT5350F-OLinuXino, RT5350F-OLinuXino-EVB, and RT5350F-OLinuXino-EVB+ (which is the latest revisions of RT5350F-OLinuXino-EVB, starting revision C, with SD card and reset button, among other difference). &lt;br /&gt;
&lt;br /&gt;
One of the two binary files for each board is meant for u-boot upgrade, while the other is meant for LuCI (web browser interface) upgrade. Read about the upgrade procedures the OpenWRT upgrading here:&lt;br /&gt;
&lt;br /&gt;
https://openwrt.org/docs/guide-user/installation/generic.sysupgrade&lt;br /&gt;
&lt;br /&gt;
===Upload prebuilt images using uboot===&lt;br /&gt;
Reboot the board and you'll see:&lt;br /&gt;
  U-Boot 1.1.3 (Apr 20 2015 - 13:25:55)&lt;br /&gt;
  &lt;br /&gt;
  Board: RT5350F-OLinuXino DRAM:  32 MB&lt;br /&gt;
  relocate_code Pointer at: 81fb4000&lt;br /&gt;
  spi_wait_nsec: 42 &lt;br /&gt;
  spi device id: 1c 30 17 1c 30 (30171c30)&lt;br /&gt;
  find flash: EN25Q64&lt;br /&gt;
  raspi_read: from:30000 len:1000 &lt;br /&gt;
  .*** Warning - bad CRC, using default environment&lt;br /&gt;
  &lt;br /&gt;
  ============================================================= &lt;br /&gt;
  RT5350F-OLinuXino UBoot Version: 4.0.0.0&lt;br /&gt;
  --------------------------------------------------------------&lt;br /&gt;
  ASIC 5350_MP (Port5&amp;lt;-&amp;gt;None)&lt;br /&gt;
  DRAM_CONF_FROM: Boot-Strapping &lt;br /&gt;
  DRAM_TYPE: SDRAM &lt;br /&gt;
  DRAM_SIZE: 256 Mbits&lt;br /&gt;
  DRAM_WIDTH: 16 bits&lt;br /&gt;
  DRAM_TOTAL_WIDTH: 16 bits&lt;br /&gt;
  TOTAL_MEMORY_SIZE: 32 MBytes&lt;br /&gt;
  Flash component: SPI Flash&lt;br /&gt;
  Date:Apr 20 2015  Time:13:25:55&lt;br /&gt;
  ============================================ &lt;br /&gt;
  icache: sets:256, ways:4, linesz:32 ,total:32768&lt;br /&gt;
  dcache: sets:128, ways:4, linesz:32 ,total:16384 &lt;br /&gt;
&lt;br /&gt;
   ##### The CPU freq = 360 MHZ #### &lt;br /&gt;
   estimate memory size =32 Mbytes&lt;br /&gt;
&lt;br /&gt;
  Please choose the operation: &lt;br /&gt;
     1: Load system code to SDRAM via TFTP. &lt;br /&gt;
     2: Load system code then write to Flash via TFTP. &lt;br /&gt;
     3: Boot system code via Flash (default).&lt;br /&gt;
     4: Entr boot command line interface.&lt;br /&gt;
     7: Load Boot Loader code then write to Flash via Serial. &lt;br /&gt;
     9: Load Boot Loader code then write to Flash via TFTP.&lt;br /&gt;
&lt;br /&gt;
===Upload prebuilt OpenWRT using uboot===&lt;br /&gt;
&lt;br /&gt;
Press 2, then y and enter some values for ip, server ip and filename:&lt;br /&gt;
&lt;br /&gt;
  You choosed 2&lt;br /&gt;
  2: System Load Linux Kernel then write to Flash via TFTP. &lt;br /&gt;
   Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)&lt;br /&gt;
   Please Input new ones /or Ctrl-C to discard&lt;br /&gt;
          Input device IP (10.10.10.123) ==:10.10.10.123&lt;br /&gt;
          Input server IP (10.10.10.3) ==:10.10.10.3&lt;br /&gt;
          Input Linux Kernel filename () ==:file.bin&lt;br /&gt;
&lt;br /&gt;
Then your new system will boot.&lt;br /&gt;
&lt;br /&gt;
===Upload prebuilt uboot===&lt;br /&gt;
&lt;br /&gt;
Press 9, then again enter ip address, server ip and filename to upload:&lt;br /&gt;
&lt;br /&gt;
  You choosed 9&lt;br /&gt;
  &lt;br /&gt;
   0 &lt;br /&gt;
  raspi_read: from:40028 len:6 &lt;br /&gt;
  .&lt;br /&gt;
     &lt;br /&gt;
  9: System Load Boot Loader then write to Flash via TFTP. &lt;br /&gt;
   Warning!! Erase Boot Loader in Flash then burn new one. Are you sure?(Y/N)  &lt;br /&gt;
&lt;br /&gt;
Press '''Y''' and continue:&lt;br /&gt;
&lt;br /&gt;
  Input device IP (10.10.10.123) ==:10.10.10.123&lt;br /&gt;
Enter some static address for the device, for example ''192.168.0.201''.&lt;br /&gt;
&lt;br /&gt;
Next enter server address, for example ''192.168.0.15'':&lt;br /&gt;
&lt;br /&gt;
  Input server IP (10.10.10.3) ==:192.168.0.15&lt;br /&gt;
&lt;br /&gt;
Finally enter filename:&lt;br /&gt;
&lt;br /&gt;
  Input Uboot filename () ==:bootloader.img&lt;br /&gt;
&lt;br /&gt;
'''Don't forget to plug LAN cable.''' You should see something like that:&lt;br /&gt;
&lt;br /&gt;
  Got it&lt;br /&gt;
  #####################&lt;br /&gt;
  done&lt;br /&gt;
  Bytes transferred = 106976 (1a1e0 hex)&lt;br /&gt;
  NetBootFileXferSize= 0001a1e0&lt;br /&gt;
  raspi_erase_write: offs:0, count:1a1e0&lt;br /&gt;
  raspi_erase: offs:0 len:10000&lt;br /&gt;
  .&lt;br /&gt;
  raspi_write: to:0 len:10000 &lt;br /&gt;
  .&lt;br /&gt;
  raspi_read: from:0 len:10000 &lt;br /&gt;
  .raspi_read: from:10000 len:10000 &lt;br /&gt;
  .raspi_erase: offs:10000 len:10000&lt;br /&gt;
  .&lt;br /&gt;
  raspi_write: to:10000 len:10000 &lt;br /&gt;
  .&lt;br /&gt;
  raspi_read: from:10000 len:10000 &lt;br /&gt;
  .Done!&lt;br /&gt;
&lt;br /&gt;
===Upload prebuilt images using programmer tool===&lt;br /&gt;
&lt;br /&gt;
We will use [https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD/ ARM-USB-OCD]. It has FT2232 chip which can be used to in SPI master mode. You can also use ARM-USB-TINY; ARM-USB-TINY-H; ARM-USB-OCD-H or any FT2232-based debugger. &lt;br /&gt;
&lt;br /&gt;
Connect ARM-USB-OCD with RT5350F-OLinuXino-EVB according the schematic below (for the blue wire GND you can also use other GND pins available at the board; the GND is common):&lt;br /&gt;
&lt;br /&gt;
[[File:Arm-usb-ocd.png|480px]]&lt;br /&gt;
&lt;br /&gt;
'''RST_RT''' jumper MUST be closed. Then power the board to become ready writing.&lt;br /&gt;
&lt;br /&gt;
Download flashrom software and build it using instructions on the site. &lt;br /&gt;
&lt;br /&gt;
To program the SPI flash run:&lt;br /&gt;
 flashrom -p ft2232_spi:type=arm-usb-ocd -w file.bin&lt;br /&gt;
&lt;br /&gt;
Then wait some minutes for process to complete.&lt;br /&gt;
&lt;br /&gt;
==Building uboot==&lt;br /&gt;
&lt;br /&gt;
Get the sources from:&lt;br /&gt;
  git clone https://github.com/OLIMEX/u-boot_RT5350F-OLinuXino&lt;br /&gt;
  cd u-boot_RT5350F-OLinuXino&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Target must be build with gcc3.4!&amp;lt;/span&amp;gt; This is very important because with another versions of GCC the build process will fail. You can find that version from '''Ralink SDK'''. Use Google to find it.&lt;br /&gt;
&lt;br /&gt;
Run&lt;br /&gt;
  make menuconfig&lt;br /&gt;
&lt;br /&gt;
You'll see that the default location is /opt/buildroot-gcc342/bin. Change that with your path.&lt;br /&gt;
&lt;br /&gt;
To actually build u-boot run:&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
At the end of the process you'll see something like this&lt;br /&gt;
&lt;br /&gt;
  ===============&amp;lt;&amp;lt;IMPORTANT&amp;gt;&amp;gt;==================&lt;br /&gt;
  Notes:Uboot firmware in flash is uboot.img NOT uboot.bin&lt;br /&gt;
  ================================================&lt;br /&gt;
  &lt;br /&gt;
  ./tools/mkimage -A mips -T standalone -C none \&lt;br /&gt;
          -a 0x80200000 -e 0x80200000 \&lt;br /&gt;
          -n &amp;quot;SPI Flash Image&amp;quot; \&lt;br /&gt;
          -r SDR -s 16 -t 32 -u 16 \&lt;br /&gt;
          -y 0x0 -z 0x0 -w 0xFF -d uboot.bin uboot.img&lt;br /&gt;
  Image Name:   SPI Flash Image&lt;br /&gt;
  Created:      Thu May 14 08:23:19 2015&lt;br /&gt;
  Image Type:   MIPS Linux Standalone Program (uncompressed)&lt;br /&gt;
  Data Size:    106912 Bytes = 104.41 kB = 0.10 MB&lt;br /&gt;
  Load Address: 0x80200000&lt;br /&gt;
  Entry Point:  0x80200000&lt;br /&gt;
  DRAM Parameter: 6 (Parm0=0 Parm1=0)&lt;br /&gt;
&lt;br /&gt;
The image '''uboot.img''' can be uploaded via tftp.&lt;br /&gt;
&lt;br /&gt;
==Building OpenWRT==&lt;br /&gt;
&lt;br /&gt;
=== OpenWRT 18.06 ===&lt;br /&gt;
&lt;br /&gt;
Download sources:&lt;br /&gt;
 git clone https://github.com/OLIMEX/openwrt -b evb+/18.06&lt;br /&gt;
&lt;br /&gt;
Go into openwrt directory:&lt;br /&gt;
 cd openwrt&lt;br /&gt;
&lt;br /&gt;
Update and install feeds:&lt;br /&gt;
 ./scripts/feeds update -a&lt;br /&gt;
 ./scripts/feeds install -a&lt;br /&gt;
&lt;br /&gt;
Apply config:&lt;br /&gt;
 cat &amp;gt; .config &amp;lt;&amp;lt; __EOF__&lt;br /&gt;
 CONFIG_TARGET_ramips=y&lt;br /&gt;
 CONFIG_TARGET_ramips_rt305x=y&lt;br /&gt;
 CONFIG_TARGET_MULTI_PROFILE=y&lt;br /&gt;
 CONFIG_TARGET_DEVICE_ramips_rt305x_DEVICE_rt5350f-olinuxino=y&lt;br /&gt;
 CONFIG_TARGET_DEVICE_ramips_rt305x_DEVICE_rt5350f-olinuxino-evb=y&lt;br /&gt;
 CONFIG_TARGET_DEVICE_ramips_rt305x_DEVICE_rt5350f-olinuxino-evb-plus=y&lt;br /&gt;
 # CONFIG_FEED_luci is not set&lt;br /&gt;
 # CONFIG_FEED_packages is not set&lt;br /&gt;
 # CONFIG_FEED_routing is not set&lt;br /&gt;
 # CONFIG_FEED_telephony is not set&lt;br /&gt;
 CONFIG_PACKAGE_block-mount=y&lt;br /&gt;
 CONFIG_PACKAGE_i2c-tools=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-crypto-crc32c=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-crypto-hash=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-fs-ext4=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-fs-ntfs=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-fs-vfat=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-lib-crc16=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-nls-cp437=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-nls-iso8859-1=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-nls-utf8=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-scsi-core=y&lt;br /&gt;
 CONFIG_PACKAGE_kmod-usb-storage=y&lt;br /&gt;
 CONFIG_PACKAGE_libiwinfo-lua=y&lt;br /&gt;
 CONFIG_PACKAGE_liblua=y&lt;br /&gt;
 CONFIG_PACKAGE_liblucihttp=y&lt;br /&gt;
 CONFIG_PACKAGE_liblucihttp-lua=y&lt;br /&gt;
 CONFIG_PACKAGE_libubus-lua=y&lt;br /&gt;
 CONFIG_PACKAGE_lua=y&lt;br /&gt;
 CONFIG_PACKAGE_luci=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-app-firewall=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-base=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-lib-ip=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-lib-jsonc=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-lib-nixio=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-mod-admin-full=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-proto-ipv6=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-proto-ppp=y&lt;br /&gt;
 CONFIG_PACKAGE_luci-theme-bootstrap=y&lt;br /&gt;
 CONFIG_PACKAGE_rpcd=y&lt;br /&gt;
 CONFIG_PACKAGE_rpcd-mod-rrdns=y&lt;br /&gt;
 CONFIG_PACKAGE_uhttpd=y&lt;br /&gt;
 __EOF__&lt;br /&gt;
&lt;br /&gt;
Expand to full config:&lt;br /&gt;
 make defconfig&lt;br /&gt;
&lt;br /&gt;
Make some modifications with:&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
Build the images:&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Target images can be found in '''bin/targets/ramips/rt305x/''':&lt;br /&gt;
 tree bin/targets/ramips/rt305x/&lt;br /&gt;
 bin/targets/ramips/rt305x/&lt;br /&gt;
 |-- config.seed&lt;br /&gt;
 |-- openwrt-ramips-rt305x-device-rt5350f-olinuxino-evb-plus.manifest&lt;br /&gt;
 |-- openwrt-ramips-rt305x.manifest&lt;br /&gt;
 |-- openwrt-ramips-rt305x-root.squashfs&lt;br /&gt;
 |-- openwrt-ramips-rt305x-rt5350f-olinuxino-evb-initramfs-kernel.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-rt5350f-olinuxino-evb-plus-initramfs-kernel.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-rt5350f-olinuxino-evb-plus-squashfs-sysupgrade.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-rt5350f-olinuxino-evb-squashfs-sysupgrade.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-rt5350f-olinuxino-initramfs-kernel.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-rt5350f-olinuxino-squashfs-sysupgrade.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-uImage.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-uImage-initramfs.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-vmlinux.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-vmlinux.elf&lt;br /&gt;
 |-- openwrt-ramips-rt305x-vmlinux-initramfs.bin&lt;br /&gt;
 |-- openwrt-ramips-rt305x-vmlinux-initramfs.elf&lt;br /&gt;
&lt;br /&gt;
=== OpenWRT ===&lt;br /&gt;
Make a directory:&lt;br /&gt;
  # mkdir some_dir&lt;br /&gt;
  # cd some_dir&lt;br /&gt;
&lt;br /&gt;
Download sources:&lt;br /&gt;
  # git clone https://github.com/OLIMEX/openwrt -b rt5350f&lt;br /&gt;
&lt;br /&gt;
Go into openwrt directory:&lt;br /&gt;
  # cd openwrt&lt;br /&gt;
&lt;br /&gt;
You can use our config:&lt;br /&gt;
 # make&lt;br /&gt;
&lt;br /&gt;
or if you want to change something:&lt;br /&gt;
 # make menuconfig&lt;br /&gt;
 # make&lt;br /&gt;
&lt;br /&gt;
After some time build will finish. The image is found under:&lt;br /&gt;
  '''build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_rt305x/\'''&lt;br /&gt;
  '''openwrt-ramips-rt305x-olinuxino-rt5350f-squashfs-sysupgrade.bin'''&lt;br /&gt;
&lt;br /&gt;
Place that file on some tftp server and then upload it to the board.&lt;br /&gt;
&lt;br /&gt;
=Demo projects=&lt;br /&gt;
&lt;br /&gt;
*First steps video with RT5350F-OLinuXino-EVB by Leon Anavi: [https://www.youtube.com/watch?v=-MsywWtN79c https://www.youtube.com/watch?v=-MsywWtN79c]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Images changelog =&lt;br /&gt;
&lt;br /&gt;
== Release-3 (03 APR 2019) ==&lt;br /&gt;
* Upgrade OpenWRT to 18.06 (kernel 4.14.x+)&lt;br /&gt;
* Added support for RT5350-OLinuXino-EVB+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Release-2 (06 JUL 2015) ==&lt;br /&gt;
* More info about this software release can be found at this GitHub page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/RT5350F/Prebuilt%20images&lt;br /&gt;
&lt;br /&gt;
* Upgraded kernel version to 3.18.17&lt;br /&gt;
* Inverted wlan led polarity - this way it blink when WiFi is on&lt;br /&gt;
* Fixed firmware partition size - https://github.com/OLIMEX/openwrt/issues/1&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A13-OLinuXino-MICRO&amp;diff=3494</id>
		<title>A13-OLinuXino-MICRO</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A13-OLinuXino-MICRO&amp;diff=3494"/>
		<updated>2023-06-23T09:47:14Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
'''[https://ftp.olimex.com/Allwinner_Images/A13-OLinuXino-MICRO/Debian/sd/A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.7z Download location to A13-OLinuXino-MICRO Debian 4GB SD-card image release 3]'''&lt;br /&gt;
&lt;br /&gt;
'''[https://drive.google.com/file/d/0B-bAEPML8fwlYmdWLWJrYWJ1YW8/edit?usp=sharing Step-by-step instructions for building the latest release]'''&lt;br /&gt;
&lt;br /&gt;
The image has the following features:&lt;br /&gt;
&lt;br /&gt;
*Linux Kernel 3.4.79+&lt;br /&gt;
*LXDE desktop environment&lt;br /&gt;
*GCC 4.6&lt;br /&gt;
*dpkg&lt;br /&gt;
*git&lt;br /&gt;
*i2c-tools&lt;br /&gt;
*perl&lt;br /&gt;
*xorg&lt;br /&gt;
*Python 2.7&lt;br /&gt;
*vlc&lt;br /&gt;
*mplayer&lt;br /&gt;
*smplayer&lt;br /&gt;
*LCD support&lt;br /&gt;
*GPIO&lt;br /&gt;
*I2C&lt;br /&gt;
*SPI&lt;br /&gt;
*USB WIFI RTL8188CU, Ethernet AX88772B&lt;br /&gt;
*Audio&lt;br /&gt;
*PyA13 python module with GPIO,I2C,SPI support&lt;br /&gt;
*Default Login: '''root/olimex'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The file A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.7z is an archive of A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.img file.&lt;br /&gt;
&lt;br /&gt;
So in order to write the image on SD card you have to unzip A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.7z file:&lt;br /&gt;
&lt;br /&gt;
Install under Windows&lt;br /&gt;
&lt;br /&gt;
Use 7zip and then use Win32DiskImager.exe [http://sourceforge.net/projects/win32diskimager/ http://sourceforge.net/projects/win32diskimager/] for image writing&lt;br /&gt;
&lt;br /&gt;
Install under linux&lt;br /&gt;
Use p7zip package. If you have no installed 7zip then type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#apt-get install p7zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.7z file in your directory and unzip it with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#7za e A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.7z&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output should be a new 4GB file named A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# ls /dev/sd&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#dd if=A13_Micro_Debian_kernel_34_79_100kHz_I2C_WIFI_USB_LAN_X_touch_third_release.img of=/dev/sdX&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The list of all installed packages is [https://drive.google.com/file/d/0B-bAEPML8fwlb1ZWODhGUl9uVlE/edit?usp=sharing here]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the A13-OLinuXino-MICRO-SD card which we have on our webshop contain same image on 4GB Class10 fast micro sd-card, if you want to use this image please use Class10 fast card or the performance of Linux will slow down&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
A13-OLinuXino-MICRO has only 256MB of RAM, Android 4.x requires at least 512MB to run well. Running obsolete Android would be possible but without video acceleration )since only MALI requires around 200MB). Forget for Android on this board.&lt;br /&gt;
&lt;br /&gt;
=== Changing A13-OLinuxino-MICRO screen resolution ===&lt;br /&gt;
&lt;br /&gt;
The default Debian SD card setup is made with settings for VGA 800x600.&lt;br /&gt;
If you want to switch resolutions between VGA (800x600) and LCD (4.3&amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt; or 7&amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt; or 10.1&amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;, respectively with native screen resolutions of 480x242, 800x480 and 1024x600) then you have to replace the existing script.bin file from the first SD card partition (note that this partition is FAT - so you can replace the file under Windows or Linux) with the script.bin file from script_GPIO_VGA_xxx directory (with the desired VGA resolution mode) or from script_GPIO_LCD_xxx directory (with the desired LCD resolution mode).&lt;br /&gt;
&lt;br /&gt;
The archive of scripts might be download from here: [https://www.olimex.com/Products/OLinuXino/A13/_resources/VGA_LCD_scripts_A13_micro.zip all available screen resolution scripts for A13-MICRO]&lt;br /&gt;
&lt;br /&gt;
Note that these A13-MICRO scripts are not compatible with the A13 boards. Please check the A13 wiki article for such scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
The biggest part of the board configuration might be edited, changed or improved in a file called script.bin&lt;br /&gt;
&lt;br /&gt;
The script.bin file can usually be found in the main directory of a microSD card prepared with official Debian image. The folder containing the script can be inspected under both Windows, Linux or Mac.&lt;br /&gt;
&lt;br /&gt;
You can't directly edit binary file so you would need to convert it to text format (it is called fex in this case), then edit the parameters via a text editor and finally switch it back to binary format.&lt;br /&gt;
&lt;br /&gt;
The different options for the script are explained here: [http://linux-sunxi.org/Fex_Guide SUNXI FEX GUIDE]&lt;br /&gt;
&lt;br /&gt;
IMPORTANT! ADJUSTING SCRIPT.BIN WITH IMPROPER VALUES MIGHT BREAK YOUR DEBIAN IMAGE AND IT IS ALWAYS RECOMMENDED TO KEEP A BACK-UP OF YOUR DEFAULT SCRIPT.BIN&lt;br /&gt;
&lt;br /&gt;
To convert back and fort the script.bin you might use different tools. You can find Windows tools here: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/fex-bin-convertor-windows SUNXI TOOLS FOR WINDOWS] . For Linux convertors please check the sunxi tools here: [https://github.com/linux-sunxi/sunxi-tools SUNXI TOOLS]&lt;br /&gt;
&lt;br /&gt;
Note that it is possible to change the script.bin in a running Debian image in newest releases! More information might be found at the end of the document! Not all releases feature the live method of changing fex to bin so if you board doesn't have it follow the other methods.&lt;br /&gt;
&lt;br /&gt;
Changing script.bin file without removing the microSD card:&lt;br /&gt;
&lt;br /&gt;
The tools for script.bin changing are located in /opt/sunxi-tools directory&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# cd /opt/sunxi-tools&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# ./chscr.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
This will convert script.bin file from sdcard to script.fex file and the file  will be opened using nano editor. &lt;br /&gt;
Now you can change the board modules and parameters, save the changes and exit from nano editor&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# ./wrscr.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
this will convert script.fex to script.bin and the script.bin file will be written to sdcard.&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A13-SOM-building-latest-Debian&amp;diff=3493</id>
		<title>A13-SOM-building-latest-Debian</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A13-SOM-building-latest-Debian&amp;diff=3493"/>
		<updated>2023-05-23T08:57:16Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A13 SOM kernel 3.4.90 build description release 4&lt;br /&gt;
&lt;br /&gt;
How to make a bootable SD card for A13-OLinuXino-MICRO, A13-SOM-256 and A13-SOM-512 (HYNIX or SAMSUNG RAM memory with kernel 3.4 (and either sunxi or main-line uboot) and Debian file system.&lt;br /&gt;
 &lt;br /&gt;
'''This guide is not suitable for A13-OLinuXino and A13-OLinuXino-WIFI.''' &lt;br /&gt;
&lt;br /&gt;
===============================================================================================&lt;br /&gt;
&lt;br /&gt;
'''1. Setup of the toolchain'''&lt;br /&gt;
-------------------------&lt;br /&gt;
You should make sure you have the software tools required for building the Linux Kernel. Please install the required tools if you don't have them already. To install new software you should be logged as a super user on your Linux machine; the first thing to do would be to type in the terminal:&lt;br /&gt;
&lt;br /&gt;
$ sudo su&lt;br /&gt;
&lt;br /&gt;
you will be asked for your password and then your prompt will change to # which means you are now the super user, all future commands should be run in this mode.&lt;br /&gt;
&lt;br /&gt;
At this point update apt-get links by typing&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
Install the toolchain by typing the following.&lt;br /&gt;
&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
This will install: GCC compiler used to compile the kernel; the kernel config menu uboot creates image which is required to allow the SD card to boot into the linux image; Git which allows you to download from the github which holds source code for some of the system; additional other tools for building the kernel.&lt;br /&gt;
&lt;br /&gt;
Note that if you use debian may be you will need to add&lt;br /&gt;
&lt;br /&gt;
deb http://www.emdebian.org/debian squeeze main in the file below:&lt;br /&gt;
&lt;br /&gt;
 /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
after the installation you now have all tools to make your very own A13 kernel image!&lt;br /&gt;
&lt;br /&gt;
'''2. Building Uboot'''&lt;br /&gt;
-----------------&lt;br /&gt;
Here you have two options. The first is to use sunxi u-boot and the second is to use mainline u-boot. The sunxi u-boot is suitable for the boards that have HYNIX DDR3 chip - H5TQ2G83CFR. The mainline u-boot is suitable for boards that have SAMSUNG DDR3 chip - K4B2G0846Q. Note that if you use the sunxi u-boot with SAMSUNG DDR3 memory then you would have different problems because the new SAMSUNG DDR chip is not supported in this u-boot. The mainline u-boot will be suitable for HYNIX and SAMSUNG DDR3.&lt;br /&gt;
&lt;br /&gt;
First let's make the directory where we will build the A13-OLinuXino-Micro/SOM linux:&lt;br /&gt;
&lt;br /&gt;
 mkdir a13-micro-SOM-kernel_3.4&lt;br /&gt;
 cd a13-micro-SOM-kernel_3.4&lt;br /&gt;
&lt;br /&gt;
After that follow either chapter 2.1 or 2.2 (2.1 is suitable for sunxi u-boot and XYNIX RAM memory; 2.2 is suitable for mainline u-boot and SAMSUNG RAM memory)&lt;br /&gt;
&lt;br /&gt;
2.1. Building sunxi u-boot  &lt;br /&gt;
If we have a board with HYNIX RAM let's download the uboot sources from GitHub repository, note that there are lot of branches but you have to use sunxi branch. Note that the u-boot for A13-OLinuXino-MICRO and A13-SOM boards is tested with the next branch:&lt;br /&gt;
&lt;br /&gt;
 git rev-parse --verify HEAD 78592f1d95cccf329ed515a176c80be5c87827a0&lt;br /&gt;
&lt;br /&gt;
this means after you have download the sources (with git clone) you can switch to the exact commit with:&lt;br /&gt;
&lt;br /&gt;
 git reset --hard 78592f1d95cccf329ed515a176c80be5c87827a0&lt;br /&gt;
&lt;br /&gt;
Download u-boot sources:&lt;br /&gt;
&lt;br /&gt;
 git clone -b sunxi https://github.com/linux-sunxi/u-boot-sunxi.git&lt;br /&gt;
&lt;br /&gt;
After the download you should have a new directory&lt;br /&gt;
&lt;br /&gt;
 cd u-boot-sunxi/&lt;br /&gt;
&lt;br /&gt;
Note that there are 2 versions of A13-SOM boards:&lt;br /&gt;
 &lt;br /&gt;
-A13-SOM with 256MB DDR3 memory size &lt;br /&gt;
-A13-SOM with 512MB DDR3 memory size - need u-boot patch&lt;br /&gt;
&lt;br /&gt;
If you have A13-SOM board with 512MB memory size then first you have to aply patch for changing DDR3 memory size:&lt;br /&gt;
download u-boot_A13_SOM_512MB.patch using wget command&lt;br /&gt;
&lt;br /&gt;
 wget &amp;quot;https://drive.google.com/file/d/0BwplT87k9SCgY3lIWVlLd3ZlSEk/view?usp=sharing&amp;amp;resourcekey=0-5DKIvjZcbpdjsrseLdzMtg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and patch the file board/sunxi/dram_a13_oli_micro.c with the next command&lt;br /&gt;
 &lt;br /&gt;
 patch -p0 &amp;lt; u-boot_A13_SOM_512MB.patch&lt;br /&gt;
&lt;br /&gt;
If you have A13-SOM with 256MB memory size you no need from patch. By default u-boot settings are set for 256MB memory size and you can start building imediately after download u-boot. &lt;br /&gt;
&lt;br /&gt;
You can start uboot building with the next commands:&lt;br /&gt;
&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- A13-OLinuXinoM_config&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-&lt;br /&gt;
&lt;br /&gt;
At the end of the process you can check if everything is OK by&lt;br /&gt;
&lt;br /&gt;
 ls u-boot.bin u-boot-sunxi-with-spl.bin spl/sunxi-spl.bin&lt;br /&gt;
&lt;br /&gt;
spl/sunxi-spl.bin  u-boot.bin  u-boot-sunxi-with-spl.bin&lt;br /&gt;
&lt;br /&gt;
If you got these files everything is complete, well done so far&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
You should be in the following directory&lt;br /&gt;
&lt;br /&gt;
 /home/user/a13-micro-SOM-kernel_3.4#&lt;br /&gt;
&lt;br /&gt;
At this point skip 2.2 directly to chapter 3.&lt;br /&gt;
&lt;br /&gt;
2.2. Building mainline u-boot&lt;br /&gt;
&lt;br /&gt;
Note that if you want to use latest mainline u-boot then you have to use linaro toolchain 6.2 and above!&lt;br /&gt;
&lt;br /&gt;
The mainline u-boot in our image is compiled using linaro toolchain version 6.4 from this link&lt;br /&gt;
https://releases.linaro.org/components/toolchain/binaries/6.4-2018.05/arm-linux-gnueabihf/gcc-linaro-6.4.1-2018.05-i686_arm-linux-gnueabihf.tar.xz&lt;br /&gt;
&lt;br /&gt;
After you download it, unzip it with with:&lt;br /&gt;
&lt;br /&gt;
# tar xJf gcc-linaro-6.4.1-2018.05-i686_arm-linux-gnueabihf.tar.xz &lt;br /&gt;
&lt;br /&gt;
Download u-boot sources:&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.denx.de/u-boot.git&lt;br /&gt;
 &lt;br /&gt;
After the download you should have a new directory&lt;br /&gt;
&lt;br /&gt;
 cd u-boot&lt;br /&gt;
&lt;br /&gt;
If we have a board with SAMSUNG RAM let's download the uboot sources from GitHub repository, note that the u-boot for A13-OLinuXino-MICRO and A13-SOM boards is tested with the next branch:&lt;br /&gt;
&lt;br /&gt;
 git rev-parse --verify HEAD 1733259d25015c28c47990ec11af99b3f62f811c&lt;br /&gt;
&lt;br /&gt;
this means after you have download the sources you can switch to the exact commit with&lt;br /&gt;
&lt;br /&gt;
 git reset --hard 1733259d25015c28c47990ec11af99b3f62f811c&lt;br /&gt;
&lt;br /&gt;
Load the configuration file. It is tha same for A13-SOM and A13-Micro board&lt;br /&gt;
&lt;br /&gt;
 make CROSS_COMPILE=arm-linux-gnueabihf- A13-OLinuXinoM_defconfig&lt;br /&gt;
&lt;br /&gt;
you can configure some u-boot settings like DDR3 settings, clocks and other with:&lt;br /&gt;
&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
It is recommended to choose:&lt;br /&gt;
 &lt;br /&gt;
[*]Enable workaround for booting old kernels&lt;br /&gt;
&lt;br /&gt;
and &lt;br /&gt;
&lt;br /&gt;
[*] sunxi dram odt enable &lt;br /&gt;
&lt;br /&gt;
the board has stable behaviour with&lt;br /&gt;
[360] sunxi dram clock speed &lt;br /&gt;
[100] sunxi mbus clock speed&lt;br /&gt;
&lt;br /&gt;
but you can choose other settings depending from your application&lt;br /&gt;
&lt;br /&gt;
save it the settings and exit&lt;br /&gt;
&lt;br /&gt;
Compile the u-boot&lt;br /&gt;
&lt;br /&gt;
 # make CROSS_COMPILE=/path_to_file/arm-linux-gnueabihf-&lt;br /&gt;
&lt;br /&gt;
When the compilation completes, there will be u-boot-sunxi-with-spl.bin available in your u-boot tree. &lt;br /&gt;
&lt;br /&gt;
Now you have to create a new boot.cmd file with the following contain&lt;br /&gt;
&lt;br /&gt;
 setenv bootm_boot_mode sec&lt;br /&gt;
 setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10&lt;br /&gt;
 load mmc 0:1 0x43000000 script.bin || load mmc 0:1 0x43000000 boot/script.bin&lt;br /&gt;
 load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage&lt;br /&gt;
 bootm 0x42000000&lt;br /&gt;
&lt;br /&gt;
convert boot.cmd in boot.scr with the next command&lt;br /&gt;
&lt;br /&gt;
 mkimage -C none -A arm -T script -d boot.cmd boot.scr&lt;br /&gt;
 &lt;br /&gt;
The result should be a new boot.scr file that you have to copy to the first SD card partition (where uImage and script.bin file are located).&lt;br /&gt;
 &lt;br /&gt;
'''3. Building kernel sources for A13-SOM'''&lt;br /&gt;
----------------------------------------------&lt;br /&gt;
Kernel sources for A13 are available on GitHub. Note that the following building is made with the revision below: &lt;br /&gt;
&lt;br /&gt;
 git rev-parse --verify HEAD e37d760b363888f3a65cd6455c99a75cac70a7b8&lt;br /&gt;
&lt;br /&gt;
You can download the kernel sources using the following command:&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/linux-sunxi/linux-sunxi&lt;br /&gt;
&lt;br /&gt;
After the download go to the kernel directory&lt;br /&gt;
&lt;br /&gt;
 cd linux-sunxi/&lt;br /&gt;
&lt;br /&gt;
Note that before compiling kernel you have to do a patch kernel in order to change I2C sped from 200kHz to 100kHz (need for Olimex's I2C modules) and some other changes related with missing power management with AXP209 chip.&lt;br /&gt;
&lt;br /&gt;
download the patch a13_micro_SOM.patch using wget command&lt;br /&gt;
&lt;br /&gt;
 wget &amp;quot;https://drive.google.com/file/d/0BwplT87k9SCgQ0IxZjRtaHVnMzg/view?usp=sharing&amp;amp;resourcekey=0-livmBN2h0X6-wv4R8jr8QA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and apply the patch:&lt;br /&gt;
&lt;br /&gt;
 patch -p1 &amp;lt; a13_micro_SOM.patch&lt;br /&gt;
&lt;br /&gt;
The next step is to configure the system &lt;br /&gt;
&lt;br /&gt;
Here you need from a13 configuration file - a13_micro_SOM_defconfig. The file contains all kernel module settings.&lt;br /&gt;
&lt;br /&gt;
Download a13_micro_SOM_defconfig using wget command &lt;br /&gt;
&lt;br /&gt;
 wget &amp;quot;https://drive.google.com/file/d/0BwplT87k9SCgWEdqRGl2amxyd2c/view?usp=sharing&amp;amp;resourcekey=0-CzihPrsCCVaiVMuSEHHrpw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
then copy a13_micro_SOM_defconfig file to configs directory:&lt;br /&gt;
&lt;br /&gt;
 cp a13_micro_SOM_defconfig ./arch/arm/configs/&lt;br /&gt;
&lt;br /&gt;
and make:&lt;br /&gt;
&lt;br /&gt;
 make ARCH=arm a13_micro_SOM_defconfig&lt;br /&gt;
&lt;br /&gt;
The result should be:&lt;br /&gt;
configuration written to .config&lt;br /&gt;
&lt;br /&gt;
If you wish to make your changes in the kernel configuration do:&lt;br /&gt;
&lt;br /&gt;
 make ARCH=arm menuconfig&lt;br /&gt;
&lt;br /&gt;
The menuconfig changes a .config text file, which you can view/edit even with a text editor like vi,nano.&lt;br /&gt;
With this command you can add or remove different modules for the different peripherals in the kernel. Be careful when use this as this may cause the kernel to not work properly.&lt;br /&gt;
&lt;br /&gt;
Now you can continue with kernel image compiling &lt;br /&gt;
&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 uImage&lt;br /&gt;
&lt;br /&gt;
when this finish you will have uImage ready and the result should be:&lt;br /&gt;
&lt;br /&gt;
Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-3.4.79+&lt;br /&gt;
Created:      Mon May 12 09:22:56 2014&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    4612216 Bytes = 4504.12 kB = 4.40 MB&lt;br /&gt;
Load Address: 40008000&lt;br /&gt;
Entry Point:  40008000&lt;br /&gt;
Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
Now you can build the kernel modules:&lt;br /&gt;
&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 INSTALL_MOD_PATH=out modules&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 INSTALL_MOD_PATH=out modules_install&lt;br /&gt;
&lt;br /&gt;
DONE! At this point you have uboot and kernel modules.&lt;br /&gt;
&lt;br /&gt;
The uImage file is located in linux-sunxi/arch/arm/boot/&lt;br /&gt;
&lt;br /&gt;
The kernel modules are located in&lt;br /&gt;
&lt;br /&gt;
linux-sunxi/out/lib/modules/3.x.xx&lt;br /&gt;
where 3.x.xx is kernel version&lt;br /&gt;
&lt;br /&gt;
in our case the directory with modules is:&lt;br /&gt;
&lt;br /&gt;
linux-sunxi/out/lib/modules/3.4.90+&lt;br /&gt;
&lt;br /&gt;
'''4. Format and setup the SD-card'''&lt;br /&gt;
--------------------------------&lt;br /&gt;
We suggest 4GB class 10 micro sd-card but you can use any card between 2GB and 16GB.&lt;br /&gt;
&lt;br /&gt;
First we have to make the correct card partitions, this is done with fdisk.&lt;br /&gt;
&lt;br /&gt;
Plug SD card into your SD card reader and enter in the terminal&lt;br /&gt;
&lt;br /&gt;
 ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which of the ?sd? devices disappears from the list.&lt;br /&gt;
&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
&lt;br /&gt;
 fdisk /dev/sdX&lt;br /&gt;
then do these steps:&lt;br /&gt;
&lt;br /&gt;
1. p&lt;br /&gt;
will list your partitions&lt;br /&gt;
&lt;br /&gt;
if there are already partitions on your card do:&lt;br /&gt;
&lt;br /&gt;
2. d enter 1&lt;br /&gt;
if you have more than one partition press d while delete them all&lt;br /&gt;
&lt;br /&gt;
3. create the first partition, starting from 2048 &lt;br /&gt;
n enter p enter 1 enter enter +16M&lt;br /&gt;
&lt;br /&gt;
4. create second partition&lt;br /&gt;
n enter p enter 2 enter enter enter&lt;br /&gt;
&lt;br /&gt;
then list the created partitions:&lt;br /&gt;
p enter&lt;br /&gt;
if you did everything correctly on 4GB card you should see something like:&lt;br /&gt;
&lt;br /&gt;
Disk /dev/sdg: 3980 MB, 3980394496 bytes&lt;br /&gt;
123 heads, 62 sectors/track, 1019 cylinders, total 7774208 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdg1            2048       34815       16384   83  Linux&lt;br /&gt;
/dev/sdg2           34816     7774207     3869696   83  Linux&lt;br /&gt;
&lt;br /&gt;
7. w&lt;br /&gt;
&lt;br /&gt;
write changes to sd card&lt;br /&gt;
&lt;br /&gt;
now we have to format the file system on the card:&lt;br /&gt;
&lt;br /&gt;
the first partition should be vfat as this is FS which the Allwinner bootloader understands&lt;br /&gt;
&lt;br /&gt;
 mkfs.vfat /dev/sdX1&lt;br /&gt;
&lt;br /&gt;
the second should be normal Linux EXT3 FS&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext3 /dev/sdX2&lt;br /&gt;
&lt;br /&gt;
'''5. Write the Uboot and sunxi-spl.bin'''&lt;br /&gt;
-------------------------------------&lt;br /&gt;
You should be in /home/user/a13-micro-SOM-kernel_3.4# directory &lt;br /&gt;
Note that you have to write u-boot-sunxi-with-spl.bin in /dev/sdX (not sdX1 or sdX2)&lt;br /&gt;
&lt;br /&gt;
 dd if=u-boot-sunxi/u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8&lt;br /&gt;
&lt;br /&gt;
Note that if you use mainline u-boot then you have to copy the generated boot.scr file in the first sdcard partition. For example:&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/sd&lt;br /&gt;
 mount /dev/sdX1 /mnt/sd&lt;br /&gt;
 cp /u-boot/boot.scr /mnt/sd/ &lt;br /&gt;
&lt;br /&gt;
'''6. Write kernel uImage you build to the SD-card'''&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
copy the Kernel uImage to root directory in partition 1&lt;br /&gt;
&lt;br /&gt;
 cp linux-sunxi/arch/arm/boot/uImage /mnt/sd&lt;br /&gt;
&lt;br /&gt;
'''7. Write script.bin file'''&lt;br /&gt;
-------------------------&lt;br /&gt;
script.bin is a file with very important configuration parameters like port GPIO assignments, DDR memory parameters, Video resolution etc, download the script.bin using wget command&lt;br /&gt;
&lt;br /&gt;
 wget &amp;quot;https://drive.google.com/file/d/0BwplT87k9SCgYXhpQ2djd2hZRDg/view?usp=sharing&amp;amp;resourcekey=0-aOTtYqfAz029aCbvpuLkPQ&amp;quot;&lt;br /&gt;
 cp script.bin /mnt/sd&lt;br /&gt;
 sync&lt;br /&gt;
 umount /dev/sdX1&lt;br /&gt;
&lt;br /&gt;
'''8. Debian rootfs'''&lt;br /&gt;
----------------&lt;br /&gt;
The Linux Kernel and Uboot are ready, now we have need from Linux distribution rootfs.&lt;br /&gt;
&lt;br /&gt;
Basically the only difference between the different Linux distributions is the rootfs, so if you put Debian rootfs you will have Debian, if you put Ubuntu rootfs it will be Ubuntu etc.&lt;br /&gt;
&lt;br /&gt;
How to build one is a long topic, the good thing is that there are many already pre-built so we can just download one and use.&lt;br /&gt;
&lt;br /&gt;
exit the kernel directory&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
You should be in the directory below&lt;br /&gt;
&lt;br /&gt;
 /home/user/a13-micro-SOM-kernel_3.4&lt;br /&gt;
download the torrent of the archive with debian rootfs - a13_micro_SOM_debian_FS.tgz using wget command&lt;br /&gt;
&lt;br /&gt;
 wget https://ftp.olimex.com/Allwinner_Images/A13-SOM/Outdated%20Sunxi%20Images/sd/a13_micro_SOM_debian_FS.tgz --no-check-certificate&lt;br /&gt;
&lt;br /&gt;
mount your sd card EXT3 FS partition:&lt;br /&gt;
&lt;br /&gt;
 mount /dev/sdX2 /mnt/sd&lt;br /&gt;
&lt;br /&gt;
and unarchive the rootfs&lt;br /&gt;
&lt;br /&gt;
 tar xzvf a13_micro_SOM_debian_FS.tgz -C /mnt/sd&lt;br /&gt;
 ls /mnt/sd&lt;br /&gt;
&lt;br /&gt;
the right result should be:&lt;br /&gt;
bin   dev  home  lost+found  mnt  proc  run   selinux  sys  usr&lt;br /&gt;
boot  etc  lib   media       opt  root  sbin  srv      tmp  var&lt;br /&gt;
&lt;br /&gt;
Now you have to replace the new generated kernel modules from /home/user/a13-micro-SOM-kernel_3.4linux-sunxi/out/lib/modules/ to the new debian file system&lt;br /&gt;
&lt;br /&gt;
 rm -rf /mnt/sd/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
 cp -rfv linux-sunxi/out/lib/modules/3.x.xx+/ /mnt/sd/lib/modules/&lt;br /&gt;
where x.xx is the kernel version&lt;br /&gt;
in our case:&lt;br /&gt;
 cp -rfv linux-sunxi/out/lib/modules/3.4.90+/ /mnt/sd/lib/modules/&lt;br /&gt;
&lt;br /&gt;
replace /lib/firmware folder with the generated /linux-sunxi/out/firmware&lt;br /&gt;
 rm -rf /mnt/sd/lib/firmware/&lt;br /&gt;
 cp -rfv linux-sunxi/out/lib/firmware/ /mnt/sd/lib/&lt;br /&gt;
&lt;br /&gt;
 sync&lt;br /&gt;
 umount /mnt/sdX2&lt;br /&gt;
&lt;br /&gt;
At this point you have Debian on your SD card second partition and you have an SD card ready to boot debian on A13-OLinuXino-Micro/SOM&lt;br /&gt;
&lt;br /&gt;
Connect USB-SERIAL-CABLE-F to UEXT Tx.Rx and GND, or connect a HDMI screen. Put the SD-card in A13-OLinuXino-Micro/SOM and apply 6-16V power, you should see Uboot and then Kernel messages on the console&lt;br /&gt;
&lt;br /&gt;
default username/password is : root / olimex&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3492</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3492"/>
		<updated>2023-04-21T10:24:47Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Debian for microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/Rockchip_images/sd/debian/RK3188_debian_3.0.36_SD_release2.img.7z RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Older official releases (not recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #1:[https://ftp.olimex.com/Rockchip_images/sd/debian/RK3188_debian_3.0.36_SD_release1.img.7z RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/Rockchip_images/nand/debian/RK3188_debian_3.0.36_NAND_release1.img.7z|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/Rockchip_images/nand/debian/RK3188_debian_3.0.36_NAND_release1.img.7z%7CRK3188-SOM|RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3491</id>
		<title>RK3188-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=RK3188-SOM&amp;diff=3491"/>
		<updated>2023-04-21T10:22:19Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Debian for microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized.png|650px]]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM board is a very productive small beast compared to the previous Olimex board designs. If we compare RockChip RK3188 and Allwinner A20: RK3188 has 4x Cortex-A9, while A20 only 2x Cortex-A7. It runs at 1.6 GHz vs. the 1.0 GHz frequency of the A20. RK3188 reaches a total of 16000 DMPIS vs. the 3800 DMIPS for the A20 (RK3188 is 4.2 times faster). For comparison, the RaspberryPi has 965 DMIPS (RK3188 is 16.6 times faster).&lt;br /&gt;
&lt;br /&gt;
The RK3188-SOM design has the following features:&lt;br /&gt;
&lt;br /&gt;
*Rockchip RK3188 quad core Cortex-A9 processor, each core typically running at 1.6GHz&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*Integrated power management unit&lt;br /&gt;
*Optional 4GB NAND flash memory for Linux or Android boot&lt;br /&gt;
*Micro SD-card for Linux or Android boot&lt;br /&gt;
*Three buttons - POWER, RESET, RECOVERY&lt;br /&gt;
*Four LEDs (one for power and three user-programmable)&lt;br /&gt;
*UART console pins exposed for serial debug&lt;br /&gt;
*Five GPIO connectors 2×20 pins @ 0.05&amp;quot; step&lt;br /&gt;
*Dimensions: (3.2×1.8)&amp;quot; ~ (81×56)mm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Debian images ==&lt;br /&gt;
=== Debian for microSD card ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #2:[https://ftp.olimex.com/Rockchip_images/sd/debian/RK3188_debian_3.0.36_SD_release2.img.7z RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #2]&lt;br /&gt;
&lt;br /&gt;
In the command line interface of image you are automatically logged as root. The default superuser username/password combination in the GUI (XFCE4) is: olimex/olimex.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Older official releases (not recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download of Debian release #1:[[https://ftp.olimex.com/Rockchip_images/sd/debian/RK3188_debian_3.0.36_SD_release2.img.7z|RK3188-SOM Debian for microSD card - kernel 3.0.36+ - release #1]]&lt;br /&gt;
&lt;br /&gt;
====How to prepare your microSD card with the suitable official Debian image?====&lt;br /&gt;
----&lt;br /&gt;
In order to download an official Linux image to a microSD card under Windows you can use Win32 Disk Imager: [http://sourceforge.net/projects/win32diskimager/ click here]&lt;br /&gt;
&lt;br /&gt;
1. Download the latest official image suitable for a microSD card from the chapter above&lt;br /&gt;
&lt;br /&gt;
2. Download Win32 Disk Imager from this link.&lt;br /&gt;
&lt;br /&gt;
3. Insert card in your microSD card reader.&lt;br /&gt;
&lt;br /&gt;
4. Launch the software.&lt;br /&gt;
&lt;br /&gt;
5. Point the software to the image&lt;br /&gt;
&lt;br /&gt;
6. Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under Linux you can write the image image to the card with dd utility. This is how it can be done:&lt;br /&gt;
&lt;br /&gt;
Let's say the name of the image is &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the microSD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
where /dev/sdX is the uSD card as listed by the Linux.&lt;br /&gt;
&lt;br /&gt;
=== Debian for NAND memory ===&lt;br /&gt;
&lt;br /&gt;
'''Newest official release (recommended):'''&lt;br /&gt;
&lt;br /&gt;
Direct download Debian for NAND release #1: [https://ftp.olimex.com/Rockchip_images/nand/debian/RK3188_debian_3.0.36_NAND_release1.img.7z|RK3188-SOM Debian for NAND memory - kernel 3.0.36+ - release #1]&lt;br /&gt;
&lt;br /&gt;
Note that this image is suitable only for RK3188-SOM-4GB boards.&lt;br /&gt;
&lt;br /&gt;
Build instructions and links to required files for the latest Debian images might be found below in chapter &amp;quot;Building Linux for RK3188-SOM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to download the ready Debian image to the NAND memory of RK3188-SOM?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT: RK3188-SOM-4GB comes with Debian already pre-loaded on the NAND memory. No need to perform this operation initially.'''&lt;br /&gt;
&lt;br /&gt;
1. You need to download the software tools for your computer provided by Rockchip. If you use Windows download “Rockchip Batch Tool”. If you use Linux use either rkflashkit or upgrade_tool. These are the tools that I recommend but there are a lot of tools available. Get the Rockchip batch tool from here: [https://drive.google.com/file/d/0BwplT87k9SCgRDB4ZGY3SnMzd00/view?usp=sharing Rockchip Batch Tool]&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
2. Install the drivers that allows your computer to recognize the board (that is already set in bootloader mode) connected to it. The installer is called &amp;quot;Rockchip Driver Assistant&amp;quot; – download it here: [https://drive.google.com/file/d/0BwplT87k9SCgbkdXX1ByUW1RSW8/view?usp=sharing Rockchip Driver Assistant]&lt;br /&gt;
&lt;br /&gt;
3. You need to download and extract the latest image suitable for the NAND from our wiki. It is available as a direct download here: [https://ftp.olimex.com/Rockchip_images/nand/debian/RK3188_debian_3.0.36_NAND_release1.img.7z%7CRK3188-SOM|RK3188 Debian 3.0.36 for NAND memory]&lt;br /&gt;
&lt;br /&gt;
4. You need enter bootloader mode with the board to be able to establish connection between the board and the software provided by Rockchip. You would also need a mini USB cable. To enter bootloader mode you need to press and hold down the recovery button before powering the board (then connect the board to the PC via the mini USB cable). After the board is powered you can release the button.&lt;br /&gt;
&lt;br /&gt;
5. Start the tool for uploading the firmware and point it to the extracted image.&lt;br /&gt;
&lt;br /&gt;
6. Click button &amp;quot;Upgrade&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. Test with a serial cable.&lt;br /&gt;
&lt;br /&gt;
== Ready-to-use Android images ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188-SOM-UM.pdf OLIMEX RK3188-SOM user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM-EVB/resources/RK3188-SOM-EVB-UM.pdf OLIMEX RK3188-SOM-EVB user's manual]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/raw/master/HARDWARE/RK3188-PDFs/Rockchip%20RK3188%20datasheet%20V1.0.pdf Processor (Rockchip RK3188) datasheet in pdf format]&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/SOM/RK3188/RK3188-SOM/resources/RK3188_SOM_GPIOs.pdf RK3188-SOM connectors' pinout and GPIO table]&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-SOM RK3188-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
RK3188-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available also at GitHub: [https://github.com/OLIMEX/SOM/tree/master/RK3188/RK3188-EVB RK3188-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
==Board Layout==&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-TOP-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rk3188-som-resized-BOTTOM-NAMED.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Building Linux for RK3188-SOM ==&lt;br /&gt;
=== Building the parameter file ===&lt;br /&gt;
----&lt;br /&gt;
The parameter file describes many board parameters as firmware version, machine id, manufacturer name, etc. &lt;br /&gt;
&lt;br /&gt;
For the user the most important parameter is '''CMDLINE'''. This is the command that is passed to the kernel. It looks something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 \&lt;br /&gt;
 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Define serial port at 115200:&lt;br /&gt;
 console=ttyFIQ0,115200&lt;br /&gt;
&lt;br /&gt;
Define location of the rootfs:&lt;br /&gt;
 root=/dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
Define rootfs file system as ext4:&lt;br /&gt;
 rootfstype=ext4&lt;br /&gt;
&lt;br /&gt;
Define the address of the kernel and size:&lt;br /&gt;
 0x00008000@0x00002000&lt;br /&gt;
&lt;br /&gt;
Define start address of the rootfs:&lt;br /&gt;
 -@0x0000A000&lt;br /&gt;
&lt;br /&gt;
Additionally, you can set static MAC address with:&lt;br /&gt;
 mac_addr=xx:xx:xx:xx:xx:xx &lt;br /&gt;
&lt;br /&gt;
Once you're ready with the file, make the parameter image&lt;br /&gt;
&lt;br /&gt;
* Get rkutils:&lt;br /&gt;
 https://github.com/naobsd/rkutils&lt;br /&gt;
 cd rkutils&lt;br /&gt;
 gcc rkcrc.c -o rkcrc&lt;br /&gt;
If you're getting error try to comment ''''#include &amp;lt;err.h&amp;gt;'''' in ''''rkcrc.c''''&lt;br /&gt;
&lt;br /&gt;
* Encrypt parameter file:&lt;br /&gt;
 ./rkcrc -p you_parameter_file parameter&lt;br /&gt;
&lt;br /&gt;
The parameter file is ready for further use.&lt;br /&gt;
&lt;br /&gt;
=== Building the kernel ===&lt;br /&gt;
----&lt;br /&gt;
* Fist prepare the toolchain:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git&lt;br /&gt;
&lt;br /&gt;
* Get the sources:&lt;br /&gt;
 git clone -b olimex/stable-3.0 https://github.com/StefanMavrodiev/RK3188-SOM.git&lt;br /&gt;
&lt;br /&gt;
* Get the default configuration:&lt;br /&gt;
 cd RK3188-SOM/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- '''olimex_rk3188_defconfig'''&lt;br /&gt;
&lt;br /&gt;
* You can modify defconfig with (for additional modules):&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig&lt;br /&gt;
&lt;br /&gt;
'''Note!''' The default config will set hdmi to 1080p. You can change it from:&lt;br /&gt;
 Device Drivers ---&amp;gt;&lt;br /&gt;
     Graphics support ---&amp;gt;&lt;br /&gt;
         &amp;lt;*&amp;gt; Frame buffer support for Rockchip ---&amp;gt;&lt;br /&gt;
                 LCD Panel Select ---&amp;gt;&lt;br /&gt;
                     '''''Choose one of the following:'''''&lt;br /&gt;
                     HDMI framebuffer size and timing is 1080p    &amp;lt;---    '''Set HDMI to 1080p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 720p     &amp;lt;---    '''Set HDMI to 720p'''&lt;br /&gt;
                     HDMI framebuffer size and timing is 480p     &amp;lt;---    '''Set HDMI to 480p'''&lt;br /&gt;
                     RGB AT070TN90    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardware LCD-OLinuXino-7]&lt;br /&gt;
                     RGB AR010H05N    &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-10/open-source-hardware LCD-OLinuXino-10]&lt;br /&gt;
                     RGB BT043DCNNHHP &amp;lt;---    [https://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-4.3TS/open-source-hardware LCD-OLinuXino-4.3TS]&lt;br /&gt;
&lt;br /&gt;
* Build the kernel:&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 kernel.img&lt;br /&gt;
After the build is finish you will have '''RK3188-SOM/kernel.img''' and '''RK3188-SOM/arch/arm/boot/Image'''. The first one can be uploaded to the kernel partition (if you have one). The second file is raw binary. It can be combined with ramdisk to get boot.img.&lt;br /&gt;
&lt;br /&gt;
* Generate ramdisk&lt;br /&gt;
 cd ../&lt;br /&gt;
 git clone https://github.com/radxa/initrd.git&lt;br /&gt;
 cd initrd/&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 &lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make mkbootimg&lt;br /&gt;
 git clone https://github.com/neo-technologies/rockchip-mkbootimg.git&lt;br /&gt;
 cd rockchip-mkbootimg&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Make boot.img&lt;br /&gt;
 mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img&lt;br /&gt;
&lt;br /&gt;
=== Creating the root filesystem ===&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
----&lt;br /&gt;
In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:&lt;br /&gt;
&lt;br /&gt;
* Install the needed packages:&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support&lt;br /&gt;
&lt;br /&gt;
* Define some variables:&lt;br /&gt;
 targetdir=rootfs&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
&lt;br /&gt;
* Build first stage:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --foreign $distro $targetdir&lt;br /&gt;
&lt;br /&gt;
* Copy needed files from host to the target:&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
&lt;br /&gt;
We should now have a minimal Debian Rootfs.&lt;br /&gt;
* Login into the new filesystem:&lt;br /&gt;
 sudo chroot $targetdir &lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again:&lt;br /&gt;
 distro=wheezy&lt;br /&gt;
 export LANG=C &lt;br /&gt;
&lt;br /&gt;
* Now we would run the setup for the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Once the package installation has finished, setup some support files and apt configuration.&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free&lt;br /&gt;
 deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&lt;br /&gt;
 deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free&amp;lt;&lt;br /&gt;
 deb http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 EOT &lt;br /&gt;
&lt;br /&gt;
* Update Debian package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set up locales dpkg scripts since it tends to complain otherwise; note in Debian Jessie you will also need to install the dialog package as well:&lt;br /&gt;
 apt-get install locales dialog sudo&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
* Fix permission for sudo:&lt;br /&gt;
 chmod u+s /usr/bin/sudo&lt;br /&gt;
&lt;br /&gt;
* Fix ownership of man forlder &lt;br /&gt;
 chown -R man /var/cache/man&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages inside the chroot:&lt;br /&gt;
 apt-get install openssh-server ntpdate &lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
Add the following to get static ip:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 192.168.1.254&lt;br /&gt;
     netmask 255.255.255.248&lt;br /&gt;
     gateway 192.168.1.1&lt;br /&gt;
Or if you want dhcp&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
Note: Your board will be accessible over SSH on IP address defined above! &lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user, add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Installing X =====&lt;br /&gt;
----&lt;br /&gt;
You cannot run X as root (actually it's possible, but it's a bad practice), so you have to add new user to run X.&lt;br /&gt;
&lt;br /&gt;
* Edit default useradd settings&lt;br /&gt;
 vi /etc/default/useradd&lt;br /&gt;
Modify '''SHELL''' variable:&lt;br /&gt;
 SHELL=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* Add new user&lt;br /&gt;
 useradd '''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Add the user to the sudo group&lt;br /&gt;
 adduser '''myuser''' sudo&lt;br /&gt;
&lt;br /&gt;
* Make home folder&lt;br /&gt;
 mkdir /home/'''myuser'''&lt;br /&gt;
 chown -R '''myuser''':'''myuser''' /home/'''myuser'''&lt;br /&gt;
&lt;br /&gt;
* Install xfce4 and lightdm&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install lightdm xfce4&lt;br /&gt;
&lt;br /&gt;
* Modify lightdm configuration to enable autologin:&lt;br /&gt;
 vi /etc/lightdm/lightdm.conf&lt;br /&gt;
 autologin-user='''myuser'''&lt;br /&gt;
 autologin-user-timeout=0&lt;br /&gt;
Make sure that the right lines are uncommented. If you don't want autologin just skip the step above.&lt;br /&gt;
&lt;br /&gt;
* Reboot the system&lt;br /&gt;
 reboot&lt;br /&gt;
After the system loads, you should see the default desktop of xfce4.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild rootfs from [http://releases.linaro.org/ linaro] site or you can build it yourself.&lt;br /&gt;
&lt;br /&gt;
===== Prebuild linaro images =====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can download prebuild images from https://releases.linaro.org/.&lt;br /&gt;
In most cases the builds are separated in:&lt;br /&gt;
*'''nano'''&lt;br /&gt;
*'''developer'''&lt;br /&gt;
*'''server'''&lt;br /&gt;
*'''alip'''&lt;br /&gt;
&lt;br /&gt;
You can read additional information from [https://wiki.linaro.org/Platform/DevPlatform/Rootfs here].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will build Ubuntu 14.10 ALIP rootfs.&lt;br /&gt;
&lt;br /&gt;
* Make empty image file:&lt;br /&gt;
 dd if=/dev/zero of=linaro_alip_rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the new image file:&lt;br /&gt;
 mkfs.ext4 -F -L linuxroot linaro_alip_rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Create mount point:&lt;br /&gt;
 mkdir mnt&lt;br /&gt;
 mount -o loop linaro_alip_rootfs.img ./mnt&lt;br /&gt;
&lt;br /&gt;
* Download prebuild image:&lt;br /&gt;
 wget https://releases.linaro.org/14.10/ubuntu/trusty-images/alip/linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Make sure that the archive is downloaded:&lt;br /&gt;
 md5sum linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Extract is into the mounted image file:&lt;br /&gt;
 tar -zxvf linaro-trusty-alip-20141024-684.tar.gz&lt;br /&gt;
 mv binary/* ./mnt&lt;br /&gt;
&lt;br /&gt;
* Copy any modules that are generated with the kernel:&lt;br /&gt;
 cp -rvf /'''path/to/modules'''/lib/modules ./mnt/lib/&lt;br /&gt;
&lt;br /&gt;
* Chroot into the new rootfs:&lt;br /&gt;
 cp /usr/bin/qemu-arm-static ./mnt/usr/bin&lt;br /&gt;
 cp /etc/resolv.conf ./mnt/etc&lt;br /&gt;
 chroot ./mnt&lt;br /&gt;
&lt;br /&gt;
* Update repository&lt;br /&gt;
 apt-get update&lt;br /&gt;
'''Note!''' If you have a problem with the update, try changing '''sources.list''' to:&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main universe restricted multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse&lt;br /&gt;
 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
* Install some useful packages:&lt;br /&gt;
 apt-get install ssh nano wpasupplicant wireless-tools&lt;br /&gt;
&lt;br /&gt;
* Set root password:&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
Linaro prebuild images comes with default use '''linaro'''.&lt;br /&gt;
* Set password for user:&lt;br /&gt;
 passwd linaro&lt;br /&gt;
&lt;br /&gt;
* Add '''linaro''' to sudo group:&lt;br /&gt;
 adduser linaro sudo&lt;br /&gt;
&lt;br /&gt;
* Configure network. Create new file for loopback, wlan and eth device:&lt;br /&gt;
 vi /etc/network/interfaces.d/lo&lt;br /&gt;
Inside paste:&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
Do the same for eth:&lt;br /&gt;
 vi /etc/network/interfaces.d/eth&lt;br /&gt;
If you're using dhcp:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
Or for static ip:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address &amp;lt;your.ip.here&amp;gt;&lt;br /&gt;
     netmask &amp;lt;your.netmask.here&amp;gt;&lt;br /&gt;
     gateway &amp;lt;your.gateway.here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another for wireless devices:&lt;br /&gt;
 vi /etc/network/interfaces.d/wlan&lt;br /&gt;
 auto wlan0&lt;br /&gt;
 iface lo inet dhcp&lt;br /&gt;
 wpa-ssid &amp;lt;your.router.ssid&amp;gt;&lt;br /&gt;
 wpa-pak &amp;lt;your.ssid.password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note!''' All connections are '''auto'''. If you don't want to use them all the time remove '''auto''' line.&lt;br /&gt;
&lt;br /&gt;
You can do some additional work before exit. &lt;br /&gt;
When you are ready to exit from the target filesystem:&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Your rootfs is ready. The next step is to create image for nand or sdcard.&lt;br /&gt;
&lt;br /&gt;
===== Manual build using debootstrap =====&lt;br /&gt;
----&lt;br /&gt;
The procedure is almost identical to the one used for the Debin image.&lt;br /&gt;
&lt;br /&gt;
* First of all you need to install the support packages on your pc&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap binfmt-support ubuntu-archive-keyring&lt;br /&gt;
&lt;br /&gt;
* We will build latest trusty Ubuntu image:&lt;br /&gt;
 targetdir=ubuntu&lt;br /&gt;
 distro=trusty&lt;br /&gt;
&lt;br /&gt;
* Now we will build first stage of Ubuntu rootfs:&lt;br /&gt;
 mkdir $targetdir&lt;br /&gt;
 sudo debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --foreign $distro $targetdir &lt;br /&gt;
&lt;br /&gt;
* Login into the new filesystem&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/&lt;br /&gt;
 sudo cp /etc/resolv.conf $targetdir/etc&lt;br /&gt;
 sudo chroot $targetdir&lt;br /&gt;
&lt;br /&gt;
* Inside the chroot we need to set up the environment again&lt;br /&gt;
 distro=trusty&lt;br /&gt;
 export LANG=C&lt;br /&gt;
&lt;br /&gt;
* Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier&lt;br /&gt;
 /debootstrap/debootstrap --second-stage&lt;br /&gt;
&lt;br /&gt;
* Configure apt-sources:&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ###### Ubuntu Main Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro main restricted universe multiverse &lt;br /&gt;
 ###### Ubuntu Update Repos&lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-security main restricted universe multiverse &lt;br /&gt;
 deb-src http://ports.ubuntu.com/ubuntu-ports/ $distro-updates main restricted universe multiverse &lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Update Ubuntu package database:&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
* Set a root password so you can login&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* Set the hostname&lt;br /&gt;
 echo '''myhost'''&amp;gt; /etc/hostname&lt;br /&gt;
 echo &amp;quot;127.0.0.1       '''myhost'''&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
&lt;br /&gt;
* Build a basic network interface file so that the board will DHCP on eth0&lt;br /&gt;
 echo &amp;lt;&amp;lt;EOT &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
 EOT&lt;br /&gt;
&lt;br /&gt;
* Enable the serial console, Debian sysvinit way&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
This way you'll get login prompt at startup. By default you cannot login as root. To do this you should make another user,&lt;br /&gt;
add him to the sudo group, login at startup and then login as root. To skip all this replace the line above with:&lt;br /&gt;
 echo T0:2345:respawn:/sbin/getty -L ttyFIQ0 -a root 115200 vt100 &amp;gt;&amp;gt; /etc/inittab&lt;br /&gt;
&lt;br /&gt;
* We are done inside the chroot, so quit the chroot shell&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
* Tidy up the support files&lt;br /&gt;
 sudo rm $targetdir/etc/resolv.conf&lt;br /&gt;
 sudo rm $targetdir/usr/bin/qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
==== Make rootfs image ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Once you are ready with the rootfs you can make image file. Later it can be used for NAND or SD image. Go to parent directory of you rootfs.&lt;br /&gt;
&lt;br /&gt;
* See how big the image should be:&lt;br /&gt;
 # du -khs &amp;lt;roofs_folder&amp;gt;&lt;br /&gt;
For example this will return 600MB. So we will make 1GB image.&lt;br /&gt;
&lt;br /&gt;
* Make empty image:&lt;br /&gt;
 # dd if=/dev/zero of=rootfs.img bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
* Format the image:&lt;br /&gt;
 # mkfs.ex4 -F -L linuxroot rootfs.img&lt;br /&gt;
&lt;br /&gt;
* Mount the image:&lt;br /&gt;
 # mount -o loop rootfs.img /mnt&lt;br /&gt;
&lt;br /&gt;
* Copy rootfs files into the image:&lt;br /&gt;
 # cp -prf &amp;lt;root_folder&amp;gt;/* /mnt/&lt;br /&gt;
''''Note!''' Use -p option to keep the permissions for the files and folders.&lt;br /&gt;
&lt;br /&gt;
* Unmount the image:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
&lt;br /&gt;
=== Booting from NAND ===&lt;br /&gt;
----&lt;br /&gt;
* Get rk-tools:&lt;br /&gt;
 git clone https://github.com/goodybag/rk-tools&lt;br /&gt;
 cd rk-tools&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**bootloader --&amp;gt; This is RockChip RK3188Loader&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
* Copy all files in '''rk-tools''' folder&lt;br /&gt;
&lt;br /&gt;
* Edit '''package-file'''. It should be:&lt;br /&gt;
 #nano package-file&lt;br /&gt;
 &lt;br /&gt;
 # NAME          Relative path&lt;br /&gt;
 #&lt;br /&gt;
 #HWDEF          HWDEF&lt;br /&gt;
 package-file    package-file&lt;br /&gt;
 bootloader      RK3188Loader&lt;br /&gt;
 parameter       parameter&lt;br /&gt;
 boot            boot.img&lt;br /&gt;
 linuxroot       rootfs.img&lt;br /&gt;
 backup          RESERVED&lt;br /&gt;
 update-script   update-script&lt;br /&gt;
 recover-script  recover-script&lt;br /&gt;
&lt;br /&gt;
* Pack the image:&lt;br /&gt;
 ./afptool -pack . update_tmp.img&lt;br /&gt;
&lt;br /&gt;
* Update the image:&lt;br /&gt;
 ./img_maker -rk31 RK3188Loader 1 0 0 update_tmp.img update.img&lt;br /&gt;
&lt;br /&gt;
The image should be ready. What's left is flashing the image.&lt;br /&gt;
&lt;br /&gt;
*Important: to flash the image the board needs to be in bootloader mode. To enter bootloader mode you need to press and hold down the recovery button before connecting the board to the PC. After the connection is established you can release the button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting from SD-card ===&lt;br /&gt;
----&lt;br /&gt;
You'll need at least 512MB sd-card. Depending on rootfs needed size can grow to 4GB.&lt;br /&gt;
&lt;br /&gt;
*You will need the following files:&lt;br /&gt;
**sdboot_rk3188.img --&amp;gt; RK3188Loader for booting from SDcard&lt;br /&gt;
**[[#Building parameter file|parameter]] --&amp;gt; Parameter file with crc encryption&lt;br /&gt;
**[[#Building kernel|boot]] --&amp;gt; Kernel with ramdisk compiled as shown here&lt;br /&gt;
**[[#Creating root filesystem|linux]] --&amp;gt; Rootfs image file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CMDLINE''' in parameter file should look something like this:&lt;br /&gt;
 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)&lt;br /&gt;
&lt;br /&gt;
Insert sd-card. Lets say that your device is '''/dev/sdc'''.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=/dev/sdc conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=/dev/sdc conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=/dev/sdc conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
You can do this also on image file:&lt;br /&gt;
 dd if=/dev/zero of=sd.img bs=1M count=1024&lt;br /&gt;
If 1GB is not enough increase count number.&lt;br /&gt;
&lt;br /&gt;
* Write Rockchip loader:&lt;br /&gt;
 dd if=sdboot_rk3188.img of=sd.img conv=sync,fsync&lt;br /&gt;
&lt;br /&gt;
* Write parameter file:&lt;br /&gt;
 dd if=parameter.img of=sd.img conv=sync,fsync seek=$((0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write kernel:&lt;br /&gt;
 dd if=boot.img of=sd.img conv=sync,fsync seek=$((0x2000+0x2000))&lt;br /&gt;
&lt;br /&gt;
* Write rootfs:&lt;br /&gt;
 dd if=rootfs.img of=sd.img conv=sync,fsync seek=$((0x2000+0xA000))&lt;br /&gt;
&lt;br /&gt;
* Format image:&lt;br /&gt;
 fdisk sd.img &amp;lt;&amp;lt; EOF&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 49152&lt;br /&gt;
 &lt;br /&gt;
 w&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Calibrate touchscreen ===&lt;br /&gt;
If you want to use LCD panel with touchscreen, you should perform a screen calibration.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using tslib ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Install the required packages:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install xorg-dev xserver-xorg-dev x11proto-core-dev git automake make libtool&lt;br /&gt;
&lt;br /&gt;
* Download tslib:&lt;br /&gt;
 git clone https://github.com/kergoth/tslib.git&lt;br /&gt;
 cd tslib&lt;br /&gt;
&lt;br /&gt;
* Download patch:&lt;br /&gt;
 cd plugin&lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/input-raw.c&lt;br /&gt;
 cd ../&lt;br /&gt;
&lt;br /&gt;
* Compile the library:&lt;br /&gt;
 autoreconf -vi&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
* Modify tslib configuration&lt;br /&gt;
 vi /usr/etc/ts.conf&lt;br /&gt;
Uncomment the following line:&lt;br /&gt;
 module_raw input&lt;br /&gt;
&lt;br /&gt;
* Export tslib needed variables:&lt;br /&gt;
 export TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 export TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 export TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 export TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 export TSLIB_CALIBFILE=/usr/etc/pointercal&lt;br /&gt;
 export TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 export TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
* Now tslib is working but still it should be set as default driver in the X:&lt;br /&gt;
 wget http://ftp.de.debian.org/debian/pool/main/x/xf86-input-tslib/xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 tar zxfv xf86-input-tslib_0.0.6.orig.tar.gz&lt;br /&gt;
 cd xf86-input-tslib-0.0.6/&lt;br /&gt;
Replace tslib.c file with patched one:&lt;br /&gt;
 cd src/&lt;br /&gt;
 rm -f tslib.c &lt;br /&gt;
 wget https://dl.dropbox.com/u/40057/patches/tslib.c&lt;br /&gt;
 cd ..&lt;br /&gt;
Build and install package:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Add tslib configuration:&lt;br /&gt;
 cd /usr/share/X11/xorg.conf.d/&lt;br /&gt;
Make new file:&lt;br /&gt;
 nano 20-touchscreen.conf&lt;br /&gt;
Add the following text inside:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AR1020&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
        Option &amp;quot;Device&amp;quot; &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
        Option &amp;quot;ScreenNumber&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option &amp;quot;Rotate&amp;quot; &amp;quot;NONE&amp;quot;&lt;br /&gt;
        Option &amp;quot;Width&amp;quot; &amp;quot;'''800'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;Height&amp;quot; &amp;quot;'''480'''&amp;quot;&lt;br /&gt;
        Option &amp;quot;SendCoreEvents&amp;quot; &amp;quot;yes&amp;quot;&lt;br /&gt;
        Option &amp;quot;Type&amp;quot; &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
Note! Resolution in this example is set for 7 inch LCD. &lt;br /&gt;
&lt;br /&gt;
* Do the actual calibration:&lt;br /&gt;
 service lightdm stop&lt;br /&gt;
 ts_calibrate&lt;br /&gt;
 service lightdm start&lt;br /&gt;
After lightdm start you could check if everything is running smoothly.&lt;br /&gt;
&lt;br /&gt;
* Save tslib variables:&lt;br /&gt;
 vi /etc/environment&lt;br /&gt;
Paste the following:&lt;br /&gt;
 TSLIB_TSEVENTTYPE=raw&lt;br /&gt;
 TSLIB_CONSOLEDEVICE=none&lt;br /&gt;
 TSLIB_FBDEVICE=/dev/fb0&lt;br /&gt;
 TSLIB_TSDEVICE=/dev/input/event0&lt;br /&gt;
 TSLIB_CALIBFILE=/etc/pointercal&lt;br /&gt;
 TSLIB_CONFFILE=/usr/etc/ts.conf&lt;br /&gt;
 TSLIB_PLUGINDIR=/usr/lib/ts&lt;br /&gt;
&lt;br /&gt;
If you change the LCD panel run ts_calibrate to configure touchscreen for the new LCD.&lt;br /&gt;
&lt;br /&gt;
==== Calibrate using AR1021 driver ====&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Enabling wireless modules ===&lt;br /&gt;
==== RTL8188CUS ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-RTL8188-1.jpg|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188]]]&lt;br /&gt;
To connect OLinuXino board with wireless, you could use [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] dongle. Also you can use another one with the same chip.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-RTL8188/ MOD-WIFI-RTL8188] has the following features:&lt;br /&gt;
* Has WM-294 module with RTL8188 &lt;br /&gt;
* Operates in 2.4 GHz frequency bands&lt;br /&gt;
* 1x1 MIMO technology improves effective throughput and range over existing 802.11 b/g products&lt;br /&gt;
* Data rates: up to 150Mbps&lt;br /&gt;
* 802.11e-compatible bursting and I standards BPSK, QPSK, 16 QAM, 64 QAM modulation schemes WEP, TKIP, and AES, WPA, WPA2 hardware encryption schemes&lt;br /&gt;
* Standard USB type A connector&lt;br /&gt;
* On-board antenna&lt;br /&gt;
* 5V/3.3V operation modes via SMD jumper&lt;br /&gt;
* 4 test pads for easy tracking the supply, d-, d+, and GND&lt;br /&gt;
* PCB: FR-4, 1.00 mm (0,039&amp;quot;), solder mask, silkscreen component print&lt;br /&gt;
* Dimensions: 65.15x20.38 mm (2.56x0.80&amp;quot;)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The kernel module is prebuild. You should just get it loaded and then plug the dongle.&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe 8192cu&lt;br /&gt;
&lt;br /&gt;
* Plug the device and check if it is available:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
&lt;br /&gt;
==== RT5370 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:MOD-WIFI-R5370-ANT-1.jpg|border|thumb|[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]]]&lt;br /&gt;
&lt;br /&gt;
To use one this wifi dongle (like [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370/ MOD-WIFI-R5370] or [https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT]) additional files are required.&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/Products/USB-Modules/MOD-WIFI-R5370-ANT/ MOD-WIFI-R5370-ANT] has the following features:&lt;br /&gt;
&lt;br /&gt;
* 2.4GHz with 150Mbps PHY data rate&lt;br /&gt;
*External antenna for extended range&lt;br /&gt;
*USB 2.0 interface&lt;br /&gt;
*Security: WEP/TKIP/AES/WPA/WPA2/WAPI&lt;br /&gt;
*CMOS single chip with RF, baseband, and MAC integration&lt;br /&gt;
*QoS: WMM &amp;amp; WMM-PS support&lt;br /&gt;
*Multiple BSSID support&lt;br /&gt;
*Maximum likelihood decoding support&lt;br /&gt;
*Cisco CCX 5.0 support&lt;br /&gt;
*Low-power usage with advanced power management&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*First a make new directory and navigate to it. This is where the module will search for files.&lt;br /&gt;
 mkdir -p /etc/Wireless/RT2870STA&lt;br /&gt;
 cd /etc/Wireless/RT2870STA/&lt;br /&gt;
&lt;br /&gt;
*Download the files from Github&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STA.dat&lt;br /&gt;
 wget https://raw.githubusercontent.com/SelfDestroyer/RK3188-SOM/olimex/stable-3.0/drivers/net/wireless/rtxx7x/RT2870STACard.dat&lt;br /&gt;
&lt;br /&gt;
*Load module&lt;br /&gt;
 modprobe rt5370sta&lt;br /&gt;
&lt;br /&gt;
*Plug the device and run:&lt;br /&gt;
 ifconfig -a&lt;br /&gt;
*You should see this:&lt;br /&gt;
 wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00&lt;br /&gt;
           BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
*Configure your new device:&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
*Add configuration. Here we will show DHCP configuration.&lt;br /&gt;
 iface wlan0 inet dhcp&lt;br /&gt;
 wpa-ssid &amp;quot;'''your ssid'''&amp;quot;&lt;br /&gt;
 wpa-psk &amp;quot;'''your password'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Save the configuration and up the interface:&lt;br /&gt;
 ifup wlan0&lt;br /&gt;
&lt;br /&gt;
*If everything is working and this module to be loaded on boot:&lt;br /&gt;
 echo rt5370sta &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3490</id>
		<title>A20-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3490"/>
		<updated>2023-04-11T11:49:35Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-SOM-1 jpeg.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
*A20 dual core Cortex-A7 processor&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*AXP209 PMU IC&lt;br /&gt;
*MicroSD card&lt;br /&gt;
*UART console&lt;br /&gt;
*4GB NAND Flash&lt;br /&gt;
*Status LEDs&lt;br /&gt;
*RESET, RECOVERY buttons&lt;br /&gt;
*6 connectors x 40 pin 0.05&amp;quot; step&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Note that only the microSD connector is suitable for booting the desired operating system, the SD-MMC connector is not suitable for booting since it is not a part of the boot sequence (refer to A20 datasheet).&lt;br /&gt;
&lt;br /&gt;
=== Old Linux images ===&lt;br /&gt;
&lt;br /&gt;
These Debian images should be downloaded to a microSD card. You need a properly set torrent client to download the official images - they are available only as torrents. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND or eMMC might be found in these wiki article: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official image - Debian 9 (Jessie)''' '''(recommended for all board revisions)''':'''&lt;br /&gt;
&lt;br /&gt;
FTP download location for the official Debian Jessie release #10 (suitable for boards with NAND): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_NAND_rel_10.img.7z A20-SOM Debian Jessie with kernel 3.4.103+ for boards with NAND flash memory release 10]&lt;br /&gt;
&lt;br /&gt;
FTP download for A20-SOM (suitable for boards with eMMC): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_eMMC_rel_11.zip A20-SOM Debian Jessie with kernel 3.4.103+ for boards with eMMC flash memory release 11]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build-3.4.103-release-7/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_6.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-SOM-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this caused big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
The Debian Linux file system can be extended to suit a bigger card. If the whole SD card is not used, use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support):  [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/nand/A20_SOM_camera_LCD7_HDMI_release1.img A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support):&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/sd/A20_SOM_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.img.7z A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20-Brief description]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 Users manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Board Layout===&lt;br /&gt;
[[File:A20-SOM-1_top_named.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
[[File:a20-som_dimensions.png|675px]]&lt;br /&gt;
&lt;br /&gt;
A20-SOM and A20-SOM-4GB basic dimensions in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM/resources/a20-som_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB basic dimension in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/a20-som-evb_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A20-SOM typically consumes between 0.20A and 0.25A when connected to a 5V &lt;br /&gt;
voltage source (provided at pins GND and 5VEXT).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.35A &lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.50A @ 5V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
Make sure your supply is capable of providing at least half an ampere of &lt;br /&gt;
current at 5V of voltage.&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM + A20-SOM-EVB'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The consumption of the combination A20-SOM + A20-SOM-EVB is betwen 0.10A and 0.15A when the A20-SOM-EVB is connected to a 12V voltage source (provided at the board's PWR jack).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.20A @ 12V&lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.25A @ 12V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM A20-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
KiCAD files of the connectors of A20-SOM/A20-SOM-EVB that are perfect as a template for own design can be found here: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM/KiCAD%20connector%20library KiCAD templates A20-SOM]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available here [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/A20-SOM-EVB_eagle_sources.zip A20-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to correctly power off OLinuXino running from NAND Flash===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/24/how-to-correctly-power-off-olinuxino-running-android/ In this Blog post] we explain what are the problems. This is common problem for all computers running OS. [http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc Here] you can read more about MLC NAND Flash and Linux file system.&lt;br /&gt;
&lt;br /&gt;
===How to build the official Debian Linux image for A20-SOM? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Jessie images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.103-release-2 build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Wheezy images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.90 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20-SOM-4GB board?===&lt;br /&gt;
&lt;br /&gt;
In order to download the Android image to the NAND memory of the board follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing google drive location]).&lt;br /&gt;
&lt;br /&gt;
2. Download and extract the latest official image - can be found above in the Android section of  this article. Make sure that the download link you visit clearly indicates that the image is suitable for the NAND memory since there are images suitable for microSD card also. The images suitable for the microSD memory and those suitable for microSD card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
3. Go to firmware tab of the program and point to the already downloaded and extracted Android image.&lt;br /&gt;
&lt;br /&gt;
4. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
5. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
6. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
7. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
8. PhoenixSuit will detect the board and would ask whether you wish to also of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
9. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
2. Go to the firmware tab of the program and point to a valid Android image (note that the images on Google drive are compressed and you have to extract the archives to .img files to be able write them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
3. Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
4. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
6. You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===How do I write the Linux image to a micro SD card to use with my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to change HDMI, VGA and LCD resolutions in the official Debian image?===&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for HDMI 720p/60Hz. If you want to change to some other LCD, VGA or HDMI resolution then you have to start change_display.sh script file in /root directory. When you are logged as super user in the board type:&lt;br /&gt;
&lt;br /&gt;
   For Debian Wheezy releases: ./change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
   For Debian Jessie releases: change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Note that the script should be executed as super user. Under the command line interface you are automatically logged as super user (user &amp;quot;root&amp;quot;, password &amp;quot;olimex&amp;quot;). However, under the graphical environment you are not auto-logged as super user and you must type &amp;quot;sudo&amp;quot; before the command (in the GUI the super-user is &amp;quot;olimex&amp;quot; and the password is &amp;quot;olimex&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD, HDMI or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
*4. 15.6&amp;quot; (1366x768)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you would need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For HDMI:'''&lt;br /&gt;
&lt;br /&gt;
*0. 480i&lt;br /&gt;
*1. 576i&lt;br /&gt;
*2. 480p&lt;br /&gt;
*3. 576p&lt;br /&gt;
*4. 720p50&lt;br /&gt;
*5. 720p60&lt;br /&gt;
*6. 1080i50&lt;br /&gt;
*7. 1080i60&lt;br /&gt;
*8. 1080p24&lt;br /&gt;
*9. 1080p50&lt;br /&gt;
*10. 1080p60&lt;br /&gt;
*11. pal&lt;br /&gt;
*14. ntsc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&lt;br /&gt;
*0. 1680x1050&lt;br /&gt;
*1. 1440x900&lt;br /&gt;
*2. 1360x768&lt;br /&gt;
*3. 1280x1024&lt;br /&gt;
*4. 1024x768&lt;br /&gt;
*5. 800x600&lt;br /&gt;
*6. 640x480&lt;br /&gt;
*7. 1920x1080&lt;br /&gt;
*8. 1280x720&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to install Android on SD-card? ===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/android-4-2-2-images-for-a20-olinuxino-running-from-sd-card-is-updated-on-wiki/ Blog post about it]&lt;br /&gt;
&lt;br /&gt;
===How to access UART, I2C, GPIOs under Android? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/a20-olinuxino-tools-for-android-released/ Use our Open Source OLinuXino A20-TOOLS]&lt;br /&gt;
&lt;br /&gt;
===How to control PWM under Linux? ===&lt;br /&gt;
&lt;br /&gt;
There is an article here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===How to build the Android 4.2.2 image for A20-OLinuXino-MICRO? ===&lt;br /&gt;
&lt;br /&gt;
First you need to Download the [http://dl.linux-sunxi.org/users/tsvetan/ANDROID-4.2.2-SDK2.0-KERNEL-3.4/ A20 SDK2.0 Linux Kernel 3.4] &lt;br /&gt;
&lt;br /&gt;
Second you need to configure your environment read the instructions [http://source.android.com/source/initializing.html here]&lt;br /&gt;
&lt;br /&gt;
Then Build the kernel, kernel modules and u-boot&lt;br /&gt;
&lt;br /&gt;
    cd lichee&lt;br /&gt;
    ./build.sh -psun7i_android&lt;br /&gt;
&lt;br /&gt;
When done, continue with Bulding the android image:&lt;br /&gt;
&lt;br /&gt;
    cd ../android4.2&lt;br /&gt;
    cd device/softwinner/&lt;br /&gt;
    tar zxfv olinuxino-a20.tgz&lt;br /&gt;
    cd ../../&lt;br /&gt;
    source build/envsetup.sh&lt;br /&gt;
    lunch #select olinuxino-a20_eng&lt;br /&gt;
    extract-bsp&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dave from Axon instruments wrote more detailed [http://axonjakarta.wordpress.com/2014/02/14/olimex-a20-android-building-4/ blog post] about how he generates the Android image]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3489</id>
		<title>A20-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3489"/>
		<updated>2023-04-11T06:12:12Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-SOM-1 jpeg.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
*A20 dual core Cortex-A7 processor&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*AXP209 PMU IC&lt;br /&gt;
*MicroSD card&lt;br /&gt;
*UART console&lt;br /&gt;
*4GB NAND Flash&lt;br /&gt;
*Status LEDs&lt;br /&gt;
*RESET, RECOVERY buttons&lt;br /&gt;
*6 connectors x 40 pin 0.05&amp;quot; step&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Note that only the microSD connector is suitable for booting the desired operating system, the SD-MMC connector is not suitable for booting since it is not a part of the boot sequence (refer to A20 datasheet).&lt;br /&gt;
&lt;br /&gt;
=== Old Linux images ===&lt;br /&gt;
&lt;br /&gt;
These Debian images should be downloaded to a microSD card. You need a properly set torrent client to download the official images - they are available only as torrents. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND or eMMC might be found in these wiki article: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official image - Debian 9 (Jessie)''' '''(recommended for all board revisions)''':'''&lt;br /&gt;
&lt;br /&gt;
FTP download location for the official Debian Jessie release #10 (suitable for boards with NAND): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_NAND_rel_10.img.7z A20-SOM Debian Jessie with kernel 3.4.103+ for boards with NAND flash memory release 10]&lt;br /&gt;
&lt;br /&gt;
FTP download for A20-SOM (suitable for boards with eMMC): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_eMMC_rel_11.zip A20-SOM Debian Jessie with kernel 3.4.103+ for boards with eMMC flash memory release 11]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build-3.4.103-release-7/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_6.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-SOM-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this caused big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
The Debian Linux file system can be extended to suit a bigger card. If the whole SD card is not used, use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Links to official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support):  [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/nand/A20_SOM_camera_LCD7_HDMI_release1.img‎ A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support):&lt;br /&gt;
[https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/sd/A20_SOM_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.img.7z‎ A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20-Brief description]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 Users manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Board Layout===&lt;br /&gt;
[[File:A20-SOM-1_top_named.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
[[File:a20-som_dimensions.png|675px]]&lt;br /&gt;
&lt;br /&gt;
A20-SOM and A20-SOM-4GB basic dimensions in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM/resources/a20-som_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB basic dimension in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/a20-som-evb_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A20-SOM typically consumes between 0.20A and 0.25A when connected to a 5V &lt;br /&gt;
voltage source (provided at pins GND and 5VEXT).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.35A &lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.50A @ 5V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
Make sure your supply is capable of providing at least half an ampere of &lt;br /&gt;
current at 5V of voltage.&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM + A20-SOM-EVB'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The consumption of the combination A20-SOM + A20-SOM-EVB is betwen 0.10A and 0.15A when the A20-SOM-EVB is connected to a 12V voltage source (provided at the board's PWR jack).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.20A @ 12V&lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.25A @ 12V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM A20-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
KiCAD files of the connectors of A20-SOM/A20-SOM-EVB that are perfect as a template for own design can be found here: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM/KiCAD%20connector%20library KiCAD templates A20-SOM]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available here [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/A20-SOM-EVB_eagle_sources.zip A20-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to correctly power off OLinuXino running from NAND Flash===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/24/how-to-correctly-power-off-olinuxino-running-android/ In this Blog post] we explain what are the problems. This is common problem for all computers running OS. [http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc Here] you can read more about MLC NAND Flash and Linux file system.&lt;br /&gt;
&lt;br /&gt;
===How to build the official Debian Linux image for A20-SOM? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Jessie images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.103-release-2 build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Wheezy images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.90 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20-SOM-4GB board?===&lt;br /&gt;
&lt;br /&gt;
In order to download the Android image to the NAND memory of the board follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing google drive location]).&lt;br /&gt;
&lt;br /&gt;
2. Download and extract the latest official image - can be found above in the Android section of  this article. Make sure that the download link you visit clearly indicates that the image is suitable for the NAND memory since there are images suitable for microSD card also. The images suitable for the microSD memory and those suitable for microSD card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
3. Go to firmware tab of the program and point to the already downloaded and extracted Android image.&lt;br /&gt;
&lt;br /&gt;
4. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
5. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
6. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
7. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
8. PhoenixSuit will detect the board and would ask whether you wish to also of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
9. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
2. Go to the firmware tab of the program and point to a valid Android image (note that the images on Google drive are compressed and you have to extract the archives to .img files to be able write them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
3. Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
4. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
6. You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===How do I write the Linux image to a micro SD card to use with my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to change HDMI, VGA and LCD resolutions in the official Debian image?===&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for HDMI 720p/60Hz. If you want to change to some other LCD, VGA or HDMI resolution then you have to start change_display.sh script file in /root directory. When you are logged as super user in the board type:&lt;br /&gt;
&lt;br /&gt;
   For Debian Wheezy releases: ./change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
   For Debian Jessie releases: change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Note that the script should be executed as super user. Under the command line interface you are automatically logged as super user (user &amp;quot;root&amp;quot;, password &amp;quot;olimex&amp;quot;). However, under the graphical environment you are not auto-logged as super user and you must type &amp;quot;sudo&amp;quot; before the command (in the GUI the super-user is &amp;quot;olimex&amp;quot; and the password is &amp;quot;olimex&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD, HDMI or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
*4. 15.6&amp;quot; (1366x768)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you would need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For HDMI:'''&lt;br /&gt;
&lt;br /&gt;
*0. 480i&lt;br /&gt;
*1. 576i&lt;br /&gt;
*2. 480p&lt;br /&gt;
*3. 576p&lt;br /&gt;
*4. 720p50&lt;br /&gt;
*5. 720p60&lt;br /&gt;
*6. 1080i50&lt;br /&gt;
*7. 1080i60&lt;br /&gt;
*8. 1080p24&lt;br /&gt;
*9. 1080p50&lt;br /&gt;
*10. 1080p60&lt;br /&gt;
*11. pal&lt;br /&gt;
*14. ntsc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&lt;br /&gt;
*0. 1680x1050&lt;br /&gt;
*1. 1440x900&lt;br /&gt;
*2. 1360x768&lt;br /&gt;
*3. 1280x1024&lt;br /&gt;
*4. 1024x768&lt;br /&gt;
*5. 800x600&lt;br /&gt;
*6. 640x480&lt;br /&gt;
*7. 1920x1080&lt;br /&gt;
*8. 1280x720&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to install Android on SD-card? ===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/android-4-2-2-images-for-a20-olinuxino-running-from-sd-card-is-updated-on-wiki/ Blog post about it]&lt;br /&gt;
&lt;br /&gt;
===How to access UART, I2C, GPIOs under Android? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/a20-olinuxino-tools-for-android-released/ Use our Open Source OLinuXino A20-TOOLS]&lt;br /&gt;
&lt;br /&gt;
===How to control PWM under Linux? ===&lt;br /&gt;
&lt;br /&gt;
There is an article here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===How to build the Android 4.2.2 image for A20-OLinuXino-MICRO? ===&lt;br /&gt;
&lt;br /&gt;
First you need to Download the [http://dl.linux-sunxi.org/users/tsvetan/ANDROID-4.2.2-SDK2.0-KERNEL-3.4/ A20 SDK2.0 Linux Kernel 3.4] &lt;br /&gt;
&lt;br /&gt;
Second you need to configure your environment read the instructions [http://source.android.com/source/initializing.html here]&lt;br /&gt;
&lt;br /&gt;
Then Build the kernel, kernel modules and u-boot&lt;br /&gt;
&lt;br /&gt;
    cd lichee&lt;br /&gt;
    ./build.sh -psun7i_android&lt;br /&gt;
&lt;br /&gt;
When done, continue with Bulding the android image:&lt;br /&gt;
&lt;br /&gt;
    cd ../android4.2&lt;br /&gt;
    cd device/softwinner/&lt;br /&gt;
    tar zxfv olinuxino-a20.tgz&lt;br /&gt;
    cd ../../&lt;br /&gt;
    source build/envsetup.sh&lt;br /&gt;
    lunch #select olinuxino-a20_eng&lt;br /&gt;
    extract-bsp&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dave from Axon instruments wrote more detailed [http://axonjakarta.wordpress.com/2014/02/14/olimex-a20-android-building-4/ blog post] about how he generates the Android image]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3488</id>
		<title>A20-SOM</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-SOM&amp;diff=3488"/>
		<updated>2023-04-10T13:55:44Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-SOM-1 jpeg.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
*A20 dual core Cortex-A7 processor&lt;br /&gt;
*1GB DDR3 memory&lt;br /&gt;
*AXP209 PMU IC&lt;br /&gt;
*MicroSD card&lt;br /&gt;
*UART console&lt;br /&gt;
*4GB NAND Flash&lt;br /&gt;
*Status LEDs&lt;br /&gt;
*RESET, RECOVERY buttons&lt;br /&gt;
*6 connectors x 40 pin 0.05&amp;quot; step&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Official Images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Note that only the microSD connector is suitable for booting the desired operating system, the SD-MMC connector is not suitable for booting since it is not a part of the boot sequence (refer to A20 datasheet).&lt;br /&gt;
&lt;br /&gt;
=== Old Linux images ===&lt;br /&gt;
&lt;br /&gt;
These Debian images should be downloaded to a microSD card. You need a properly set torrent client to download the official images - they are available only as torrents. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND or eMMC might be found in these wiki article: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official image - Debian 9 (Jessie)''' '''(recommended for all board revisions)''':'''&lt;br /&gt;
&lt;br /&gt;
FTP download location for the official Debian Jessie release #10 (suitable for boards with NAND): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_NAND_rel_10.img.7z A20-SOM Debian Jessie with kernel 3.4.103+ for boards with NAND flash memory release 10]&lt;br /&gt;
&lt;br /&gt;
FTP download for A20-SOM (suitable for boards with eMMC): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Debian/sd/a20-SOM_mainline_uboot_GMAC_master_sunxi_kernel_3.4.103_jessie_eMMC_rel_11.zip A20-SOM Debian Jessie with kernel 3.4.103+ for boards with eMMC flash memory release 11]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build-3.4.103-release-7/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_6.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-SOM-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this caused big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
The Debian Linux file system can be extended to suit a bigger card. If the whole SD card is not used, use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
Torrents of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
Direct download of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-SOM/Android/sd/A20_SOM_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.img.7z‎ A20-SOM Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
Torrent of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support): [[Media:A20_SOM_Android_4.22_SD_card_LCD_800x480_HDMI_release_1.torrent‎|A20-SOM Android for microSD card with HDMI and 7 inch display support]]&lt;br /&gt;
&lt;br /&gt;
Direct download locations of official Android releases are below. In case the daily limit of the download locations had been reached, please use the torrents above. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
Direct download of Android release 1 for microSD card [https://drive.google.com/file/d/0BwplT87k9SCgZW5RUF9JUjZDMk0/view?usp=sharing microSD card image for Android 4.2.2 with 7″ LCD 800×480 pixels]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20-Brief description]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 Users manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Board Layout===&lt;br /&gt;
[[File:A20-SOM-1_top_named.jpg|675px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
[[File:a20-som_dimensions.png|675px]]&lt;br /&gt;
&lt;br /&gt;
A20-SOM and A20-SOM-4GB basic dimensions in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM/resources/a20-som_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB basic dimension in mils: [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/a20-som-evb_dimensions.png click]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A20-SOM typically consumes between 0.20A and 0.25A when connected to a 5V &lt;br /&gt;
voltage source (provided at pins GND and 5VEXT).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.35A &lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.50A @ 5V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
Make sure your supply is capable of providing at least half an ampere of &lt;br /&gt;
current at 5V of voltage.&lt;br /&gt;
&lt;br /&gt;
*'''A20-SOM + A20-SOM-EVB'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The consumption of the combination A20-SOM + A20-SOM-EVB is betwen 0.10A and 0.15A when the A20-SOM-EVB is connected to a 12V voltage source (provided at the board's PWR jack).&lt;br /&gt;
&lt;br /&gt;
During heavy load of the processor the consumption might raise up to 0.20A @ 12V&lt;br /&gt;
(tested with 'top d0').&lt;br /&gt;
&lt;br /&gt;
The current consumed might have peaks as high as 0.25A @ 12V during start-up when &lt;br /&gt;
different modules are initialized.&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-SOM is considered commercial, proprietary design. The board file is not available to the customer. A pdf extracted from the original schematic is available at GitHub: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM A20-SOM schematics]&lt;br /&gt;
&lt;br /&gt;
KiCAD files of the connectors of A20-SOM/A20-SOM-EVB that are perfect as a template for own design can be found here: [https://github.com/OLIMEX/SOM/tree/master/A20/A20-SOM/KiCAD%20connector%20library KiCAD templates A20-SOM]&lt;br /&gt;
&lt;br /&gt;
A20-SOM-EVB is considered Open Source Hardware, Eagle CAD files are available here [https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/resources/A20-SOM-EVB_eagle_sources.zip A20-SOM-EVB sources]&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web site]. The evaluation version allows you to inspect the schematic and the board file sources.&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the 4GB NAND memory]]&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to correctly power off OLinuXino running from NAND Flash===&lt;br /&gt;
[http://olimex.wordpress.com/2014/01/24/how-to-correctly-power-off-olinuxino-running-android/ In this Blog post] we explain what are the problems. This is common problem for all computers running OS. [http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc Here] you can read more about MLC NAND Flash and Linux file system.&lt;br /&gt;
&lt;br /&gt;
===How to build the official Debian Linux image for A20-SOM? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Jessie images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.103-release-2 build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian Wheezy images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build-3.4.90 instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20-SOM-4GB board?===&lt;br /&gt;
&lt;br /&gt;
In order to download the Android image to the NAND memory of the board follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing google drive location]).&lt;br /&gt;
&lt;br /&gt;
2. Download and extract the latest official image - can be found above in the Android section of  this article. Make sure that the download link you visit clearly indicates that the image is suitable for the NAND memory since there are images suitable for microSD card also. The images suitable for the microSD memory and those suitable for microSD card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
3. Go to firmware tab of the program and point to the already downloaded and extracted Android image.&lt;br /&gt;
&lt;br /&gt;
4. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
5. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
6. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
7. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
8. PhoenixSuit will detect the board and would ask whether you wish to also of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
9. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
2. Go to the firmware tab of the program and point to a valid Android image (note that the images on Google drive are compressed and you have to extract the archives to .img files to be able write them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
3. Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
4. Press and hold RECOVERY button, apply power supply (the requirement various depending on whether you use the board stand-alone or on top of A20-SOM-EVB), release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
6. You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===How do I write the Linux image to a micro SD card to use with my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Windows we use Win32 Disk Imager):&lt;br /&gt;
&lt;br /&gt;
*Download Win32 Disk Imager [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]&lt;br /&gt;
*Insert card&lt;br /&gt;
*Start program&lt;br /&gt;
*Select file&lt;br /&gt;
*Click &amp;quot;write&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To write a Linux image to an SD card under Linux:&lt;br /&gt;
&lt;br /&gt;
For instance you have an image with the file name of &amp;quot;debian_2g.img&amp;quot;. It would be downloaded to the SD card connected to a Linux machine using one of the following commands:&lt;br /&gt;
&lt;br /&gt;
* # dd bs=4M oflag=sync if=debian_2g.img of=/dev/sdX&lt;br /&gt;
or&lt;br /&gt;
* # cp debian_2g.img /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where X is the uSD card.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to change HDMI, VGA and LCD resolutions in the official Debian image?===&lt;br /&gt;
&lt;br /&gt;
The default SD card setup is made with settings for HDMI 720p/60Hz. If you want to change to some other LCD, VGA or HDMI resolution then you have to start change_display.sh script file in /root directory. When you are logged as super user in the board type:&lt;br /&gt;
&lt;br /&gt;
   For Debian Wheezy releases: ./change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
   For Debian Jessie releases: change_display* (* = press 'tab' to auto-complete)&lt;br /&gt;
&lt;br /&gt;
and press &amp;quot;Enter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Note that the script should be executed as super user. Under the command line interface you are automatically logged as super user (user &amp;quot;root&amp;quot;, password &amp;quot;olimex&amp;quot;). However, under the graphical environment you are not auto-logged as super user and you must type &amp;quot;sudo&amp;quot; before the command (in the GUI the super-user is &amp;quot;olimex&amp;quot; and the password is &amp;quot;olimex&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
Then choose the resolution and the interface(LCD, HDMI or VGA). Note that the selection of a specific resolution is done by navigating with the arrow keys and pressing &amp;quot;space&amp;quot; button. Make sure the asterisk marks your selection properly. &lt;br /&gt;
&lt;br /&gt;
The supported resolutions are:&lt;br /&gt;
&lt;br /&gt;
'''For LCD:'''&lt;br /&gt;
&lt;br /&gt;
*1. 4.3&amp;quot; (480x272)&lt;br /&gt;
*2. 7&amp;quot; (800x480)&lt;br /&gt;
*3. 10&amp;quot; (1024x600)&lt;br /&gt;
*4. 15.6&amp;quot; (1366x768)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important: initially the boards are calibrated for a specific display. If you re-write the image (no matter whether the SD card or the NAND memory) you would need to use a mouse to calibrate the display initially. It might be impossible to calibrate it via touching the display.&lt;br /&gt;
&lt;br /&gt;
'''For HDMI:'''&lt;br /&gt;
&lt;br /&gt;
*0. 480i&lt;br /&gt;
*1. 576i&lt;br /&gt;
*2. 480p&lt;br /&gt;
*3. 576p&lt;br /&gt;
*4. 720p50&lt;br /&gt;
*5. 720p60&lt;br /&gt;
*6. 1080i50&lt;br /&gt;
*7. 1080i60&lt;br /&gt;
*8. 1080p24&lt;br /&gt;
*9. 1080p50&lt;br /&gt;
*10. 1080p60&lt;br /&gt;
*11. pal&lt;br /&gt;
*14. ntsc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For VGA:'''&lt;br /&gt;
&lt;br /&gt;
*0. 1680x1050&lt;br /&gt;
*1. 1440x900&lt;br /&gt;
*2. 1360x768&lt;br /&gt;
*3. 1280x1024&lt;br /&gt;
*4. 1024x768&lt;br /&gt;
*5. 800x600&lt;br /&gt;
*6. 640x480&lt;br /&gt;
*7. 1920x1080&lt;br /&gt;
*8. 1280x720&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in a separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to install Android on SD-card? ===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/android-4-2-2-images-for-a20-olinuxino-running-from-sd-card-is-updated-on-wiki/ Blog post about it]&lt;br /&gt;
&lt;br /&gt;
===How to access UART, I2C, GPIOs under Android? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/02/a20-olinuxino-tools-for-android-released/ Use our Open Source OLinuXino A20-TOOLS]&lt;br /&gt;
&lt;br /&gt;
===How to control PWM under Linux? ===&lt;br /&gt;
&lt;br /&gt;
There is an article here: [[how to add pwm]]&lt;br /&gt;
&lt;br /&gt;
===How to build the Android 4.2.2 image for A20-OLinuXino-MICRO? ===&lt;br /&gt;
&lt;br /&gt;
First you need to Download the [http://dl.linux-sunxi.org/users/tsvetan/ANDROID-4.2.2-SDK2.0-KERNEL-3.4/ A20 SDK2.0 Linux Kernel 3.4] &lt;br /&gt;
&lt;br /&gt;
Second you need to configure your environment read the instructions [http://source.android.com/source/initializing.html here]&lt;br /&gt;
&lt;br /&gt;
Then Build the kernel, kernel modules and u-boot&lt;br /&gt;
&lt;br /&gt;
    cd lichee&lt;br /&gt;
    ./build.sh -psun7i_android&lt;br /&gt;
&lt;br /&gt;
When done, continue with Bulding the android image:&lt;br /&gt;
&lt;br /&gt;
    cd ../android4.2&lt;br /&gt;
    cd device/softwinner/&lt;br /&gt;
    tar zxfv olinuxino-a20.tgz&lt;br /&gt;
    cd ../../&lt;br /&gt;
    source build/envsetup.sh&lt;br /&gt;
    lunch #select olinuxino-a20_eng&lt;br /&gt;
    extract-bsp&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dave from Axon instruments wrote more detailed [http://axonjakarta.wordpress.com/2014/02/14/olimex-a20-android-building-4/ blog post] about how he generates the Android image]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME&amp;diff=3487</id>
		<title>A20-OLinuXino-LIME</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME&amp;diff=3487"/>
		<updated>2023-03-16T13:24:57Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME.jpeg]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME looks identical to [[A10-OLinuXino-LIME]], except for the more powerful A20 processor. The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-MICRO]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-MICRO  might work out-of-the-box with A20-OLinuXino-LIME. Additionally, pinout tables, GPIO maps, etc released for A10-OLinuXino-LIME would apply to A20-OLinuXino-LIME&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*512MB DDR3 RAM memory&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*100MBit native Ethernet&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Below you will find links to download files containing the Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find bare-bone images and much more in the next chapter &amp;quot;Notable unofficial images&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The downloaded file is usually an archive of the image file. Make sure to first extract the 7z or zip archive. In order to be able to download the image to a SD card you can use software like Etcher or Win32DiskImager. Under Linux you can use dd command. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime_debian_second_release.7z&lt;br /&gt;
where a20_Lime_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lim2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. They are availalbe at our FTP server. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie):'''&lt;br /&gt;
&lt;br /&gt;
FTP location official Debian Jessie release #7, suitable for boards with no extra flash memory or with extra NAND memory (not suitable for boards with eMMC memory): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Debian/sd/a20_Lime_debian_3.4.103_Jessie_2G_release_7.img.7z A20-OLinuXino-LIME Debian Jessie with kernel 3.4.103+ release 7]&lt;br /&gt;
&lt;br /&gt;
FTP download location of official Debian Jessie release #9, suitable for boards with no extra flash memory or with extra eMMC flash memory (not suitable for boards with NAND flash memory): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Debian/sd/a20_Lime_debian_3.4.103_Jessie_2G_eMMC_release_9.zip A20 lime mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 9]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME-DEBIAN-SD card which we have in our web store contains the same image on 8GB Class10 fast micro SDcard, if you want to use this image please use card of Class10 speed or the performance of Linux will be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
FTP location of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/nand/a20_Lime_android_4.22_nand_LCD_800x480_release1.img A20-OLinuXino-Lime Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 1024x600 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/nand/a20_Lime_android_4.22_nand_LCD_1024x600_release1.img A20-OLinuXino-Lime Android for NAND with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/sd/A20_Lime_android_422_SD_LCD_800x480_HDMI_release_1.7z A20-OLinuXino-Lime Android for microSD card with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for microSD card (with HDMI and 1024x600 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/sd/A20_Lime_android_422_SD_LCD_1024x600_HDMI_release_1.7z A20-OLinuXino-Lime Android for microSD card with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME Armbian images: [https://www.armbian.com/olimex-lime/ link to LIME article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A10-OLinuXino-LIME openSUSE wiki link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-OLinuXino-LIME_manual.pdf User's manual for A20-OLinuXino-LIME and A20-OLinuXino-LIME-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME shields===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A10-OLinuXino-LIME Eagle and KiCAD shield templates for LIME]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A10-OLinuXino-LIME/A10_Lime_GPIOs.pdf  A10-OLinuXino-LIME GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A10-OLinuXino-LIME shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX Power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME have power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME is Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME GitHub]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME-FRONT.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A10-OLinuXino-LIME-BACK.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
pyA20Lime is Python library for the GPIOs, I2C and SPI use of suitable A20-OLinuXino-LIME's pins. It makes the access to GPIO, I2C and SPI considerably easier.&lt;br /&gt;
&lt;br /&gt;
Full information might be found [https://pypi.python.org/pypi/pyA20Lime at this web address]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[How_to_connect_display_to_a_Lime_board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the NAND flash memory]]&lt;br /&gt;
&lt;br /&gt;
If after installation to the NAND you have problems with the Ethernet, check the value of address 0x01c20164 in the memory, if it is 0x0 then change the value to 0x1006. Do the following:&lt;br /&gt;
&lt;br /&gt;
Check the value with:&lt;br /&gt;
&lt;br /&gt;
devmem 0x01c20164&lt;br /&gt;
&lt;br /&gt;
Change the value with:&lt;br /&gt;
&lt;br /&gt;
devmem 0x01c20164 w 0x1006&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To repair the image on the NAND re-upload it following these steps:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
imagesare compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
	<entry>
		<id>https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME&amp;diff=3486</id>
		<title>A20-OLinuXino-LIME</title>
		<link rel="alternate" type="text/html" href="https://www.olimex.com/wiki/index.php?title=A20-OLinuXino-LIME&amp;diff=3486"/>
		<updated>2023-03-16T13:24:36Z</updated>

		<summary type="html">&lt;p&gt;LubOlimex: /* Android images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:A20-OLinuXino-LIME.jpeg]]&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME looks identical to [[A10-OLinuXino-LIME]], except for the more powerful A20 processor. The A10 and the A20 processors are pin-to-pin compatible. Because of the processor, software-wise the board is closer to [[A20-OLinuXino-MICRO]] than to the [[A10-OLinuXino-LIME]]. This resemblance to other designs definitely might speed the development on the board - a lot of software written for A20-OLinuXino-MICRO  might work out-of-the-box with A20-OLinuXino-LIME. Additionally, pinout tables, GPIO maps, etc released for A10-OLinuXino-LIME would apply to A20-OLinuXino-LIME&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME features:&lt;br /&gt;
*A20 Cortex-A7 dual-core ARM Cortex-A7 CPU and dual-core Mali 400 GPU&lt;br /&gt;
*512MB DDR3 RAM memory&lt;br /&gt;
*optional 4GB NAND FLASH memory&lt;br /&gt;
*SATA connector with 5V SATA power jack&lt;br /&gt;
*HDMI FullHD 1080p&lt;br /&gt;
*2x USB Low-Full-High-Speed hosts with power control and current limiter&lt;br /&gt;
*USB-OTG with power control and current limiter&lt;br /&gt;
*100MBit native Ethernet&lt;br /&gt;
*LiPo Battery connector with battery-charging capabilities&lt;br /&gt;
*LCD connector compatible with with 4.3&amp;quot;, 7.0&amp;quot;, 10.1&amp;quot; LCD modules from Olimex&lt;br /&gt;
*160 GPIOs on three GPIO connectors&lt;br /&gt;
*MicroSD card connector&lt;br /&gt;
*DEBUG-UART connector for console debug with USB-SERIAL-CABLE-F&lt;br /&gt;
*status LED&lt;br /&gt;
*Battery charge status LED&lt;br /&gt;
*Power LED&lt;br /&gt;
*2KB EEPROM for MAC address storage and more&lt;br /&gt;
*2 BUTTONS with ANDROID functionality + RESET button&lt;br /&gt;
*2 mount holes&lt;br /&gt;
*5V input power supply, noise immune design&lt;br /&gt;
*PCB dimensions: 84 x 60 mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Official images from OLIMEX ==&lt;br /&gt;
&lt;br /&gt;
'''The recommended image for most of Olimex-made Linux boards is Olimage Linux, you can find information about it in the document here:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/OLIMEX/OLINUXINO/blob/master/DOCUMENTS/OLIMAGE/Olimage-guide.pdf&lt;br /&gt;
&lt;br /&gt;
'''Notice this wiki article refers to outdated images and practices, if using Olimage Linux, use the information only as a reference (do not take it literally)!'''&lt;br /&gt;
&lt;br /&gt;
Below you will find links to download files containing the Debian and Android images. The images in this chapter were compiled by Olimex. They are recommended for beginners and first time users since they include full hardware support. If you are experienced Linux professional you might find bare-bone images and much more in the next chapter &amp;quot;Notable unofficial images&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The downloaded file is usually an archive of the image file. Make sure to first extract the 7z or zip archive. In order to be able to download the image to a SD card you can use software like Etcher or Win32DiskImager. Under Linux you can use dd command. &lt;br /&gt;
&lt;br /&gt;
*For Windows: use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) to write the image&lt;br /&gt;
&lt;br /&gt;
*For Linux: use p7zip package. If you don't have 7zip installed first install it &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #apt-get install p7zip&lt;br /&gt;
Copy a20_Lime_debian_second_release.7z file in your directory and unzip the archive with &lt;br /&gt;
    #7za e a20_Lime_debian_second_release.7z&lt;br /&gt;
where a20_Lime_debian_second_release.7z&lt;br /&gt;
The output should be a new 4GB file with extension img&lt;br /&gt;
Put 4GB SD card in your card reader and type&lt;br /&gt;
    # ls /dev/sd&lt;br /&gt;
Then press two times &amp;lt;TAB&amp;gt; you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which &amp;quot;sd&amp;quot; devices remove from the list.&lt;br /&gt;
Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:&lt;br /&gt;
    #dd if=a20_Lim2_debian_second_release.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
The file system can be extended to suit a bigger card. Use the following three commands to execute a script that would use all the free space of your card:&lt;br /&gt;
&lt;br /&gt;
   sudo su&lt;br /&gt;
   resize_sd.sh /dev/mmcblk0 2&lt;br /&gt;
   reboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux images ===&lt;br /&gt;
&lt;br /&gt;
These official Debian images should be downloaded to a microSD card. They are availalbe at our FTP server. You can install the Debian to the NAND or the eMMC of your board (if it comes with one). Information on booting Debian from the NAND might be found in these wiki articles: [[how to install Debian to NAND]]; [[how to install Debian to eMMC]]. Download locations for the official images might be found below:&lt;br /&gt;
&lt;br /&gt;
'''ALWAYS FIRST TEST WITH LATEST OFFICIAL IMAGE, NEWER HARDWARE REVISIONS OF THE BOARD MIGHT NOT WORK WITH OLDER IMAGES!!!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Latest stable official images - Debian 8 (Jessie):'''&lt;br /&gt;
&lt;br /&gt;
FTP location official Debian Jessie release #7, suitable for boards with no extra flash memory or with extra NAND memory (not suitable for boards with eMMC memory): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Debian/sd/a20_Lime_debian_3.4.103_Jessie_2G_release_7.img.7z A20-OLinuXino-LIME Debian Jessie with kernel 3.4.103+ release 7]&lt;br /&gt;
&lt;br /&gt;
FTP download location of official Debian Jessie release #9, suitable for boards with no extra flash memory or with extra eMMC flash memory (not suitable for boards with NAND flash memory): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Debian/sd/a20_Lime_debian_3.4.103_Jessie_2G_eMMC_release_9.zip A20 lime mainline uboot sunxi kernel 3.4.103 jessie eMMC rel 9]&lt;br /&gt;
&lt;br /&gt;
Image description and typical interfacing: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-7/USAGE-AND-COMMON-PRACTICEs-A20-Olimex_kernel_3.4.103%2B_Jessie_rel_3.txt description and basic usage of different peripherals at at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Image build instructions and required files for latest Debian Jessie release might be found here: [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A20/A20-build-3.4.103-release-8/BUILD_DESCRIPTION_A20_Olimex_kernel_3.4.103%2B_Jessie_rel_8.txt build instructions and required files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
You can find some older releases and older build instructions (older image revisions might be used as a reference, for testing purposes, or if you own old hardware revision of the board) at the following article: [[A20-OLinuXino-LIME-older-releases|older releases and older build instructions]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: the A20-LIME-DEBIAN-SD card which we have in our web store contains the same image on 8GB Class10 fast micro SDcard, if you want to use this image please use card of Class10 speed or the performance of Linux will be very slow.&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
 &lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
 &lt;br /&gt;
1. To check under what name the LAN is associated write  &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
=== Android images ===&lt;br /&gt;
&lt;br /&gt;
FTP location of official Android releases are below. Please read description of the image carefully.&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/nand/a20_Lime_android_4.22_nand_LCD_800x480_release1.img A20-OLinuXino-Lime Android for NAND with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for NAND memory (with HDMI and 1024x600 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/nand/a20_Lime_android_4.22_nand_LCD_1024x600_release1.img A20-OLinuXino-Lime Android for NAND with HDMI and 10 inch display support]&lt;br /&gt;
&lt;br /&gt;
Build instructions and source files for the official Android images for A20 boards in this repository: https://github.com/hehopmajieh/olinuxino_configs&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for microSD card (with HDMI and 800x480 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/sd/A20_Lime_android_422_SD_LCD_800x480_HDMI_release_1.7z A20-OLinuXino-Lime Android for microSD card with HDMI and 7 inch display support]&lt;br /&gt;
&lt;br /&gt;
FTP location of Android 4.2.2 release 1 for microSD card (with HDMI and 1024x600 support): [https://ftp.olimex.com/Allwinner_Images/A20-OLinuXino-LIME/Android/sd/A20_Lime_android_422_SD_LCD_1024x600_HDMI_release_1.7z A20-OLinuXino-Lime Android for microSD card with HDMI and 10 inch display support]]&lt;br /&gt;
&lt;br /&gt;
== Notable unofficial images ==&lt;br /&gt;
&lt;br /&gt;
Below you would find locations to images released by the community. These are not officially supported by Olimex, however, some of these releases are pretty good and worth a try:&lt;br /&gt;
&lt;br /&gt;
*A number of very good and optimized A20-OLinuXino-LIME Armbian images: [https://www.armbian.com/olimex-lime/ link to LIME article at Armbian's web-site]&lt;br /&gt;
&lt;br /&gt;
*A20-OLinuXino-LIME is supported by openSUSE Factory, installation instructions might be found here: [https://en.opensuse.org/HCL:A10-OLinuXino-LIME openSUSE wiki link]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
&lt;br /&gt;
===A20-OLinuXino-LIME user's manual===&lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-OLinuXino-LIME_manual.pdf User's manual for A20-OLinuXino-LIME and A20-OLinuXino-LIME-4GB]&lt;br /&gt;
&lt;br /&gt;
=== A20 Brief ===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20brief%2020130407.pdf A20 brief]&lt;br /&gt;
&lt;br /&gt;
=== A20 Datasheet ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20Datasheet%20v1.0%2020130227.pdf A20 Datasheet]&lt;br /&gt;
&lt;br /&gt;
=== A20 User Manual ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A20-PDFs/A20%20User%20Manual%202013-03-22.pdf A20 user's manual]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
===LIME shields===&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A10-OLinuXino-LIME Eagle and KiCAD shield templates for LIME]&lt;br /&gt;
&lt;br /&gt;
===GPIO description===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A10-OLinuXino-LIME/A10_Lime_GPIOs.pdf  A10-OLinuXino-LIME GPIO description]&lt;br /&gt;
&lt;br /&gt;
A template that might be used to create custom shields or own adapters might be downloaded for Eagle or KiCad at the GitHub here: [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A10-OLinuXino-LIME shield template]&lt;br /&gt;
&lt;br /&gt;
===Power supply and consumption===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME requires 5V regulated power supply external source. regulated means that the power supply adapter should provide exactly 5V no matter loaded or unloaded (some cheap wallwart adapters are not regulated and under no load their power supply may be higher than 5V although marked as 5V power supply, please measure with voltmeter if your power supply provide 5V as if you connect more than 5V to LIME it will be damaged!!!)&lt;br /&gt;
&lt;br /&gt;
The power jack is standard [https://www.olimex.com/wiki/PWRJACK OLIMEX Power jack]. &lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME can be powered from three sources:&lt;br /&gt;
*+5VDC voltage applied PWR jack  &lt;br /&gt;
*+3.7V from LiPo re-chargable battery connected to LiPo board connector&lt;br /&gt;
*+5V applied to USB-OTG connector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power consumption is as follows:&lt;br /&gt;
*LiPo 3.7V power battery: 1.2W&lt;br /&gt;
*+5VDC input power:  1.3W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comparison table of power consumption might be found at the following [https://www.olimex.com/Products/OLinuXino/_resources/OLinuXino-Consumption.pdf link].&lt;br /&gt;
&lt;br /&gt;
LiPo battery allow backup power supply when main power is interrupted. A20-OLinuXino-LIME have power managment IC which charge the battery when main power is present, when power is interrupted the LiPo battery automatically provide backup power supply. Step-up converter prvide 5V for the USB peripherials too. For LiPo batteries we recommend these: &lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO1400mAh/ 1400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO3000mAh/ 3000mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO4400mAh/ 4400mAh]&lt;br /&gt;
*[https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/ 6600mAh]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board dimensions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME basic dimensions in mils: 3305.5 x 2347.0&lt;br /&gt;
&lt;br /&gt;
Some additional measures might be seen in the image here: &lt;br /&gt;
[https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/resources/A10-LIME-dimensions.png link]&lt;br /&gt;
&lt;br /&gt;
===CAD files===&lt;br /&gt;
&lt;br /&gt;
A20-OLinuXino-LIME is Open Source Hardware, CAD files are available at [https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A20-OLinuXino-LIME GitHub]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The CAD product used to design OLinuXino is Eagle and you can download evaluation free version from their [http://www.cadsoftusa.com/ web].&lt;br /&gt;
&lt;br /&gt;
===Board Layout===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A20-OLinuXino-LIME-FRONT.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:A10-OLinuXino-LIME-BACK.jpg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===Linux Commands===&lt;br /&gt;
&lt;br /&gt;
[[Linux-Commands]] Brief Linux Command reference&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
pyA20Lime is Python library for the GPIOs, I2C and SPI use of suitable A20-OLinuXino-LIME's pins. It makes the access to GPIO, I2C and SPI considerably easier.&lt;br /&gt;
&lt;br /&gt;
Full information might be found [https://pypi.python.org/pypi/pyA20Lime at this web address]&lt;br /&gt;
&lt;br /&gt;
===GPIO under Linux===&lt;br /&gt;
&lt;br /&gt;
GPIOs are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example:&lt;br /&gt;
&lt;br /&gt;
add gpioPH2&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 20 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
make PH2 output&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo out &amp;gt; //sys/class/gpio/gpio20_ph2/direction&lt;br /&gt;
&lt;br /&gt;
turn on onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 1 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
turn off onboard LED(connected to PH2)&lt;br /&gt;
&lt;br /&gt;
    root@A10:~# echo 0 &amp;gt; /sys/class/gpio/gpio20_ph2/value&lt;br /&gt;
&lt;br /&gt;
Full list with supported GPIOs is:&lt;br /&gt;
&lt;br /&gt;
    gpio21_ph7   gpio33_ph20  gpio45_pb12  gpio57_pi2   gpio69_pi14&lt;br /&gt;
    gpio10_pg11  gpio22_ph9   gpio34_ph21  gpio46_pb13  gpio58_pi3   gpio6_pg5&lt;br /&gt;
    gpio11_pc3   gpio23_ph10  gpio35_ph22  gpio47_pb14  gpio59_pi4   gpio70_pi15&lt;br /&gt;
    gpio12_pc18  gpio24_ph11  gpio36_ph23  gpio48_pb15  gpio5_pg4    gpio71_pi16&lt;br /&gt;
    gpio13_pc19  gpio25_ph12  gpio37_pb3   gpio49_pb16  gpio60_pi5   gpio72_pi17&lt;br /&gt;
    gpio14_pc20  gpio26_ph13  gpio38_pb4   gpio4_pg3    gpio61_pi6   gpio73_pi18&lt;br /&gt;
    gpio15_pc21  gpio27_ph14  gpio39_pb5   gpio50_pb17  gpio62_pi7   gpio74_pi19&lt;br /&gt;
    gpio16_pc22  gpio28_ph15  gpio3_pg2    gpio51_ph24  gpio63_pi8   gpio75_pi20&lt;br /&gt;
    gpio17_pc23  gpio29_ph16  gpio40_pb6   gpio52_ph25  gpio64_pi9   gpio7_pg6&lt;br /&gt;
    gpio18_pc24  gpio2_pg1    gpio41_pb7   gpio53_ph26  gpio65_pi10  gpio8_pg7&lt;br /&gt;
    gpio19_ph0   gpio30_ph17  gpio42_pb8   gpio54_ph27  gpio66_pi11  gpio9_pg8&lt;br /&gt;
    gpio1_pg0    gpio31_ph18  gpio43_pb10  gpio55_pi0   gpio67_pi12  gpiochip1&lt;br /&gt;
    gpio20_ph2   gpio32_ph19  gpio44_pb11  gpio56_pi1   gpio68_pi13 &lt;br /&gt;
&lt;br /&gt;
===Add Voice to your OLinuXino project===&lt;br /&gt;
&lt;br /&gt;
[http://olimex.wordpress.com/2013/10/03/make-things-talk-with-olinuxino/ Installation of Festival on OLinuXino]&lt;br /&gt;
&lt;br /&gt;
== How To? ==&lt;br /&gt;
===How to generate boot-able SD-card Debian Linux image for A20-OLinuXino-LIME? ===&lt;br /&gt;
&lt;br /&gt;
Build instructions and required files for the latest Debian images: [https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build instructions and files at the GitHub page]&lt;br /&gt;
&lt;br /&gt;
Note that Linux-Sunxi Kernel is a work-in-progress, this means you can try the current stage/sunxi-x.x branch but if something is broken and doesn't work just revert to the git tags we give in the blog and they would work for sure.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/linux-sunxi/u-boot-sunxi/wiki Sunxi u-boot loader] The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.&lt;br /&gt;
&lt;br /&gt;
===How to connect a display and adjust the video output resolution?===&lt;br /&gt;
There is a separate article on the subject: [[How_to_connect_display_to_a_Lime_board]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Is it possible to boot Debian from NAND? Do you provide such image?===&lt;br /&gt;
Yes, it is possible. Use the latest Debian Jessie image and write &amp;quot;nandinstall&amp;quot;. More information can be found in this wiki article: [[How_to_install_Debian_to_NAND| installing Debian Jessie to the NAND flash memory]]&lt;br /&gt;
&lt;br /&gt;
If after installation to the NAND you have problems with the Ethernet, check the value of address 0x01c20164 in the memory, if it is 0x0 then change the value to 0x1006. Do the following:&lt;br /&gt;
&lt;br /&gt;
Check the value with:&lt;br /&gt;
&lt;br /&gt;
devmem 0x01c20164&lt;br /&gt;
&lt;br /&gt;
Change the value with:&lt;br /&gt;
&lt;br /&gt;
devmem 0x01c20164 w 0x1006&lt;br /&gt;
&lt;br /&gt;
There are other people who are also successful in booting Debian from the NAND. Make sure to check on the forum. Make sure to check the number of very good and optimized A20-OLinuXino Debian images by Igor Pečovnik. There are also his instructions for NAND installation of Debian: [http://www.armbian.com/download/ link to his web-site]&lt;br /&gt;
&lt;br /&gt;
===How to detect and enable the Ethernet controller (if it is disabled by default)? ===&lt;br /&gt;
&lt;br /&gt;
Note: in the previous Debian releases the Ethernet was auto-detected and initialized during boot BUT this was causing big delays in the start-up of the board if you didn't want to use Ethernet or if there wasn't Ethernet cable connected.&lt;br /&gt;
&lt;br /&gt;
You can enable it by following these two steps:&lt;br /&gt;
&lt;br /&gt;
1. To check under what name the LAN is associated write &amp;quot;ifconfig –a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If, for example, it is under eth0 name, then write: &amp;quot;dhclient eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This should enable the Ethernet and then SSH would also be available.&lt;br /&gt;
&lt;br /&gt;
===How to generate Arch Linux image?===&lt;br /&gt;
&lt;br /&gt;
Recent forum post by user progmetalbg here: [https://www.olimex.com/forum/index.php?topic=4261.0| at Olimex forums]&lt;br /&gt;
&lt;br /&gt;
[http://alarma20.wordpress.com/2013/09/13/howto-build-arch-linux-arm-for-a20-olinuxino-micro/ Older step by step instructions on how to build Arch Linux image for another A20 board]&lt;br /&gt;
&lt;br /&gt;
===How to download new Android image to the NAND memory of my A20 board?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To repair the image on the NAND re-upload it following these steps:&lt;br /&gt;
&lt;br /&gt;
*1. Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive]).&lt;br /&gt;
&lt;br /&gt;
*2. Go to firmware tab of the program and point to a valid Android image (the latest official one may also be downloaded above).&lt;br /&gt;
 &lt;br /&gt;
*3. Disconnect the power supply and USB cable from the A20 board.&lt;br /&gt;
&lt;br /&gt;
*4. Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
*5. Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
*6. You will be asked for drivers for the bootloader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
*7. PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
*8. Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
===How do I write the official Android image to a micro SD card for my A20 board?===&lt;br /&gt;
A: First download one of the official Android images, which might be found in the Android section above.&lt;br /&gt;
&lt;br /&gt;
Make sure that the download link you visit clearly indicates that the image is suitable for the microSD card since there are images suitable for NAND memory also. The images suitable for the microSD memory and those suitable for NAND card are different. However, the upload method is almost identical – using PhoenixSuit.&lt;br /&gt;
&lt;br /&gt;
There are two types of Android images for microSD card that we usually provide and each of them has to be downloaded to a microSD card using a different method. The image provided for microSD card is either the native Android image that can be downloaded to the card via a software tool like PhoenixSuit (through the board) or an image taken from an already prepared microSD card that requires to simply write the image (through a microSD card reader). &lt;br /&gt;
&lt;br /&gt;
'''It is more likely that you have an Android image that requires a simple copy to a card. If that is the case you can follow the exact steps as for Linux (e.g. using &amp;quot;Win32 Disk Imager&amp;quot; or &amp;quot;dd&amp;quot; command).'''&lt;br /&gt;
&lt;br /&gt;
In order to prepare a microSD card with a native Android you will need a software tool called PhoenixSuit and then:&lt;br /&gt;
&lt;br /&gt;
• Install and run PhoenixSuit (can be found here: [https://drive.google.com/file/d/0BwplT87k9SCgaTFTZnVST05ONzA/view?usp=sharing download from google drive])&lt;br /&gt;
&lt;br /&gt;
• Go to the firmware tab of the program and point to a valid Android image (note that the &lt;br /&gt;
imagesare compressed and you have to extract them to .img files to be able write &lt;br /&gt;
them with PhoenixSuit)&lt;br /&gt;
&lt;br /&gt;
• Disconnect the power supply and USB cable from the A20 board. Put an SD card in micro SD &lt;br /&gt;
holder. We recommend 4GB class 10 card.&lt;br /&gt;
&lt;br /&gt;
• Press and hold RECOVERY button, apply power supply 5V, release RECOVERY button.&lt;br /&gt;
&lt;br /&gt;
• Connect USB cable to the mini USB connector.&lt;br /&gt;
&lt;br /&gt;
• You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executable (or manually point the installer to the drivers folder in the PhoenixSuit installation path).&lt;br /&gt;
&lt;br /&gt;
• PhoenixSuit will detect the board and would ask for the method of writing the image. Choose &lt;br /&gt;
method of writing the image and confirm your wish to write the image.&lt;br /&gt;
&lt;br /&gt;
• Wait till upgrade succeeds&lt;br /&gt;
&lt;br /&gt;
Note that it is not recommended to have your mini USB connected to an external USB hub. This &lt;br /&gt;
might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.&lt;br /&gt;
&lt;br /&gt;
Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut the power supply during this process! Also when fresh image is installed fast boot may be disabled, which means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time which might require a mouse.&lt;br /&gt;
&lt;br /&gt;
===I don't have neither serial cable, nor HDMI monitor. I also can't access the local Ethernet network. Can I somehow access the board anyway?===&lt;br /&gt;
&lt;br /&gt;
The latest official Debian Linux image allows the use the USB_OTG connector for SSH connection without the need of a LAN cable or a serial cable. You can use a mini USB cable connected between your host PC and the on-board mini USB connector. For connection convenience there is a DHCP server running specifically for USB0 interface. The DHCP server should give IP address to the new USB0 interface of your host PC so you can make SSH connection from your PC to the default board IP address of the USB0 interface – 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
You can connect to the board using a mini USB cable and an SSH client (if you use Windows you might use &amp;quot;puTTY&amp;quot;, for example) at address 192.168.2.1.&lt;br /&gt;
&lt;br /&gt;
For Windows operating system - upon connection, the board should show up in &amp;quot;Windows Device Manager&amp;quot; as &amp;quot;RNDIS Ethernet Gadget&amp;quot;. You might be asked to install a driver. The drivers can be found online as &amp;quot;RNDIS driver&amp;quot; (Remote Network Driver Interface Specification).  The drivers are provided by Microsoft and they should be available for every Windows distribution - refer to the respective files and articles provided by Microsoft on how to install the required drivers.&lt;br /&gt;
&lt;br /&gt;
===How to edit board configurations and definitions in the official Debian Linux? ===&lt;br /&gt;
&lt;br /&gt;
Do you want a custom video resolution output? Do you need a different port definition? Do you need to change the hardware defitions of the board?&lt;br /&gt;
&lt;br /&gt;
You would need to edit the board's script.bin/script.fex file. How to do it is described in another separate article: [[How_to_edit_board_configurations_and_definitions_in_the_official_Debian_Linux]].&lt;br /&gt;
&lt;br /&gt;
===How to add STK1160 video capture driver support in Kernel 3.4===&lt;br /&gt;
&lt;br /&gt;
[https://www.olimex.com/wiki/STK1160-howto-linux-sunxi-3_4 STK1160] driver backport by Dimitar Tomov&lt;br /&gt;
&lt;br /&gt;
[[Main_Page]]&lt;/div&gt;</summary>
		<author><name>LubOlimex</name></author>
		
	</entry>
</feed>