arm-sdk

os build toolkit for various embedded devices
git clone https://git.parazyd.org/arm-sdk
Log | Files | Refs | Submodules | README | LICENSE

commit 34c55d5bfac2128ba8109171032ea7e0f409e006
parent 27e3f513618132cfdcdbff120c8eb3012ce206d3
Author: parazyd <parazyd@dyne.org>
Date:   Thu, 13 Oct 2016 10:09:59 +0200

fin ouya and add a note about it

Diffstat:
Mboards/beaglebone-black.sh | 65+++++++++++++++++++++++++++++++++++------------------------------
Dboards/example.sh | 94-------------------------------------------------------------------------------
Mboards/odroid-xu.sh | 1-
Mboards/ouya.sh | 56+++++++++++++++++++++++++++++++-------------------------
Dboards/raspberry-pi.sh | 150-------------------------------------------------------------------------------
5 files changed, 66 insertions(+), 300 deletions(-)

diff --git a/boards/beaglebone-black.sh b/boards/beaglebone-black.sh @@ -22,7 +22,7 @@ ## settings & config vars+=(device_name arch size parted_type parted_boot parted_root inittab) vars+=(gitkernel gitbranch) -arrs+=(custmodules extra_packages) +arrs+=(custmodules) device_name="beagleboneblack" arch="armhf" @@ -33,12 +33,13 @@ parted_type="dos" parted_boot="fat32 2048s 264191s" parted_root="ext4 264192s 100%" -extra_packages=() +extra_packages+=() custmodules=() gitkernel="https://github.com/beagleboard/linux" gitbranch="4.4" + prebuild() { fn prebuild req=(device_name strapdir) @@ -46,8 +47,10 @@ prebuild() { notice "executing $device_name prebuild" + enablessh write-fstab copy-zram-init + rdate-to-rclocal mkdir -p $R/tmp/kernels/$device_name } @@ -59,7 +62,7 @@ postbuild() { ## {{{ uEnv.txt notice "creating uEnv.txt file" - cat <<EOF | sudo tee ${strapdir}/boot/uEnv.txt ${TEEVERBOSE} + cat <<EOF | sudo tee ${strapdir}/boot/uEnv.txt #u-boot eMMC specific overrides; Angstrom Distribution (BeagleBone Black) 2013-06-20 kernel_file=zImage initrd_file=uInitrd @@ -91,31 +94,31 @@ EOF ## }}} ## {{{ xorg.conf notice "writing xorg.conf for future use" - cat <<EOF | sudo tee ${strapdir}/root/xorg.conf ${TEEVERBOSE} + cat <<EOF | sudo tee ${strapdir}/root/xorg.conf # For using Xorg, move this file to /etc/X11/xorg.conf Section "Monitor" - Identifier "Builtin Default Monitor" + Identifier "Builtin Default Monitor" EndSection Section "Device" - Identifier "Builtin Default fbdev Device 0" - Driver "fbdev" - Option "SWCursor" "true" + Identifier "Builtin Default fbdev Device 0" + Driver "fbdev" + Option "SWCursor" "true" EndSection Section "Screen" - Identifier "Builtin Default fbdev Screen 0" - Device "Builtin Default fbdev Device 0" - Monitor "Builtin Default Monitor" - DefaultDepth 16 - # Comment out the above and uncomment the below if using a - # bbb-view or bbb-exp - #DefaultDepth 24 + Identifier "Builtin Default fbdev Screen 0" + Device "Builtin Default fbdev Device 0" + Monitor "Builtin Default Monitor" + DefaultDepth 16 + # Comment out the above and uncomment the below if using a + # bbb-view or bbb-exp + #DefaultDepth 24 EndSection Section "ServerLayout" - Identifier "Builtin Default Layout" - Screen "Builtin Default fbdev Screen 0" + Identifier "Builtin Default Layout" + Screen "Builtin Default fbdev Screen 0" EndSection EOF ## }}} @@ -124,6 +127,8 @@ EOF sudo wget -c \ https://raw.github.com/RobertCNelson/tools/master/scripts/beaglebone-black-g-ether-load.sh \ -O $strapdir/root/bbb-ether-load.sh + + postbuild-clean } build_kernel_armhf() { @@ -139,13 +144,13 @@ build_kernel_armhf() { get-kernel-sources pushd $R/tmp/kernels/$device_name/${device_name}-linux - ARCH=arm make bb.org_defconfig - make $MAKEOPTS || zerr - sudo cp $CPVERBOSE arch/arm/boot/zImage $strapdir/boot/zImage - sudo mkdir -p $strapdir/boot/dtbs - sudo cp $CPVERBOSE arch/arm/boot/dts/*.dtb $strapdir/boot/dtbs/ - sudo -E PATH="$PATH" \ - make INSTALL_MOD_PATH=$strapdir modules_install || zerr + ARCH=arm make bb.org_defconfig + make $MAKEOPTS || zerr + sudo cp $CPVERBOSE arch/arm/boot/zImage $strapdir/boot/zImage + sudo mkdir -p $strapdir/boot/dtbs + sudo cp $CPVERBOSE arch/arm/boot/dts/*.dtb $strapdir/boot/dtbs/ + sudo -E PATH="$PATH" \ + make INSTALL_MOD_PATH=$strapdir modules_install || zerr popd sudo rm -rf $strapdir/lib/firmware @@ -153,12 +158,12 @@ build_kernel_armhf() { sudo cp $CPVERBOSE -ra $R/tmp/linux-firmware $strapdir/lib/firmware pushd $R/tmp/kernels/$device_name/${device_name}-linux - sudo -E PATH="$PATH" \ - make INSTALL_MOD_PATH=$strapdir firmware_install || zerr - make mrproper - ARCH=arm make bb.org_defconfig - sudo -E PATH="$PATH" \ - make modules_prepare || zerr + sudo -E PATH="$PATH" \ + make INSTALL_MOD_PATH=$strapdir firmware_install || zerr + make mrproper + ARCH=arm make bb.org_defconfig + sudo -E PATH="$PATH" \ + make modules_prepare || zerr popd postbuild || zerr diff --git a/boards/example.sh b/boards/example.sh @@ -1,94 +0,0 @@ -#!/usr/bin/env zsh -# Copyright (c) 2016 Dyne.org Foundation -# arm-sdk is written and maintained by Ivan J. <parazyd@dyne.org> -# -# This file is part of arm-sdk -# -# This source code is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this source code. If not, see <http://www.gnu.org/licenses/>. - -## example kernel build script - -## settings & config -vars+=(device_name arch size parted_boot parted_root inittab) -vars+=(gitkernel gitbranch) -arrs+=(custmodules extra_packages) - -## name of your board -device_name="myboard" -## cpu architecture of the board -arch="armhf" -## size of the image file in MB -size=1337 -## board-specific inittab entry -inittab="T0:23:respawn:/sbin/agetty -L ttyAMA0 115200 vt100" - -## partition scheme for parted to use -parted_boot="fat32 0 64" -parted_root="ext4 64 -1" - -## extra packages you want installed -extra_packages=(wpasupplicant) -## modules you want loaded at boot -custmodules=() # add the snd module here perhaps - -## git repository of the kernel you want -gitkernel="https://github.com/raspberrypi/linux.git" -gitbranch="rpi-4.4.y" - -## things you need to do before building the kernel -prebuild() { - fn prebuild - notice "executing $device_name prebuild" - return 0 -} - -## things you need to do after building the kernel -postbuild() { - fn postbuild - notice "executing $device_name postbuild" - return 0 -} - -## kernel build function -build_kernel_armhf() { - fn build_kernel_armhf - req=(R arch device_name gitkernel gitbranch MAKEOPTS rpifirmware) - req+=(workdir strapdir) - ckreq || return 1 - - prebuild - - notice "building $arch kernel" - - act "grabbing kernel sources" - mkdir -p $R/tmp/kernels/$device_name - - git clone --depth 1 \ - $gitkernel \ - -b $gitbranch \ - $R/tmp/kernels/$device_name/${device_name}-linux - - pushd $R/tmp/kernels/$device_name/${device_name}-linux - make bcm2709_defconfig ## take care of your .config file here - make $MAKEOPTS - sudo make INSTALL_MOD_PATH=$strapdir modules_install - popd -are - - sudo rm -rf $strapdir/lib/firmware - get-kernel-firmware - sudo cp -ra $R/tmp/linux-firmware $strapdir/lib/firmware - - postbuild -} diff --git a/boards/odroid-xu.sh b/boards/odroid-xu.sh @@ -54,7 +54,6 @@ prebuild() { enablessh write-fstab copy-zram-init - rdate-to-rclocal mkdir -p $R/tmp/kernels/$device_name diff --git a/boards/ouya.sh b/boards/ouya.sh @@ -22,7 +22,7 @@ ## settings & config vars+=(device_name arch size parted_boot parted_root inittab) vars+=(gitkernel gitbranch) -arrs+=(custmodules extra_packages) +arrs+=(custmodules) device_name="ouya" arch="armhf" @@ -34,7 +34,7 @@ parted_type="dos" parted_boot="fat32 2048s 264191s" parted_root="ext4 264192s 100%" -extra_packages=(libasound2 libglib2.0-0 libgstreamer-plugins-base0.10-0 libxv1) +extra_packages+=(libasound2 libglib2.0-0 libgstreamer-plugins-base0.10-0 libxv1) custmodules=() @@ -45,8 +45,20 @@ prebuild() { notice "executing $device_name prebuild" - write-fstab + enablessh + #write-fstab copy-zram-init + + cat <<EOF | sudo tee ${strapdir}/etc/fstab +# <file system> <mount point> <type> <options> <dump> <pass> +/dev/sda2 / ext4 noatime,errors=remount-ro 0 1 +tmpfs /tmp tmpfs defaults 0 0 +EOF + + notice "copying some kernel modules" + sudo cp $CPVERBOSE -ra $R/extra/ouya/3.1.10-tk3+ $strapdir/lib/modules/ + + print 1 | sudo tee $strapdir/boot/keep } postbuild() { @@ -59,17 +71,20 @@ postbuild() { sudo mkdir -p $strapdir/ouya sudo cp $CPVERBOSE $R/extra/ouya/*.deb $strapdir/ouya/ - cat <<EOF | sudo tee ${strapdir}/ouya.sh ${TEEVERBOSE} + cat <<EOF | sudo tee ${strapdir}/ouya.sh #!/bin/sh for deb in /ouya/*.deb; do - dpkg -i $deb + dpkg -i \$deb + apt-get -f --yes --force-yes install done rm -rf /ouya rm -f /ouya.sh EOF sudo chmod +x $strapdir/ouya.sh - sudo chroot $strapdir /ouya.sh + sudo -E chroot $strapdir /ouya.sh + + postbuild-clean } build_kernel_armhf() { fn build_kernel_armhf @@ -81,26 +96,17 @@ build_kernel_armhf() { prebuild || zerr cat <<EOM - ############################################################################# - # This device is a bit strange, because I do not want people to flash it on # - # the device's NAND. You will brick it. Instead, we use the device's kernel # - # and boot this image from a USB flash drive. # - # # - # Consult doc/quirks.md to find out how to boot this. # - # # - # https://github.com/kulve/tegra-debian # - # http://tuomas.kulve.fi/blog/2013/09/12/debian-on-ouya-all-systems-go/ # - ############################################################################# + ############################################################################# + # This device is a bit strange, because I do not want people to flash it on # + # the device's NAND. You will brick it. Instead, we use the device's kernel # + # and boot this image from a USB flash drive. # + # # + # Consult doc/quirks.md to find out how to boot this. # + # # + # https://github.com/kulve/tegra-debian # + # http://tuomas.kulve.fi/blog/2013/09/12/debian-on-ouya-all-systems-go/ # + ############################################################################# EOM - cat <<EOF | sudo tee ${strapdir}/etc/fstab ${TEEVERBOSE} -# <file system> <mount point> <type> <options> <dump> <pass> -/dev/sda2 / ext4 noatime,errors=remount-ro 0 1 -tmpfs /tmp tmpfs defaults 0 0 -EOF - - notice "copying some kernel modules" - sudo cp $CPVERBOSE -ra $R/extra/ouya/3.1.10-tk3+ $strapdir/lib/modules/ - postbuild || zerr } diff --git a/boards/raspberry-pi.sh b/boards/raspberry-pi.sh @@ -1,150 +0,0 @@ -#!/usr/bin/env zsh -# Copyright (c) 2016 Dyne.org Foundation -# arm-sdk is written and maintained by Ivan J. <parazyd@dyne.org> -# -# This file is part of arm-sdk -# -# This source code is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this source code. If not, see <http://www.gnu.org/licenses/>. - -## kernel build script for Raspberry Pi 2/3 boards - -## settings & config -vars+=(device_name arch size parted_type parted_boot parted_root inittab) -vars+=(gitkernel gitbranch rpifirmware) -arrs+=(custmodules extra_packages) - -device_name="raspi" -arch="armhf" -size=1337 -inittab="T0:23:respawn:/sbin/agetty -L ttyAMA0 115200 vt100" - -parted_type="dos" -parted_boot="fat32 0 64" -parted_root="ext4 64 -1" - -extra_packages=(wpasupplicant rdate) -custmodules=() # add the snd module here perhaps - -gitkernel="https://github.com/raspberrypi/linux.git" -gitbranch="rpi-4.4.y" -rpifirmware="https://github.com/raspberrypi/firmware.git" - -prebuild() { - fn prebuild - req=(device_name strapdir) - ckreq || return 1 - - notice "executing $device_name prebuild" - - write-fstab - copy-zram-init - - mkdir -p $R/tmp/kernels/$device_name -} - -postbuild() { - fn postbuild - - notice "executing $device_name postbuild" - - ## {{{ apt.sources.list - cat <<EOF | sudo tee -a ${strapdir}/etc/apt/sources.list ${TEEVERBOSE} - -## raspbian repositories needed for certain packages -deb http://archive.raspbian.org/raspbian jessie main contrib non-free rpi firmware -#deb-src http://archive.raspbian.org/raspbian jessie main contrib non-free rpi firmware - -## for omxplayer -deb http://linux.subogero.com/deb / - -deb http://pipplware.pplware.pt/pipplware/dists/jessie/main/binary / -EOF - ## }}} - - notice "creating cmdline.txt" - cat <<EOF | sudo tee ${strapdir}/boot/cmdline.txt ${TEEVERBOSE} -dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0 quiet -EOF - - notice "creating config.txt" - cat <<EOF | sudo tee ${strapdir}/boot/config.txt ${TEEVERBOSE} -## memory shared with the GPU -gpu_mem=64 - -dtparam=audio=on - -max_usb_current=1 -EOF - - ## TODO: remove systemd merda from raspi-config and add here - - notice "installing raspberry pi 3 firmware for bt/wifi" - sudo mkdir -p $strapdir/lib/firmware/brcm - sudo cp $CPVERBOSE $R/extra/rpi3/brcmfmac43430-sdio.txt $strapdir/lib/firmware/brcm/ - sudo cp $CPVERBOSE $R/extra/rpi3/brcmfmac43430-sdio.bin $strapdir/lib/firmware/brcm/ - - cat <<EOF | sudo tee ${strapdir}/postbuild ${TEEVERBOSE} - -#!/bin/sh -apt-get update -apt-get upgrade -rm -f /postbuild -rm -f /usr/bin/${qemu_bin} -EOF - chmod +x $strapdir/postbuild || zerr - chroot $strapdir /postbuild || zerr -} - -build_kernel_armhf() { - fn build_kernel_armhf - req=(R arch device_name gitkernel gitbranch MAKEOPTS rpifirmware) - req+=(strapdir) - ckreq || return 1 - - notice "building $arch kernel" - - prebuild || zerr - - get-kernel-sources - pushd $R/tmp/kernels/$device_name/${device_name}-linux - make bcm2709_defconfig - make $MAKEOPTS || zerr - sudo -E PATH="$PATH" \ - make INSTALL_MOD_PATH=$strapdir modules_install || zerr - popd - - clone-git $rpifirmware "$R/tmp/kernels/$device_name/${device_name}-firmware" - sudo cp $CPVERBOSE -rf $R/tmp/kernels/$device_name/${device_name}-firmware/boot/* $strapdir/boot/ - - pushd $R/tmp/kernels/$device_name/${device_name}-linux - sudo perl scripts/mkknlimg --dtok arch/arm/boot/zImage $strapdir/boot/kernel7.img - sudo cp $CPVERBOSE "arch/arm/boot/dts/bcm*.dtb" $strapdir/boot/ - sudo cp $CPVERBOSE "arch/arm/boot/dts/overlays/*overlay*.dtb" $strapdir/boot/overlays/ - popd - - sudo rm -rf $strapdir/lib/firmware - get-kernel-firmware - sudo cp $CPVERBOSE -ra $R/tmp/linux-firmware $strapdir/lib/firmware - - pushd $R/tmp/kernels/$device_name/${device_name}-linux - sudo -E PATH="$PATH" \ - make INSTALL_MOD_PATH=$strapdir firmware_install || zerr - #make mrproper - make bcm2709_defconfig - sudo -E PATH="$PATH" \ - make modules_prepare || zerr - popd - - postbuild || zerr -}