@@ -0,0 +1,9 | |||||
|
1 | path-exclude /usr/share/doc/* | |||
|
2 | path-include /usr/share/doc/*/copyright | |||
|
3 | path-exclude /usr/share/man/* | |||
|
4 | path-exclude /usr/share/groff/* | |||
|
5 | path-exclude /usr/share/info/* | |||
|
6 | path-exclude /usr/share/lintian/* | |||
|
7 | path-exclude /usr/share/linda/* | |||
|
8 | path-exclude /usr/share/locale/* | |||
|
9 | path-include /usr/share/locale/en* |
@@ -0,0 +1,9 | |||||
|
1 | path-exclude=/usr/share/doc/* | |||
|
2 | path-include=/usr/share/doc/*/copyright | |||
|
3 | path-exclude=/usr/share/man/* | |||
|
4 | path-exclude=/usr/share/groff/* | |||
|
5 | path-exclude=/usr/share/info/* | |||
|
6 | path-exclude=/usr/share/lintian/* | |||
|
7 | path-exclude=/usr/share/linda/* | |||
|
8 | path-exclude=/usr/share/locale/* | |||
|
9 | path-include=/usr/share/locale/en* |
@@ -0,0 +1,3 | |||||
|
1 | logger -t "rc.firstboot" "Generating D-Bus machine-id" | |||
|
2 | rm -f /var/lib/dbus/machine-id | |||
|
3 | dbus-uuidgen --ensure |
@@ -0,0 +1,4 | |||||
|
1 | logger -t "rc.firstboot" "Creating /etc/resolv.conf symlink" | |||
|
2 | if [ -f "/run/systemd/resolve/resolv.conf" ] ; then | |||
|
3 | ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf | |||
|
4 | fi |
@@ -20,6 +20,7 APT_SERVER=ftp.de.debian.org APT_PROXY="http://127.0.0.1:3142/" ./rpi2-gen-image | |||||
20 | ENABLE_MINBASE=true ./rpi2-gen-image.sh |
|
20 | ENABLE_MINBASE=true ./rpi2-gen-image.sh | |
21 | BUILD_KERNEL=true ENABLE_MINBASE=true ENABLE_IPV6=false ./rpi2-gen-image.sh |
|
21 | BUILD_KERNEL=true ENABLE_MINBASE=true ENABLE_IPV6=false ./rpi2-gen-image.sh | |
22 | BUILD_KERNEL=true KERNEL_SRCDIR=/tmp/linux ./rpi2-gen-image.sh |
|
22 | BUILD_KERNEL=true KERNEL_SRCDIR=/tmp/linux ./rpi2-gen-image.sh | |
|
23 | ENABLE_MINBASE=true ENABLE_REDUCE=true ENABLE_MINGPU=true BUILD_KERNEL=true ./rpi2-gen-image.sh | |||
23 | ``` |
|
24 | ``` | |
24 |
|
25 | |||
25 | #### APT settings: |
|
26 | #### APT settings: | |
@@ -129,6 +130,9 Install a user defined window manager for the X Window System. To make sure all | |||||
129 | ##### `ENABLE_MINBASE`=false |
|
130 | ##### `ENABLE_MINBASE`=false | |
130 | Use debootstrap script variant `minbase` which only includes essential packages and apt. This will reduce the disk usage by about 65 MB. |
|
131 | Use debootstrap script variant `minbase` which only includes essential packages and apt. This will reduce the disk usage by about 65 MB. | |
131 |
|
132 | |||
|
133 | ##### `ENABLE_REDUCE`=false | |||
|
134 | Reduce the disk usage by deleting all man pages and doc files (harsh). APT will be configured to use compressed package repository lists and no package caching files. If `ENABLE_MINGPU`=true unnecessary start.elf and fixup.dat files will also be removed from the boot partition. This will make it possible to generate output OS images with about 160MB of used disk space. It's recommended to use this parameter in combination with `ENABLE_MINBASE`=true. | |||
|
135 | ||||
132 | ##### `ENABLE_UBOOT`=false |
|
136 | ##### `ENABLE_UBOOT`=false | |
133 | Replace default RPi2 second stage bootloader (bootcode.bin) with U-Boot bootloader. U-Boot can boot images via the network using the BOOTP/TFTP protocol. |
|
137 | Replace default RPi2 second stage bootloader (bootcode.bin) with U-Boot bootloader. U-Boot can boot images via the network using the BOOTP/TFTP protocol. | |
134 |
|
138 | |||
@@ -204,6 +208,7 All the required configuration files that will be copied to the generated OS ima | |||||
204 | | Directory | Description | |
|
208 | | Directory | Description | | |
205 | | --- | --- | |
|
209 | | --- | --- | | |
206 | | `boot` | Boot and RPi2 configuration files | |
|
210 | | `boot` | Boot and RPi2 configuration files | | |
|
211 | | `dpkg` | Package Manager configuration | | |||
207 | | `firstboot` | Scripts that get executed on first boot | |
|
212 | | `firstboot` | Scripts that get executed on first boot | | |
208 | | `iptables` | Firewall configuration files | |
|
213 | | `iptables` | Firewall configuration files | | |
209 | | `locales` | Locales configuration | |
|
214 | | `locales` | Locales configuration | |
@@ -52,7 +52,11 if [ "$BUILD_KERNEL" = true ] ; then | |||||
52 | fi |
|
52 | fi | |
53 |
|
53 | |||
54 | # Install kernel modules |
|
54 | # Install kernel modules | |
|
55 | if [ "$ENABLE_REDUCE" = true ] ; then | |||
|
56 | make -C $R/usr/src/linux ARCH=${KERNEL_ARCH} CROSS_COMPILE=${CROSS_COMPILE} INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=../../.. modules_install | |||
|
57 | else | |||
55 | make -C $R/usr/src/linux ARCH=${KERNEL_ARCH} CROSS_COMPILE=${CROSS_COMPILE} INSTALL_MOD_PATH=../../.. modules_install |
|
58 | make -C $R/usr/src/linux ARCH=${KERNEL_ARCH} CROSS_COMPILE=${CROSS_COMPILE} INSTALL_MOD_PATH=../../.. modules_install | |
|
59 | fi | |||
56 |
|
60 | |||
57 | # Install kernel headers |
|
61 | # Install kernel headers | |
58 | if [ "$KERNEL_HEADERS" = true ] ; then |
|
62 | if [ "$KERNEL_HEADERS" = true ] ; then |
@@ -19,6 +19,12 if [ "$EXPANDROOT" = true ] ; then | |||||
19 | cat files/firstboot/22-expandroot.sh >> $R/etc/rc.firstboot |
|
19 | cat files/firstboot/22-expandroot.sh >> $R/etc/rc.firstboot | |
20 | fi |
|
20 | fi | |
21 |
|
21 | |||
|
22 | # Ensure that dbus machine-id exists | |||
|
23 | cat files/firstboot/23-generate-machineid.sh >> $R/etc/rc.firstboot | |||
|
24 | ||||
|
25 | # Create /etc/resolv.conf symlink | |||
|
26 | cat files/firstboot/24-create-resolv-symlink.sh >> $R/etc/rc.firstboot | |||
|
27 | ||||
22 | # Finalize rc.firstboot script |
|
28 | # Finalize rc.firstboot script | |
23 | cat files/firstboot/99-finish.sh >> $R/etc/rc.firstboot |
|
29 | cat files/firstboot/99-finish.sh >> $R/etc/rc.firstboot | |
24 | chmod +x $R/etc/rc.firstboot |
|
30 | chmod +x $R/etc/rc.firstboot |
@@ -89,6 +89,7 ENABLE_ROOT_SSH=${ENABLE_ROOT_SSH:=false} | |||||
89 |
|
89 | |||
90 | # Advanced settings |
|
90 | # Advanced settings | |
91 | ENABLE_MINBASE=${ENABLE_MINBASE:=false} |
|
91 | ENABLE_MINBASE=${ENABLE_MINBASE:=false} | |
|
92 | ENABLE_REDUCE=${ENABLE_REDUCE:=flase} | |||
92 | ENABLE_UBOOT=${ENABLE_UBOOT:=false} |
|
93 | ENABLE_UBOOT=${ENABLE_UBOOT:=false} | |
93 | ENABLE_FBTURBO=${ENABLE_FBTURBO:=false} |
|
94 | ENABLE_FBTURBO=${ENABLE_FBTURBO:=false} | |
94 | ENABLE_HARDNET=${ENABLE_HARDNET:=false} |
|
95 | ENABLE_HARDNET=${ENABLE_HARDNET:=false} | |
@@ -296,8 +297,44 EOF | |||||
296 | rm -rf "${R}/chroot_scripts" |
|
297 | rm -rf "${R}/chroot_scripts" | |
297 | fi |
|
298 | fi | |
298 |
|
299 | |||
299 | ## Cleanup |
|
300 | # Remove apt-utils | |
300 | chroot_exec apt-get purge -q -y --force-yes apt-utils |
|
301 | chroot_exec apt-get purge -qq -y --force-yes apt-utils | |
|
302 | ||||
|
303 | # Reduce the image size by removing and compressing | |||
|
304 | if [ "$ENABLE_REDUCE" = true ] ; then | |||
|
305 | # Install dpkg configuration fragment file | |||
|
306 | install_readonly files/dpkg/01nodoc $R/etc/dpkg/dpkg.cfg.d/01nodoc | |||
|
307 | ||||
|
308 | # Install APT configuration fragment files | |||
|
309 | install_readonly files/apt/02nocache $R/etc/apt/apt.conf.d/02nocache | |||
|
310 | install_readonly files/apt/03compress $R/etc/apt/apt.conf.d/03compress | |||
|
311 | install_readonly files/apt/04norecommends $R/etc/apt/apt.conf.d/04norecommends | |||
|
312 | ||||
|
313 | # Remove APT cache files | |||
|
314 | rm -fr $R/var/cache/apt/pkgcache.bin | |||
|
315 | rm -fr $R/var/cache/apt/srcpkgcache.bin | |||
|
316 | ||||
|
317 | # Remove all doc and man files | |||
|
318 | find $R/usr/share/doc -depth -type f ! -name copyright | xargs rm || true | |||
|
319 | find $R/usr/share/doc -empty | xargs rmdir || true | |||
|
320 | rm -rf $R/usr/share/man $R/usr/share/groff $R/usr/share/info $R/usr/share/lintian $R/usr/share/linda $R/var/cache/man | |||
|
321 | ||||
|
322 | # Remove all translation files | |||
|
323 | find $R/usr/share/locale -mindepth 1 -maxdepth 1 ! -name 'en' | xargs rm -r | |||
|
324 | ||||
|
325 | # Clean APT list of repositories | |||
|
326 | rm -fr $R/var/lib/apt/lists/* | |||
|
327 | chroot_exec apt-get -qq -y update | |||
|
328 | ||||
|
329 | if [ "$ENABLE_MINGPU" = true ] ; then | |||
|
330 | rm -f $R/boot/firmware/start.elf | |||
|
331 | rm -f $R/boot/firmware/fixup.dat | |||
|
332 | rm -f $R/boot/firmware/start_x.elf | |||
|
333 | rm -f $R/boot/firmware/fixup_x.dat | |||
|
334 | fi | |||
|
335 | fi | |||
|
336 | ||||
|
337 | # APT Cleanup | |||
301 | chroot_exec apt-get -y clean |
|
338 | chroot_exec apt-get -y clean | |
302 | chroot_exec apt-get -y autoclean |
|
339 | chroot_exec apt-get -y autoclean | |
303 | chroot_exec apt-get -y autoremove |
|
340 | chroot_exec apt-get -y autoremove | |
@@ -306,19 +343,21 chroot_exec apt-get -y autoremove | |||||
306 | umount -l $R/proc |
|
343 | umount -l $R/proc | |
307 | umount -l $R/sys |
|
344 | umount -l $R/sys | |
308 |
|
345 | |||
|
346 | # Clean up directories | |||
|
347 | rm -rf $R/run | |||
|
348 | rm -rf $R/tmp/* | |||
|
349 | ||||
309 | # Clean up files |
|
350 | # Clean up files | |
310 | rm -f $R/etc/apt/sources.list.save |
|
351 | rm -f $R/etc/apt/sources.list.save | |
311 | rm -f $R/etc/resolvconf/resolv.conf.d/original |
|
352 | rm -f $R/etc/resolvconf/resolv.conf.d/original | |
312 | rm -rf $R/run |
|
|||
313 | mkdir -p $R/run |
|
|||
314 | rm -f $R/etc/*- |
|
353 | rm -f $R/etc/*- | |
315 | rm -f $R/root/.bash_history |
|
354 | rm -f $R/root/.bash_history | |
316 | rm -rf $R/tmp/* |
|
|||
317 | rm -f $R/var/lib/urandom/random-seed |
|
355 | rm -f $R/var/lib/urandom/random-seed | |
318 |
|
|
356 | rm -f $R/var/lib/dbus/machine-id | |
319 | rm -f $R/etc/machine-id |
|
357 | rm -f $R/etc/machine-id | |
320 |
rm -f |
|
358 | rm -f $R/etc/apt/apt.conf.d/10proxy | |
321 | rm -f $R/etc/resolv.conf |
|
359 | rm -f $R/etc/resolv.conf | |
|
360 | rm -f "${R}${QEMU_BINARY}" | |||
322 |
|
361 | |||
323 | # Calculate size of the chroot directory in KB |
|
362 | # Calculate size of the chroot directory in KB | |
324 | CHROOT_SIZE=$(expr `du -s $R | awk '{ print $1 }'`) |
|
363 | CHROOT_SIZE=$(expr `du -s $R | awk '{ print $1 }'`) |
General Comments 0
Vous devez vous connecter pour laisser un commentaire.
Se connecter maintenant