body start
ODROID-T -S -7
Project News
- News
- No News Found
- Activity
- No items were found
- Wiki Status
Project Info
- This project has not yet categorized Software Map
- Member count : 5
- Registered: : 2010.05.10
- Activity Percentile: : 100%
For ODROID-T/S/7/A/E7/PC
2 Build environment ¶
Tested with Ubuntu 8.10/9.04/9.10/10.04/10.10/11.04 (Other Linux packages might be able to build u-boot)
64bit version is also working well.
3.2 Copy the cross tool package to /opt/toolchains ¶
If the '/opt/toolchains' directory does not exist in host pc, then create the directory.
# sudo mkdir /opt/toolchains # sudo cp arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 /opt/toolchains
3.3 Uncompress the cross tool with tar command ¶
# cd /opt/toolchains # sudo tar xjf arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
3.4 Add Path in your environment file ¶
Modify your ~/.bashrc file to add a new path with editor (gedit or vi)
PATH=$PATH:/opt/toolchains/arm-2010q1/bin
To apply this change, login again or restart the .bashrc
# source ~/.bashrc
3.5 Check the tool-chain path to see if it is set up correctly or not. ¶
# arm-none-eabi-gcc -v
Using built-in specs.
Target: arm-none-eabi
Configured with: /scratch/julian/2010q1-release-eabi-lite/src/gcc-4.4-2010q1/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu
--target=arm-none-eabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs
--with-gnu-as --with-gnu-ld --with-specs='%{O2:%{!fno-remove-local-statics: -fremove-local-statics}}
%{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics\}\}\}' --enable-languages=c,c++ --disable-shared
--disable-lto --with-newlib --with-pkgversion='Sourcery G++ Lite 2010q1-188' --with-bugurl=https://support.codesourcery.com/GNUToolchain/
--disable-nls --prefix=/opt/codesourcery --with-headers=yes --with-sysroot=/opt/codesourcery/arm-none-eabi
--with-build-sysroot=/scratch/julian/2010q1-release-eabi-lite/install/arm-none-eabi
--with-gmp=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr
--with-mpfr=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr
--with-ppl=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr
--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'
--with-cloog=/scratch/julian/2010q1-release-eabi-lite/obj/host-libs-2010q1-188-arm-none-eabi-i686-pc-linux-gnu/usr
--disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/2010q1-release-eabi-lite/install/arm-none-eabi/bin
--with-build-time-tools=/scratch/julian/2010q1-release-eabi-lite/install/arm-none-eabi/bin
Thread model: single
gcc version 4.4.1 (Sourcery G++ Lite 2010q1-188)
4 Download source code & Uncompress ¶
Linux u-boot source code is stored in SD card. But, this one might be old version with the exception of Odroid-A.
Please use this link to get the source code.
4.1 Odroid-T & S & 7 ¶
Uncompress the source code
# tar xvfz odroid-c110-uboot_20100727.tar.gz
The latest source code of u-boot for ODROID-7 is here
4.3 Odroid-E7 ¶
The source is located in the T-Flash FAT partition.
Uncompress the source code
# tar xvfz uboot_2011_1202.tgz
5 Compile ¶
Before do Compile, you have to edit Makefile to correct CROSS_COMPILE path.
depends on your CROSS_COMPILE path.
Case of this article is
CROSS_COMPILE = /opt/toolchains/arm-2010q1/bin/arm-none-eabi-
5.1 Odroid-T & S & 7 ¶
# cd uboot # make mrproper ---> This is only used to clean up files from the source code # make hkdkc110_mmc_config # make
5.2 Odroid-A ¶
# cd uboot # make mrproper ---> This is only used to clean up files from the source code # make hkdkc210_android_config # make
5.3 Odroid-E7 ¶
# cd uboot # make mrproper ---> This is only used to clean up files from the source code # make smdk6450_config # make
If there is no error, u-boot.bin should have been generated with a file size of about 250~300Kbyte.
6 Debug board setup ¶

- Connect to I/O port of Odroid.
- Connect to Host PC RS232C Serial Port via cable. The cable should be 1:1 direct cable. Don't use the cross type.
- If your host PC has no RS232C port, you need a USB-Serial converter.
- Turn on power of Odroid. You can't turn off.
* TTA20-Female connector
- If you want to use Odroid all day long, you will need a external power supply or external charger.
- There are 2 different types of standard connectors we use for mobile phones, the TTA20 and TTA24.
- Odroid utilizes the TTA20 which is the latest standard, and almost all mobile phones in 2009 have it.
- If you have a standard TTA24, you can use a simple converter for TTA24 to TTA20
- You can check the charging status with the LED of the charger. There is no charging indicator on Odroid.
- You can use this connector to connect Odroid to a host PC while charging with TTA20 connector.
6.1 Debug board connection ¶

