Bug #2127
closedFull Update Image Size is too large on 2.1
0%
Description
The full update image size from the initial test builds on FreeBSD 9 is more than 100MB. The upload size limit on pfSense 1.2.3 and 2.0 is 100MB.
We increased the limit on 2.1 but unless we can find a way to shrink the update file, uploading firmware for in-GUI upgrades may not work on 1.2.3 and 2.0 without first bumping that size up.
Auto Update and Console Update will still work because they are not bound by the same limit.
Updated by Jim Pingle almost 13 years ago
- Subject changed from Full Update Image Size to Full Update Image Size is too large on 2.1
Updated by Chris Buechler almost 13 years ago
I expect we can shrink that down considerably to get under 100 MB. It has to be including a number of unnecessary things to get to be that big, and even 2.0 and prior have at least a few unnecessary binaries that should be removed.
Updated by Jim Pingle almost 13 years ago
I'm sure there is a way to shrink it. Currently the kernels take up more room than anything else (combined, essentially)
Here are the largest things in the Full Update amd64 image for 2.1 on 9.x:
$ tar tvzf pfSense-Full-Update-2.1-DEVELOPMENT-amd64-20120121-1456.tgz | sort +4 -rn | more -rw-r--r-- 0 root wheel 11225044 Jan 21 08:58 ./kernels/kernel_wrap_Dev.gz -rw-r--r-- 0 root wheel 11087189 Jan 21 08:58 ./kernels/kernel_Dev.gz -rw-r--r-- 0 root wheel 10976697 Jan 21 08:58 ./kernels/kernel_SMP.gz -rw-r--r-- 0 root wheel 10976695 Jan 21 08:58 ./kernels/kernel_uniprocessor.gz -r-xr-xr-x 0 root wheel 10152659 Jan 21 04:25 ./boot/kernel/kernel.gz -rw-r--r-- 0 root wheel 8624207 Jan 21 08:58 ./kernels/kernel_wrap.gz -r-xr-xr-x 0 root wheel 6223104 Jan 21 08:57 ./usr/libexec/cc1 -r--r--r-- 0 root wheel 3794596 Jan 21 08:56 ./usr/lib/libc_pic.a -r--r--r-- 0 root wheel 3288542 Jan 21 08:57 ./usr/lib/libcrypto.a -r--r--r-- 0 root wheel 3248914 Jan 21 08:56 ./usr/lib/libc.a -r-xr-xr-x 0 root wheel 2964432 Jan 21 08:59 ./usr/local/bin/php -r--r--r-- 0 root wheel 2866812 Jan 21 08:57 ./usr/lib32/libc_pic.a -r--r--r-- 0 root wheel 2188798 Jan 21 08:57 ./usr/lib32/libcrypto.a -r--r--r-- 0 root wheel 2180154 Jan 21 08:57 ./usr/lib32/libc.a -r-xr-xr-x 0 root wheel 1952543 Jan 21 08:59 ./usr/local/lib/php/20090626/mbstring.so -r-xr-xr-x 0 root wheel 1930032 Jan 21 08:58 ./boot/kernel/zfs.ko -r-xr-xr-x 0 root wheel 1849824 Jan 21 08:59 ./usr/local/sbin/dhcpd -r--r--r-- 0 root wheel 1751200 Jan 21 08:57 ./usr/share/misc/magic.mgc -r-xr-xr-x 0 root wheel 1739616 Jan 21 08:59 ./usr/bin/dig -r-xr-xr-x 0 root wheel 1729088 Jan 21 08:59 ./usr/bin/nslookup -r-xr-xr-x 0 root wheel 1728784 Jan 21 08:59 ./usr/bin/host -rwxr-xr-x 0 root wheel 1717360 Jan 21 08:59 ./lib/libcrypto.so.6 -r-xr-xr-x 0 root wheel 1698280 Jan 21 08:59 ./usr/bin/nsupdate -rwxr-xr-x 0 root wheel 1514872 Jan 21 08:59 ./usr/local/lib/libxml2.so.5 -r-xr-xr-x 0 root wheel 1455184 Jan 21 08:59 ./usr/local/sbin/dhcrelay -r--r--r-- 0 root wheel 1435640 Jan 21 08:57 ./usr/lib32/libcrypto.so.6 -r--r--r-- 0 root wheel 1343488 Jan 21 08:57 ./usr/share/misc/termcap.db -rwxr-xr-x 1 root wheel 1315160 Jan 21 08:59 ./lib/libc.so.7 -r-xr-xr-x 0 root wheel 1284920 Jan 21 08:59 ./usr/local/bin/links -r-xr-xr-x 0 root wheel 1276200 Jan 21 08:57 ./usr/bin/ld -r-xr-xr-x 0 root wheel 1172096 Jan 21 08:57 ./usr/bin/as -r--r--r-- 1 root wheel 1096236 Jan 21 08:57 ./usr/lib32/libc.so.7 -rwxr-xr-x 0 root wheel 1077061 Jan 21 08:59 ./usr/local/lib/libiconv.so.3 -rwxr-xr-x 0 root wheel 1039640 Jan 21 08:59 ./usr/lib/libstdc++.so.6 -r-xr-xr-x 0 root wheel 1011008 Jan 21 08:57 ./usr/bin/objdump
(That is every object >1MB)
About half the size of the entire image is kernels.
Updated by Jim Pingle almost 13 years ago
Not sure why the UP kernel is in that list either, since we don't use it. There's ~11MB right there...
Updated by Ermal Luçi almost 13 years ago
- Status changed from New to Feedback
I removed the 3 biggest files there _Dev kernels and uniprocessor one since their presence is not really needed these days.
More cleanup needs to be done on what gets putted on the image itself.
For example cc/objdump/as, full /etc/rc.d dir is not needed apart some specific scripts, /usr/local/share, etc...
Updated by Jim Pingle over 12 years ago
- Status changed from Feedback to Resolved
This has been OK for a while, the images are now under 90MB, which is down considerably from where they started.