From 9f86fa35a232e629eb9d3d4f58de98e9831d0b07 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sun, 10 Jun 2012 04:53:33 +0800 Subject: [PATCH] openmoko-gsmd: Add the Openmoko GSMD recipe This is based on the gsmd recipe from OE classic. There will be some more tweaking for respawn and the cell log utility. --- recipes-openmoko/openmoko-gsmd/files/default | 54 ++++++++++++ recipes-openmoko/openmoko-gsmd/files/gsmd | 47 +++++++++++ .../openmoko-gsmd/openmoko-gsmd_git.bb | 83 +++++++++++++++++++ 3 files changed, 184 insertions(+) create mode 100644 recipes-openmoko/openmoko-gsmd/files/default create mode 100644 recipes-openmoko/openmoko-gsmd/files/gsmd create mode 100644 recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb diff --git a/recipes-openmoko/openmoko-gsmd/files/default b/recipes-openmoko/openmoko-gsmd/files/default new file mode 100644 index 0000000000..cf36460fac --- /dev/null +++ b/recipes-openmoko/openmoko-gsmd/files/default @@ -0,0 +1,54 @@ +# gsmd This shell script configures for the gsmd init script. + +. /etc/init.d/functions + +case `machine_id` in + "gta01"|"gta02") + GSMD_OPTS="-s 115200 -F" + if [ -d '/sys/bus/platform/devices/gta01-pm-gsm.0' ] ; then + GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on" + GSM_RES="/sys/bus/platform/devices/gta01-pm-gsm.0/reset" + else + GSM_POW="/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on" + GSM_RES="/sys/bus/platform/devices/neo1973-pm-gsm.0/reset" + fi + GSM_DEV="/dev/ttySAC0" + GSM_DL="/sys/devices/platform/neo1973-pm-gsm.0/download" + ;; + "htc_apache"|"htc_blueangel"|"htc_universal") + GSMD_OPTS="-s 115200 -F" + GSM_DEV="/dev/ttyS0" + ;; + "htc_himalaya") + GSMD_OPTS="-s 115200 -F" + GSM_DEV="/dev/ttyS2" + ;; + "htc_magician") + GSMD_OPTS="-s 115200 -F" + GSM_DEV="/dev/ttyS1" + ;; + "palm_treo_650") + GSMD_OPTS="-s 460800 -F -w 1" + GSM_DEV="/dev/ttyS0" + ;; + "motorola_ezx_platform") + GSMD_OPTS="-s 115200 -F -v ti" + GSM_DEV="/dev/mux0" + ;; + *) + # Unknown board + + # If you must specify special options, uncomment and modify the next line + #GSMD_OPTS="-s 115200 -F" + + # If your GSM device needs to be powered up, uncomment and modify the next line + #GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on" + + # If your GSM device then needs to be reset, uncomment and modify the next line + #GSM_RES="/sys/bus/platform/devices/gta01-pm-gsm.0/reset" + + # This should be in a common /etc/default/serial, together with + # BT_DEV and IR_DEV for devices that have those on a serial port + #GSM_DEV="/dev/ttyS1" + ;; +esac diff --git a/recipes-openmoko/openmoko-gsmd/files/gsmd b/recipes-openmoko/openmoko-gsmd/files/gsmd new file mode 100644 index 0000000000..dc10e63098 --- /dev/null +++ b/recipes-openmoko/openmoko-gsmd/files/gsmd @@ -0,0 +1,47 @@ +#! /bin/sh +# +# gsmd This shell script starts and stops gsmd. +# +# chkconfig: 345 90 40 +# description: Gsmd manages access to a serial- or USB-connected GSM +# processname: gsmd + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +[ -f /etc/default/rcS ] && . /etc/default/rcS +[ -f /etc/default/gsmd ] && . /etc/default/gsmd + +case "$1" in + start) + [ -n "$GSM_POW" ] && ( echo "0" >$GSM_POW; sleep 1 ) + [ -n "$GSM_POW" ] && ( echo "1" >$GSM_POW; sleep 1 ) + [ -n "$GSM_RES" ] && ( echo "1" >$GSM_RES; sleep 1 ) + [ -n "$GSM_RES" ] && ( echo "0" >$GSM_RES; sleep 2 ) + + echo -n "Starting GSM daemon: " + start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l syslog + + if [ $? = 0 ]; then + echo "gsmd." + else + echo "(failed.)" + fi + ;; + stop) + [ -n "$GSM_POW" ] && echo "0" >$GSM_POW + + echo -n "Stopping GSM daemon: " + start-stop-daemon -K -x /usr/sbin/gsmd + echo "gsmd." + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/gsmd {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb b/recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb new file mode 100644 index 0000000000..dce93febf6 --- /dev/null +++ b/recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb @@ -0,0 +1,83 @@ +DESCRIPTION = "GSM libraries and daemons implementing the ETSI 07.10 specification" +HOMEPAGE = "http://www.openmoko.org" +SECTION = "telephony" + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://COPYING.library;md5=2d5025d4aa3495befef8f17206a5b0a1 " + +# Fork with wavecom support +SRC_URI = "git://git.gnumonks.org/openmoko-gsmd.git;branch=master \ + file://gsmd \ + file://default" +SRCREV = "28e25ae42da7d65face9ad2472075f7c4fc87e92" +S = "${WORKDIR}/git" + +PR = "r7" + +inherit autotools pkgconfig update-rc.d + + +# handle update-rc.d RDEPENDS_${PN} manually, we don't need it on +# anything but gsmd + +INITSCRIPT_NAME = "gsmd" +INITSCRIPT_PARAMS = "defaults 35" + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/gsmd ${D}/${sysconfdir}/init.d/ + install -d ${D}/${sysconfdir}/default + install ${WORKDIR}/default ${D}/${sysconfdir}/default/gsmd +} + +PACKAGES =+ "\ + ${PN}-tools \ + ${PN}-plugins \ + ${PN}-plugin-machine-generic \ + ${PN}-plugin-machine-tihtc \ + ${PN}-plugin-machine-gta01 \ + ${PN}-plugin-machine-telit \ + ${PN}-plugin-vendor-bcm \ + ${PN}-plugin-vendor-qc \ + ${PN}-plugin-vendor-telit \ + ${PN}-plugin-vendor-ti \ + ${PN}-plugin-vendor-tihtc \ + ${PN}-plugin-vendor-wavecom \ +" + +RDEPENDS_${PN}-plugins = "\ + ${PN}-plugin-machine-generic \ + ${PN}-plugin-machine-tihtc \ + ${PN}-plugin-machine-gta01 \ + ${PN}-plugin-machine-telit \ + ${PN}-plugin-vendor-bcm \ + ${PN}-plugin-vendor-qc \ + ${PN}-plugin-vendor-telit \ + ${PN}-plugin-vendor-ti \ + ${PN}-plugin-vendor-tihtc \ + ${PN}-plugin-vendor-wavecom \ +" + +RDEPENDS_${PN} += "update-rc.d" + +FILES_${PN}-dbg += "${libdir}/gsmd/.debug/*" +FILES_${PN}-tools = "${bindir}/*" +FILES_${PN}-plugins = "" +FILES_${PN}-dev += " ${libdir}/gsmd/*.la " +FILES_${PN}-staticdev += " ${libdir}/gsmd/*.a" +FILES_${PN}-plugin-machine-generic = "${libdir}/gsmd/libgsmd-machine_generic.so*" +FILES_${PN}-plugin-machine-tihtc = "${libdir}/gsmd/libgsmd-machine_tihtc.so*" +FILES_${PN}-plugin-machine-gta01 = "${libdir}/gsmd/libgsmd-machine_gta01.so*" +FILES_${PN}-plugin-machine-telit = "${libdir}/gsmd/libgsmd-machine_telit.so*" +FILES_${PN}-plugin-vendor-qc = "${libdir}/gsmd/libgsmd-vendor_qc.so*" +FILES_${PN}-plugin-vendor-bcm = "${libdir}/gsmd/libgsmd-vendor_bcm.so*" +FILES_${PN}-plugin-vendor-telit = "${libdir}/gsmd/libgsmd-vendor_telit.so*" +FILES_${PN}-plugin-vendor-ti = "${libdir}/gsmd/libgsmd-vendor_ti.so*" +FILES_${PN}-plugin-vendor-tihtc = "${libdir}/gsmd/libgsmd-vendor_tihtc.so*" +FILES_${PN}-plugin-vendor-wavecom = "${libdir}/gsmd/libgsmd-vendor_wavecom.so*" + +PACKAGES_DYNAMIC = "lib${PN}* ${PN}" + +ALLOW_EMPTY_${PN}-plugins = "1" +