Something went wrong on our end
-
Uwe Kindler authoredUwe Kindler authored
install.sh 4.88 KiB
#!/bin/sh
# some configuration variables - adjust them to your application
export APP_DIR=ledarray
export APP_BINARY=bbb_ledarray
DTB=bbb-ledarray-linux3.12.dtb
# some variables we need
export PROJECT_DIR=..
export BUILDROOT=/home/user/Coding/buildroot_git
export BUILDROOT_STAGING=$BUILDROOT/output/staging
BUILDROOT_IMAGES=$BUILDROOT/output/images
BOOTDIR=/media/user/BOOT
TFTP_DIR=/home/user/BBB/tftp
BUILDROOT_CETONI=/home/user/Coding/buildroot-cetoni
BBB_DIR=$BUILDROOT_CETONI/board/beaglebone
# check if SD card is properly mounted
check_sd_mount() {
if [ "$target" = "n" ]
then
return;
fi
mountpoint="/media/user"
volume="$mountpoint/BOOT"
if ! mount|grep $volume; then
echo "Volume $volume not mounted"
exit;
fi
volume="$mountpoint/LINUX"
if ! mount|grep $volume; then
echo "Volume $volume not mounted"
exit;
fi
volume="$mountpoint/DATA"
if ! mount|grep $volume; then
echo "Volume $volume not mounted"
exit;
fi
}
# some functions we need
set_sd_target_vars() {
export ROOTFS_DIR=/media/user/LINUX
export APP_PATH=$ROOTFS_DIR/$APP_DIR
}
set_nfs_target_vars() {
export ROOTFS_DIR=/home/user/BBB/rootfs
export APP_PATH=$ROOTFS_DIR/$APP_DIR
}
#------------------------------------------------------------------------------
# Install buildroot to SD or NFS
#------------------------------------------------------------------------------
install_buildroot () {
if [ ! -d "$BOOTDIR" ] && [ "$target" = "s" ]
then
echo "SD card not mounted - canceling buildroot installation"
return;
fi
# clear rootfs and boot dir
rm -r $ROOTFS_DIR/*
if [ -d "$BOOTDIR" ]
then
rm -r $BOOTDIR/*
fi
# extract root filesystem to rootfs dir
tar -xf $BUILDROOT_IMAGES/rootfs.tar -C $ROOTFS_DIR
mv $ROOTFS_DIR/boot/$DTB $ROOTFS_DIR/boot/am335x-boneblack.dtb
if [ -d "$BOOTDIR" ]
then
cp $BUILDROOT_IMAGES/MLO $BOOTDIR
cp $BUILDROOT_IMAGES/u-boot.img $BOOTDIR
cp $BBB_DIR/uEnv_zImage_Debian.txt $BOOTDIR/uEnv.txt
echo "Installing $BBB_DIR/uEnv_zImage_Debian.txt"
fi
# copy some additional helper scripts
cp $BBB_DIR/etc/wpa_supplicant.conf $ROOTFS_DIR/etc/wpa_supplicant.conf
cp -r -f $BBB_DIR/usr/bin/* $ROOTFS_DIR/usr/bin
cp -vf $BUILDROOT_CETONI/scripts/bbb-SD-eMMC-copy.sh $ROOTFS_DIR/usr/sbin/
}
#------------------------------------------------------------------------------
# Install cetoni libraries to SD or NFS
#------------------------------------------------------------------------------
install_cetoni_libs() {
# set write permissions for rootfs /usr/lib and /usr/bin for development
# system
if [ "$target" = "n" ]
then
chmod o+w $ROOTFS_DIR/usr/lib
chmod o+w $ROOTFS_DIR/usr/bin
cp -f -av $BUILDROOT_STAGING/usr/bin/*_test $ROOTFS_DIR/usr/bin
fi
# copy libraries
cp -f -av $BUILDROOT_STAGING/usr/lib/libusl* $ROOTFS_DIR/usr/lib
cp -f -av $BUILDROOT_STAGING/usr/lib/libcanoo* $ROOTFS_DIR/usr/lib
cp -f -av $BUILDROOT_STAGING/usr/lib/liblabbcan* $ROOTFS_DIR/usr/lib
cp -f -av $BUILDROOT_STAGING/usr/lib/liblabbCAN* $ROOTFS_DIR/usr/lib
cp -f -av $BUILDROOT_STAGING/usr/lib/libcsi* $ROOTFS_DIR/usr/lib
cp -f -av $BUILDROOT_STAGING/usr/lib/libled_array_api* $ROOTFS_DIR/usr/lib
}
#------------------------------------------------------------------------------
# Installs the application to SD or NFS
#------------------------------------------------------------------------------
install_app() {
echo "APP_PATH = $APP_PATH"
#mkdir -p $APP_PATH/data/embedded_linux
#mkdir -p $APP_PATH/userdata
# copy application
#cp -f -av $PROJECT_DIR/$APP_BINARY $APP_PATH
#cp -f -av $PROJECT_DIR/data/start_app.sh $APP_PATH
#cp -f -av $PROJECT_DIR/data/embedded_linux/* $APP_PATH/data/embedded_linux
#chmod 777 $APP_PATH/$APP_BINARY
# copy install script
#if [ "$target" = "s" ]
#then
# cp -f -av S45application $ROOTFS_DIR/etc/init.d/
#fi
#cp -f -av S30usb $ROOTFS_DIR/etc/init.d/
#cp -f -av S41usbgadget $ROOTFS_DIR/etc/init.d/
#cp -f -av interfaces $ROOTFS_DIR/etc/network/
}
# The script must be run as root to have access to root file system ------------
if ! id | grep -q root;
then
echo "must be run as root"
exit
fi
while true; do
echo "What do you want to install? (c=complete | a=app | b=buildroot | l=cetoni libs)"
read -p ": " installtype
case $installtype in
[c]* ) break;;
[a]* ) break;;
[b]* ) break;;
[l]* ) break;;
* ) echo "Please select a valid ID.";;
esac
done
while true; do
read -p "Where to you want to install? (s=SDCard | n=NFS): " target
case $target in
[s]* ) set_sd_target_vars; break;;
[n]* ) set_nfs_target_vars; break;;
* ) echo "Please select a valid ID.";;
esac
done
check_sd_mount
if [ "$installtype" = "b" ] || [ "$installtype" = "c" ]
then
install_buildroot
fi
if [ "$installtype" = "l" ] || [ "$installtype" = "c" ]
then
install_cetoni_libs
fi
if [ "$installtype" = "a" ] || [ "$installtype" = "c" ]
then
install_app
fi