diff options
Diffstat (limited to 'recipes/sharp-binary-only')
17 files changed, 882 insertions, 0 deletions
diff --git a/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/aticore-2.6.patch b/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/aticore-2.6.patch new file mode 100644 index 0000000000..44b06c32ce --- /dev/null +++ b/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/aticore-2.6.patch @@ -0,0 +1,82 @@ +diff -U3 -N AtiCore-1.0.1.orig/Makefile AtiCore-1.0.1/Makefile +--- AtiCore-1.0.1.orig/Makefile 2005-04-05 09:39:23.926196896 +0000 ++++ AtiCore-1.0.1/Makefile 2005-04-05 09:58:18.009789984 +0000 +@@ -25,11 +25,13 @@ + LD = armv5tel-linux-ld + endif + +-ifndef $(ASFLAGS) ++ifeq "$(FPU)" "soft" ++ASFLAGS=-mfpu=softfpa -mcpu=xscale ++else + ASFLAGS=-mcpu=xscale + endif + +-OBJS = aticore_0.o ++OBJS = aticore_0.o map.o + OBJS += aticore_1.o aticore_2.o aticore_3.o aticore_4.o aticore_5.o aticore_6.o aticore_7.o aticore_8.o aticore_9.o + # aticore_10.o + OBJS += aticore_11.o aticore_12.o aticore_13.o aticore_14.o aticore_15.o aticore_16.o aticore_17.o aticore_18.o aticore_19.o aticore_20.o +diff -U3 -N AtiCore-1.0.1.orig/aticore_1.s AtiCore-1.0.1/aticore_1.s +--- AtiCore-1.0.1.orig/aticore_1.s 2005-04-05 09:39:23.928196592 +0000 ++++ AtiCore-1.0.1/aticore_1.s 2005-04-05 10:05:35.745244080 +0000 +@@ -282,21 +282,6 @@ + LDMDB R11, {R4,R11,SP,PC} + + ;;;;; +- .GLOBAL MapBar +- .type MapBar, %function +-MapBar: +- MOV R12, SP +- STMFD SP!, {R11,R12,LR,PC} +- SUB R11, R12, #4 +- MOV R0, #0xF1000000 +- LDR R3, =unk_41948C +- SUB SP, SP, #0x44 +- STR R0, [R3] +- B .loc_34D228 +-.loc_34D228: +- LDMDB R11, {R11,SP,PC} +- +-;;;;; + .GLOBAL UnMapBar + .type UnMapBar, %function + UnMapBar: +diff -U3 -N AtiCore-1.0.1.orig/map.c AtiCore-1.0.1/map.c +--- AtiCore-1.0.1.orig/map.c 1970-01-01 00:00:00.000000000 +0000 ++++ AtiCore-1.0.1/map.c 2005-04-05 09:43:15.469996888 +0000 +@@ -0,0 +1,34 @@ ++#include <fcntl.h> ++#include <sys/mman.h> ++#include <unistd.h> ++#include <stdio.h> ++#include <sys/types.h> ++ ++extern void *unk_41948C; ++ ++void * MapBar(int Dev_Handle, int rp_unk1) ++{ ++ int fd; ++ void *ptr; ++ ++ fd = open ("/dev/mem", O_RDWR | O_SYNC); ++ if (fd < 0) ++ { ++ perror ("/dev/mem"); ++ exit (1); ++ } ++ ++ ptr = mmap (NULL, 0x01000000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x08000000); ++ if (ptr == NULL) ++ { ++ perror ("mmap"); ++ exit (1); ++ } ++ ++ printf("MapBar: %p\n",ptr); ++ ++ unk_41948C = ptr; ++ ++ return ptr; ++} ++ diff --git a/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/fixstretchblit.patch b/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/fixstretchblit.patch new file mode 100644 index 0000000000..a89ab3247a --- /dev/null +++ b/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/fixstretchblit.patch @@ -0,0 +1,30 @@ +Index: AtiCore-1.0.1/aticore_2.s +=================================================================== +--- AtiCore-1.0.1.orig/aticore_2.s 2004-08-28 09:04:06.000000000 +0100 ++++ AtiCore-1.0.1/aticore_2.s 2005-07-04 21:56:48.000000000 +0100 +@@ -576,8 +576,6 @@ + LDR R3, [R11,#-0x2C] + STR R3, [R2,#0x24C] + B .loc_34DA00 +-unk_432B14: .WORD 0 +-unk_432B10: .WORD 0 + .loc_34D9F0: + MOV R2, #1 + LDR R1, =0x1284 +Index: AtiCore-1.0.1/aticore_0.s +=================================================================== +--- AtiCore-1.0.1.orig/aticore_0.s 2004-08-28 08:47:01.000000000 +0100 ++++ AtiCore-1.0.1/aticore_0.s 2005-07-04 22:28:55.000000000 +0100 +@@ -14,6 +14,12 @@ + .GLOBAL unk_41948C + unk_41948C: .WORD 0 + .ALIGN 4 ++ .GLOBAL unk_432B14 ++unk_432B14: .WORD 0 ++ .ALIGN 4 ++ .GLOBAL unk_432B10 ++unk_432B10: .WORD 0 ++ .ALIGN 4 + .GLOBAL aErrSomeoneCall + aErrSomeoneCall: .ASCII "Err:: someone called QL_Bar_Read!\000" + .ALIGN 4 diff --git a/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/make381.patch b/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/make381.patch new file mode 100644 index 0000000000..7aafb7fbf2 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-aticore-oss-1.0.1/make381.patch @@ -0,0 +1,27 @@ +Index: AtiCore-1.0.1/Makefile +=================================================================== +--- AtiCore-1.0.1.orig/Makefile 2006-03-16 12:58:58.000000000 +0100 ++++ AtiCore-1.0.1/Makefile 2006-03-16 13:06:00.000000000 +0100 +@@ -9,22 +9,6 @@ + + all: $(TARGETSHAREDLIB) testcore atitest + +-ifndef $(CC) +-CC = armv5tel-linux-gcc +-endif +-ifndef $(AS) +-AS = armv5tel-linux-as +-endif +-ifndef $(AR) +-AR = armv5tel-linux-ar +-endif +-ifndef $(RANLIB) +-RANLIB = armv5tel-linux-ranlib +-endif +-ifndef $(LD) +-LD = armv5tel-linux-ld +-endif +- + ifeq "$(FPU)" "soft" + ASFLAGS=-mfpu=softfpa -mcpu=xscale + else diff --git a/recipes/sharp-binary-only/sharp-aticore-oss_1.0.1.bb b/recipes/sharp-binary-only/sharp-aticore-oss_1.0.1.bb new file mode 100644 index 0000000000..bc015e3d52 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-aticore-oss_1.0.1.bb @@ -0,0 +1,43 @@ +DESCRIPTION = "Driver for the Ati W100 found on the Sharp Zaurus C[87]x0" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "CLOSED" +PR = "r4" + +SRC_URI = "http://mirror1.pdaxrom.org/source/src/AtiCore-1.0.1.tar.bz2 \ + file://fixstretchblit.patch;patch=1 \ + file://aticore-2.6.patch;patch=1 \ + file://make381.patch;patch=1" +S = "${WORKDIR}/AtiCore-1.0.1" + +EXTRA_OEMAKE="CC='${CC}' AS='${AS}' AR='${AR}' LD='${LD}' FPU='${TARGET_FPU}'" + +PARALLEL_MAKE = "" +COMPATIBLE_MACHINE = 'c7x0' + +do_install() { + install -d ${D}${bindir} + install -m 0755 testcore ${D}${bindir}/testcore + install -m 0755 atitest ${D}${bindir}/atitest + + install -d ${D}${libdir} + install -m 0755 libaticore.so.1.0.1 ${D}${libdir}/libaticore.so.1.0.1 + + install -d ${D}${includedir} + install -m 0644 aticore.h ${D}${includedir}/aticore.h + + cd ${D}${libdir}/ + ln -s libaticore.so.1.0.1 libaticore.so.1 + ln -s libaticore.so.1.0.1 libaticore.so.1.0 + ln -s libaticore.so.1.0.1 libaticore.so +} + +# Currently incompatible with the way sharp-aticore.bb stages. +do_stage() { + install -m 0644 aticore.h ${STAGING_INCDIR} + oe_libinstall -so libaticore ${STAGING_LIBDIR} +} + +PACKAGES =+ "sharp-aticore-oss-examples" +FILES_sharp-aticore-oss-examples = "${bindir}" + diff --git a/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/CE-AG06.dat b/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/CE-AG06.dat Binary files differnew file mode 100644 index 0000000000..776f460efa --- /dev/null +++ b/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/CE-AG06.dat diff --git a/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/sharpzdc b/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/sharpzdc new file mode 100755 index 0000000000..fbfd99d002 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/sharpzdc @@ -0,0 +1,49 @@ +#!/bin/sh +# +# sharpzdc 1.00 2001/11/21 00:00:00 (Akio Tagami) +# +# Initialize or shutdown for SHARP Digital Camera Card +# +# The first argument should be either 'start' or 'stop'. The second +# argument is the base name for the device. + +if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi + +# Get device attributes +get_info $DEVICE + +# Load site-specific settings +ADDRESS="$SCHEME,$SOCKET,$SERIAL_NO" + +# cmd=$ACTION, dev=$DEVICE, id=$MAJOR, key=$ADDRESS + +case "$ACTION" in + +'start') + if [ -e /dev/$DEVICE ] ; then + rm -f /dev/$DEVICE + fi + mknod /dev/$DEVICE c $MAJOR 0 + chmod a+rw /dev/$DEVICE + ;; + +'check') + ;; + +'stop') + ;; + +'cksum') + ;; + +'suspend'|'resume') + ;; + +*) + usage + ;; + +esac + +exit 0 + diff --git a/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/sharpzdc.conf b/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/sharpzdc.conf new file mode 100644 index 0000000000..ab417eecf9 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-camera-support-2.4.18-rmk7-pxa3-embedix/sharpzdc.conf @@ -0,0 +1,12 @@ +# SHARP Digital Camera Card Configuration Database +# +# sharpzdc.conf 1.00 2001/11/19 00:00:00 (Sharp) + +device "sharpzdc_cs" + class "sharpzdc" module "sharpzdc_cs" + +card "SHARP CE-AG06 Digital Camera Card" + version "SHARP", "CEAG06 " + cis "cis/CE-AG06.dat" + bind "sharpzdc_cs" + diff --git a/recipes/sharp-binary-only/sharp-camera-support_2.4.18-rmk7-pxa3-embedix.bb b/recipes/sharp-binary-only/sharp-camera-support_2.4.18-rmk7-pxa3-embedix.bb new file mode 100644 index 0000000000..701915dbe3 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-camera-support_2.4.18-rmk7-pxa3-embedix.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "Driver for the SHARP CG-AG06 digital compact flash camera for linux ${PV}" +SECTION = "kernel/modules" +PRIORITY = "optional" +LICENSE = "CLOSED" +RDEPENDS = "kernel (${KERNEL_VERSION})" +PR = "r4" + +SRC_URI = "http://openzaurus.sf.net/mirror/camera-modules-2.4.18-rmk7-pxa3-embedix.tar.bz2 \ + file://CE-AG06.dat \ + file://sharpzdc \ + file://sharpzdc.conf" +S = "${WORKDIR}" + +COMPATIBLE_MACHINE = '(collie|poodle|tosa)' + +inherit module-base + +do_install() { + install -d ${D}${sysconfdir}/pcmcia/cis + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/pcmcia + install -m 0644 ${WORKDIR}/CE-AG06.dat ${D}${sysconfdir}/pcmcia/cis/ + install -m 0644 ${WORKDIR}/sharpzdc.conf ${D}${sysconfdir}/pcmcia/ + install -m 0755 ${WORKDIR}/sharpzdc ${D}${sysconfdir}/pcmcia/ + install -m 0644 ${MACHINE}/sharpzdc_cs.o ${D}${base_libdir}/modules/${KERNEL_VERSION}/pcmcia/ +} + +FILES_${PN} = "/" + +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/recipes/sharp-binary-only/sharp-compat-libs/hentges.patch b/recipes/sharp-binary-only/sharp-compat-libs/hentges.patch new file mode 100644 index 0000000000..2b263fc426 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-compat-libs/hentges.patch @@ -0,0 +1,99 @@ +--- oz-compat-0.5/opt/QtPalmtop.compat/bin/makecompat.orig 2004-11-30 18:51:45.000000000 +0100 ++++ oz-compat-0.5//opt/QtPalmtop.compat/bin/makecompat 2004-11-30 18:44:29.000000000 +0100 +@@ -1,8 +1,10 @@ + #! /bin/sh + ++export PATH="$PATH:/opt/QtPalmtop/bin" ++ + OPIE_SH=/opt/QtPalmtop/bin/opie-sh + OPIE_DIR=/opt/QtPalmtop +-OPIE_COMPAT=runcompat ++OPIE_COMPAT=/opt/QtPalmtop/bin/runcompat + OPIE_TMP=/tmp + + about() { +@@ -31,6 +33,10 @@ + } + + ask_list() { ++ ++ rm $OPIE_TMP/mc.names ++ rm $OPIE_TMP/mc.map ++ + # Figure out which app groups are + GROUP=`ls $OPIE_DIR/apps \ + | grep -v Setting \ +@@ -38,39 +44,55 @@ + | $OPIE_SH -g -i -M "Select which group" -l -F \ + | sed -e"s/Pim/1Pim/g"` + ++ echo -e "\n\n---------- DEBUGGING OUTPUT ----------\n" ++ + for i in $OPIE_DIR/apps/$GROUP/*.desktop ; do + # Extract the name and what is run +- EXEC=`grep "Exec=" $i | sed -e"s/.*=//g` +- NAME=`grep "Name=" $i | sed -e"s/.*=//g` ++ EXEC="`egrep "Exec.*=" $i | sed -e "s/.*=//g"| sed "s/^\ //"`" ++ NAME="`egrep "Name.*=" $i | head -1 | sed -e "s/.*=//g"| sed "s/^\ //"`" + + # Where is the file actually located? + # This doesnt handle spaces. + FOUND="false" +- for j in `echo $PATH | sed -e"s/:/ /g"`; do +- if [ -x $j/$EXEC ]; then ++ #echo -e "* * [$i] [$NAME] [$EXEC]\n\n" ++ for j in `echo $PATH | sed -e "s/:/ /g"`; do ++ # echo "* * * teste [$j]/$EXEC" ++ if [ -x "$j/$EXEC" ]; then + EXEC="$j/$EXEC" + FOUND="true" ++ # echo "* * * * found $NAME" + break + fi + done + + # Did we find the object? + if [ "$FOUND" = "false" ]; then +- echo "Could not find $EXEC in path" ++ echo -e "* * * * [$EXEC] not found in path" + continue + fi + +- echo $NAME >> $OPIE_TMP/mc.names +- echo $NAME=$EXEC >> $OPIE_TMP/mc.map ++ echo "$NAME" >> $OPIE_TMP/mc.names ++ echo "$NAME=$EXEC" >> $OPIE_TMP/mc.map + + done +- +- SELECTION=`cat $OPIE_TMP/mc.names | $OPIE_SH -g -i -M "Select which application" -l -F` ++ ++ echo -e "\n--------------------------------------\n\n" ++ ++ SELECTION=`cat $OPIE_TMP/mc.names | $OPIE_SH -g -i -M "Select which application" -l -F` + LOCATION=`grep "$SELECTION" $OPIE_TMP/mc.map | sed -e"s/.*=//g"` + + rm $OPIE_TMP/mc.names + rm $OPIE_TMP/mc.map + ++ # User aborted ++ if test -z "$SELECTION" ++ then ++ echo "User aborted" ++ cleanup ++ exit 1 ++ fi ++ ++ + return + } + +@@ -112,7 +134,7 @@ + } + + is_compat() { +- if [ "`ls -l \"$1\" | sed -e\"s/.*-> //g\"`" = "$OPIE_COMPAT" ]; then ++ if [ "`ls -l \"$1\" | sed -e \"s/.*-> //g\"`" = "$OPIE_COMPAT" ]; then + echo "Is already linked to compat lib" + return 1 + else diff --git a/recipes/sharp-binary-only/sharp-compat-libs/qt2310.patch b/recipes/sharp-binary-only/sharp-compat-libs/qt2310.patch new file mode 100644 index 0000000000..da61d1c6a3 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-compat-libs/qt2310.patch @@ -0,0 +1,13 @@ +--- oz-compat-0.5/opt/QtPalmtop.compat/bin/runcompat.orig 2005-02-11 14:12:00 +0100 ++++ oz-compat-0.5/opt/QtPalmtop.compat/bin/runcompat 2005-02-11 15:17:50 +0100 +@@ -5,6 +5,10 @@ + + echo $0 + ++if [ ! -e "/tmp/qtembedded-root/QtEmbedded-0" ] ; then ++ ln -sf /tmp/qtembedded-0/QtEmbedded-0 /tmp/qtembedded-root/QtEmbedded-0 ++fi ++ + PROG=`basename $0` + + if [ "$PROG" != "runcompat" ]; then diff --git a/recipes/sharp-binary-only/sharp-compat-libs_0.5.bb b/recipes/sharp-binary-only/sharp-compat-libs_0.5.bb new file mode 100644 index 0000000000..3fa80452f6 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-compat-libs_0.5.bb @@ -0,0 +1,81 @@ +DESCRIPTION = "Allows applications compiled with 2.95 to run on a 3.x compiled \ +system by providing 2.95 libraries. To run compatible programs, use the Compat \ +Library program in the Settings menu to make them use these libraries." +SECTION = "opie/settings" +PRIORITY = "optional" +DEPENDS = "opie-sh" +RDEPENDS = "opie-sh" +RPROVIDES = "oz-compat" +RCONFLICTS = "oz-compat" +LICENSE = "GPL" +PR = "r2" + +EXCLUDE_FROM_SHLIBS = "1" +COMPATIBLE_HOST = "arm.*-linux" + +SRC_URI = "http://openzaurus.org/mirror/oz-compat_0.5.tar.gz \ + file://hentges.patch;patch=1 \ + file://qt2310.patch;patch=1" + +S = "${WORKDIR}/oz-compat-0.5" + +inherit update-rc.d + +INITSCRIPT_NAME = "quickexec" +INITSCRIPT_PARAMS = "defaults 10" + +do_install() { + install -d ${D}${palmtopdir}/apps/Settings + install -d ${D}${palmtopdir}/bin/ + install -d ${D}${palmtopdir}/etc/ + install -d ${D}${palmtopdir}/pics/ + + install -d ${D}/opt/QtPalmtop.compat/bin + install -d ${D}/opt/QtPalmtop.compat/binlib + install -d ${D}/opt/QtPalmtop.compat/lib + + install -d ${D}${sysconfdir}/init.d + + install -m 0644 ${WORKDIR}/oz-compat-0.5/opt/QtPalmtop/apps/Settings/makecompat.desktop ${D}${palmtopdir}/apps/Settings + install -m 0644 ${WORKDIR}/oz-compat-0.5/opt/QtPalmtop/etc/quickexec.libs ${D}${palmtopdir}/etc/quickexec.libs + install -m 0644 ${WORKDIR}/oz-compat-0.5/opt/QtPalmtop/pics/libraries.png ${D}${palmtopdir}/pics/libraries.png + + install -m 0755 ${WORKDIR}/oz-compat-0.5/opt/QtPalmtop.compat/bin/* ${D}/opt/QtPalmtop.compat/bin + install -m 0644 ${WORKDIR}/oz-compat-0.5/opt/QtPalmtop.compat/lib/* ${D}/opt/QtPalmtop.compat/lib + + install -m 0755 ${WORKDIR}/oz-compat-0.5/etc/init.d/quickexec ${D}${sysconfdir}/init.d + + cd ${D}${palmtopdir}/bin + for file in chkhinge makecompat qeserver quickexec runcompat + do + ln -s /opt/QtPalmtop.compat/bin/$file + done + + cd ${D}/opt/QtPalmtop.compat/lib + ln -s libqpe.so.1.5.0 libqpe.so.1.5 + ln -s libqpe.so.1.5.0 libqpe.so.1 + ln -s libqpe.so.1.5.0 libqpe.so + + ln -s libqte.so.2.3.7 libqte.so.2.3.2 + ln -s libqte.so.2.3.7 libqte.so.2.3 + ln -s libqte.so.2.3.7 libqte.so.2 + ln -s libqte.so.2.3.7 libqte.so + + +} + +pkg_postinst() { +test -n "$D" && exit 1 + +# needed for update-rc.d +test -e /media/card/etc/init.d/quickexec && ln -s /media/card/etc/init.d/quickexec /etc/init.d/quickexec +test -e /media/cf/etc/init.d/quickexec && ln -s /media/cf/etc/init.d/quickexec /etc/init.d/quickexec +test -e /media/ram/etc/init.d/quickexec && ln -s /media/ram/etc/init.d/quickexec /etc/init.d/quickexec +} + +pkg_postrm() { + test -e /etc/init.d/quickexec && rm /etc/init.d/quickexec +} + +FILES_${PN} += "/opt /etc" +LEAD_SONAME = "libqte.so.*" diff --git a/recipes/sharp-binary-only/sharp-flash-header-c700.bb b/recipes/sharp-binary-only/sharp-flash-header-c700.bb new file mode 100644 index 0000000000..09bb98c461 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-flash-header-c700.bb @@ -0,0 +1,11 @@ +SECTION = "base" +SRC_URI = "file://header-c700.bin" +LICENSE = "sharp-binary-only" +COMPATIBLE_MACHINE = '(c7x0|spitz|akita)' + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +do_stage() { + install -d ${STAGING_LIBDIR}/sharp-flash-header + install -m 0644 ${WORKDIR}/header-c700.bin ${STAGING_LIBDIR}/sharp-flash-header/header-c700.bin +} diff --git a/recipes/sharp-binary-only/sharp-flash-header-c700/header-c700.bin b/recipes/sharp-binary-only/sharp-flash-header-c700/header-c700.bin Binary files differnew file mode 100644 index 0000000000..d2328b00b3 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-flash-header-c700/header-c700.bin diff --git a/recipes/sharp-binary-only/sharp-sdmmc-support.bb b/recipes/sharp-binary-only/sharp-sdmmc-support.bb new file mode 100644 index 0000000000..7fc60aa250 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-sdmmc-support.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "Driver for the SHARP Zaurus SD/MMC Slot for linux ${PV}" +SECTION = "kernel/modules" +PRIORITY = "optional" +LICENSE = "CLOSED" +RDEPENDS = "kernel (${PV})" +PR = "r23" +PACKAGE_ARCH = "${MACHINE}" + +COMPATIBLE_MACHINE = '(collie|poodle|tosa)' + +KERNEL2418 = "2.4.18-rmk7-pxa3-embedix" +KERNEL2420 = "2.4.20" + +PV_collie = "${KERNEL2418}" +PV_poodle = "${KERNEL2418}" +PV_tosa = "${KERNEL2418}" +PV_akita = "${KERNEL2420}" +PV_borzoi = "${KERNEL2420}" +PV_spitz = "${KERNEL2420}" + +SRC_URI = "http://openzaurus.sf.net/mirror/sd-modules-2.4.18-rmk7-pxa3-embedix-r4.tar.bz2 \ + file://sd \ + file://sdmgr \ + file://sdcontrol" + +S = "${WORKDIR}" + +inherit module-base update-rc.d + +INITSCRIPT_NAME = "sd" +INITSCRIPT_PARAMS = "start 39 S . stop 96 0 1 6 ." + +do_install() { + install -d ${D}${sysconfdir}/init.d \ + ${D}${sysconfdir}/default \ + ${D}${base_sbindir} \ + ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/block/ + + install -m 0755 ${WORKDIR}/sdmgr ${D}${base_sbindir}/ + install -m 0755 ${WORKDIR}/sdcontrol ${D}${sysconfdir} + install -m 0755 ${WORKDIR}/sd ${D}${sysconfdir}/init.d/ + install -m 0644 ${MACHINE}/sharp_mmcsd_m.o ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/block/ + echo "MODULE_FILE='${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/block/sharp_mmcsd_m.o'" > ${D}${sysconfdir}/default/sharp_sdmmc +} + +FILES_${PN} = "/" diff --git a/recipes/sharp-binary-only/sharp-sdmmc-support/sd b/recipes/sharp-binary-only/sharp-sdmmc-support/sd new file mode 100644 index 0000000000..e1c3d39ade --- /dev/null +++ b/recipes/sharp-binary-only/sharp-sdmmc-support/sd @@ -0,0 +1,70 @@ +#!/bin/sh + +# rc.sd 1.00 2001/08/08 22:40:44 (Hideki Hayami) +# +# Tags for init configuration tools +# +# processname: sdmgr +# pidfile: /var/run/sdmgr.pid +# description: currently SD support is only for memory devices \ +# which is used as block device. + +# Source function library. +# . /etc/rc.d/init.d/functions + +MODULE=sharp_mmcsd_m + +usage() +{ + echo "Usage: $0 {start|stop|status|restart|reload}" +} + + + +if [ $# -lt 1 ] ; then usage ; break ; fi +action=$1 + +case "$action" in + +start) + echo -n "Start SD services:" + /sbin/modprobe $MODULE >/dev/null + if [ -s /var/run/sdmgr.pid ]; then + kill -0 `cat /var/run/sdmgr.pid` 2>/dev/null; + else + /sbin/sdmgr >/dev/null 2>&1 & + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sd + fi + sleep 1 + echo " sdmgr." + ;; + +stop) + echo -n "Stop SD services:" + + /etc/sdcontrol compeject >/dev/null + killall sdmgr + + if grep -q $MODULE /proc/modules ; then + /sbin/rmmod $MODULE + fi + rm -f /var/lock/subsys/sd + echo " sdmgr." + ;; + +status) + ;; + +restart|reload) + $0 stop + $0 start + ;; + +*) + usage + ;; + +esac + +exit 0 diff --git a/recipes/sharp-binary-only/sharp-sdmmc-support/sdcontrol b/recipes/sharp-binary-only/sharp-sdmmc-support/sdcontrol new file mode 100644 index 0000000000..068d964726 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-sdmmc-support/sdcontrol @@ -0,0 +1,290 @@ +#!/bin/sh +# +# sdcontrol 1.0 2001/8/8 21:33:19 (Hideki Hayami) +# +# Initialize or shutdown a SD card device +# +# The first argument should be either 'insert' of 'eject'. +# + +ACTION=$1 +DEVICE=/dev/mmcda1 +MOUNT_POINT=/media/card +SMB_MOUNT=/home/samba/SD_Card +INSTALL_DIR=Documents/Install_Files + +ENABLE_LOG="no" +LOGFILE="/tmp/sdcontrol.log" + +DEBUG=0 + +vecho() { + stamp="`date +"%d-%m-%y %H:%M:%S"`" + echo -e "$1" + test "$ENABLE_LOG" = "yes" -a -n "$LOGFILE" && echo -e "$1" | sed "s/\(.*\)/[$stamp]\ \1/">> "$LOGFILE" +} + + +# import FS mount options from fstab or use defaults +# if detection fails +SD_OPTS="`grep "$MOUNT_POINT" /etc/fstab | head -1 | awk '{print $4}'`" +if test -z "$SD_OPTS" +then + SD_OPTS="noatime,sync" + vecho "\nWARNING: Couldn't determine SD mount options from /etc/fstab, using defaults\n" +fi + +# The "quiet" option fails on non-VFAT cards. Nice trick ;) +SD_OPTS_VFAT="$SD_OPTS,quiet,umask=000,iocharset=utf8" + + +###### for QPE ###### +get_pid() +{ + echo $1 +} + +decho() { + test "$DEBUG" = 1 && echo "<DEBUG> $*" +} + +wait_release() +{ + count=1 + while true + do + umount $MOUNT_POINT + if [ $? = 0 ]; then + #echo umount >> /tmp/sd + return + fi + + if ! (mount | grep -q "$MOUNT_POINT") + then + return + fi + + echo count=$count >> /tmp/sd + if [ `expr $count \>= 500` = 1 ]; then + #echo time out >> /tmp/sd + return + fi + count=`expr $count + 1` + usleep 200000 || sleep 2 + done +} + +kill_task() +{ + + if ! test -z "`which fuser`" + then + echo "Using 'fuser' to kill \"busy\" tasks" + ps_line=`ps ax | grep 'qpe$' | grep -v grep` # no -w on busybox + decho "* 1 *" + decho "ps_line [$ps_line]" + qpe_pid=`get_pid $ps_line` + + decho "qpe_pid [$qpe_pid]" + decho "* 1.1 *" + + target_pids=`fuser -m $1 | cut -d : -f2 | sed "s/[a-z]//g"` >/dev/null 2>&1 + + decho "* 1.2 *" + #echo $target_pids >> /tmp/sd + if ! (echo "$target_pids" | grep -q "[0-9]"); then + decho "* 2 *" + return + fi + decho "Killing PIDs: [$target_pids]" + decho "* 3 *" + ! test -z "$qpe_pid" && is_exist_qpe=`echo $target_pids | grep "$qpe_pid"` # no -w on busybox + + decho "is_exist_qpe [$is_exist_qpe]" + if [ "$is_exist_qpe" = "" ]; then + kill -9 $target_pids + decho "* 4 *" + #echo kill -9 $target_pids >> /tmp/sd + else + decho "* 5 *" + #echo "found qpe!!!" >> /tmp/sd + target_pids=`echo $target_pids | sed -e "s/$qpe_pid//"` + if (echo "$target_pids" | grep -q "[0-9]"); then + echo "* 6 *" + kill -9 $target_pids + + #echo kill -9 $target_pids >> /tmp/sd + fi + wait_release +# exit 0 + fi + else + echo "No 'fuser' found. Running tasks may keep partitions busy." + fi +} +###### for QPE ###### + +case "$ACTION" in +'insert') + + + vecho "Beginning SD auto-mount..:" + + test "$ENABLE_LOG" = yes && ps ax > "$LOGFILE-ps" + + # Read available partitions from /proc/partitions. + OK_PARTS=` head -20 /proc/partitions |grep mmcda | sort| uniq | awk '{print $4}'` + + decho "OK_PARTS [$OK_PARTS]" + + test "$ENABLE_LOG" = yes && echo $OK_PARTS > "$LOGFILE-part" + + if test "`echo "$OK_PARTS" | wc -l | awk '{print $1}`" -gt 1 + then + OK_PARTS="`echo "$OK_PARTS" | grep -v "^mmcda$"`" + fi + + if test -z "$OK_PARTS" + then + vecho "\n\nWARNING: Trying failsafe partition mode\n\n" + OK_PARTS="mmcda1 mmcda2 mmcda3 mmcda4" + fi + + + vecho "-> Valid SD partitions are: [$OK_PARTS]" + + # Allow for "#" in fstab. + fstab_txt="`cat /etc/fstab | grep -v ^#`" + + cnt=1 + for part in $OK_PARTS + do + vecho "\n* * * * * Working on [/dev/$part] * * * * *\n" + # Read the mount-point for this partition from fstab + FS_MOUNT_POINT="`echo "$fstab_txt" | grep "/dev/$part" | awk '{print $2}`" + + + # Mount the first valid partition as /mnt/card if there was no entry in fstab + if test -z "$FS_MOUNT_POINT" + then + # See if /mnt/card is already mounted + if ! mount|awk '{print $3}'|grep "^$MOUNT_POINT$" 2>&1 >/dev/null + then + # Check if another *existing* partition is configured as /mnt/card + if ! echo "$fstab_txt" | grep "$MOUNT_POINT" | awk '{print $2}'| grep "^$MOUNT_POINT$" 2>&1 >/dev/null + then + # As /mnt/card wasn't configured in fstab, we simply mount the + # first unconfigured partition we find + FS_MOUNT_POINT="$MOUNT_POINT" + else + # Go through all partitions, and check if one of them is configured + # as /mnt/card + for xpart in $OK_PARTS + do + if echo "$fstab_txt" | grep "$xpart" | awk '{print $2}'| grep "^$MOUNT_POINT$" 2>&1 >/dev/null + then + vecho "-> $MOUNT_POINT is reserved by fstab" + found=1 + fi + done + + if test "$found" = 1 + then + # Another existing partition is configured for /mnt/card, leave it alone. + FS_MOUNT_POINT="$MOUNT_POINT$cnt" + let cnt=$cnt+1 + else + FS_MOUNT_POINT="$MOUNT_POINT" + fi + + fi + else + FS_MOUNT_POINT="$MOUNT_POINT$cnt" + let cnt=$cnt+1 + fi + vecho "-> Using mountpoint [$FS_MOUNT_POINT]" + else + vecho "-> Using mountpoint [$FS_MOUNT_POINT] from fstab" + fi + + ! test -d $FS_MOUNT_POINT && mkdir -p $FS_MOUNT_POINT + + DEVICE="/dev/$part" + if ! test -e "$DEVICE" + then + DEV_NUM="`echo "$DEVICE" | sed -n "s/.*\([0-9]\)/\1/p"`" + cd /dev + mknod mmcda$DEV_NUM b 60 $DEV_NUM + fi + + vecho "-> Trying VFAT mount [$SD_OPTS_VFAT]..." + mount $FSTYPE -o $SD_OPTS_VFAT $DEVICE $FS_MOUNT_POINT >/dev/null 2>&1 + MOUNT_RES=`mount | grep $DEVICE` + + + if [ "$MOUNT_RES" = "" ]; then + vecho "-> Trying ext2 mount [$SD_OPTS]..." + mount $FSTYPE -o $SD_OPTS $DEVICE $FS_MOUNT_POINT + else + vecho "-> VFAT mount was successfull" + fi + + MOUNT_RES=`mount | grep $DEVICE` + if [ "$MOUNT_RES" = "" ]; then + vecho "-> Trying failsafe mount..." + mount $FSTYPE $DEVICE $FS_MOUNT_POINT + else + vecho "-> EXT2 mount was successfull" + fi + + # Um what was the function of that? +# chkmntsh ${MOUNT_POINT} + + done + + # I have no idea what this is good for.... + if [ -d $SMB_MOUNT ] ; then + rm -rf $SMB_MOUNT + ln -s /mnt/card $SMB_MOUNT + mkdir -p $FS_MOUNT_POINT/$INSTALL_DIR + fi + + + ;; +'eject') + # Doesn't work as "fuser" isn't in a base OZ 3.5.[1|2] ROM + for part in `mount | grep mmcda|awk '{print $1}'` + do + DEVICE="$part" + fuser -s -m $DEVICE + if [ $? = 1 ]; then + umount $DEVICE + rm $SMB_MOUNT + else + exit 1 + fi + done + ;; +'compeject') + for part in `mount | grep mmcda|awk '{print $3}'` + do + found_something=1 + kill_task "$part" # for QPE + + umount $part >/dev/null 2>&1 && echo "Umounted [$part]" || echo -e "\n* * * WARNING: umount $part failed! * * *" + + test -e "$SMB_MOUNT" && rm $SMB_MOUNT + done + test -z "$found_something" && echo "Nothing to do." + ;; +'change') + $0 compeject + $0 insert + ;; +'*') + exit 1 + ;; +esac + +exit 0 + diff --git a/recipes/sharp-binary-only/sharp-sdmmc-support/sdmgr b/recipes/sharp-binary-only/sharp-sdmmc-support/sdmgr Binary files differnew file mode 100644 index 0000000000..b487f07681 --- /dev/null +++ b/recipes/sharp-binary-only/sharp-sdmmc-support/sdmgr |