##// END OF EJS Templates
Sugesstion...
Unknown -
r284:b3abfe40eca8
parent child
Show More
@@ -43,58 +43,11 set -x
43 # Raspberry Pi model configuration
43 # Raspberry Pi model configuration
44 RPI_MODEL=${RPI_MODEL:=2}
44 RPI_MODEL=${RPI_MODEL:=2}
45
45
46 #bcm2708-rpi-0-w.dtb (Used for Pi 0 and PI 0W)
47 RPI0_DTB_FILE=${RPI0_DTB_FILE:=bcm2708-rpi-0-w.dtb}
48 RPI0_UBOOT_CONFIG=${RPI0_UBOOT_CONFIG:=rpi_defconfig}
49
50 #bcm2708-rpi-b.dtb (Used for Pi 1 model A and B)
51 RPI1_DTB_FILE=${RPI1_DTB_FILE:=bcm2708-rpi-b.dtb}
52 RPI1_UBOOT_CONFIG=${RPI1_UBOOT_CONFIG:=rpi_defconfig}
53
54 #bcm2708-rpi-b-plus.dtb (Used for Pi 1 model B+ and A+)
55 RPI1P_DTB_FILE=${RPI1P_DTB_FILE:=bcm2708-rpi-b-plus.dtb}
56 RPI1P_UBOOT_CONFIG=${RPI1P_UBOOT_CONFIG:=rpi_defconfig}
57
58 #bcm2709-rpi-2-b.dtb (Used for Pi 2 model B)
59 RPI2_DTB_FILE=${RPI2_DTB_FILE:=bcm2709-rpi-2-b.dtb}
60 RPI2_UBOOT_CONFIG=${RPI2_UBOOT_CONFIG:=rpi_2_defconfig}
61
62 #bcm2710-rpi-3-b.dtb (Used for Pi 3 model B)
63 RPI3_DTB_FILE=${RPI3_DTB_FILE:=bcm2710-rpi-3-b.dtb}
64 RPI3_UBOOT_CONFIG=${RPI3_UBOOT_CONFIG:=rpi_3_32b_defconfig}
65
66 #bcm2710-rpi-3-b-plus.dtb (Used for Pi 3 model B+)
67 RPI3P_DTB_FILE=${RPI3P_DTB_FILE:=bcm2710-rpi-3-b-plus.dtb}
68 RPI3P_UBOOT_CONFIG=${RPI3P_UBOOT_CONFIG:=rpi_3_32b_defconfig}
69
70 # Debian release
46 # Debian release
71 RELEASE=${RELEASE:=jessie}
47 RELEASE=${RELEASE:=buster}
72 KERNEL_ARCH=${KERNEL_ARCH:=arm}
73 RELEASE_ARCH=${RELEASE_ARCH:=armhf}
74 CROSS_COMPILE=${CROSS_COMPILE:=arm-linux-gnueabihf-}
75 COLLABORA_KERNEL=${COLLABORA_KERNEL:=3.18.0-trunk-rpi2}
76 if [ "$KERNEL_ARCH" = "arm64" ] ; then
77 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi3_defconfig}
78 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel8.img}
79 fi
80
81 if [ "$RPI_MODEL" = 0 ] || [ "$RPI_MODEL" = 1 ] || [ "$RPI_MODEL" = 1P ] ; then
82 #RASPBERRY PI 1, PI ZERO, PI ZERO W, AND COMPUTE MODULE DEFAULT Kernel BUILD CONFIGURATION
83 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi_defconfig}
84 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel7.img}
85 else
86 #RASPBERRY PI 2, PI 3, PI 3+, AND COMPUTE MODULE 3 DEFAULT Kernel BUILD CONFIGURATION
87 #https://www.raspberrypi.org/documentation/linux/kernel/building.md
88 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcm2709_defconfig}
89 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel7.img}
90 fi
91
48
92 if [ "$RELEASE_ARCH" = "arm64" ] ; then
49 #Kernel Branch
93 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-aarch64-static}
50 KERNEL_BRANCH=${KERNEL_BRANCH:="rpi-4.14.y"}
94 else
95 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-arm-static}
96 fi
97 KERNEL_BRANCH=${KERNEL_BRANCH:=""}
98
51
99 # URLs
52 # URLs
100 KERNEL_URL=${KERNEL_URL:=https://github.com/raspberrypi/linux}
53 KERNEL_URL=${KERNEL_URL:=https://github.com/raspberrypi/linux}
@@ -128,6 +81,7 WLAN_FIRMWARE_DIR="${R}/lib/firmware/brcm"
128 RPI_FIRMWARE_DIR=${RPI_FIRMWARE_DIR:=""}
81 RPI_FIRMWARE_DIR=${RPI_FIRMWARE_DIR:=""}
129
82
130 # General settings
83 # General settings
84 SET_ARCH=${SET_ARCH}
131 HOSTNAME=${HOSTNAME:=rpi${RPI_MODEL}-${RELEASE}}
85 HOSTNAME=${HOSTNAME:=rpi${RPI_MODEL}-${RELEASE}}
132 PASSWORD=${PASSWORD:=raspberry}
86 PASSWORD=${PASSWORD:=raspberry}
133 USER_PASSWORD=${USER_PASSWORD:=raspberry}
87 USER_PASSWORD=${USER_PASSWORD:=raspberry}
@@ -208,12 +162,6 KERNEL_REMOVESRC=${KERNEL_REMOVESRC:=true}
208 KERNEL_OLDDEFCONFIG=${KERNEL_OLDDEFCONFIG:=false}
162 KERNEL_OLDDEFCONFIG=${KERNEL_OLDDEFCONFIG:=false}
209 KERNEL_CCACHE=${KERNEL_CCACHE:=false}
163 KERNEL_CCACHE=${KERNEL_CCACHE:=false}
210
164
211 if [ "$KERNEL_ARCH" = "arm64" ] ; then
212 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="Image"}
213 else
214 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="zImage"}
215 fi
216
217 # Kernel compilation from source directory settings
165 # Kernel compilation from source directory settings
218 KERNELSRC_DIR=${KERNELSRC_DIR:=""}
166 KERNELSRC_DIR=${KERNELSRC_DIR:=""}
219 KERNELSRC_CLEAN=${KERNELSRC_CLEAN:=false}
167 KERNELSRC_CLEAN=${KERNELSRC_CLEAN:=false}
@@ -253,35 +201,98 COMPILER_PACKAGES=""
253
201
254 set +x
202 set +x
255
203
256 # Set Raspberry Pi model specific configuration
204 #make script easier and more stable to use with convenient setup switch. Just setup SET_ARCH and RPI_MODEL and your good to go!
257 if [ "$RPI_MODEL" = 0 ] ; then
205 if [ -n "$SET_ARCH" ]
258 DTB_FILE=${RPI0_DTB_FILE}
206 echo "Setting Architecture specific settings"
259 UBOOT_CONFIG=${RPI0_UBOOT_CONFIG}
207 ##################################
260 elif [ "$RPI_MODEL" = 1 ] ; then
208 # 64 bit config
261 DTB_FILE=${RPI1_DTB_FILE}
209 ##################################
262 UBOOT_CONFIG=${RPI1_UBOOT_CONFIG}
210 if [ "$SET_ARCH" = 64 ] && ([ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ]); then
263 elif [ "$RPI_MODEL" = 1P ] ; then
211 echo "64 bit mode selected - Setting up enviroment"
264 DTB_FILE=${RPI1P_DTB_FILE}
212 # 64 bit depended settings
265 UBOOT_CONFIG=${RPI1P_UBOOT_CONFIG}
213 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-aarch64-static}
266 elif [ "$RPI_MODEL" = 2 ] ; then
214 KERNEL_ARCH=${KERNEL_ARCH:=arm64}
267 DTB_FILE=${RPI2_DTB_FILE}
215 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="Image"}
268 UBOOT_CONFIG=${RPI2_UBOOT_CONFIG}
216 RELEASE_ARCH=${RELEASE_ARCH:=arm64}
269 elif [ "$RPI_MODEL" = 3 ] ; then
217 CROSS_COMPILE=${CROSS_COMPILE:=aarch64-linux-gnu-}
270 DTB_FILE=${RPI3_DTB_FILE}
218 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-arm64"
271 UBOOT_CONFIG=${RPI3_UBOOT_CONFIG}
219
272 elif [ "$RPI_MODEL" = 3P ] ; then
220 # RPI 3 serie specific settings
273 DTB_FILE=${RPI3P_DTB_FILE}
221 DTB_FILE=${DTB_FILE:=bcm2710-rpi-3-b.dtb}
274 UBOOT_CONFIG=${RPI3P_UBOOT_CONFIG}
222 UBOOT_CONFIG=${UBOOT_CONFIG:=rpi_3_defconfig}
223
224 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi3_defconfig}
225 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel8.img}
226 else
227 echo "error: Only Raspberry PI 3 and 3B+ support 64bit"
228 exit 1
229 fi
230
231 ##################################
232 # 32 bit config
233 ##################################
234 if [ "$SET_ARCH" = 32 ] ; then
235 echo "32 bit mode selected - Setting up enviroment"
236 #General 32bit configuration
237 QEMU_BINARY=${QEMU_BINARY:=/usr/bin/qemu-arm-static}
238 KERNEL_ARCH=${KERNEL_ARCH:=arm}
239 KERNEL_BIN_IMAGE=${KERNEL_BIN_IMAGE:="zImage"}
240
241 #Raspberry setting grouped by board compability
242 if [ "$RPI_MODEL" = 0 ] || [ "$RPI_MODEL" = 1 ] || [ "$RPI_MODEL" = 1P ] ; then
243 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-armel"
244 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcmrpi_defconfig}
245 UBOOT_CONFIG=${UBOOT_CONFIG:=rpi_defconfig}
246 RELEASE_ARCH=${RELEASE_ARCH:=armel}
247 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel.img}
248 CROSS_COMPILE=${CROSS_COMPILE:=arm-linux-gnueabi-}
249 elif [ "$RPI_MODEL" = 2 ] || [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] ; then
250 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-armhf"
251 KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG:=bcm2709_defconfig}
252 RELEASE_ARCH=${RELEASE_ARCH:=armhf}
253 KERNEL_IMAGE=${KERNEL_IMAGE:=kernel7.img}
254 CROSS_COMPILE=${CROSS_COMPILE:=arm-linux-gnueabihf-}
255 fi
256
257 #Device specific configuration
258 case "$RPI_MODEL" in
259 0)
260 DTB_FILE=${DTB_FILE:=bcm2708-rpi-0-w.dtb} ;;
261 1)
262 DTB_FILE=${DTB_FILE:=bcm2708-rpi-b.dtb} ;;
263 1P)
264 DTB_FILE=${DTB_FILE:=bcm2708-rpi-b-plus.dtb} ;;
265 2)
266 DTB_FILE=${DTB_FILE:=bcm2709-rpi-2-b.dtb}
267 UBOOT_CONFIG=${UBOOT_CONFIG:=rpi_2_defconfig}
268 #Precompiled Kernel rpi2
269 COLLABORA_KERNEL=${COLLABORA_KERNEL:=3.18.0-trunk-rpi2}
270 ;;
271 3)
272 DTB_FILE=${DTB_FILE:=bcm2710-rpi-3-b.dtb}
273 UBOOT_CONFIG=${UBOOT_CONFIG:=rpi_3_32b_defconfig}
274 ;;
275 3P
276 DTB_FILE=${DTB_FILE:=bcm2710-rpi-3-b.dtb}
277 UBOOT_CONFIG=${UBOOT_CONFIG:=rpi_3_32b_defconfig}
278 ;;
279 *)
280 echo "error: Raspberry Pi model ${RPI_MODEL} is not supported!"
281 exit 1
282 ;;
283 esac
284 fi
275 else
285 else
276 echo "error: Raspberry Pi model ${RPI_MODEL} is not supported!"
286 echo "error: Please set '32' or '64' as value for SET_ARCH"
277 exit 1
287 exit 1
278 fi
288 fi
279
289
280 # Check if the internal wireless interface is supported by the RPi model
290 # Check if the internal wireless interface is supported by the RPi model
281 if [ "$ENABLE_WIRELESS" = true ] && ([ "$RPI_MODEL" = 1 ] || [ "$RPI_MODEL" = 1P ] || [ "$RPI_MODEL" = 2 ]); then
291 if [ "$ENABLE_WIRELESS" = true ] && ([ "$RPI_MODEL" = 1 ] || [ "$RPI_MODEL" = 1P ] || [ "$RPI_MODEL" = 2 ]) ; then
282
283 echo "error: The selected Raspberry Pi model has no internal wireless interface"
292 echo "error: The selected Raspberry Pi model has no internal wireless interface"
284 exit 1
293 exit 1
294 else
295 echo "Raspberry Pi model"
285 fi
296 fi
286
297
287 # Check if DISABLE_UNDERVOLT_WARNINGS parameter value is supported
298 # Check if DISABLE_UNDERVOLT_WARNINGS parameter value is supported
@@ -292,26 +303,6 if [ ! -z "$DISABLE_UNDERVOLT_WARNINGS" ] ; then
292 fi
303 fi
293 fi
304 fi
294
305
295 # Build RPi2/3 Linux kernel if required by Debian release
296 if [ "$RELEASE" = "stretch" ] || [ "$RELEASE" = "buster" ] ; then
297 BUILD_KERNEL=true
298 fi
299
300 # Add packages required for kernel cross compilation
301 if [ "$BUILD_KERNEL" = true ] ; then
302 if [ "$KERNEL_ARCH" = "arm" ] ; then
303 if [ "$RELEASE_ARCH" = "armel" ]; then
304 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-armel"
305 fi
306 if [ "$RELEASE_ARCH" = "armhf" ]; then
307 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-armhf"
308 fi
309 if [ "$RELEASE_ARCH" = "arm64" ]; then
310 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} crossbuild-essential-arm64"
311 fi
312 fi
313 fi
314
315 # Add libncurses5 to enable kernel menuconfig
306 # Add libncurses5 to enable kernel menuconfig
316 if [ "$KERNEL_MENUCONFIG" = true ] ; then
307 if [ "$KERNEL_MENUCONFIG" = true ] ; then
317 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} libncurses5-dev"
308 REQUIRED_PACKAGES="${REQUIRED_PACKAGES} libncurses5-dev"
General Comments 0
Vous devez vous connecter pour laisser un commentaire. Se connecter maintenant