* When you use the debug board, you MUST connect DC power source as above picture.
7 Transfer boot-loader to target board(Odroid) ¶
If u-boot is already installed and working well in T-flash, you can download the new compiled u-boot via USB.
If u-boot is not working or damaged, you will need to write the u-boot bin with a special tool on a Windows PC.
This process can be used for fusing u-boot as well as the kernel.
7.1 Odroid-A / PC ¶
- Now, To update bootloader, you have to use Linux PC & Windows PC.
AttachHeader.exe
1) Make BL1 image from the your u-boot.bin under the Linux.
$ split -b 16368 u-boot.bin bl1
2) Flowing above split command, You can see the bl1aa file. and copy it to Windows.
3) Make u-boot-bl1.bin image under the Windows. and copy it to Linux.
3) Make u-boot-bl1.bin image under the Windows. and copy it to Linux.
c:\> AttachHeader.exe bl1aa u-boot-bl1.bin
4) Eject micro-sd card from Odroid-A, connect to Linux PC again using anything USB card reader.
5) Umount micro-sd card.
5) Umount micro-sd card.
$ sudo umount /dev/sdc* Note : /dev/sdc is your micro-sd card device node.
$ sudo dd iflag=dsync oflag=dsync if=./u-boot-bl1.bin of=/dev/sdc seek=1 32+0 records in 32+0 records out 16384 bytes (16 kB) copied, 0.270473 s, 60.6 kB/s
$ sudo dd iflag=dsync oflag=dsync if=./u-boot.bin of=/dev/sdc seek=33 523+1 records in 523+1 records out 268132 bytes (268 kB) copied, 1.27022 s, 211 kB/s
8) End of Update bootloader. Eject micro-sd card from Linux.
7.2 Odroid-E7 ¶
- Now, To update bootloader, you have to use Linux PC.
1) Connect to Linux PC using anything USB card reader.
2) Umount micro-sd card.
$ sudo umount /dev/sdc* Note : /dev/sdc is your micro-sd card device node.
3) Update uboot.
$ cd uboot/sd_fusing $ ./s5p6450_sd_fusing.sh /dev/sdc env area init 32+0 records in 32+0 records out 16384 bytes (16 kB) copied, 0.0580496 s, 282 kB/s S5P6450 BL1 fusing 28+0 records in 28+0 records out 14336 bytes (14 kB) copied, 0.0553708 s, 259 kB/s S5P6450 u-boot fusing 544+0 records in 544+0 records out 278528 bytes (279 kB) copied, 1.28127 s, 217 kB/s U-boot image is fused successfully. Eject SD card and insert it again. Note : /dev/sdc is your micro-sd card device node.
4) End of Update bootloader. Eject micro-sd card from Linux.
7.3.1 For Windows(XP) PC Users ¶
- Use Windows utility DNW.exe and USB driver. You can get the files from this link and uncompress it. 1) Connect Debug board and PC serial port with Serial Cable(1:1)
2) Run serial communication software in PC (HyperTerminal/SecureCRT/etc)
3) Configure serial port options (COM port, Baudrate : 115200, DATA : 8, STOP : 1, No-Parity, No Flow Control)
4) Turn on Odroid and you can see the below booting message. Be sure to press any key quickly to stop the OS booting process.
OK
U-Boot 1.3.4 (Jul 30 2010 - 00:02:08) for HKDKC110 D Type
CPU: S5PC110@1000MHz(OK)
APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz
MPLL = 667MHz, EPLL = 80MHz
HclkDsys = 166MHz, PclkDsys = 83MHz
HclkPsys = 133MHz, PclkPsys = 66MHz
SCLKA2M = 200MHz
Serial = CLKUART
Board: HKDKC110
I2C: pres(1), div(3)
ready
DRAM: 256 MB
Flash: 1 MB
SD/MMC: 1886MB
Muxed OneNAND 512MB 1.8V 16-bit (0x50)
OneNAND version = 0x013e
5) With "dnw" command, you can download any binary file to Odroid RAM from PC via USB.
HKDKC110 # dnw 0x30008000 Insert a OTG cable into the connector!
6) If you plug in the USB Cable, you are ready to send binary files to Odroid.
HKDKC110 # dnw 0x30008000 Insert a OTG cable into the connector! OTG cable Connected! Now, Waiting for DNW to transmit data
7) It's time to execute DNW utility. But, you should install the USB driver first. Driver installation is only required for the first time of USB connection. Driver file location should NOT be automatic selection.

