Odroid-xu 板环境搭建

1.

Boot Sequence

Upon power on the board will search for the boot media. It will perform the following:

  • 1) iROM (Code inside the SoC) will attempt to read the boot media at the first 512 bytes of it. On those first 512 bytes fwbl1 should exist.
  • 2) fwbl1 will load bl2 (SPL) that is part of the U-boot.
  • 3) bl2 will load U-boot.
  • 4) U-Boot will do whats left, such as handle TrustZone, load kernel image if setted.

fwbl1

This blob is the first thing that CPU will call, we don't have much information on it since its provided by Samsung. Position on SD: 1

bl2

This is the SPL, part of the U-Boot, upon building U-Boot you'll have the mkspl program what will extract it from the u-boot.bin Position on SD: 31

u-boot.bin

This is the U-Boot itself built. For more information about U-Boot please check their website:http://www.denx.de/wiki/U-BootPosition on SD: 63

TrustZone Software

This is the blob done by Samsung/ARM to support Trustzone platform. Position on SD: 719

Default Env

The default env provided in U-Boot will attempt the following:

  • 1) Load boot.ini script from the first FAT type partition from the boot media.
  • 2) Load kernel from its on media/ramdisk position (This is the Android Boot)

Boot media sector map for Odroid-xu

  • Odroid-xu has Min 8Gbyte eMMC or MicroSD memory card for system area.
  • FAT partition to calculate the remaining blocks to create the partition.
