Merge branch 'org.openembedded.dev' of git@git.openembedded.net:/openembedded into...
[vuplus_openembedded] / packages / linux / linux-dm7025.bb
1 DESCRIPTION = "Linux kernel for Dreambox DM7025"
2 LICENSE = "GPL"
3 PN = "linux-dm7025"
4 KV = "2.6.12"
5 PV = "2.6.12.6"
6 PR = "s4"
7
8 DEPENDS = "zlib-native"
9
10 # note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
11 SRC_URI += "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
12         file://dm7025_defconfig \
13         http://sources.dreamboxupdate.com/download/kernel-patches/linuxmips-${KV}-dream-r6.patch.bz2;patch=1;pnum=1 \
14         http://sources.dreamboxupdate.com/download/kernel-patches/linux-${KV}-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
15         http://dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
16         http://dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
17         http://dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1 \
18         http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1 \
19 #squashfs-lzma stuff
20         http://squashfs-lzma.org/dl/sqlzma3.2-r2b.tar.bz2 \
21         http://dreamboxupdate.com/download/kernel-patches/sqlzma2k-3.2-r2-2.6.12.6.patch.bz2 \
22         http://dreamboxupdate.com/download/patches/fix_lzma_squashfs_makefiles_for_oe-r2.patch.bz2 \
23         ${SOURCEFORGE_MIRROR}/squashfs/squashfs3.2-r2.tar.gz \
24         ${SOURCEFORGE_MIRROR}/sevenzip/lzma443.tar.bz2 \
25         file://${WORKDIR}/squashfs-lzma/kernel-patches/linux-2.6.12/squashfs3.2-patch;pnum=1;patch=1 "
26
27 S = "${WORKDIR}/linux-${PV}"
28
29 inherit kernel
30
31 FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
32
33 export OS = "Linux"
34 KERNEL_IMAGETYPE = "vmlinux"
35 KERNEL_OUTPUT = "vmlinux"
36 KERNEL_OBJECT_SUFFIX = "ko"
37
38 addtask munge after do_unpack before do_patch
39
40 do_munge () {
41         if [ -d ${WORKDIR}/squashfs3.2-r2 ]; then
42                 mv ${WORKDIR}/squashfs3.2-r2/* ${WORKDIR}
43                 rm -R ${WORKDIR}/squashfs3.2-r2
44                 for i in sqlzma1-443.patch sqlzma2u-3.2-r2.patch fix_lzma_squashfs_makefiles_for_oe-r2.patch; 
45                 do
46                         echo "Applying $i"
47                         patch -d ${WORKDIR} -p1 < ${WORKDIR}/$i
48                 done
49         fi
50         set CUR = `pwd`
51         cd ${WORKDIR}
52         install -d ${WORKDIR}/squashfs-lzma
53         for i in `find -maxdepth 1 | grep -v linux | xargs`; 
54         do
55                 case $i in
56                         ".");;
57                         "./squashfs-lzma");;
58                         "./temp");;
59                         "./image");;
60                         "./install");;
61                         "./dm7025_defconfig");;
62                         *)mv $i ${WORKDIR}/squashfs-lzma;;
63                 esac
64         done
65         cd $CUR
66 }
67
68 do_compile_prepend () {
69         if [ -f ${S}/.patched ];
70         then
71                 patch -R -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
72                 rm ${S}/.patched
73         fi
74 }
75
76 do_compile_append () {
77         patch -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
78         touch ${S}/.patched
79         oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S} BUILD_CC="${CC}" BUILD_CXX="${CXX}" BUILD_LD="${LD}" BUILD_AR="${AR}" BUILD_LDFLAGS="${TARGET_LDFLAGS}" BUILD_CFLAGS="${TARGET_CFLAGS}" BUILD_CXXFLAGS="${TARGET_CXXFLAGS}"
80         for i in mksquashfs unsquashfs; 
81         do
82                 mv ${WORKDIR}/squashfs-lzma/squashfs-tools/$i ${WORKDIR}/squashfs-lzma/squashfs-tools/$i-${ARCH}
83         done
84         oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S} clean
85         oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S}
86         patch -R -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
87         rm ${S}/.patched
88 }
89
90 do_configure_prepend () {
91         if [ "${@bb.data.getVar('DISTRO_VERSION', d, 1)}" == "1.4.0" ];
92         then
93                 cat ${WORKDIR}/dm7025_defconfig | grep -v "CONFIG_CMDLINE" > ${S}/.config
94                 echo "CONFIG_CMDLINE=\"console=null root=/dev/mtdblock3 rootfstype=jffs2 rw\"" >> ${S}/.config
95         else
96                 oe_machinstall -m 0644 ${WORKDIR}/dm7025_defconfig ${S}/.config
97         fi;
98         oe_runmake oldconfig
99 }
100
101 do_install_append () {
102         install -d ${D}/boot
103         install -m 0755 vmlinux ${D}/boot/vmlinux
104         echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
105         gzip ${D}/boot/vmlinux
106         echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
107         for i in sqlzma.ko unlzma.ko; 
108         do 
109                 install -m 0644 ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_C/kmod/$i ${D}/lib/modules/2.6.12.6/kernel/fs/squashfs
110         done;
111         install -d ${D}/usr/bin
112         for i in mksquashfs unsquashfs;
113         do
114                 install ${WORKDIR}/squashfs-lzma/squashfs-tools/$i-${ARCH} ${D}/usr/bin/$i
115         done;
116 }
117
118 PACKAGES_append = " unsquashfs mksquashfs"
119 FILES_mksquashfs = "/usr/bin/mksquashfs"
120 FILES_unsquashfs = "/usr/bin/unsquashfs"
121
122 do_stage_append() {
123         install ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_Alone/lzma ${STAGING_BINDIR}
124         install ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_C/lzmadec ${STAGING_BINDIR}
125         install ${WORKDIR}/squashfs-lzma/squashfs-tools/mksquashfs ${STAGING_BINDIR}
126         install ${WORKDIR}/squashfs-lzma/squashfs-tools/unsquashfs ${STAGING_BINDIR}
127 }
128
129 pkg_preinst_kernel-image () {
130         [ -d /proc/stb ] && mount -o rw,remount /boot
131 }
132
133 pkg_postinst_kernel-image () {
134         [ -d /proc/stb ] && mount -o ro,remount /boot
135 }
136
137 pkg_prerm_kernel-image () {
138         [ -d /proc/stb ] && mount -o rw,remount /boot
139 }
140
141 pkg_postrm_kernel-image () {
142         [ -d /proc/stb ] && mount -o ro,remount /boot
143 }