diff options
author | Bernard Ogden <bernie.ogden@linaro.org> | 2015-09-09 16:13:02 +0100 |
---|---|---|
committer | Bernard Ogden <bernie.ogden@linaro.org> | 2015-09-09 16:13:02 +0100 |
commit | 8c171edd9caec5a26b1487a46f57c82f94826c9e (patch) | |
tree | cce1e5f602d034977e01d440c35425236cf0c96a |
Commit apparatus.txt
Notes describing how to rebuild experimental environment.
Change-Id: I42288f6fdadfea256f50616486cbc8e54280dfe5
-rw-r--r-- | apparatus.txt | 139 |
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. |