Area NameSize in bytesFrom(sector #)To(Sector #)Partition Name
FAT32 for Storage Up to 4GB 6979920 remaining blocks mmcblk0p1
EXT4 for Android cache 256MB 6446520 6979919 mmcblk0p4
EXT4 for Android userdata 2GB 2240280 6446519 mmcblk0p3
EXT4 for Android system 1GB 137160 2240179 mmcblk0p2
Reserved 58MB 17647 137159  
Kernel 8MB 1263 17646  
u-boot environment 16KB 1231 1262  
TrustZone SW 256KB 719 1230  
u-boot 328KB 63 718  
bl2 16KB 31 62  
fwbl1 15KB 1 30  
Partition table / MBR 512 0 0  

* “Sector number - 1” in SD map is used in the eMMC map.

 

 

Download Xubuntu Desktop 14.04 LTS for XU 

http://odroid.in/ubuntu_14.04lts/

OS Image flashing tool for

Download and unzip this file.
http://dn.odroid.com/DiskImager_ODROID/Win32DiskImager-odroid-v1.3.zip

 

download 后烧录成功

 SD 卡的安装和扩容

扩充前

root@odroid-desktop:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/mmcblk0p2   3150076 2132236    857792  72% /
none                   4       0         4   0% /sys/fs/cgroup
udev              892784       4    892780   1% /dev
tmpfs             178812    1000    177812   1% /run
none                5120       8      5112   1% /run/lock
none              894060      72    893988   1% /run/shm
none              102400      12    102388   1% /run/user
/dev/mmcblk0p1    102182    7714     94468   8% /media/boot

 

默认的镜像剩余大小固定,如使用8/16G SD card时需要对没有分配的空间进行扩容

1. 先把烧录上述image的 SD card 通过USB card reader插入到一个Linux host,然后 fdisk 删除并创建分区

Disk /dev/sdb: 7948 MB, 7948206080 bytes
245 heads, 62 sectors/track, 1021 cylinders, total 15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003f9f7

Device Boot Start End Blocks Id System
/dev/sdb1 4096 208895 102400 c W95 FAT32 (LBA)
/dev/sdb2 208896 6610943 3201024 83 Linux
root@odroid-desktop:~# fdisk /dev/sdb

208896 为First sector

 

sudo fdisk /dev/mmcblk0
p
(see starting block of p2, e.g. 266240)
d (delete)
2 (partition 2)
n (new)
p (primary)
2 (partition 2)
266240 (starting block)
<enter> (it will take ending block as end partition, so you have entire space)
w (write partitions)

2. 使用该SD卡启动并做resize2fs

oot@odroid-desktop:~# resize2fs /dev/mmcblk0p2
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 3863424 blocks long.

root@odroid-desktop:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/mmcblk0p2  15213368 2139708  12426548  15% /
none                   4       0         4   0% /sys/fs/cgroup
udev              892784       4    892780   1% /dev
tmpfs             178812    1012    177800   1% /run
none                5120       0      5120   0% /run/lock
none              894060      72    893988   1% /run/shm
none              102400      12    102388   1% /run/user
/dev/mmcblk0p1    102182    7714     94468   8% /media/boot
root@odroid-desktop:~# fdisk -l

 

VNC Server 安装

安装之前需要设置代理如:

 export http_proxy=http://172.16.2.187:8080

参考http://forum.odroid.com/viewtopic.php?f=52&t=4489

     http://www.linuxidc.com/Linux/2014-09/106805.htm

apt-get install x11vnc

x11vnc -storepasswd 12345 /etc/x11vnc.pass  设置密码为12345

命令运行或者让自动启动

x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg  -rfbauth /etc/x11vnc.pass -rfbport 5900

 或  vi /etc/init/x11vnc.conf

start on login-session-start

script

x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900

end script

reboot 

Step-by-Step guide to building a odroid-xu Kernel

Download the cross tool chain package

[ http://dn.odroid.com/ODROID-XU/compiler/arm-eabi-4.6.tar.gz ]

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-eabi-4.6.tar.gz /opt/toolchains
# cd /opt/toolchains
# sudo tar zxvf arm-eabi-4.6.tar.gz

Uncompress the cross tool with tar command

# cd /opt/toolchains
# sudo tar xvfz arm-eabi-4.6.tar.gz

Add Path in your environment file

Modify your ~/.bashrc file to add a new path with editor (gedit or vi)

export ARCH=arm
export PATH=${PATH}:/opt/toolchains/arm-eabi-4.6/bin
export CROSS_COMPILE=arm-eabi-

To apply this change, login again or restart the .bashrc

# source ~/.bashrc

Check the tool-chain path to see if it is set up correctly or not.

# arm-eabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-eabi-gcc
COLLECT_LTO_WRAPPER=/opt/toolchain/arm-eabi-4.6/bin/../libexec/gcc/arm-eabi/4.6.x-google/lto-wrapper
Target: arm-eabi
Configured with: /tmp/android-15472/src/build/../gcc/gcc-4.6/configure --prefix=/usr/local --target=arm-eabi --host=x86_64-linux-gnu 
--build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/tmp/android-15472/obj/temp-install --with-
mpfr=/tmp/android-15472/obj/temp-install --with-mpc=/tmp/android-15472/obj/temp-install --without-ppl --without-cloog --disable-libs
sp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-libstdc__-v3 --disable-sjlj-exceptions --disable-
shared --disable-tls --disable-libitm --with-float=soft --with-fpu=vfp --with-arch=armv5te --enable-target-optspace --with-abi=aapcs
 --with-gcc-version=4.6 --with-binutils-version=2.21 --with-gmp-version=4.2.4 --with-mpfr-version=2.4.1 --with-gdb-version=7.3.x --w
ith-arch=armv5te --with-sysroot=/tmp/android-15472/install/sysroot --with-prefix=/tmp/android-15472/install --with-gold-version=2.21
 --enable-gold --disable-gold --disable-multilib --program-transform-name='s&^&arm-eabi-&'
Thread model: single
gcc version 4.6.x-google 20120106 (prerelease) (GCC)

Source code download

 

 

参考

http://odroid.com/dokuwiki/doku.php?id=en:odroid-xu

 

 

posted @ 2015-06-15 20:53  fastwave2004  阅读(619)  评论(0编辑  收藏  举报