Add initial support for building arm BEAGLEBONE images.
- In arm/release.sh: - Move crochet work directory creation to occur earlier, since its parent directory is needed to store a fetched u-boot version. - Add a before_build() function as a quick hack to run board-specific (kernel configuration specific, really) commands, if any. - For the BEAGLEBONE kernel, a specific version of u-boot source is needed. Fetch the source in before_build() for this case. Unfortunately, there are no checksums available (that I can find) for these sources. For a quick solution, add the hard-coded sha256 of the tarball, and fetch from my public_html/ directory. A more permanent solution for this needs to be found. Add initial release.sh and crochet configuration files for the BEAGLEBONE build. Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
b479fd538c
commit
d725697e06
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/user/gjb/hacking/release-embedded/; revision=261139
36
release/arm/BEAGLEBONE.conf
Normal file
36
release/arm/BEAGLEBONE.conf
Normal file
@ -0,0 +1,36 @@
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# This is only supported on amd64 right now. It may work on
|
||||
# i386, but I do not have the hardware to test, so until I get
|
||||
# a VM set up to make sure, be cautious and assume it will not.
|
||||
if [ "$(uname -p)" != "amd64" ] || [ "$(uname -m)" != "amd64" ]; then
|
||||
echo "This is only supported on amd64 right now."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Build chroot configuration
|
||||
TARGET="amd64"
|
||||
TARGET_ARCH="amd64"
|
||||
SVNROOT="svn://svn.FreeBSD.org"
|
||||
SRCBRANCH="base/head@rHEAD"
|
||||
DOCBRANCH="doc/head@rHEAD"
|
||||
PORTBRANCH="ports/head@rHEAD"
|
||||
EMBEDDED_WORLD_FLAGS="WITH_GCC=1"
|
||||
NODOC=yes
|
||||
|
||||
# Build target configuration
|
||||
# Since this file is sourced by a script that runs another
|
||||
# script, these must be exported.
|
||||
set -a
|
||||
CHROOTDIR="/scratch"
|
||||
EMBEDDEDBUILD=1
|
||||
EMBEDDEDPORTS="lang/python textproc/gsed"
|
||||
XDEV="arm"
|
||||
XDEV_ARCH="arm"
|
||||
KERNEL="BEAGLEBONE"
|
||||
CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
|
||||
CROCHETBRANCH="trunk"
|
||||
set +a
|
||||
|
@ -10,6 +10,26 @@
|
||||
|
||||
set -e
|
||||
|
||||
before_build() {
|
||||
case ${KERNEL} in
|
||||
BEAGLEBONE)
|
||||
KNOWNHASH="4150e5a4480707c55a8d5b4570262e43af68d8ed3bdc0a433d8e7df47989a69e"
|
||||
chroot ${CHROOTDIR} fetch -o /tmp/crochet/u-boot-2013.04.tar.bz2 \
|
||||
http://people.freebsd.org/~gjb/u-boot-2013.04.tar.bz2
|
||||
UBOOT_HASH="$(sha256 -q ${CHROOTDIR}/tmp/crochet/u-boot-2013.04.tar.bz2)"
|
||||
if [ "${UBOOT_HASH}" != "${KNOWNHASH}" ]; then
|
||||
echo "Checksum mismatch! Exiting now."
|
||||
exit 1
|
||||
fi
|
||||
chroot ${CHROOTDIR} tar xf /tmp/crochet/u-boot-2013.04.tar.bz2 \
|
||||
-C /tmp/crochet/
|
||||
;;
|
||||
*)
|
||||
# Fallthrough.
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_crochet() {
|
||||
chroot ${CHROOTDIR} svn co -q ${CROCHETSRC}/${CROCHETBRANCH} \
|
||||
/tmp/crochet
|
||||
@ -46,9 +66,10 @@ main() {
|
||||
BATCH=1 FORCE_PKG_REGISTER=1 install clean distclean
|
||||
done
|
||||
|
||||
mkdir -p ${CHROOTDIR}/tmp/crochet/work
|
||||
before_build
|
||||
install_crochet
|
||||
install_uboot
|
||||
mkdir -p ${CHROOTDIR}/tmp/crochet/work
|
||||
eval chroot ${CHROOTDIR} /bin/sh /tmp/crochet/crochet.sh \
|
||||
-c /tmp/external/${XDEV}/crochet-${KERNEL}.conf
|
||||
}
|
||||
|
27
release/tools/arm/crochet-BEAGLEBONE.conf
Normal file
27
release/tools/arm/crochet-BEAGLEBONE.conf
Normal file
@ -0,0 +1,27 @@
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# This is the configuration file for use with crochet to produce
|
||||
# FreeBSD BeagleBone images.
|
||||
|
||||
board_setup BeagleBone
|
||||
option ImageSize 1gb
|
||||
option AutoSize
|
||||
|
||||
export MAKEOBJDIRPREFIX=/usr/obj
|
||||
FREEBSD_SRC=/usr/src
|
||||
__MAKE_CONF=/dev/null
|
||||
SRCCONF=/dev/null
|
||||
WORKDIR=/usr/obj
|
||||
_BRANCH=$(make -C ${FREEBSD_SRC}/release -V BRANCH)
|
||||
_REVISION=$(make -C ${FREEBSD_SRC}/release -V REVISION)
|
||||
KERNCONF=BEAGLEBONE
|
||||
FREEBSD_BUILDWORLD_EXTRA_ARGS=""
|
||||
FREEBSD_INSTALLWORLD_EXTRA_ARGS=""
|
||||
FREEBSD_BUILDKERNEL_EXTRA_ARGS=""
|
||||
FREEBSD_INSTALLKERNEL_EXTRA_ARGS=""
|
||||
FREEBSD_WORLD_EXTRA_ARGS=""
|
||||
FREEBSD_KERNEL_EXTRA_ARGS=""
|
||||
FREEBSD_EXTRA_ARGS=""
|
||||
IMG=${WORKDIR}/FreeBSD-${_REVISION}-${_BRANCH}-${KERNCONF}.img
|
Loading…
Reference in New Issue
Block a user