8) Select the driver file and complete installation.

9) Execute the DNW utility software and set the download address as below. Ignore serial port settings, if you are familiar with other serial console software. Please also check for USB:OK to make sure the connection is good.

Note: Above capture screen is old one. The address should be 0x30008000
10) You can start the download with the menu for USB Port -> Download to select file to send.
11) After downloading, the Serial terminal will show the below message.
12) It's time to write the binary image to T-flash with the "movi write"command.
11) After downloading, the Serial terminal will show the below message.
Download Done!! Download Address: 0x30008000, Download Filesize: 0xxxxxxx Checksum is being calculated.. Checksum O.K. HKDKC110 #
12) It's time to write the binary image to T-flash with the "movi write"command.
HKDKC100 # movi write u-boot 0x30008000 Writing u-boot to sector xxxx (16 sectors).. completed Writing u-boot to sector xxxx (1024 sectors).. completed HKDKC110 #
7.3.2 For Linux (Ubuntu) PC Users ¶
- Use Linux utility smdk-usbdl. You can get the files from this link and uncompress it.
- Copy the executable file smdk-usbdl to /opt/toolchains/arm-2010q1/bin
- To execute smdk-usbdl, you need to install libusb. Original port was done by Ben Dooks.
# sudo apt-get install libusb-dev # sudo cp smdk-usbdl /usr/local/bin
1) Connect the Debug board and PC serial port with Serial Cable(1:1)
2) Run serial communication software in PC (minicom or others)
3) Set serial options (COM port, Baudrate : 115200, DATA : 8, STOP : 1, No-Parity, No Flow Control)
4) Turn on Odroid and you can see below booting message. You need to quickly press any key to stop the OS booting process.OK U-Boot 1.3.4 (Jul 30 2010 - 00:02:08) for HKDKC110 D Type CPU: S5PC110@1000MHz(OK) APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz MPLL = 667MHz, EPLL = 80MHz HclkDsys = 166MHz, PclkDsys = 83MHz HclkPsys = 133MHz, PclkPsys = 66MHz SCLKA2M = 200MHz Serial = CLKUART Board: HKDKC110 I2C: pres(1), div(3) ready DRAM: 256 MB Flash: 1 MB SD/MMC: 1886MB Muxed OneNAND 512MB 1.8V 16-bit (0x50) OneNAND version = 0x013e
5) With "dnw" command, you can download any binary file to Odroid RAM from PC via USB.HKDKC100 # run dnwu Insert a OTG cable into the connector!
6) If you plug in the USB Cable, you are ready to send binary file to Odroid.OTG cable Connected! Now, Waiting for DNW to transmit data
7) You can check whether USB connection is correct or not with lsusb command.# lsusb Bus 008 Device 002: ID 1871:0306 Aveo Technology Corp. Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 006: ID 04e8:1234 Samsung Electronics Co., Ltd ---> odroid is here. Samsung?? Bus 004 Device 005: ID 05af:0802 Jing-Mold Enterprise Co., Ltd Bus 004 Device 004: ID 0cf2:6230 ENE Technology, Inc. Bus 004 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB #
8) To start download, use the smdk-usbdl command.# smdk-usbdl -f u-boot.bin
9) After downloading, PC will show the below message.# smdk-usbdl -f u-boot.bin SMDK42XX,S3C64XX USB Download Tool Version 0.20 (c) 2004,2005,2006 Ben Dooks <ben-linux@fluff.org> S3C64XX Detected! => found device: bus 004, dev 006 => loaded xxxx bytes from xxxxxx => Downloading xxxxxx bytes to 0x30008000 => Data checksum xxxx => usb_bulk_write() returned xxxxx #
10) After downloading, Serial terminal will show below message.Download Done!! Download Address: 0x30008000, Download Filesize:0x3c000 Checksum is being calculated. Checksum O.K. writing BL1.. 9, 16 MMC write: dev # 0, block # 9, count 16 ... 16 blocks written: OK completed writing bootloader.. 57, 1024 MMC write: dev # 0, block # 57, count 1024 ... 1024 blocks written: OK completed HKDKC110 #
7.4 Where is T-flash(Micro-SD) ¶
Odroid-T has 2 memory cards.
- T-flash card contains boot-loader, kernel, Android system and applications.
- SD card contains user files such as pictures, music, video clips and so on.

If you want to know about T-flash in detail, visit this link.
http://en.wikipedia.org/wiki/MicroSD
http://en.wikipedia.org/wiki/MicroSD


