Sie sind auf Seite 1von 18

Chapter 1.

Burn the Android system image into nand flash


The complete Android system consists of at least three parts: bootloader, kernel, and rootfs. This is same as classical linux. In the following, we will introduce how to burn a complete Android system. Images of bootloader, kernel and rootfs are all burned into nand flash. So we need to first understand the nand partitions to prevent the overlap of different images: Image Name bootloader kernel cramfs Ubifs Address Range 0x00000000-0x0003FFFF 0x00040000-0x003FFFFF 0x00400000-0x007FFFFF 0x00900000-0x3FFFFFFF Description Burn Uboot Burn kerne Burn cramfs file system as backup Burn ubifs file system a main file system

1.1 Burn bootloader Here we will not use the bootloader that comes with Android, but to use uboot. We offer two ways to boot uboots binary files, including SD boot and and Nandflash uboot. In the following, we are going to describe the burning of each method. 1.1.1 Burning of uboot for SD boot

In the absence of JTAG emulator, for a blank board, you can boot from S3C6410's MMC / SD to burn a usable uboot into nand flash. The procedure is as following: In Windows, use utility tools/IROM_Fusing_Tool to burn a uboot of MMC/ SD boot version to SD card.

Please dont insert SD card directly into your SD card slot in your laptop. In most cases, this doesnt work. Please format SD card in FAT32, and insert through a USB card reader into your PC.

Please note that here we need to choose u-boot_mmc.bin which is for SD boot. Please note that for Android 2.1 and higher, it is recommended to use the u-bbot_mmc.bin in the directory android-image.

Remove and insert the SD into the SD slot of the LS6410 development board. Set the board's DIP switch to boot from SD card. Run tools/dnw and configure this tool: 1. Config the serial port that is going to be used.

2. Connect to this serial device:

Power on LS6410 development board, DNW will print out the booting information (please HIT ANY KEY to STOP autoBOOT):

The first menu display device shows up. You can select the right device in your development board. So far four display devices are supported. After the selection, the system will decide which driver to load into the system automatically without the users manual configuration or burning kernel program.

The next menu that shows up is the following:

Now we describe step by step the procedure how to install the Android system. Before going further, please connect the mini-USB port of the LS6410 board and an USB port of PC with a OTG cable.

1.1.2. Format Nand Flash

If you are burning the Linux/Android the first time to the board, particularly to a board that was installed with a WinCE system, you need to erase the Nand Flash, because the file system of WinCE uses the block 00B of the Nand in a different way than the Linux or Android. If you do not erase, it may run into ECC error. Normally you do not need to erase very often. So one time erasing is good enough. Select f from the menu, the Nand flash is erased.

1.1.3.Burn uboot of NandFlash When we get SD-uboot, we can use SD-uboot to burn other code into the board's Nandflash. Here we are going to show how to burn NAND-uboot into NAND. Select u from the menu:

If you are first time to use this function, it will prompt to install USB driver. You may need to type dnw in the dnw window to bring up the USB connection. The USB drive can be found in the directory tools/USB driver. After installation of the USB driver,

Now the DNW is waiting for you to specify where the uboot file is located in your PC. Click on the menu USB Port / Transmit to select uboot.bin.

Select u-boot.bin, which is the nand boot uboot, do not select SD-u-boot_mmc.bin, which is for SD boot. Please note that for Android 2.1 and higher, it is suggested to use u-boot.bin in the directory android-image.

If everything goes smoothly, the Nand uboot has been burned to Nand flash.

10

Until here, nand uboot has been written into flash. At this time, you can choose to continue the installation with boot from SD or boot from SD. Note: If you choose boot from SD at this point, you may run into a case that you have to insert the boot SD card into the board SD slot every time you boot your development board. So it is highly suggest you switch to boot from Nand at this point. Set boot DIP to NAND boot, reset or power up the board. Select the display device and come to the ubbot menu.

1.2 Burn kernel

Select k from the uboot menu, and select the android-image/zImage in the DNW menu USB port/transmit.

11

Now the Android Linux kernel has been burned successfully.

1.3 Burn cramfs Android or the root file system with Qtopia can use the writable file systems such as yaffs or ubifs. But in our testing process, yaffs is not stable, even with the path from Google. So we chose to use ubifs, which has much better performance. Ubifs were developed by IBM and other companies, and were adopted in linux kernel after 2.6.27. But the nand driver of the current version of uboot has bad support of ubifs/yaffs2. We are going to use cramfs as intermediate file system to realize ubifs/yaffs2. So we are going to first introduce how to burn cramfs to the board, and we recommend not to remove cramfs until the file system is debugged so that we can use it when updating ubifs/yaffs2. In order not to confuse the user, we emphasize again that ubifs is the final file system and cramfs is only a aux file system. Later on, we are going to update uboot so that it can direcly support ubifs. android\android-image\rootfs.cramfs is the minimal file system we built to burn ubifs/yaffs. We will download cramfs to the board and then write to cramfs partition of nandflash.

12

Select c from the uboot menu and select the android-image/root_mkfs.cramfs in the DNW menu USB port/transmit.

1.4 Burn ubits root file system The previous step is step stone for burning ubifs. It will not be needed after uboot is updated. Now we proceed to burn ubifs. First step is to copy Android 2.0 file system android\android-image\android.tar.gz to USB drive or SD card, and plug in to LS6410 development board. After power cycle the board, select a from the uboot menu.

13

If everything goes smoothly, the following page will show up

14

This indicates that the system begins burning the ubifs. After it is done, the calibration page will show up,

And the LCD screen will pop up the calibration interface, 15

click on the cross to do the five-point calibration. Afterwards the system can boot up successfully. Finally, the Android interface is brought up,

16

Up to this point, the Android system has been installed successfully. Ever since then, if a keyboard key is not pressed during the boot up process, the system will automatically boot to this Android interface.

1.5 Calibrate display using Uboot menu The calibration of the touch screen is critical to the usage of the Android system. We provide a calibration using the uboot menu. Select t in the uboot menu,

After the calibration window is brought us, click on the cross on the screen to calibrate.

1.6 Select GPRS/3G device using uboot menu Our development board provides GSM/GPRS or 3G wireless modem. However, only one of them can be used as wireless networking device at any time. Therefore we provide a way for user to select the wireless device in uboot. The user does not to reinstall the system to select different wireless device. Select p from the ubott menu,

17

You can select the right device according to your board. If do not use either device, select None.

18

Das könnte Ihnen auch gefallen