diff options
Diffstat (limited to 'howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt')
-rw-r--r-- | howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt b/howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt new file mode 100644 index 0000000..d1026e6 --- /dev/null +++ b/howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt @@ -0,0 +1,147 @@ +Instructions for "https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk/":https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk/ + +h2. Prerequisites + +To clone the sources you must be able to ssh to git.linaro.org and be part of the big-little-switcher-private group. Contact "Philip Colmer" <philip.colmer@linaro.org> for access requests. + +Install build dependencies on Ubuntu: +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc uboot-mkimage openjdk-7-jdk openjdk-7-jre vim-common python-parted python-yaml wget uuid-dev iasl +</pre> + +You can also download linaro android build script(linaro_android_build_cmds.sh) from Downloads section at https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk to do a complete ARMv8 Android build for FVP models from scratch. + +h2. Get the source + +<pre> + $ curl "https://android.git.linaro.org/gitweb/tools/repo.git/blob_plain/refs/heads/stable:/repo" >repo + $ chmod +x repo + $ ./repo init -u git://android.git.linaro.org/platform/manifest.git -b armv8-linaro -m baseline_manifest.xml + $ ./repo sync # this may take some time +</pre> + +h2. Build + +<pre> + $ export CPUS=`grep -c processor /proc/cpuinfo` + $ export TARGET_PRODUCT=vexpress + $ export TARGET_BUILD_VARIANT=userdebug + $ . build/envsetup.sh + $ make -j${CPUS} selinuxtarballs +</pre> + +h2. Get linaro image tools + +Run these commands to get all the dependencies for linaro-image-tools +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools +</pre> +If you're using a "tip" build then we suggest you use the tip of linaro-image-tools from http://git.linaro.org/infrastructure/linaro-image-tools.git + +h2. Create binary for ARM FVP Base AEMv8 models + +Run linaro image tools + +pre. $ linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +If you're using tip of linaro image tools + +pre. $ ./linaro-image-tools/linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +h2. Extract the preboot files + +pre. tar -jxvf boot.tar.bz2 + +h2. Setup the runtime environment + +<pre> + $ export ARMLMD_LICENSE_FILE="8224@localhost" + $ ssh -L 8224:localhost:8224 -L 18224:localhost:18224 -N $USER@flexlm.linaro.org +</pre> + +h2. Running the models (verified on FVP Base model build 5502) + +<pre> + $ cd boot + $ /path/to/FVP_Base_AEMv8A-AEMv8A/models/Linux64_GCC-4.1/FVP_Base_AEMv8A-AEMv8A \ + -C pctl.startup=0.0.0.0 \ + -C bp.secure_memory=0 \ + -C cluster0.NUM_CORES=1 \ + -C cluster1.NUM_CORES=1 \ + -C cache_state_modelled=0 \ + -C bp.pl011_uart0.untimed_fifos=1 \ + -C bp.secureflashloader.fname=bl1.bin \ + -C bp.flashloader0.fname=fvp_fip.bin \ + -C bp.virtioblockdevice.image_path=mmc.bin +</pre> + +h3. Console redirection + +To redirect the console open a terminal and run + +pre. telnet 127.0.0.1 5000 + +h3. Set UEFI configuration, update kernel/ramdisk path and bootargs + +Stop the UEFI boot process and configure it for FVP models: + +<pre> +$ telnet 127.0.0.1 -debug 5000 -e ^z +Telnet escape character is 'b'. +Telnet escape character is '^Z'. +Trying 127.0.0.1... +setsockopt (SO_DEBUG): Permission denied +Connected to 127.0.0.1. +Escape character is '^Z'. + 7 seconds +[1] Linaro disk image on virtio +[2] Shell +[3] Boot Manager +Start: 2 +UEFI Interactive Shell v2.0 +EDK II +UEFI v2.40 (ARM Fixed Virtual Platform EFI May 23 2014 12:13:52, 0x00000000) +Mapping table + FS2: Alias(s):F8: + VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB) + FS0: Alias(s):F3: + MemoryMapped(0xB,0x88000000,0x8827FFFF) + FS1: Alias(s):F4: + MemoryMapped(0xB,0xFEC16000,0xFEDF987F) + FS3: Alias(s):HD12b:;BLK5: + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5)/HD(1,MBR,0x00000000,0x3F,0x41FC0) + FS4: Alias(s):HD12e2:;BLK10: + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5)/HD(4,MBR,0x00000000,0x242000,0x1BE000)/HD(2,MBR,0x00000000,0x362020,0x9DFE0) + BLK3: Alias(s): + VenHw(E7223039-5836-41E1-B542-D7EC736C5E59) + BLK0: Alias(s): + VenHw(02118005-9DA7-443A-92D5-781F022AEDBB) + BLK1: Alias(s): + VenHw(1F15DA3C-37FF-4070-B471-BB4AF12A724A) + BLK2: Alias(s): + VenHw(CC2CBF29-1498-4CDD-8171-F8B6B41D0909) + BLK4: Alias(s): + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5) +Press ESC in 1 seconds to skip startup.nsh or any other key to continue. +Shell> kernel dtb=fvp-base-gicv2-psci.dtb initrd=ramdisk.img console=ttyAMA0 amba-clcd.mode=VGA +EFI stub: Booting Linux Kernel... +[ 0.000000] Initializing cgroup subsys cpu2E873E5)/HD(3,MBR,0x00000000,0x1C2000,0x80000) +[ 0.000000] Initializing cgroup subsys cpuacct +[ 0.000000] Linux version 3.10.63-00561-g90aa783 (buildslave@x86-64-07-android) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP PREEMPT Fri Jan 23 14:41:49 CET 2015 +</pre> + +h3. Black screen + +The boot screen has been disabled to speed up booting. This means you may not see anything on the CLCD terminal for a while depending on the performance of the machine the model is running on. For example a first boot on a 2 GHz machine with 32 GB of RAM took 20 minutes. Subsequent boots should take approximately half the time to boot. + +h2. Run the Android SDK + +h3. Attach ADB + +ADB on FVP Base models are supported over network. Follow the instructions here https://wiki.linaro.org/Internal/Projects/Juice/SetupNetworkingOnModelsUsingBridges to setup networking and use adb. + +You can also run all of the standard Android SDK tools. Learn more at "http://developer.android.com/sdk/index.html":http://developer.android.com/sdk/index.html |