Cleanup in code and package lists

This commit is contained in:
zador-blood-stained 2016-08-30 19:25:32 +03:00
parent f76c5e7345
commit e6903c1fd4
12 changed files with 122 additions and 233 deletions

View file

@ -30,13 +30,13 @@ compile_uboot()
exit_with_error "Error building u-boot: source directory does not exist" "$BOOTSOURCEDIR" exit_with_error "Error building u-boot: source directory does not exist" "$BOOTSOURCEDIR"
fi fi
# read uboot version to variable $VER # read uboot version
grab_version "$SOURCES/$BOOTSOURCEDIR" "VER" local version=$(grab_version "$SOURCES/$BOOTSOURCEDIR")
# create patch for manual source changes in debug mode # create patch for manual source changes in debug mode
[[ $DEBUG_MODE == yes ]] && userpatch_create "u-boot" [[ $DEBUG_MODE == yes ]] && userpatch_create "u-boot"
display_alert "Compiling uboot" "$VER" "info" display_alert "Compiling uboot" "$version" "info"
display_alert "Compiler version" "${UBOOT_COMPILER}gcc $(eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} ${UBOOT_COMPILER}gcc -dumpversion)" "info" display_alert "Compiler version" "${UBOOT_COMPILER}gcc $(eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} ${UBOOT_COMPILER}gcc -dumpversion)" "info"
cd $SOURCES/$BOOTSOURCEDIR cd $SOURCES/$BOOTSOURCEDIR
@ -88,7 +88,7 @@ compile_uboot()
Installed-Size: 1 Installed-Size: 1
Section: kernel Section: kernel
Priority: optional Priority: optional
Description: Uboot loader $VER Description: Uboot loader $version
END END
# copy files to build directory # copy files to build directory
@ -135,13 +135,13 @@ compile_kernel()
exit_with_error "Error building kernel: source directory does not exist" "$LINUXSOURCEDIR" exit_with_error "Error building kernel: source directory does not exist" "$LINUXSOURCEDIR"
fi fi
# read kernel version to variable $VER # read kernel version
grab_version "$SOURCES/$LINUXSOURCEDIR" "VER" local version=$(grab_version "$SOURCES/$LINUXSOURCEDIR")
# create patch for manual source changes in debug mode # create patch for manual source changes in debug mode
[[ $DEBUG_MODE == yes ]] && userpatch_create "kernel" [[ $DEBUG_MODE == yes ]] && userpatch_create "kernel"
display_alert "Compiling $BRANCH kernel" "$VER" "info" display_alert "Compiling $BRANCH kernel" "$version" "info"
display_alert "Compiler version" "${KERNEL_COMPILER}gcc $(eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} ${KERNEL_COMPILER}gcc -dumpversion)" "info" display_alert "Compiler version" "${KERNEL_COMPILER}gcc $(eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} ${KERNEL_COMPILER}gcc -dumpversion)" "info"
cd $SOURCES/$LINUXSOURCEDIR/ cd $SOURCES/$LINUXSOURCEDIR/
@ -186,7 +186,7 @@ compile_kernel()
# different packaging for 4.3+ # different packaging for 4.3+
KERNEL_PACKING="deb-pkg" KERNEL_PACKING="deb-pkg"
IFS='.' read -a array <<< "$VER" IFS='.' read -a array <<< "$version"
if (( "${array[0]}" == "4" )) && (( "${array[1]}" >= "3" )); then if (( "${array[0]}" == "4" )) && (( "${array[1]}" >= "3" )); then
KERNEL_PACKING="bindeb-pkg" KERNEL_PACKING="bindeb-pkg"
fi fi
@ -335,35 +335,36 @@ install_external_applications()
#-------------------------------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------------------------------
# Install external applications example # Install external applications example
#-------------------------------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------------------------------
display_alert "Installing extra applications and drivers" "" "info" display_alert "Installing extra applications and drivers" "" "info"
for plugin in $SRC/lib/extras/*.sh; do for plugin in $SRC/lib/extras/*.sh; do
source $plugin source $plugin
done done
# MISC5 = sunxi display control # sunxi display changer
if [[ -n $MISC5_DIR && $BRANCH != next && $LINUXSOURCEDIR == *sunxi* ]]; then if [[ $BRANCH != next && $LINUXSOURCEDIR == *sunxi* ]]; then
cd "$SOURCES/$MISC5_DIR" cd "$SOURCES/$MISC5_DIR"
cp "$SOURCES/$LINUXSOURCEDIR/include/video/sunxi_disp_ioctl.h" . cp "$SOURCES/$LINUXSOURCEDIR/include/video/sunxi_disp_ioctl.h" .
make clean >/dev/null make clean >/dev/null
make ARCH=$ARCHITECTURE CC="${KERNEL_COMPILER}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1 make ARCH=$ARCHITECTURE CC="${KERNEL_COMPILER}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1
install -m 755 a10disp "$CACHEDIR/sdcard/usr/local/bin" install -m 755 a10disp "$CACHEDIR/sdcard/usr/local/bin"
fi fi
# MISC5 = sunxi display control / compile it for sun8i just in case sun7i stuff gets ported to sun8i and we're able to use it # sunxi display changer
if [[ -n $MISC5_DIR && $BRANCH != next && $LINUXSOURCEDIR == *sun8i* ]]; then # compile it for sun8i just in case sun7i stuff gets ported to sun8i and we're able to use it
cd "$SOURCES/$MISC5_DIR" #if [[ $BRANCH != next && $LINUXSOURCEDIR == *sun8i* ]]; then
wget -q "https://raw.githubusercontent.com/linux-sunxi/linux-sunxi/sunxi-3.4/include/video/sunxi_disp_ioctl.h" # cd "$SOURCES/$MISC5_DIR"
make clean >/dev/null 2>&1 # wget -q "https://raw.githubusercontent.com/linux-sunxi/linux-sunxi/sunxi-3.4/include/video/sunxi_disp_ioctl.h"
make ARCH=$ARCHITECTURE CC="${KERNEL_COMPILER}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1 # make clean >/dev/null 2>&1
install -m 755 a10disp "$CACHEDIR/sdcard/usr/local/bin" # make ARCH=$ARCHITECTURE CC="${KERNEL_COMPILER}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1
fi # install -m 755 a10disp "$CACHEDIR/sdcard/usr/local/bin"
#fi
# h3disp for sun8i/3.4.x # h3disp for sun8i/3.4.x
if [[ $LINUXFAMILY == sun8i && $BRANCH == default ]]; then if [[ $LINUXFAMILY == sun8i && $BRANCH == default ]]; then
install -m 755 "$SRC/lib/scripts/h3disp" "$CACHEDIR/sdcard/usr/local/bin" install -m 755 "$SRC/lib/scripts/h3disp" "$CACHEDIR/sdcard/usr/local/bin"
install -m 755 "$SRC/lib/scripts/h3consumption" "$CACHEDIR/sdcard/usr/local/bin" install -m 755 "$SRC/lib/scripts/h3consumption" "$CACHEDIR/sdcard/usr/local/bin"
fi fi
} }
# write_uboot <loopdev> # write_uboot <loopdev>

View file

@ -173,14 +173,14 @@ uart_rx = port:PG07<2><1><default><default>
[uart2] [uart2]
uart_used = 1 uart_used = 1
uart_port = 2 uart_port = 2
uart_type = 4 uart_type = 2
uart_tx = port:PA00<2><1><default><default> uart_tx = port:PA00<2><1><default><default>
uart_rx = port:PA01<2><1><default><default> uart_rx = port:PA01<2><1><default><default>
[uart3] [uart3]
uart_used = 1 uart_used = 1
uart_port = 3 uart_port = 3
uart_type = 4 uart_type = 2
uart_tx = port:PA13<3><1><default><default> uart_tx = port:PA13<3><1><default><default>
uart_rx = port:PA14<3><1><default><default> uart_rx = port:PA14<3><1><default><default>

View file

@ -10,19 +10,16 @@
# #
# common options # common options
REVISION="5.17$SUBREVISION" # all boards have same revision REVISION="5.17$SUBREVISION" # all boards have same revision
ROOTPWD="1234" # Must be changed @first login ROOTPWD="1234" # Must be changed @first login
MAINTAINER="Igor Pecovnik" # deb signature MAINTAINER="Igor Pecovnik" # deb signature
MAINTAINERMAIL="igor.pecovnik@****l.com" # deb signature MAINTAINERMAIL="igor.pecovnik@****l.com" # deb signature
SDSIZE="4000" # SD image size in MB
TZDATA=`cat /etc/timezone` # Timezone for target is taken from host or defined here. TZDATA=`cat /etc/timezone` # Timezone for target is taken from host or defined here.
USEALLCORES="yes" # Use all CPU cores for compiling USEALLCORES=yes # Use all CPU cores for compiling
EXIT_PATCHING_ERROR="" # exit patching if failed EXIT_PATCHING_ERROR="" # exit patching if failed
MISC5="https://github.com/hglm/a10disp/" # Display changer for Allwinner
MISC5_DIR="sunxi-display-changer" # local directory
HOST="$BOARD" # set hostname to the board HOST="$BOARD" # set hostname to the board
CACHEDIR=$DEST/cache CACHEDIR=$DEST/cache
[[ -z $ROOTFS_TYPE ]] && ROOTFS_TYPE=ext4 # default rootfs type is ext4
# used by multiple sources - reduce code duplication # used by multiple sources - reduce code duplication
if [[ $USE_MAINLINE_GOOGLE_MIRROR == yes ]]; then if [[ $USE_MAINLINE_GOOGLE_MIRROR == yes ]]; then
@ -89,23 +86,23 @@ case $LINUXFAMILY in
esac esac
# Essential packages # Essential packages
PACKAGE_LIST="bash-completion bc bridge-utils build-essential cpufrequtils device-tree-compiler dosfstools figlet \ PACKAGE_LIST="bc bridge-utils build-essential cpufrequtils device-tree-compiler dosfstools figlet \
fbset fping git hostapd ifenslave-2.6 iw lirc fake-hwclock wpasupplicant psmisc ntp parted rsync sudo curl \ fbset fping ifenslave-2.6 iw lirc fake-hwclock wpasupplicant psmisc ntp parted rsync sudo curl \
dialog crda wireless-regdb ncurses-term python3-apt sysfsutils toilet u-boot-tools unattended-upgrades \ dialog crda wireless-regdb ncurses-term python3-apt sysfsutils toilet u-boot-tools unattended-upgrades \
unzip usbutils wireless-tools console-setup console-data console-common unicode-data openssh-server initramfs-tools ca-certificates" unzip usbutils wireless-tools console-setup console-common unicode-data openssh-server initramfs-tools ca-certificates"
# development related packages. remove when they are not needed for building packages in chroot # development related packages. remove when they are not needed for building packages in chroot
PACKAGE_LIST="$PACKAGE_LIST automake cmake libwrap0-dev libssl-dev libtool pkg-config libusb-dev libusb-1.0-0-dev libnl-3-dev libnl-genl-3-dev" PACKAGE_LIST="$PACKAGE_LIST automake libwrap0-dev libssl-dev libusb-dev libusb-1.0-0-dev libnl-3-dev libnl-genl-3-dev"
# Non-essential packages # Non-essential packages
PACKAGE_LIST_ADDITIONAL="alsa-utils btrfs-tools hddtemp iotop iozone3 stress sysbench screen ntfs-3g vim pciutils evtest htop pv lsof \ PACKAGE_LIST_ADDITIONAL="alsa-utils btrfs-tools hddtemp iotop iozone3 stress sysbench screen ntfs-3g vim pciutils evtest htop pv lsof \
apt-transport-https libfuse2 libdigest-sha-perl libproc-processtable-perl w-scan aptitude dnsutils f3 haveged hdparm rfkill \ apt-transport-https libfuse2 libdigest-sha-perl libproc-processtable-perl w-scan aptitude dnsutils f3 haveged hdparm rfkill \
vlan sysstat bluez bluez-tools" vlan sysstat bluez bluez-tools bash-completion hostapd git"
PACKAGE_LIST_DESKTOP="xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit nodm x11-xserver-utils xfce4 lxtask xterm mirage radiotray thunar-volman galculator \ PACKAGE_LIST_DESKTOP="xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit nodm x11-xserver-utils xfce4 lxtask xterm mirage radiotray thunar-volman galculator \
gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin gcj-jre-headless xfce4-screenshooter libgnome2-perl gksu bluetooth \ gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin gcj-jre-headless xfce4-screenshooter libgnome2-perl gksu bluetooth \
network-manager network-manager-gnome xfce4-notifyd gnome-keyring gcr libgck-1-0 libgcr-3-common libgcr-base-3-1 libgcr-ui-3-1 p11-kit p11-kit-modules \ network-manager network-manager-gnome xfce4-notifyd gnome-keyring gcr libgck-1-0 libgcr-3-common p11-kit pasystray pavucontrol pulseaudio \
pasystray pavucontrol pulseaudio paman pavumeter pulseaudio-module-gconf pulseaudio-module-zeroconf pulseaudio-module-bluetooth blueman" paman pavumeter pulseaudio-module-gconf pulseaudio-module-zeroconf pulseaudio-module-bluetooth blueman libpam-gnome-keyring"
PACKAGE_LIST_EXCLUDE="xfce4-mixer" PACKAGE_LIST_EXCLUDE="xfce4-mixer"
@ -113,7 +110,6 @@ PACKAGE_LIST_EXCLUDE="xfce4-mixer"
case $RELEASE in case $RELEASE in
wheezy) wheezy)
PACKAGE_LIST_RELEASE="less makedev kbd acpid acpi-support-base iperf libudev1" PACKAGE_LIST_RELEASE="less makedev kbd acpid acpi-support-base iperf libudev1"
PACKAGE_LIST_DESKTOP="$PACKAGE_LIST_DESKTOP mozo pluma iceweasel icedove"
;; ;;
jessie) jessie)
PACKAGE_LIST_RELEASE="less makedev kbd libpam-systemd iperf3 software-properties-common libnss-myhostname f2fs-tools" PACKAGE_LIST_RELEASE="less makedev kbd libpam-systemd iperf3 software-properties-common libnss-myhostname f2fs-tools"
@ -121,7 +117,6 @@ case $RELEASE in
;; ;;
trusty) trusty)
PACKAGE_LIST_RELEASE="man-db wget nano software-properties-common iperf f2fs-tools acpid" PACKAGE_LIST_RELEASE="man-db wget nano software-properties-common iperf f2fs-tools acpid"
PACKAGE_LIST_DESKTOP="$PACKAGE_LIST_DESKTOP libreoffice-writer thunderbird firefox gnome-icon-theme-full tango-icon-theme"
PACKAGE_LIST_EXCLUDE="$PACKAGE_LIST_EXCLUDE ureadahead plymouth" PACKAGE_LIST_EXCLUDE="$PACKAGE_LIST_EXCLUDE ureadahead plymouth"
;; ;;
xenial) xenial)

View file

@ -25,10 +25,7 @@ debootstrap_ng()
{ {
display_alert "Starting build process for" "$BOARD $RELEASE" "info" display_alert "Starting build process for" "$BOARD $RELEASE" "info"
# default rootfs type is ext4 [[ "ext4 f2fs btrfs nfs fel" != *$ROOTFS_TYPE* ]] && exit_with_error "Unknown rootfs type" "$ROOTFS_TYPE"
[[ -z $ROOTFS_TYPE ]] && ROOTFS_TYPE=ext4
[[ "ext4 f2fs btrfs nfs fel" != *"$ROOTFS_TYPE"* ]] && exit_with_error "Unknown rootfs type" "$ROOTFS_TYPE"
# Fixed image size is in 1M dd blocks (MiB) # Fixed image size is in 1M dd blocks (MiB)
# to get size of block device /dev/sdX execute as root: # to get size of block device /dev/sdX execute as root:
@ -44,8 +41,8 @@ debootstrap_ng()
trap unmount_on_exit INT TERM EXIT trap unmount_on_exit INT TERM EXIT
# stage: clean and create directories # stage: clean and create directories
rm -rf $CACHEDIR/sdcard $CACHEDIR/mount rm -rf $CACHEDIR/{sdcard,mount}
mkdir -p $CACHEDIR/sdcard $CACHEDIR/mount $DEST/images $CACHEDIR/rootfs mkdir -p $CACHEDIR/{sdcard,mount,rootfs} $DEST/images
# stage: verify tmpfs configuration and mount # stage: verify tmpfs configuration and mount
# default maximum size for tmpfs mount is 1/2 of available RAM # default maximum size for tmpfs mount is 1/2 of available RAM
@ -66,8 +63,8 @@ debootstrap_ng()
# stage: install kernel and u-boot packages # stage: install kernel and u-boot packages
# install distribution and board specific applications # install distribution and board specific applications
# mount deb storage to tmp mkdir -p $CACHEDIR/sdcard/tmp/debs
mount --bind $DEST/debs/ $CACHEDIR/sdcard/tmp mount --bind $DEST/debs/ $CACHEDIR/sdcard/tmp/debs
install_distribution_specific install_distribution_specific
install_common install_common
@ -86,7 +83,7 @@ debootstrap_ng()
fi fi
# cleanup for install_kernel and install_board_specific # cleanup for install_kernel and install_board_specific
umount $CACHEDIR/sdcard/tmp > /dev/null 2>&1 umount $CACHEDIR/sdcard/tmp/debs && rm -rf $CACHEDIR/sdcard/tmp/debs
# stage: user customization script # stage: user customization script
# NOTE: installing too many packages may fill tmpfs mount # NOTE: installing too many packages may fill tmpfs mount
@ -157,7 +154,7 @@ create_rootfs_cache()
${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Debootstrap (stage 1/2)..." $TTY_Y $TTY_X'} \ ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Debootstrap (stage 1/2)..." $TTY_Y $TTY_X'} \
${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'}
[[ ${PIPESTATUS[0]} -ne 0 ]] && exit_with_error "Debootstrap base system first stage failed" [[ ${PIPESTATUS[0]} -ne 0 || ! -f $CACHEDIR/sdcard/debootstrap/debootstrap ]] && exit_with_error "Debootstrap base system first stage failed"
cp /usr/bin/$QEMU_BINARY $CACHEDIR/sdcard/usr/bin/ cp /usr/bin/$QEMU_BINARY $CACHEDIR/sdcard/usr/bin/
@ -429,13 +426,9 @@ prepare_partitions()
create_image() create_image()
{ {
# stage: create file name # stage: create file name
VER=${VER/-$LINUXFAMILY/} local version="Armbian_${REVISION}_${BOARD^}_${DISTRIBUTION}_${RELEASE}_${VER/-$LINUXFAMILY/}"
VERSION=$VERSION" "$VER [[ $BUILD_DESKTOP == yes ]] && version=${version}_desktop
VERSION=${VERSION// /_} [[ $ROOTFS_TYPE == nfs ]] && version=${version}_nfsboot
VERSION=${VERSION//$BRANCH/}
VERSION=${VERSION//__/_}
[[ $BUILD_DESKTOP == yes ]] && VERSION=${VERSION}_desktop
[[ $ROOTFS_TYPE == nfs ]] && VERSION=${VERSION}_nfsboot
if [[ $ROOTFS_TYPE != nfs ]]; then if [[ $ROOTFS_TYPE != nfs ]]; then
display_alert "Copying files to image" "tmprootfs.raw" "info" display_alert "Copying files to image" "tmprootfs.raw" "info"
@ -444,7 +437,7 @@ create_image()
else else
display_alert "Creating rootfs archive" "rootfs.tgz" "info" display_alert "Creating rootfs archive" "rootfs.tgz" "info"
tar cp --xattrs --directory=$CACHEDIR/sdcard/ --exclude='./boot/*' --exclude='./dev/*' --exclude='./proc/*' --exclude='./run/*' --exclude='./tmp/*' \ tar cp --xattrs --directory=$CACHEDIR/sdcard/ --exclude='./boot/*' --exclude='./dev/*' --exclude='./proc/*' --exclude='./run/*' --exclude='./tmp/*' \
--exclude='./sys/*' . | pv -p -b -r -s $(du -sb $CACHEDIR/sdcard/ | cut -f1) -N "rootfs.tgz" | pigz > $DEST/images/$VERSION-rootfs.tgz --exclude='./sys/*' . | pv -p -b -r -s $(du -sb $CACHEDIR/sdcard/ | cut -f1) -N "rootfs.tgz" | pigz > $DEST/images/${version}-rootfs.tgz
fi fi
# stage: rsync /boot # stage: rsync /boot
@ -464,7 +457,6 @@ create_image()
# stage: write u-boot # stage: write u-boot
write_uboot $LOOP write_uboot $LOOP
# stage: copy armbian.txt TODO: Copy only if creating zip file?
cp $CACHEDIR/sdcard/etc/armbian.txt $CACHEDIR/ cp $CACHEDIR/sdcard/etc/armbian.txt $CACHEDIR/
# unmount /boot first, rootfs second, image file last # unmount /boot first, rootfs second, image file last
@ -473,31 +465,32 @@ create_image()
[[ $ROOTFS_TYPE != nfs ]] && umount -l $CACHEDIR/mount [[ $ROOTFS_TYPE != nfs ]] && umount -l $CACHEDIR/mount
losetup -d $LOOP losetup -d $LOOP
mv $CACHEDIR/tmprootfs.raw $CACHEDIR/$VERSION.raw mv $CACHEDIR/tmprootfs.raw $CACHEDIR/${version}.raw
cd $CACHEDIR/ cd $CACHEDIR/
# stage: compressing or copying image file # stage: compressing or copying image file
if [[ $COMPRESS_OUTPUTIMAGE != yes ]]; then if [[ $COMPRESS_OUTPUTIMAGE != yes ]]; then
display_alert "Copying image file" "$VERSION.raw" "info" mv -f $CACHEDIR/${version}.raw $DEST/images/${version}.raw
mv -f $CACHEDIR/$VERSION.raw $DEST/images/$VERSION.raw display_alert "Done building" "$DEST/images/${version}.raw" "info"
display_alert "Done building" "$DEST/images/$VERSION.raw" "info"
else else
display_alert "Signing and compressing" "Please wait!" "info" display_alert "Signing and compressing" "Please wait!" "info"
# stage: generate sha256sum
sha256sum -b ${version}.raw > sha256sum
# stage: sign with PGP # stage: sign with PGP
if [[ -n $GPG_PASS ]]; then if [[ -n $GPG_PASS ]]; then
echo $GPG_PASS | gpg --passphrase-fd 0 --armor --detach-sign --batch --yes $VERSION.raw echo $GPG_PASS | gpg --passphrase-fd 0 --armor --detach-sign --batch --yes ${version}.raw
echo $GPG_PASS | gpg --passphrase-fd 0 --armor --detach-sign --batch --yes armbian.txt echo $GPG_PASS | gpg --passphrase-fd 0 --armor --detach-sign --batch --yes armbian.txt
fi fi
if [[ $SEVENZIP == yes ]]; then if [[ $SEVENZIP == yes ]]; then
FILENAME=$DEST/images/$VERSION.7z local filename=$DEST/images/${version}.7z
7za a -t7z -bd -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on $FILENAME $VERSION.raw* armbian.txt >/dev/null 2>&1 7za a -t7z -bd -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on $filename ${version}.raw armbian.txt *.asc sha256sum >/dev/null 2>&1
else else
FILENAME=$DEST/images/$VERSION.zip local filename=$DEST/images/${version}.zip
zip -FSq $FILENAME $VERSION.raw* armbian.txt zip -FSq $filename ${version}.raw armbian.txt *.asc sha256sum
fi fi
rm -f $VERSION.raw *.asc armbian.txt rm -f ${version}.raw *.asc armbian.txt sha256sum
FILESIZE=$(ls -l --b=M $FILENAME | cut -d " " -f5) local filesize=$(ls -l --b=M $filename | cut -d " " -f5)
display_alert "Done building" "$FILENAME [$FILESIZE]" "info" display_alert "Done building" "$filename [$filesize]" "info"
fi fi
} ############################################################################# } #############################################################################

View file

@ -13,12 +13,12 @@ install_desktop ()
{ {
display_alert "Installing desktop" "XFCE" "info" display_alert "Installing desktop" "XFCE" "info"
umount $CACHEDIR/sdcard/tmp >/dev/null 2>&1 mkdir -p $CACHEDIR/sdcard/tmp/bin
mount --bind $SRC/lib/bin/ $CACHEDIR/sdcard/tmp mount --bind $SRC/lib/bin/ $CACHEDIR/sdcard/tmp/bin
# install default desktop settings # install default desktop settings
chroot $CACHEDIR/sdcard /bin/bash -c "tar xfz /tmp/$RELEASE-desktop.tgz -C /etc/skel/" chroot $CACHEDIR/sdcard /bin/bash -c "tar xfz /tmp/bin/$RELEASE-desktop.tgz -C /etc/skel/"
chroot $CACHEDIR/sdcard /bin/bash -c "tar xfz /tmp/$RELEASE-desktop.tgz -C /root/" chroot $CACHEDIR/sdcard /bin/bash -c "tar xfz /tmp/bin/$RELEASE-desktop.tgz -C /root/"
# install wallpapers # install wallpapers
case $RELEASE in case $RELEASE in
@ -41,11 +41,8 @@ install_desktop ()
esac esac
# Install custom icons and theme # Install custom icons and theme
chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/vibrancy-colors_2.4-trusty-Noobslab.com_all.deb >/dev/null 2>&1" chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/bin/vibrancy-colors_2.4-trusty-Noobslab.com_all.deb >/dev/null 2>&1"
chroot $CACHEDIR/sdcard /bin/bash -c "unzip -qq /tmp/NumixHolo.zip -d /usr/share/themes" chroot $CACHEDIR/sdcard /bin/bash -c "unzip -qq /tmp/bin/NumixHolo.zip -d /usr/share/themes"
# unmount bind mount
umount $CACHEDIR/sdcard/tmp >/dev/null 2>&1
# Enable network manager # Enable network manager
if [[ -f ${CACHEDIR}/sdcard/etc/NetworkManager/NetworkManager.conf ]]; then if [[ -f ${CACHEDIR}/sdcard/etc/NetworkManager/NetworkManager.conf ]]; then
@ -89,4 +86,6 @@ install_desktop ()
sed "s/sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 //g" -i $CACHEDIR/sdcard/boot/boot.cmd sed "s/sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 //g" -i $CACHEDIR/sdcard/boot/boot.cmd
mkimage -C none -A arm -T script -d $CACHEDIR/sdcard/boot/boot.cmd $CACHEDIR/sdcard/boot/boot.scr >> /dev/null mkimage -C none -A arm -T script -d $CACHEDIR/sdcard/boot/boot.cmd $CACHEDIR/sdcard/boot/boot.scr >> /dev/null
fi fi
umount $CACHEDIR/sdcard/tmp/bin && rm -rf $CACHEDIR/sdcard/tmp/bin
} }

View file

@ -27,6 +27,8 @@ install_common()
# before installing board support package # before installing board support package
rm $CACHEDIR/sdcard/etc/network/interfaces rm $CACHEDIR/sdcard/etc/network/interfaces
mkdir -p $CACHEDIR/sdcard/selinux
# console fix due to Debian bug # console fix due to Debian bug
sed -e 's/CHARMAP=".*"/CHARMAP="'$CONSOLE_CHAR'"/g' -i $CACHEDIR/sdcard/etc/default/console-setup sed -e 's/CHARMAP=".*"/CHARMAP="'$CONSOLE_CHAR'"/g' -i $CACHEDIR/sdcard/etc/default/console-setup
@ -80,43 +82,39 @@ install_common()
ff02::2 ip6-allrouters ff02::2 ip6-allrouters
EOF EOF
# extract kernel version
VER=$(dpkg --info $DEST/debs/${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb | grep Descr | awk '{print $(NF)}')
VER="${VER/-$LINUXFAMILY/}"
# we need package names for dtb, uboot and headers # we need package names for dtb, uboot and headers
DTB_TMP="${CHOSEN_KERNEL/image/dtb}" DTB_TMP="${CHOSEN_KERNEL/image/dtb}"
FW_TMP="${CHOSEN_KERNEL/image/firmware-image}" FW_TMP="${CHOSEN_KERNEL/image/firmware-image}"
HEADERS_TMP="${CHOSEN_KERNEL/image/headers}" HEADERS_TMP="${CHOSEN_KERNEL/image/headers}"
display_alert "Installing kernel" "$CHOSEN_KERNEL" "info" display_alert "Installing kernel" "$CHOSEN_KERNEL" "info"
chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1 chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/debs/${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1
display_alert "Installing u-boot" "$CHOSEN_UBOOT" "info" display_alert "Installing u-boot" "$CHOSEN_UBOOT" "info"
chroot $CACHEDIR/sdcard /bin/bash -c "DEVICE=/dev/null dpkg -i /tmp/${CHOSEN_UBOOT}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1 chroot $CACHEDIR/sdcard /bin/bash -c "DEVICE=/dev/null dpkg -i /tmp/debs/${CHOSEN_UBOOT}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1
display_alert "Installing headers" "$HEADERS_TMP" "info" display_alert "Installing headers" "$HEADERS_TMP" "info"
chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/${HEADERS_TMP}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1 chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/debs/${HEADERS_TMP}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1
# install firmware # install firmware
#if [[ -f $CACHEDIR/sdcard/tmp/${FW_TMP}_${REVISION}_${ARCH}.deb ]]; then #if [[ -f $CACHEDIR/sdcard/tmp/debs/${FW_TMP}_${REVISION}_${ARCH}.deb ]]; then
# display_alert "Installing firmware" "$FW_TMP" "info" # display_alert "Installing firmware" "$FW_TMP" "info"
# chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/${FW_TMP}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1 # chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/debs/${FW_TMP}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1
#fi #fi
if [[ -f $CACHEDIR/sdcard/tmp/armbian-firmware_${REVISION}_${ARCH}.deb ]]; then if [[ -f $CACHEDIR/sdcard/tmp/armbian-firmware_${REVISION}_${ARCH}.deb ]]; then
display_alert "Installing generic firmware" "armbian-firmware" "info" display_alert "Installing generic firmware" "armbian-firmware" "info"
chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/armbian-firmware_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1 chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/debs/armbian-firmware_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1
fi fi
if [[ -f $CACHEDIR/sdcard/tmp/${DTB_TMP}_${REVISION}_${ARCH}.deb ]]; then if [[ -f $CACHEDIR/sdcard/tmp/${DTB_TMP}_${REVISION}_${ARCH}.deb ]]; then
display_alert "Installing DTB" "$DTB_TMP" "info" display_alert "Installing DTB" "$DTB_TMP" "info"
chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/${DTB_TMP}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1 chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/debs/${DTB_TMP}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1
fi fi
# install board support package # install board support package
display_alert "Installing board support package" "$BOARD" "info" display_alert "Installing board support package" "$BOARD" "info"
chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/$RELEASE/${CHOSEN_ROOTFS}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1 chroot $CACHEDIR/sdcard /bin/bash -c "dpkg -i /tmp/debs/$RELEASE/${CHOSEN_ROOTFS}_${REVISION}_${ARCH}.deb" >> $DEST/debug/install.log 2>&1
# copy boot splash image # copy boot splash image
cp $SRC/lib/bin/armbian.bmp $CACHEDIR/sdcard/boot/boot.bmp cp $SRC/lib/bin/armbian.bmp $CACHEDIR/sdcard/boot/boot.bmp
@ -166,9 +164,6 @@ install_distribution_specific()
# enable root login for latest ssh on jessie # enable root login for latest ssh on jessie
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' $CACHEDIR/sdcard/etc/ssh/sshd_config sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' $CACHEDIR/sdcard/etc/ssh/sshd_config
# fix selinux error
mkdir $CACHEDIR/sdcard/selinux
# add serial console # add serial console
#cp $SRC/lib/config/ttyS0.conf $CACHEDIR/sdcard/etc/init/$SERIALCON.conf #cp $SRC/lib/config/ttyS0.conf $CACHEDIR/sdcard/etc/init/$SERIALCON.conf
#sed -e "s/ttyS0/$SERIALCON/g" -i $CACHEDIR/sdcard/etc/init/$SERIALCON.conf #sed -e "s/ttyS0/$SERIALCON/g" -i $CACHEDIR/sdcard/etc/init/$SERIALCON.conf
@ -209,9 +204,6 @@ install_distribution_specific()
# enable root login for latest ssh on trusty # enable root login for latest ssh on trusty
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' $CACHEDIR/sdcard/etc/ssh/sshd_config sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' $CACHEDIR/sdcard/etc/ssh/sshd_config
# fix selinux error
mkdir $CACHEDIR/sdcard/selinux
# remove legal info from Ubuntu # remove legal info from Ubuntu
[[ -f $CACHEDIR/sdcard/etc/legal ]] && rm $CACHEDIR/sdcard/etc/legal [[ -f $CACHEDIR/sdcard/etc/legal ]] && rm $CACHEDIR/sdcard/etc/legal
@ -230,9 +222,6 @@ install_distribution_specific()
# enable root login for latest ssh on jessie # enable root login for latest ssh on jessie
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' $CACHEDIR/sdcard/etc/ssh/sshd_config sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' $CACHEDIR/sdcard/etc/ssh/sshd_config
# fix selinux error
mkdir $CACHEDIR/sdcard/selinux
# remove legal info from Ubuntu # remove legal info from Ubuntu
[[ -f $CACHEDIR/sdcard/etc/legal ]] && rm $CACHEDIR/sdcard/etc/legal [[ -f $CACHEDIR/sdcard/etc/legal ]] && rm $CACHEDIR/sdcard/etc/legal

View file

@ -14,7 +14,7 @@ build_firmware()
local plugin_repo="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" local plugin_repo="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"
local plugin_dir="armbian-firmware" local plugin_dir="armbian-firmware"
#fetch_from_github "$plugin_repo" "$plugin_dir/lib/firmware" #fetch_from_repo "$plugin_repo" "$plugin_dir/lib/firmware" "branch:master"
mkdir -p $SOURCES/$plugin_dir/lib/firmware mkdir -p $SOURCES/$plugin_dir/lib/firmware
# overlay our firmware # overlay our firmware
cp -R $SRC/lib/bin/firmware-overlay/* $SOURCES/$plugin_dir/lib/firmware cp -R $SRC/lib/bin/firmware-overlay/* $SOURCES/$plugin_dir/lib/firmware
@ -31,6 +31,7 @@ build_firmware()
Architecture: $ARCH Architecture: $ARCH
Maintainer: $MAINTAINER <$MAINTAINERMAIL> Maintainer: $MAINTAINER <$MAINTAINERMAIL>
Installed-Size: 1 Installed-Size: 1
Replaces: linux-firmware
Section: kernel Section: kernel
Priority: optional Priority: optional
Description: Linux firmware Description: Linux firmware

View file

@ -12,7 +12,7 @@ install_mt7601()
local plugin_repo="https://github.com/igorpecovnik/mt7601" local plugin_repo="https://github.com/igorpecovnik/mt7601"
local plugin_dir="mt7601" local plugin_dir="mt7601"
fetch_from_github "$plugin_repo" "$plugin_dir" "old" fetch_from_repo "$plugin_repo" "$plugin_dir" "branch:old"
cd $SOURCES/$plugin_dir cd $SOURCES/$plugin_dir

View file

@ -15,9 +15,9 @@ install_rtl8192cu()
# https://github.com/pvaret/rtl8192cu-fixes # https://github.com/pvaret/rtl8192cu-fixes
local plugin_dir="rt8192cu" local plugin_dir="rt8192cu"
fetch_from_github "$plugin_repo" "$plugin_dir" fetch_from_repo "$plugin_repo" "$plugin_dir" "branch:master"
cd $SOURCES/$plugin_dir cd $SOURCES/$plugin_dir
#git checkout 0ea77e747df7d7e47e02638a2ee82ad3d1563199
make ARCH=$ARCHITECTURE CROSS_COMPILE=$KERNEL_COMPILER clean >> $DEST/debug/compilation.log make ARCH=$ARCHITECTURE CROSS_COMPILE=$KERNEL_COMPILER clean >> $DEST/debug/compilation.log
# GCC5 compatibility patch # GCC5 compatibility patch

View file

@ -14,7 +14,6 @@
# exit_with_error # exit_with_error
# get_package_list_hash # get_package_list_hash
# create_sources_list # create_sources_list
# fetch_from_github
# fetch_from_repo # fetch_from_repo
# display_alert # display_alert
# grab_version # grab_version
@ -147,80 +146,6 @@ create_sources_list()
esac esac
} }
# fetch_from_github <URL> <directory> <tag> <tagsintosubdir>
#
# parameters:
# <URL>: Git repository
# <directory>: where to place under SOURCES
# <device>: cubieboard, cubieboard2, cubietruck, ...
# <description>: additional description text
# <tagintosubdir>: boolean
fetch_from_github (){
GITHUBSUBDIR=$3
local githuburl=$1
[[ -z "$3" ]] && GITHUBSUBDIR="branchless"
[[ -z "$4" ]] && GITHUBSUBDIR="" # only kernel and u-boot have subdirs for tags
if [ -d "$SOURCES/$2/$GITHUBSUBDIR" ]; then
cd $SOURCES/$2/$GITHUBSUBDIR
git checkout -q $FORCE $3 2> /dev/null
local bar_1=$(git ls-remote $githuburl --tags $GITHUBSUBDIR* | sed -n '1p' | cut -f1 | cut -c1-7)
local bar_2=$(git ls-remote $githuburl --tags $GITHUBSUBDIR* | sed -n '2p' | cut -f1 | cut -c1-7)
local bar_3=$(git ls-remote $githuburl --tags HEAD * | sed -n '1p' | cut -f1 | cut -c1-7)
local localbar="$(git rev-parse HEAD | cut -c1-7)"
# debug
# echo "git ls-remote $githuburl --tags $GITHUBSUBDIR* | sed -n '1p' | cut -f1"
# echo "git ls-remote $githuburl --tags $GITHUBSUBDIR* | sed -n '2p' | cut -f1"
# echo "git ls-remote $githuburl --tags HEAD * | sed -n '1p' | cut -f1"
# echo "$3 - $bar_1 || $bar_2 = $localbar"
# echo "$3 - $bar_3 = $localbar"
# ===>> workaround >> [[ $bar_1 == "" && $bar_2 == "" ]]
if [[ "$3" != "" ]] && [[ "$bar_1" == "$localbar" || "$bar_2" == "$localbar" ]] || [[ "$3" == "" && "$bar_3" == "$localbar" ]] || [[ $bar_1 == "" && $bar_2 == "" ]]; then
display_alert "... you have latest sources" "$2 $3" "info"
else
if [ "$DEBUG_MODE" != yes ]; then
display_alert "... your sources are outdated - creating new shallow clone" "$2 $3" "info"
if [[ -z "$GITHUBSUBDIR" ]]; then
rm -rf $SOURCES/$2".old"
mv $SOURCES/$2 $SOURCES/$2".old"
else
rm -rf $SOURCES/$2/$GITHUBSUBDIR".old"
mv $SOURCES/$2/$GITHUBSUBDIR $SOURCES/$2/$GITHUBSUBDIR".old"
fi
if [[ -n $3 && -n "$(git ls-remote $1 | grep "$tag")" ]]; then
git clone -n $1 $SOURCES/$2/$GITHUBSUBDIR -b $3 --depth 1 || git clone -n $1 $SOURCES/$2/$GITHUBSUBDIR -b $3
else
git clone -n $1 $SOURCES/$2/$GITHUBSUBDIR --depth 1
fi
fi
cd $SOURCES/$2/$GITHUBSUBDIR
git checkout -q
fi
else
if [[ -n $3 && -n "$(git ls-remote $1 | grep "$tag")" ]]; then
display_alert "... creating a shallow clone" "$2 $3" "info"
# Toradex git's doesn't support shallow clone. Need different solution than this.
git clone -n $1 $SOURCES/$2/$GITHUBSUBDIR -b $3 --depth 1 || git clone -n $1 $SOURCES/$2/$GITHUBSUBDIR -b $3
cd $SOURCES/$2/$GITHUBSUBDIR
git checkout -q $3
else
display_alert "... creating a shallow clone" "$2" "info"
git clone -n $1 $SOURCES/$2/$GITHUBSUBDIR --depth 1
cd $SOURCES/$2/$GITHUBSUBDIR
git checkout -q
fi
fi
cd $SRC
if [ $? -ne 0 ]; then
exit_with_error "Github download failed" "$1"
fi
}
# fetch_rom_repo <url> <directory> <ref> <ref_subdir> # fetch_rom_repo <url> <directory> <ref> <ref_subdir>
# <url>: remote repository URL # <url>: remote repository URL
# <directory>: local directory; subdir for branch/tag will be created # <directory>: local directory; subdir for branch/tag will be created
@ -368,21 +293,19 @@ display_alert()
} }
#--------------------------------------------------------------------------------------------------------------------------------- #---------------------------------------------------------------------------------------------------------------------------------
# grab_version <path> <var_name> # grab_version <path>
# #
# <PATH>: Extract kernel or uboot version from Makefile # <path>: Extract kernel or uboot version from $path/Makefile
# <var_name>: write version to this variable
#--------------------------------------------------------------------------------------------------------------------------------- #---------------------------------------------------------------------------------------------------------------------------------
grab_version () grab_version()
{ {
local var=("VERSION" "PATCHLEVEL" "SUBLEVEL" "EXTRAVERSION")
local ver="" local ver=""
for dir in "${var[@]}"; do for component in VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION; do
tmp=$(cat $1/Makefile | grep $dir | head -1 | awk '{print $(NF)}' | cut -d '=' -f 2)"#" tmp=$(cat $1/Makefile | grep $component | head -1 | awk '{print $(NF)}' | cut -d '=' -f 2)"#"
[[ $tmp != "#" ]] && ver=$ver$tmp [[ $tmp != "#" ]] && ver="$ver$tmp"
done done
ver=${ver//#/.}; ver=${ver%.}; ver=${ver//.-/-} ver=${ver//#/.}; ver=${ver%.}; ver=${ver//.-/-}
eval $"$2"="$ver" echo $ver
} }
fingerprint_image() fingerprint_image()
@ -390,10 +313,10 @@ fingerprint_image()
#-------------------------------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------------------------------
# Saving build summary to the image # Saving build summary to the image
#-------------------------------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------------------------------
display_alert "Fingerprinting" "$VERSION" "info" display_alert "Fingerprinting"
cat <<-EOF > $1 cat <<-EOF > $1
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Title: $VERSION Title: Armbian $REVISION ${BOARD^} $DISTRIBUTION $RELEASE $BRANCH
Kernel: Linux $VER Kernel: Linux $VER
Build date: $(date +'%d.%m.%Y') Build date: $(date +'%d.%m.%Y')
Author: Igor Pecovnik, www.igorpecovnik.com Author: Igor Pecovnik, www.igorpecovnik.com
@ -413,15 +336,14 @@ addtorepo()
# parameter "remove" dumps all and creates new # parameter "remove" dumps all and creates new
# function: cycle trough distributions # function: cycle trough distributions
local distributions=("wheezy" "jessie" "trusty" "xenial") local distributions=("wheezy" "jessie" "trusty" "xenial")
# workaround since we dont't build utils for those # workaround since we dont't build utils for those
mkdir -p ../output/debs/extra/wheezy/ mkdir -p ../output/debs/extra/{wheezy,trusty}
mkdir -p ../output/debs/extra/trusty/
ln -sf ../jessie/utils ../output/debs/extra/wheezy/utils ln -sf ../jessie/utils ../output/debs/extra/wheezy/utils
ln -sf ../jessie/utils ../output/debs/extra/trusty/utils ln -sf ../jessie/utils ../output/debs/extra/trusty/utils
for release in "${distributions[@]}"; do for release in "${distributions[@]}"; do
# let's drop from publish if exits # let's drop from publish if exits
if [[ -n $(aptly publish list -config=config/aptly.conf -raw | awk '{print $(NF)}' | grep $release) ]]; then if [[ -n $(aptly publish list -config=config/aptly.conf -raw | awk '{print $(NF)}' | grep $release) ]]; then
aptly publish drop -config=config/aptly.conf $release > /dev/null 2>&1 aptly publish drop -config=config/aptly.conf $release > /dev/null 2>&1
@ -460,15 +382,15 @@ addtorepo()
else else
display_alert "Not adding $release" "main" "wrn" display_alert "Not adding $release" "main" "wrn"
fi fi
# adding main distribution packages # adding main distribution packages
if find ${POT}${release} -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then if find ${POT}${release} -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then
display_alert "Adding to repository $release" "main" "ext" display_alert "Adding to repository $release" "main" "ext"
aptly repo add -force-replace=$replace -config=config/aptly.conf $release ${POT}${release}/*.deb aptly repo add -force-replace=$replace -config=config/aptly.conf $release ${POT}${release}/*.deb
else else
display_alert "Not adding $release" "main" "wrn" display_alert "Not adding $release" "main" "wrn"
fi fi
# adding utils # adding utils
if find ${POT}extra/$release/utils -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then if find ${POT}extra/$release/utils -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then
display_alert "Adding to repository $release" "utils" "ext" display_alert "Adding to repository $release" "utils" "ext"

37
main.sh
View file

@ -75,8 +75,6 @@ else
CCACHE="" CCACHE=""
fi fi
if [[ $FORCE_CHECKOUT == yes ]]; then FORCE="-f"; else FORCE=""; fi
# optimize build time with 100% CPU usage # optimize build time with 100% CPU usage
CPUS=$(grep -c 'processor' /proc/cpuinfo) CPUS=$(grep -c 'processor' /proc/cpuinfo)
if [[ $USEALLCORES != no ]]; then if [[ $USEALLCORES != no ]]; then
@ -85,7 +83,7 @@ else
CTHREADS="-j1" CTHREADS="-j1"
fi fi
# Check and fix dependencies, directory structure and settings # Check and install dependencies, directory structure and settings
prepare_host prepare_host
# if KERNEL_ONLY, BOARD, BRANCH or RELEASE are not set, display selection menu # if KERNEL_ONLY, BOARD, BRANCH or RELEASE are not set, display selection menu
@ -140,7 +138,7 @@ if [[ $KERNEL_ONLY != yes && -z $RELEASE ]]; then
[[ -z $RELEASE ]] && exit_with_error "No release selected" [[ -z $RELEASE ]] && exit_with_error "No release selected"
fi fi
if [[ $KERNEL_ONLY != yes && -z $BUILD_DESKTOP ]]; then if [[ $KERNEL_ONLY != yes && -z $BUILD_DESKTOP && "jessie xenial" == *$RELEASE* ]]; then
options=() options=()
options+=("no" "Image with console interface") options+=("no" "Image with console interface")
options+=("yes" "Image with desktop environment") options+=("yes" "Image with desktop environment")
@ -151,25 +149,14 @@ fi
source $SRC/lib/configuration.sh source $SRC/lib/configuration.sh
# The name of the job
VERSION="Armbian $REVISION ${BOARD^} $DISTRIBUTION $RELEASE $BRANCH"
echo `date +"%d.%m.%Y %H:%M:%S"` $VERSION >> $DEST/debug/output.log
(cd $SRC/lib; echo "Build script version: $(git rev-parse @)") >> $DEST/debug/output.log (cd $SRC/lib; echo "Build script version: $(git rev-parse @)") >> $DEST/debug/output.log
display_alert "Starting Armbian build script" "@host" "info" display_alert "Starting Armbian build script" "@host" "info"
# display what we do
if [[ $KERNEL_ONLY == yes ]]; then
display_alert "Compiling kernel" "$BOARD" "info"
else
display_alert "Building" "$VERSION" "info"
fi
# sync clock # sync clock
if [[ $SYNC_CLOCK != no ]]; then if [[ $SYNC_CLOCK != no ]]; then
display_alert "Syncing clock" "host" "info" display_alert "Syncing clock" "host" "info"
eval ntpdate -s ${NTP_SERVER:- time.ijs.si} ntpdate -s ${NTP_SERVER:- time.ijs.si}
fi fi
start=`date +%s` start=`date +%s`
@ -183,12 +170,12 @@ BOOTSOURCEDIR=$BOOTDIR/${BOOTBRANCH##*:}
fetch_from_repo "$KERNELSOURCE" "$KERNELDIR" "$KERNELBRANCH" "yes" fetch_from_repo "$KERNELSOURCE" "$KERNELDIR" "$KERNELBRANCH" "yes"
LINUXSOURCEDIR=$KERNELDIR/${KERNELBRANCH##*:} LINUXSOURCEDIR=$KERNELDIR/${KERNELBRANCH##*:}
if [[ -n $MISC5 ]]; then fetch_from_github "$MISC5" "$MISC5_DIR"; fi # TODO: move to armbian-tools or extras-buildpkgs
if [[ -n $MISC6 ]]; then fetch_from_github "$MISC6" "$MISC6_DIR"; fi fetch_from_repo "https://github.com/hglm/a10disp/" "sunxi-display-changer" "branch:master"
compile_sunxi_tools
# compile sunxi tools
if [[ $LINUXFAMILY == sun*i ]]; then if [[ $LINUXFAMILY == sun*i ]]; then
compile_sunxi_tools
[[ $BRANCH != default && $LINUXFAMILY != sun8i ]] && LINUXFAMILY="sunxi" [[ $BRANCH != default && $LINUXFAMILY != sun8i ]] && LINUXFAMILY="sunxi"
fi fi
@ -212,8 +199,7 @@ if [[ ! -f $DEST/debs/${CHOSEN_UBOOT}_${REVISION}_${ARCH}.deb ]]; then
find_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" "UBOOT_TOOLCHAIN" find_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" "UBOOT_TOOLCHAIN"
fi fi
cd $SOURCES/$BOOTSOURCEDIR cd $SOURCES/$BOOTSOURCEDIR
grab_version "$SOURCES/$BOOTSOURCEDIR" "UBOOT_VER" [[ $FORCE_CHECKOUT == yes ]] && advanced_patch "u-boot" "$BOOTDIR-$BRANCH" "$BOARD" "$BOOTDIR-$BRANCH"
[[ $FORCE_CHECKOUT == yes ]] && advanced_patch "u-boot" "$BOOTDIR-$BRANCH" "$BOARD" "$BOOTDIR-$BRANCH $UBOOT_VER"
compile_uboot compile_uboot
fi fi
@ -232,11 +218,14 @@ if [[ ! -f $DEST/debs/${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb ]]; then
[[ $FORCE_CHECKOUT == yes ]] && patch --batch --silent -t -p1 < $SRC/lib/patch/kernel/compiler.patch >> $DEST/debug/output.log 2>&1 [[ $FORCE_CHECKOUT == yes ]] && patch --batch --silent -t -p1 < $SRC/lib/patch/kernel/compiler.patch >> $DEST/debug/output.log 2>&1
fi fi
grab_version "$SOURCES/$LINUXSOURCEDIR" "KERNEL_VER" [[ $FORCE_CHECKOUT == yes ]] && advanced_patch "kernel" "$LINUXFAMILY-$BRANCH" "$BOARD" "$LINUXFAMILY-$BRANCH"
[[ $FORCE_CHECKOUT == yes ]] && advanced_patch "kernel" "$LINUXFAMILY-$BRANCH" "$BOARD" "$LINUXFAMILY-$BRANCH $KERNEL_VER"
compile_kernel compile_kernel
fi fi
# extract kernel version from .deb package
VER=$(dpkg --info $DEST/debs/${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb | grep Descr | awk '{print $(NF)}')
VER="${VER/-$LINUXFAMILY/}"
[[ -n $RELEASE ]] && create_board_package [[ -n $RELEASE ]] && create_board_package
# chroot-buildpackages # chroot-buildpackages

View file

@ -37,7 +37,7 @@ create_board_package()
Provides: armbian-bsp Provides: armbian-bsp
Conflicts: armbian-bsp Conflicts: armbian-bsp
Replaces: base-files Replaces: base-files
Recommends: bsdutils, parted, python3-apt, util-linux, initramfs-tools Recommends: bsdutils, parted, python3-apt, util-linux, initramfs-tools, toilet
Description: Armbian tweaks for $RELEASE on $BOARD ($BRANCH branch) Description: Armbian tweaks for $RELEASE on $BOARD ($BRANCH branch)
EOF EOF