##// END OF EJS Templates
Merge pull request #31 from g-vidal/contrib_20-11-19...
Gérard Vidal -
r764:ad54cb0d33c5 Fusion
parent child
Show More
@@ -208,6 +208,7 The following static networking parameters are only supported if `ENABLE_WIFI_DH
208 |ENABLE_UBOOT|boolean|false|`true`\|`false`|Replace the default RPi 0/1/2/3 second stage bootloader (bootcode.bin) with [U-Boot bootloader](https://git.denx.de/?p=u-boot.git;a=summary). U-Boot can boot images via the network using the BOOTP/TFTP protocol. RPI4 needs tbd|
208 |ENABLE_UBOOT|boolean|false|`true`\|`false`|Replace the default RPi 0/1/2/3 second stage bootloader (bootcode.bin) with [U-Boot bootloader](https://git.denx.de/?p=u-boot.git;a=summary). U-Boot can boot images via the network using the BOOTP/TFTP protocol. RPI4 needs tbd|
209 |UBOOTSRC_DIR|string||`FullPathToUBootFolder`|Full path to a directory named `u-boot` of [U-Boot bootloader sources](https://git.denx.de/?p=u-boot.git;a=summary) that will be copied, configured, build and installed inside the chroot|
209 |UBOOTSRC_DIR|string||`FullPathToUBootFolder`|Full path to a directory named `u-boot` of [U-Boot bootloader sources](https://git.denx.de/?p=u-boot.git;a=summary) that will be copied, configured, build and installed inside the chroot|
210 |ENABLE_FBTURBO|boolean|false|`true`\|`false`|Install and enable the [hardware accelerated Xorg video driver](https://github.com/ssvb/xf86-video-fbturbo) `fbturbo`. Please note that this driver is currently limited to hardware accelerated window moving and scrolling|
210 |ENABLE_FBTURBO|boolean|false|`true`\|`false`|Install and enable the [hardware accelerated Xorg video driver](https://github.com/ssvb/xf86-video-fbturbo) `fbturbo`. Please note that this driver is currently limited to hardware accelerated window moving and scrolling|
211 |ENABLE_GR_ACCEL|boolean|false|`true`\|`false`|Install and enable [one of the 3D graphics accelerators for Raspi4](https://www.raspberrypi.org/documentation/configuration/config-txt/video.md) `vc4-fkms-v3d`. Not compatible with `fbturbo` mutually excluded and installed for Raspberry4 only|
211 |FBTURBOSRC_DIR|string||`FullPathToFbTurboFolder`|Full path to a directory named `xf86-video-fbturbo` of [hardware accelerated Xorg video driver sources](https://github.com/ssvb/xf86-video-fbturbo) that will be copied, configured, build and installed inside the chroot|
212 |FBTURBOSRC_DIR|string||`FullPathToFbTurboFolder`|Full path to a directory named `xf86-video-fbturbo` of [hardware accelerated Xorg video driver sources](https://github.com/ssvb/xf86-video-fbturbo) that will be copied, configured, build and installed inside the chroot|
212 |ENABLE_VIDEOCORE|boolean|false|`true`\|`false`|Install and enable the [ARM side libraries for interfacing to Raspberry Pi GPU](https://github.com/raspberrypi/userland) `vcgencmd`. Please note that this driver is currently limited to hardware accelerated window moving and scrolling|
213 |ENABLE_VIDEOCORE|boolean|false|`true`\|`false`|Install and enable the [ARM side libraries for interfacing to Raspberry Pi GPU](https://github.com/raspberrypi/userland) `vcgencmd`. Please note that this driver is currently limited to hardware accelerated window moving and scrolling|
213 |VIDEOCORESRC_DIR|string||`FullPathToVideoSrcFolder`|Full path to a directory named `userland` of [ARM side libraries for interfacing to Raspberry Pi GPU](https://github.com/raspberrypi/userland) that will be copied, configured, build and installed inside the chroot|
214 |VIDEOCORESRC_DIR|string||`FullPathToVideoSrcFolder`|Full path to a directory named `userland` of [ARM side libraries for interfacing to Raspberry Pi GPU](https://github.com/raspberrypi/userland) that will be copied, configured, build and installed inside the chroot|
@@ -31,7 +31,7 if [ "$BUILD_KERNEL" = true ] ; then
31 # Create temporary directory for kernel sources
31 # Create temporary directory for kernel sources
32 temp_dir=$(as_nobody mktemp -d)
32 temp_dir=$(as_nobody mktemp -d)
33
33
34 # Fetch current RPi2/3 kernel sources
34 # Fetch current RPi2/3/4 kernel sources
35 if [ -z "${KERNEL_BRANCH}" ] ; then
35 if [ -z "${KERNEL_BRANCH}" ] ; then
36 as_nobody -H git -C "${temp_dir}" clone --depth=1 "${KERNEL_URL}" linux
36 as_nobody -H git -C "${temp_dir}" clone --depth=1 "${KERNEL_URL}" linux
37 else
37 else
@@ -20,7 +20,7 if [ -n "$RPI_FIRMWARE_DIR" ] && [ -d "$RPI_FIRMWARE_DIR" ] ; then
20 cp "${RPI_FIRMWARE_DIR}"/boot/fixup4x.dat "${BOOT_DIR}"/fixup4x.dat
20 cp "${RPI_FIRMWARE_DIR}"/boot/fixup4x.dat "${BOOT_DIR}"/fixup4x.dat
21 cp "${RPI_FIRMWARE_DIR}"/boot/start4cd.elf "${BOOT_DIR}"/start4cd.elf
21 cp "${RPI_FIRMWARE_DIR}"/boot/start4cd.elf "${BOOT_DIR}"/start4cd.elf
22 cp "${RPI_FIRMWARE_DIR}"/boot/start4db.elf "${BOOT_DIR}"/start4db.elf
22 cp "${RPI_FIRMWARE_DIR}"/boot/start4db.elf "${BOOT_DIR}"/start4db.elf
23 cp "${RPI_FIRMWARE_DIR}"/boot/start4.elf "${BOOT_DIR}"/start4x.elf
23 cp "${RPI_FIRMWARE_DIR}"/boot/start4.elf "${BOOT_DIR}"/start4.elf
24 cp "${RPI_FIRMWARE_DIR}"/boot/start4x.elf "${BOOT_DIR}"/start4x.elf
24 cp "${RPI_FIRMWARE_DIR}"/boot/start4x.elf "${BOOT_DIR}"/start4x.elf
25 else
25 else
26 # Create temporary directory for boot binaries
26 # Create temporary directory for boot binaries
@@ -40,7 +40,7 else
40 as_nobody wget -q -O "${temp_dir}/fixup4x.dat" "${FIRMWARE_URL}/fixup4x.dat"
40 as_nobody wget -q -O "${temp_dir}/fixup4x.dat" "${FIRMWARE_URL}/fixup4x.dat"
41 as_nobody wget -q -O "${temp_dir}/start4cd.elf" "${FIRMWARE_URL}/start4cd.elf"
41 as_nobody wget -q -O "${temp_dir}/start4cd.elf" "${FIRMWARE_URL}/start4cd.elf"
42 as_nobody wget -q -O "${temp_dir}/start4db.elf" "${FIRMWARE_URL}/start4db.elf"
42 as_nobody wget -q -O "${temp_dir}/start4db.elf" "${FIRMWARE_URL}/start4db.elf"
43 as_nobody wget -q -O "${temp_dir}/start4x.elf" "${FIRMWARE_URL}/start4x.elf"
43 as_nobody wget -q -O "${temp_dir}/start4.elf" "${FIRMWARE_URL}/start4.elf"
44 as_nobody wget -q -O "${temp_dir}/start4x.elf" "${FIRMWARE_URL}/start4x.elf"
44 as_nobody wget -q -O "${temp_dir}/start4x.elf" "${FIRMWARE_URL}/start4x.elf"
45
45
46 # Move downloaded boot binaries
46 # Move downloaded boot binaries
@@ -266,7 +266,12 echo "${CMDLINE}" > "${BOOT_DIR}/cmdline.txt"
266
266
267 # Setup minimal GPU memory allocation size: 16MB (no X)
267 # Setup minimal GPU memory allocation size: 16MB (no X)
268 if [ "$ENABLE_MINGPU" = true ] ; then
268 if [ "$ENABLE_MINGPU" = true ] ; then
269 if [ "$ENABLE_GR_ACCEL" = false ] ; then
269 echo "gpu_mem=16" >> "${BOOT_DIR}/config.txt"
270 echo "gpu_mem=16" >> "${BOOT_DIR}/config.txt"
271 else
272 ### Cannot reduce memory if graphics acceleration is requested
273 echo "gpu_mem=128" >> "${BOOT_DIR}/config.txt"
274 fi
270 fi
275 fi
271
276
272 # Setup boot with initramfs
277 # Setup boot with initramfs
@@ -315,6 +320,19 if [ -n "$DISABLE_UNDERVOLT_WARNINGS" ] ; then
315 echo "avoid_warnings=${DISABLE_UNDERVOLT_WARNINGS}" >> "${BOOT_DIR}/config.txt"
320 echo "avoid_warnings=${DISABLE_UNDERVOLT_WARNINGS}" >> "${BOOT_DIR}/config.txt"
316 fi
321 fi
317
322
323 #Enable graphics acceleration for Model 4
324 if [ "$RPI_MODEL" = 4 ] && [ "$ENABLE_GR_ACCEL" = true ] ; then
325 echo "max_framebuffers=2" >> "${BOOT_DIR}/config.txt"
326 echo "arm_64bit=1" >> "${BOOT_DIR}/config.txt"
327 echo "cmdline=cmdline.txt" >> "${BOOT_DIR}/config.txt"
328 echo "dtparam=audio=on" >> "${BOOT_DIR}/config.txt"
329 if [ "$ENABLE_MINGPU" = false ] ; then
330 echo "gpu_mem=128" >> "${BOOT_DIR}/config.txt"
331 fi
332 echo "dtoverlay=vc4-fkms-v3d, cma-128" >> "${BOOT_DIR}/config.txt"
333 fi
334
335
318 # Install kernel modules blacklist
336 # Install kernel modules blacklist
319 mkdir -p "${ETC_DIR}/modprobe.d/"
337 mkdir -p "${ETC_DIR}/modprobe.d/"
320 install_readonly files/modules/raspi-blacklist.conf "${ETC_DIR}/modprobe.d/raspi-blacklist.conf"
338 install_readonly files/modules/raspi-blacklist.conf "${ETC_DIR}/modprobe.d/raspi-blacklist.conf"
@@ -5,7 +5,7
5 # Load utility functions
5 # Load utility functions
6 . ./functions.sh
6 . ./functions.sh
7
7
8 if [ "$ENABLE_FBTURBO" = true ] ; then
8 if [ "$ENABLE_FBTURBO" = true ] && [ "$ENABLE_GR_ACCEL" = false ] ; then
9 # Install c/c++ build environment inside the chroot
9 # Install c/c++ build environment inside the chroot
10 chroot_install_cc
10 chroot_install_cc
11
11
@@ -191,6 +191,7 CHROOT_SCRIPTS=${CHROOT_SCRIPTS:=""}
191 ENABLE_UBOOT=${ENABLE_UBOOT:=false}
191 ENABLE_UBOOT=${ENABLE_UBOOT:=false}
192 UBOOTSRC_DIR=${UBOOTSRC_DIR:=""}
192 UBOOTSRC_DIR=${UBOOTSRC_DIR:=""}
193 ENABLE_FBTURBO=${ENABLE_FBTURBO:=false}
193 ENABLE_FBTURBO=${ENABLE_FBTURBO:=false}
194 ENABLE_GR_ACCEL=${ENABLE_GR_ACCEL:=true}
194 FBTURBOSRC_DIR=${FBTURBOSRC_DIR:=""}
195 FBTURBOSRC_DIR=${FBTURBOSRC_DIR:=""}
195 ENABLE_VIDEOCORE=${ENABLE_VIDEOCORE:=false}
196 ENABLE_VIDEOCORE=${ENABLE_VIDEOCORE:=false}
196 VIDEOCORESRC_DIR=${VIDEOCORESRC_DIR:=""}
197 VIDEOCORESRC_DIR=${VIDEOCORESRC_DIR:=""}
@@ -270,14 +271,14 fi
270
271
271 # Setup architecture specific settings
272 # Setup architecture specific settings
272 if [ -n "$SET_ARCH" ] ; then
273 if [ -n "$SET_ARCH" ] ; then
273 # 64-bit configuration
274 ## 64-bit configuration
274 if [ "$SET_ARCH" = 64 ] ; then
275 if [ "$SET_ARCH" = 64 ] ; then
275 # General 64-bit depended settings
276 ### General 64-bit depended settings
276 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-aarch64-static}
277 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-aarch64-static}
277 KERNEL_ARCH=${KERNEL_ARCH:=arm64}
278 KERNEL_ARCH=${KERNEL_ARCH:=arm64}
278 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="Image"}
279 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="Image"}
279
280
280 # Raspberry Pi model specific settings
281 ### Raspberry Pi model specific settings
281 if [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] || [ "$RPI_MODEL" = 4 ] ; then
282 if [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] || [ "$RPI_MODEL" = 4 ] ; then
282 if [ "$RPI_MODEL" != 4 ] ; then
283 if [ "$RPI_MODEL" != 4 ] ; then
283 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi3_defconfig}
284 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi3_defconfig}
@@ -289,20 +290,21 if [ -n "$SET_ARCH" ] ; then
289 RELEASE_ARCH=${RELEASE_ARCH:=arm64}
290 RELEASE_ARCH=${RELEASE_ARCH:=arm64}
290 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel8.img}
291 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel8.img}
291 CROSS_COMPILE=${CROSS_COMPILE:=aarch64-linux-gnu-}
292 CROSS_COMPILE=${CROSS_COMPILE:=aarch64-linux-gnu-}
293
292 else
294 else
293 echo "error: Only Raspberry PI 3, 3B+ and 4 support 64-bit"
295 echo "error: Only Raspberry PI 3, 3B+ and 4 support 64-bit"
294 exit 1
296 exit 1
295 fi
297 fi
296 fi
298 fi
297
299
298 # 32-bit configuration
300 ## 32-bit configuration
299 if [ "$SET_ARCH" = 32 ] ; then
301 if [ "$SET_ARCH" = 32 ] ; then
300 # General 32-bit dependend settings
302 ### General 32-bit dependend settings
301 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-arm-static}
303 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-arm-static}
302 KERNEL_ARCH=${KERNEL_ARCH:=arm}
304 KERNEL_ARCH=${KERNEL_ARCH:=arm}
303 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="zImage"}
305 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="zImage"}
304
306
305 # Raspberry Pi model specific settings
307 ### Raspberry Pi (0-1P) model specific settings
306 if [ "$RPI_MODEL" = 0 ] || [ "$RPI_MODEL" = 1 ] || [ "$RPI_MODEL" = 1P ] ; then
308 if [ "$RPI_MODEL" = 0 ] || [ "$RPI_MODEL" = 1 ] || [ "$RPI_MODEL" = 1P ] ; then
307 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-armel"
309 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-armel"
308 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi_defconfig}
310 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi_defconfig}
@@ -320,7 +322,7 if [ -n "$SET_ARCH" ] ; then
320 fi
322 fi
321 fi
323 fi
322 fi
324 fi
323 # Raspberry Pi model specific settings
325 ### Raspberry Pi (2-4) model specific settings
324 if [ "$RPI_MODEL" = 2 ] || [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] || [ "$RPI_MODEL" = 4 ] ; then
326 if [ "$RPI_MODEL" = 2 ] || [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] || [ "$RPI_MODEL" = 4 ] ; then
325 if [ "$RPI_MODEL" != 4 ] ; then
327 if [ "$RPI_MODEL" != 4 ] ; then
326 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcm2709_defconfig}
328 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcm2709_defconfig}
@@ -377,17 +379,18 case "$RPI_MODEL" in
377 ;;
379 ;;
378 esac
380 esac
379
381
380 # Raspberry PI 0,3,3P with Bluetooth and Wifi onboard
382 # Raspberry PI 0,3,3P,4 with Bluetooth and Wifi onboard
381 if [ "$RPI_MODEL" = 0 ] || [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] || [ "$RPI_MODEL" = 4 ] ; then
383 if [ "$RPI_MODEL" = 0 ] || [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] || [ "$RPI_MODEL" = 4 ] ; then
382 # Include bluetooth packages on supported boards
384 ## Include bluetooth packages on supported boards
383 if [ "$ENABLE_BLUETOOTH" = true ] ; then
385 if [ "$ENABLE_BLUETOOTH" = true ] ; then
384 APT_INCLUDES="${APT_INCLUDES},bluetooth,bluez"
386 APT_INCLUDES="${APT_INCLUDES},bluetooth,bluez"
385 fi
387 fi
386 if [ "$ENABLE_WIRELESS" = true ] ; then
388 if [ "$ENABLE_WIRELESS" = true ] ; then
387 APT_INCLUDES="${APT_INCLUDES},wireless-tools,crda,wireless-regdb,wpasupplicant"
389 APT_INCLUDES="${APT_INCLUDES},wireless-tools,crda,wireless-regdb,wpasupplicant"
388 fi
390 fi
389 else # Raspberry PI 1,1P,2 without Wifi and bluetooth onboard
391 # Raspberry PI 1,1P,2 without Wifi and bluetooth onboard
390 # Check if the internal wireless interface is not supported by the RPi model
392 else
393 ## Check if the internal wireless interface is not supported by the RPi model
391 if [ "$ENABLE_WIRELESS" = true ] || [ "$ENABLE_BLUETOOTH" = true ]; then
394 if [ "$ENABLE_WIRELESS" = true ] || [ "$ENABLE_BLUETOOTH" = true ]; then
392 echo "error: The selected Raspberry Pi model has no integrated interface for wireless or bluetooth"
395 echo "error: The selected Raspberry Pi model has no integrated interface for wireless or bluetooth"
393 exit 1
396 exit 1
@@ -506,7 +509,7 if [ -n "$MISSING_PACKAGES" ] ; then
506 read -r confirm
509 read -r confirm
507 [ "$confirm" != "y" ] && exit 1
510 [ "$confirm" != "y" ] && exit 1
508
511
509 # Make sure all missing required packages are installed
512 ## Make sure all missing required packages are installed
510 apt-get update && apt-get -qq -y install `echo "${MISSING_PACKAGES}" | sed "s/ //"`
513 apt-get update && apt-get -qq -y install `echo "${MISSING_PACKAGES}" | sed "s/ //"`
511 fi
514 fi
512
515
@@ -649,12 +652,12 fi
649
652
650 # Replace selected packages with smaller clones
653 # Replace selected packages with smaller clones
651 if [ "$ENABLE_REDUCE" = true ] ; then
654 if [ "$ENABLE_REDUCE" = true ] ; then
652 # Add levee package instead of vim-tiny
655 ## Add levee package instead of vim-tiny
653 if [ "$REDUCE_VIM" = true ] ; then
656 if [ "$REDUCE_VIM" = true ] ; then
654 APT_INCLUDES="$(echo ${APT_INCLUDES} | sed "s/vim-tiny/levee/")"
657 APT_INCLUDES="$(echo ${APT_INCLUDES} | sed "s/vim-tiny/levee/")"
655 fi
658 fi
656
659
657 # Add dropbear package instead of openssh-server
660 ## Add dropbear package instead of openssh-server
658 if [ "$REDUCE_SSHD" = true ] ; then
661 if [ "$REDUCE_SSHD" = true ] ; then
659 APT_INCLUDES="$(echo "${APT_INCLUDES}" | sed "s/openssh-server/dropbear/")"
662 APT_INCLUDES="$(echo "${APT_INCLUDES}" | sed "s/openssh-server/dropbear/")"
660 fi
663 fi
@@ -821,20 +824,21 if [ "$ENABLE_SPLITFS" = true ] ; then
821 dd if=/dev/zero of="$IMAGE_NAME-root.img" bs=512 count="${TABLE_SECTORS}"
824 dd if=/dev/zero of="$IMAGE_NAME-root.img" bs=512 count="${TABLE_SECTORS}"
822 dd if=/dev/zero of="$IMAGE_NAME-root.img" bs=512 count=0 seek="${ROOT_SECTORS}"
825 dd if=/dev/zero of="$IMAGE_NAME-root.img" bs=512 count=0 seek="${ROOT_SECTORS}"
823
826
824 # Write firmware/boot partition tables
827 ## Write firmware/boot partition tables
825 sfdisk -q -L -uS -f "$IMAGE_NAME-frmw.img" 2> /dev/null <<EOM
828 sfdisk -q -L -uS -f "$IMAGE_NAME-frmw.img" 2> /dev/null <<EOM
826 ${TABLE_SECTORS},${FRMW_SECTORS},c,*
829 ${TABLE_SECTORS},${FRMW_SECTORS},c,*
827 EOM
830 EOM
828
831
829 # Write root partition table
832 ## Write root partition table
830 sfdisk -q -L -uS -f "$IMAGE_NAME-root.img" 2> /dev/null <<EOM
833 sfdisk -q -L -uS -f "$IMAGE_NAME-root.img" 2> /dev/null <<EOM
831 ${TABLE_SECTORS},${ROOT_SECTORS},83
834 ${TABLE_SECTORS},${ROOT_SECTORS},83
832 EOM
835 EOM
833
836
834 # Setup temporary loop devices
837 ## Setup temporary loop devices
835 FRMW_LOOP="$(losetup -o 1M --sizelimit 64M -f --show "$IMAGE_NAME"-frmw.img)"
838 FRMW_LOOP="$(losetup -o 1M --sizelimit 64M -f --show "$IMAGE_NAME"-frmw.img)"
836 ROOT_LOOP="$(losetup -o 1M -f --show "$IMAGE_NAME"-root.img)"
839 ROOT_LOOP="$(losetup -o 1M -f --show "$IMAGE_NAME"-root.img)"
837 else # ENABLE_SPLITFS=false
840 # ENABLE_SPLITFS=false
841 else
838 dd if=/dev/zero of="$IMAGE_NAME.img" bs=512 count="${TABLE_SECTORS}"
842 dd if=/dev/zero of="$IMAGE_NAME.img" bs=512 count="${TABLE_SECTORS}"
839 dd if=/dev/zero of="$IMAGE_NAME.img" bs=512 count=0 seek="${IMAGE_SECTORS}"
843 dd if=/dev/zero of="$IMAGE_NAME.img" bs=512 count=0 seek="${IMAGE_SECTORS}"
840
844
General Comments 0
Vous devez vous connecter pour laisser un commentaire. Se connecter maintenant