tadd bbb - arm-sdk - os build toolkit for various embedded devices HTML git clone https://git.parazyd.org/arm-sdk DIR Log DIR Files DIR Refs DIR Submodules DIR README DIR LICENSE --- DIR commit 0f97ddba04afdabeffd9cfc70e7874dd33a62636 DIR parent cefb557ec56d626789dd475b23535ab8fbe9b303 HTML Author: parazyd <parazyd@dyne.org> Date: Fri, 30 Sep 2016 20:22:08 +0200 add bbb Diffstat: A boards/beaglebone-black.sh | 160 +++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+), 0 deletions(-) --- DIR diff --git a/boards/beaglebone-black.sh b/boards/beaglebone-black.sh t@@ -0,0 +1,160 @@ +#!/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 BeagleBone Black boards + +## settings & config +vars+=(device_name arch size parted_type parted_boot parted_root inittab) +vars+=(gitkernel gitbranch) +arrs+=(custmodules extra_packages) + +device_name="beagleboneblack" +arch="armhf" +size=1666 +inittab="T1:12345:respawn:/sbin/agetty 115200 ttyO0 vt100" + +parted_type="dos" +parted_boot="fat32 2048s 264191s" +parted_root="ext4 264192s 100%" + +extra_packages=() +custmodules=() + +gitkernel="https://github.com/beagleboard/linux" +gitbranch="4.4" + +prebuild() { + fn prebuild + req=(device_name strapdir) + ckreq || return 1 + + notice "executing $device_name prebuild" + + write-fstab +} + +postbuild() { + fn postbuild + + notice "executing $device_name postbuild" + + notice "creating uEnv.txt file" + 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 + +loadzimage=load mmc \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file} +loadinitrd=load mmc \${mmcdev}:\${mmcpart} 0x81000000 \${initrd_file}; setenv initrd_size \${filesize} +loadfdt=load mmc \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile} +# + +console=ttyO0,115200n8 +mmcroot=/dev/mmcblk0p2 rw net.ifnames=0 +mmcrootfstype=ext4 rootwait fixrtc + +##To disable HDMI/eMMC... +#optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN,BB-BONE-EMMC-2G + +##3.1MP Camera Cape +#optargs=capemgr.disable_partno=BB-BONE-EMMC-2G + +mmcargs=setenv bootargs console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} \${optargs} + +#zImage: +uenvcmd=run loadzimage; run loadfdt; run mmcargs; bootz \${loadaddr} - \${fdtaddr} + +#zImage + uInitrd: where uInitrd has to be generated on the running system +#boot_fdt=run loadzimage; run loadinitrd; run loadfdt +#uenvcmd=run boot_fdt; run mmcargs; bootz \${loadaddr} 0x81000000:\${initrd_size} \${fdtaddr} +EOF + + notice "writing xorg.conf for future use" + 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" +EndSection + +Section "Device" + 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 +EndSection + +Section "ServerLayout" + Identifier "Builtin Default Layout" + Screen "Builtin Default fbdev Screen 0" +EndSection +EOF +} + +build_kernel_armhf() { + fn build_kernel_armhf + req=(R arch device_name gitkernel gitbranch MAKEOPTS) + req+=(strapdir) + req+=(loopdevice) + ckreq || return 1 + + prebuild || zerr + + notice "building $arch kernel" + mkdir -p $R/tmp/kernels/$device_name + + get-kernel-sources + pushd $R/tmp/kernels/$device_name/${device_name}-linux + ARCH=arm make bb.org_defconfig + make $MAKEOPTS + sudo cp arch/arm/boot/zImage $strapdir/boot/zImage + sudo mkdir -p $strapdir/boot/dtbs + sudo cp arch/arm/boot/dts/*.dtb $strapdir/boot/dtbs/ + sudo -E PATH="$PATH" \ + make INSTALL_MOD_PATH=$strapdir modules_install ## this replaces make-kernel-modules + 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 + make mrproper + ARCH=arm make bb.org_defconfig + sudo -E PATH="$PATH" \ + make modules_prepare + popd + + notice "grabbing script for using usb as ethernet device" + 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 || zerr +}