@@ -8,7 +8,7 | |||||
8 | # Fetch and build latest raspberry kernel |
|
8 | # Fetch and build latest raspberry kernel | |
9 | if [ "$BUILD_KERNEL" = true ] ; then |
|
9 | if [ "$BUILD_KERNEL" = true ] ; then | |
10 | # Setup source directory |
|
10 | # Setup source directory | |
11 | mkdir -p "${R}/usr/src/linux" |
|
11 | mkdir -p "${KERNEL_DIR}" | |
12 |
|
12 | |||
13 | # Copy existing kernel sources into chroot directory |
|
13 | # Copy existing kernel sources into chroot directory | |
14 | if [ -n "$KERNELSRC_DIR" ] && [ -d "$KERNELSRC_DIR" ] ; then |
|
14 | if [ -n "$KERNELSRC_DIR" ] && [ -d "$KERNELSRC_DIR" ] ; then | |
@@ -83,6 +83,10 if [ "$BUILD_KERNEL" = true ] ; then | |||||
83 | "${KERNEL_DIR}/.config" |
|
83 | "${KERNEL_DIR}/.config" | |
84 | fi |
|
84 | fi | |
85 |
|
85 | |||
|
86 | if [ "$KERNELSRC_CONFIG" = true ] ; then | |||
|
87 | # Load default raspberry kernel configuration | |||
|
88 | make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" "${KERNEL_DEFCONFIG}" | |||
|
89 | ||||
86 | #Switch to KERNELSRC_DIR |
|
90 | #Switch to KERNELSRC_DIR | |
87 | pushd "${KERNEL_DIR}" |
|
91 | pushd "${KERNEL_DIR}" | |
88 |
|
92 | |||
@@ -93,7 +97,6 if [ "$BUILD_KERNEL" = true ] ; then | |||||
93 | # requires activation via kernel parameter or sysfs |
|
97 | # requires activation via kernel parameter or sysfs | |
94 | # see e.g. https://askubuntu.com/a/472227 for a summary of ZSWAP (vs ZRAM etc.) |
|
98 | # see e.g. https://askubuntu.com/a/472227 for a summary of ZSWAP (vs ZRAM etc.) | |
95 | # and e.g. https://wiki.archlinux.org/index.php/zswap for parameters etc. |
|
99 | # and e.g. https://wiki.archlinux.org/index.php/zswap for parameters etc. | |
96 |
|
||||
97 | set_kernel_config ZPOOL y |
|
100 | set_kernel_config ZPOOL y | |
98 | set_kernel_config ZSWAP y |
|
101 | set_kernel_config ZSWAP y | |
99 | set_kernel_config ZBUD y |
|
102 | set_kernel_config ZBUD y | |
@@ -105,7 +108,6 if [ "$BUILD_KERNEL" = true ] ; then | |||||
105 | if [ "$KERNEL_VIRT" = true ] && ( [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] ) ; then |
|
108 | if [ "$KERNEL_VIRT" = true ] && ( [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] ) ; then | |
106 | # enable basic KVM support; see e.g. |
|
109 | # enable basic KVM support; see e.g. | |
107 | # https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=210546&start=25#p1300453 |
|
110 | # https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=210546&start=25#p1300453 | |
108 |
|
||||
109 | set_kernel_config VIRTUALIZATION y |
|
111 | set_kernel_config VIRTUALIZATION y | |
110 | set_kernel_config KVM y |
|
112 | set_kernel_config KVM y | |
111 | set_kernel_config VHOST_NET m |
|
113 | set_kernel_config VHOST_NET m | |
@@ -220,12 +222,9 if [ "$BUILD_KERNEL" = true ] ; then | |||||
220 | set_kernel_config CONFIG_CGROUP_BPF y |
|
222 | set_kernel_config CONFIG_CGROUP_BPF y | |
221 | fi |
|
223 | fi | |
222 |
|
224 | |||
|
225 | #Revert to previous directory | |||
223 |
popd |
|
226 | popd | |
224 |
|
227 | |||
225 | if [ "$KERNELSRC_CONFIG" = true ] ; then |
|
|||
226 | # Load default raspberry kernel configuration |
|
|||
227 | make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" "${KERNEL_DEFCONFIG}" |
|
|||
228 |
|
||||
229 | # Set kernel configuration parameters to enable qemu emulation |
|
228 | # Set kernel configuration parameters to enable qemu emulation | |
230 | if [ "$ENABLE_QEMU" = true ] ; then |
|
229 | if [ "$ENABLE_QEMU" = true ] ; then | |
231 | echo "CONFIG_FHANDLE=y" >> "${KERNEL_DIR}"/.config |
|
230 | echo "CONFIG_FHANDLE=y" >> "${KERNEL_DIR}"/.config | |
@@ -396,7 +395,7 if [ "$KERNEL_ARCH" = arm64 ] && ( [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] | |||||
396 | rm -fr "${temp_dir}" |
|
395 | rm -fr "${temp_dir}" | |
397 |
|
396 | |||
398 | # Set permissions of the kernel sources |
|
397 | # Set permissions of the kernel sources | |
399 | chown -R root:root "${R}/boot" |
|
398 | chown -R root:root "${R}/boot/firmware" | |
400 | chown -R root:root "${R}/lib" |
|
399 | chown -R root:root "${R}/lib" | |
401 | fi |
|
400 | fi | |
402 |
|
401 |
@@ -135,17 +135,17 ln -sf firmware/config.txt "${R}/boot/config.txt" | |||||
135 | ln -sf firmware/cmdline.txt "${R}/boot/cmdline.txt" |
|
135 | ln -sf firmware/cmdline.txt "${R}/boot/cmdline.txt" | |
136 |
|
136 | |||
137 | # Install and setup kernel modules to load at boot |
|
137 | # Install and setup kernel modules to load at boot | |
138 |
mkdir -p "${R} |
|
138 | mkdir -p "${LIB_DIR}/modules-load.d/" | |
139 |
install_readonly files/modules/rpi2.conf "${R} |
|
139 | install_readonly files/modules/rpi2.conf "${LIB_DIR}/modules-load.d/rpi2.conf" | |
140 |
|
140 | |||
141 | # Load hardware random module at boot |
|
141 | # Load hardware random module at boot | |
142 | if [ "$ENABLE_HWRANDOM" = true ] && [ "$BUILD_KERNEL" = false ] ; then |
|
142 | if [ "$ENABLE_HWRANDOM" = true ] && [ "$BUILD_KERNEL" = false ] ; then | |
143 |
sed -i "s/^# bcm2708_rng/bcm2708_rng/" "${R} |
|
143 | sed -i "s/^# bcm2708_rng/bcm2708_rng/" "${LIB_DIR}/modules-load.d/rpi2.conf" | |
144 | fi |
|
144 | fi | |
145 |
|
145 | |||
146 | # Load sound module at boot |
|
146 | # Load sound module at boot | |
147 | if [ "$ENABLE_SOUND" = true ] ; then |
|
147 | if [ "$ENABLE_SOUND" = true ] ; then | |
148 |
sed -i "s/^# snd_bcm2835/snd_bcm2835/" "${R} |
|
148 | sed -i "s/^# snd_bcm2835/snd_bcm2835/" "${LIB_DIR}/modules-load.d/rpi2.conf" | |
149 | else |
|
149 | else | |
150 | echo "dtparam=audio=off" >> "${BOOT_DIR}/config.txt" |
|
150 | echo "dtparam=audio=off" >> "${BOOT_DIR}/config.txt" | |
151 | fi |
|
151 | fi | |
@@ -153,16 +153,16 fi | |||||
153 | # Enable I2C interface |
|
153 | # Enable I2C interface | |
154 | if [ "$ENABLE_I2C" = true ] ; then |
|
154 | if [ "$ENABLE_I2C" = true ] ; then | |
155 | echo "dtparam=i2c_arm=on" >> "${BOOT_DIR}/config.txt" |
|
155 | echo "dtparam=i2c_arm=on" >> "${BOOT_DIR}/config.txt" | |
156 |
sed -i "s/^# i2c-bcm2708/i2c-bcm2708/" "${R} |
|
156 | sed -i "s/^# i2c-bcm2708/i2c-bcm2708/" "${LIB_DIR}/modules-load.d/rpi2.conf" | |
157 |
sed -i "s/^# i2c-dev/i2c-dev/" "${R} |
|
157 | sed -i "s/^# i2c-dev/i2c-dev/" "${LIB_DIR}/modules-load.d/rpi2.conf" | |
158 | fi |
|
158 | fi | |
159 |
|
159 | |||
160 | # Enable SPI interface |
|
160 | # Enable SPI interface | |
161 | if [ "$ENABLE_SPI" = true ] ; then |
|
161 | if [ "$ENABLE_SPI" = true ] ; then | |
162 | echo "dtparam=spi=on" >> "${BOOT_DIR}/config.txt" |
|
162 | echo "dtparam=spi=on" >> "${BOOT_DIR}/config.txt" | |
163 |
echo "spi-bcm2708" >> "${R} |
|
163 | echo "spi-bcm2708" >> "${LIB_DIR}/modules-load.d/rpi2.conf" | |
164 | if [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ]; then |
|
164 | if [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ]; then | |
165 |
sed -i "s/spi-bcm2708/spi-bcm2835/" "${R} |
|
165 | sed -i "s/spi-bcm2708/spi-bcm2835/" "${LIB_DIR}/modules-load.d/rpi2.conf" | |
166 | fi |
|
166 | fi | |
167 | fi |
|
167 | fi | |
168 |
|
168 |
@@ -83,7 +83,7 ETC_DIR="${R}/etc" | |||||
83 | LIB_DIR="${R}/lib" |
|
83 | LIB_DIR="${R}/lib" | |
84 | BOOT_DIR="${R}/boot/firmware" |
|
84 | BOOT_DIR="${R}/boot/firmware" | |
85 | KERNEL_DIR="${R}/usr/src/linux" |
|
85 | KERNEL_DIR="${R}/usr/src/linux" | |
86 |
WLAN_FIRMWARE_DIR="${R} |
|
86 | WLAN_FIRMWARE_DIR="${LIB_DIR}/firmware/brcm" | |
87 |
|
87 | |||
88 | # Firmware directory: Blank if download from github |
|
88 | # Firmware directory: Blank if download from github | |
89 | RPI_FIRMWARE_DIR=${RPI_FIRMWARE_DIR:=""} |
|
89 | RPI_FIRMWARE_DIR=${RPI_FIRMWARE_DIR:=""} |
General Comments 0
Vous devez vous connecter pour laisser un commentaire.
Se connecter maintenant