summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Ogden <bernie.ogden@linaro.org>2015-09-09 16:13:02 +0100
committerBernard Ogden <bernie.ogden@linaro.org>2015-09-09 16:13:02 +0100
commit8c171edd9caec5a26b1487a46f57c82f94826c9e (patch)
treecce1e5f602d034977e01d440c35425236cf0c96a
Commit apparatus.txt
Notes describing how to rebuild experimental environment. Change-Id: I42288f6fdadfea256f50616486cbc8e54280dfe5
-rw-r--r--apparatus.txt139
1 files changed, 139 insertions, 0 deletions
diff --git a/apparatus.txt b/apparatus.txt
new file mode 100644
index 0000000..56d89a1
--- /dev/null
+++ b/apparatus.txt
@@ -0,0 +1,139 @@
+Host: Debian Jessie
+Target: Juno r0, running firmware/filesystem based on 15.06 Linaro firmware release and 15.03 openembedded
+
+These instructions derived from:
+https://releases.linaro.org/15.06/members/arm/platforms/
+http://releases.linaro.org/openembedded/aarch64/15.07/
+
+Install Required Host Packages
+==============================
+sudo apt-get install libsdl-dev chrpath acpica-tools bc bison build-essential curl flex g++-multilib gcc-multilib genext2fs git gperf iasl libc6:i386 libstdc++6:i386 libncurses5:i386 libxml2-utils make openjdk-7-jdk python python-mako uuid-dev wget zlib1g:i386 zlib1g-dev:i386 zip
+
+
+Set Up Host Work Area
+=====================
+
+mkdir juno
+cd juno
+
+mkdir bin
+cd bin
+wget http://releases.linaro.org/14.11/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz
+tar xf gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz
+curl https://storage.googleapis.com/git-repo-downloads/repo > repo
+sha1sum repo #check version - I have 1.21. See https://source.android.com/source/downloading.html.
+chmod a+x repo
+cd -
+export PATH="`pwd`"/bin:""`pwd`"/bin/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/bin:${PATH}"
+
+#GET FIRMWARE
+mkdir workspace-latest
+cd workspace-latest
+repo init -u https://git.linaro.org/landing-teams/working/arm/manifest -b 15.06 -m pinned-latest.xml #get manifest. -u: repository, -b: branch, -m manifest file
+repo sync -j 2
+cd -
+
+cd workspace-latest/linux
+git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/firmware/linux
+git fetch noise-experiment
+git checkout -b juno noise-experiment/juno #get local patch(es)
+cd -
+
+cd workspace-latest/uefi/edk2
+git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/edk2
+git fetch noise-experiment
+git checkout -b juno noise-experiment/juno #get local patch(es)
+#Change commit e9b4c2f37ac8fdeea381904a8d761a1ec3bd2da2 to have the UUID for the (USB disk partition) that will contain your rootfs
+cd -
+
+cd workspace-latest/build-scripts
+git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/firmware/build-scripts
+git fetch noise-experiment
+git checkout -b juno noise-experiment/juno #get local patch(es)
+cd -
+
+#Following repositories are duplicated at https://git.linaro.org/people/bernie.ogden/juno-bringup
+#They have no local patches, just protect against unlikely event of something changing upstream
+for x in manifests repo; do
+ cd workspace-latest/.repo/$x
+ git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/repo/$x
+ git fetch noise-experiment
+ git checkout -b juno noise-experiment/juno
+ cd -
+done
+for x in arm-tf ramdisk recovery build-scripts u-boot uefi/uefi-tools uefi/edk2 model-scripts busybox; do
+ cd workspace-latest/$x
+ git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/$x
+ git fetch noise-experiment
+ git checkout -b juno noise-experiment/juno
+ cd -
+done
+
+#BUILD FIRMWARE
+workspace-latest/build-scripts/build-all.sh juno-oe
+workspace-latest/build-scripts/build-all.sh juno-oe package
+
+#GET FILESYSTEM
+mkdir openembedded
+cd openembedded
+git clone -b release-15.03 https://git.linaro.org/openembedded/jenkins-setup.git
+sudo jenkins-setup/pre-build-root-install-dependencies.sh
+jenkins-setup/init-and-build.sh
+cd -
+
+cd openembedded/meta-linaro
+git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/meta-linaro
+git fetch noise-experiment
+git checkout -b juno noise-experiment/juno
+#Note that you'll need to replace the public key in commit 2ab2039 with one that you have the corresponding private key for.
+cd -
+
+cd openembedded/openembedded-core
+git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/openembedded-core
+git fetch noise-experiment
+git checkout -b juno noise-experiment/juno
+cd -
+
+#Following repositories are duplicated at https://git.linaro.org/people/bernie.ogden/juno-bringup
+#They have no local patches, just protect against unlikely event of something changing upstream
+for x in manifests repo; do
+ cd openembedded/.repo/$x
+ git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/_oe_/repo/$x
+ git fetch noise-experiment
+ git checkout -b juno noise-experiment/juno
+ cd -
+done
+for x in meta-openembedded meta-browser jenkins-setup meta-virtualization openembedded-core/bitbake; do
+ cd openembedded/$x
+ git remote add noise-experiment https://git.linaro.org/people/bernie.ogden/juno-bringup/$x
+ git fetch noise-experiment
+ git checkout -b juno noise-experiment/juno
+ cd -
+done
+
+#BUILD FILESYSTEM
+cd openembedded/openembedded-core
+. oe-init-build-env ../build
+MACHINE=noise-experiment-juno bitbake linaro-image-toolchain-benchmark
+#Generates a filesystem requiring key authentication for ssh access (as root user). Password access possible over serial port. root has no password.
+cd ..
+
+#INSTALL FIRMWARE
+#Connect up the USB configuration port to your build system whereby the MMC which populates the NOR flash at boot will be mounted as a new drive
+#Assuming you have mounted it at /mnt:
+#TAKE CARE WITH THESE COMMANDS
+#sudo rm -rf /mnt/* /mnt/.*
+#sudo cp -r workspace-latest/recovery/* /mnt
+#sudo cp workspace-latest/output/juno-oe/uefi/* /mnt/SOFTWARE
+#sudo umount /mnt
+
+#INSTALL ROOT FILESYSTEM
+#On some USB drive partition, which I am assuming is mounted at /mnt and is empty:
+#(Mine had an ext4 filesystem)
+#TAKE CARE WITH THESE COMMANDS:
+#sudo tar xf openembedded/build/tmp-glibc/deploy/images/noise-experiment-juno/linaro-image-toolchain-benchmark-noise-experiment-juno-*.rootfs.tar.gz -C /mnt
+#sudo cp openembedded/build/tmp-glibc/deploy/images/noise-experiment-juno/linaro-image-toolchain-benchmark-noise-experiment-juno-* /mnt/home/root #To have a record of what the filesystem is installed on the filesystem
+#sudo umount /mnt
+
+
+Then just plug the USB drive into the Juno and power-cycle. Firmware will be updated, then system should boot.