blob: c258f4250a33df676cc212bafcd1e89e8d51d68e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
COMPATIBLE_MACHINE = "nslu2"
IMAGE_BASENAME = "unslung"
IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DISTRO_VERSION}"
IMAGE_LINGUAS = ""
USE_DEVFS = "1"
DEPENDS = "virtual/kernel \
${UNSLUNG_EXTRA_DEPENDS}"
IMAGE_INSTALL = "kernel update-modules unslung-rootfs \
libc6-unslung slingbox ipkg libipkg \
kernel-module-netconsole \
${UNSLUNG_EXTRA_INSTALL}"
IMAGE_PREPROCESS_COMMAND += "unslung_clean_image; "
inherit image
# Note that anything in this function must be repeatable without having to rebuild the rootfs
unslung_clean_image () {
# Remove the patches
rm -rf ${IMAGE_ROOTFS}/patches
# Remove the kernel image
rm -rf ${IMAGE_ROOTFS}/boot
rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/alternatives/zImage
# And remove the post and pre scripts for the kernel; saves flash space
rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/info/kernel.postinst
rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/info/kernel.postrm
# Remove all the postinst scripts; don't need them. But keep the
# postrm scripts just in case we need to remove something.
rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/info/*.postinst
# Remove info from the local feed used to build the image
rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/lists/*
rm -f ${IMAGE_ROOTFS}/${sysconfdir}/version
# Tidy up some thing which are in the wrong place
mv ${IMAGE_ROOTFS}${libdir}/libipkg* ${IMAGE_ROOTFS}/lib/
# Remove the ipkg symlink - unsling puts it back in
rm -f ${IMAGE_ROOTFS}${bindir}/ipkg
# and make the ipkg symlink point to the ipkg-fl utility instead.
ln -s ipkg-fl ${IMAGE_ROOTFS}${bindir}/ipkg
# Hack out the modutils stuff - it's too hard to make it work
rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/info/update-modules.postinst
rm -rf ${IMAGE_ROOTFS}/etc/rcS.d
echo "#!/bin/sh" > ${IMAGE_ROOTFS}/usr/sbin/update-modules
echo "exit 0" >> ${IMAGE_ROOTFS}/usr/sbin/update-modules
chmod ugo+x ${IMAGE_ROOTFS}/usr/sbin/update-modules
echo "#!/bin/sh" > ${IMAGE_ROOTFS}/sbin/depmod
echo "exit 0" >> ${IMAGE_ROOTFS}/sbin/depmod
chmod ugo+x ${IMAGE_ROOTFS}/sbin/depmod
# Don't need this empty directory hanging around
rm -rf ${IMAGE_ROOTFS}/lib/modules/2.4.22-xfs/pcmcia
# Strip symbols and fix permissions on the libgcc_s.so.1 library
${STRIP} ${IMAGE_ROOTFS}/lib/libgcc_s.so.1
chmod ugo+x ${IMAGE_ROOTFS}/lib/libgcc_s.so.1
# FIXME: change made 24 Jul 2006 by the OE folks changes the "strip"
# behavior to create an extra file named .debug/<filename> containing
# the stripped symbols. These files are supposed to be packaged
# separately by the standard bb routines, but for some reason this
# does not alway occur. This extremely ugly step is to remove the
# debug cruft from the rootfs if any are left in the obvious locations.
# Once someone figures out why and what the right way is to fix this,
# this code should be removed.
rm -rf ${IMAGE_ROOTFS}/bin/.debug
rm -rf ${IMAGE_ROOTFS}/sbin/.debug
rm -rf ${IMAGE_ROOTFS}/lib/.debug
rm -rf ${IMAGE_ROOTFS}/usr/bin/.debug
rm -rf ${IMAGE_ROOTFS}/usr/sbin/.debug
rm -rf ${IMAGE_ROOTFS}/usr/lib/.debug
# MJW - Experimental - just to make space; remove before releasing!
# #### Hack to make space for testing! REMOVE THIS!
# rm -rf ${IMAGE_ROOTFS}/etc/samba/codepages/unicode_map.850
# rm -rf ${IMAGE_ROOTFS}/bin/ftp
# #### End of Hack!
}
# Override this function for unslung, since we don't need Apex.
nslu2_pack_image () {
slugimage -p \
-b ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
-s ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
-k ${DEPLOY_DIR_IMAGE}/zImage-${MACHINE}.bin \
-r Ramdisk:1,Flashdisk:${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
-m ${STAGING_FIRMWARE_DIR}/NPE-B \
-t ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
-o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nslu2.bin
}
|