rpms/slmodem/F-8 README.fedora, NONE, 1.1 slmodem-2.9.11-create.patch, NONE, 1.1 slmodem-2.9.11-daemon.patch, NONE, 1.1 slmodem.init, NONE, 1.1 slmodem.spec, NONE, 1.1 slmodem.sysconfig, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Andreas Thienemann ixs at rpmfusion.org
Thu Oct 16 22:24:55 CEST 2008


Author: ixs

Update of /cvs/nonfree/rpms/slmodem/F-8
In directory se02.es.rpmfusion.net:/tmp/cvs-serv8791

Modified Files:
	.cvsignore sources 
Added Files:
	README.fedora slmodem-2.9.11-create.patch 
	slmodem-2.9.11-daemon.patch slmodem.init slmodem.spec 
	slmodem.sysconfig 
Log Message:
Initial branch for F-8


--- NEW FILE README.fedora ---
Smart Link Soft Modem for Fedora
********************************


Introduction
============

The slmodem package available from http://rpm.livna.org is consisting of 
two RPM packages, the slmodem package containing the needed userspace 
daemon to control the modem-chipset and the slmodem-kmod package.

slmodem-kmod provides proprietary kernel modules for certain PCI and USB 
modems as well as several integrated modem chipsets in notebooks.

Most Smart Link based modems integrated into today's notebooks however 
do work without a proprietary kernel module. These chips are wired into 
the sound codecs on the mainboard and can thus be controlled via the 
alsa sound system in userspace.
This results in a non-tainted kernel and less hassle when upgrading the 
kernel and is thus to be prefered.



Hardware Support
================


Proprietary Kernel Module (bad!)
--------------------------------

The following SmartLink modems should be supported by the slamr 
kernel-module:

 * HAMR5600 based AMR/CNR/MDC/ACR modem cards 
 * SmartPCI56/561/562/563 based PCI modem cards
 * Southbridge based chipsets
   - Intel ICH0,ICH2, ICH3, ICH4
   - Via 686A, 686B, 8231, 8233
   - SiS 630
   - ALI 1535.
 
The slusb kernel modul supports the following modem chipsets:

 * SmartUSB56 based USB modems


Userspace Hardware Support with ALSA (good)
-------------------------------------------

The slmodemd userspace application is also able to control the following 
modem chipsets without having to access proprietary kernel modules.

 * intel8x0m (snd-intel8x0m) based chipsets
   - ICH based AC97 Modems (MC97)
   - SiS 630 Modems
   - NVidia NForce Integrated Modem
 * VIA686 (snd-via82xx-modem) based chipsets
 * ATI IXP (snd-atiixp-modem) based chipsets



Installation and Configuration
==============================

Depending on your hardware, you should first try installing slmodem and 
running the slmodemd daemon in ALSA-mode.

If this does not work, install the slmodem-kmod package and configure 
the initscript to either load the slamr or the slusb kernel module.

This can be achieved by editing /etc/sysconfig/slmodemd and setting the 
INTERFACE variable to either alsa, slamr or slusb accordingly.

Restarting the slmodemd by calling service slmodem restart or rebooting 
will then load the correct module, initialise the device files and load 
the userspace daemon.

If your modem is supported by the driver, it can be accessed by using 
/dev/ttySL0 as the modem device. This device can then be used to dial 
out with the internal softmodem.



Problems
========

Please keep in mind that this is not a fedora supplied package, and thus 
you won't receive any support on any of the fedora or Red Hat 
mailinglists. If your modem does somehow not work, please take a look at 
<http://linmodems.technion.ac.il/> for more information. 
<http://www.linmodems.org/> contains a mailinglist and a mailinglist 
archive should be able to answer your questions.

In case there is a bug related to the RPM-package from livna, please 
file a bug at <http://bugzilla.livna.org>.


slmodem-2.9.11-create.patch:

--- NEW FILE slmodem-2.9.11-create.patch ---
diff -up slmodem-2.9.11-20080817/modem/modem_datafile.c.create slmodem-2.9.11-20080817/modem/modem_datafile.c
--- slmodem-2.9.11-20080817/modem/modem_datafile.c.create	2008-03-29 13:04:16.000000000 +0100
+++ slmodem-2.9.11-20080817/modem/modem_datafile.c	2008-10-15 23:45:26.000000000 +0200
@@ -48,6 +48,7 @@
 #include <string.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <sys/stat.h>
 
 #include <modem_defs.h>
 #include <modem_debug.h>
@@ -111,7 +112,7 @@ int datafile_save_info(char *file_name,s
 	int ret = -1;
 	int fd;
 
-	fd = open(file_name,O_CREAT|O_WRONLY);
+	fd = open(file_name,O_CREAT|O_WRONLY, S_IRUSR | S_IWUSR);
 	if(fd < 0)
 		return -errno;
 

slmodem-2.9.11-daemon.patch:

--- NEW FILE slmodem-2.9.11-daemon.patch ---
diff -up slmodem-2.9.11-20080817/modem/modem_cmdline.c.daemon slmodem-2.9.11-20080817/modem/modem_cmdline.c
--- slmodem-2.9.11-20080817/modem/modem_cmdline.c.daemon	2008-03-29 13:04:16.000000000 +0100
+++ slmodem-2.9.11-20080817/modem/modem_cmdline.c	2008-10-15 23:45:38.000000000 +0200
@@ -74,6 +74,7 @@ unsigned int need_realtime = 1;
 unsigned int ring_detector = 0;
 #endif
 unsigned int use_alsa = 0;
+unsigned int daemonize = 0;
 unsigned int use_short_buffer = 0;
 const char *modem_group = "uucp";
 mode_t modem_perm  = 0660;
@@ -86,6 +87,7 @@ enum {
 	OPT_COUNTRY,
 	OPT_COUNTRYLIST,
 	OPT_ALSA,
+	OPT_DAEMON,
 	OPT_GROUP,
 	OPT_PERM,
 #ifdef MODEM_CONFIG_RING_DETECTOR
@@ -113,6 +115,7 @@ static struct opt {
 	{'c',"country","default modem country name",MANDATORY,STRING,"USA"},
 	{ 0 ,"countrylist","show list of supported countries"},
 	{'a',"alsa","ALSA mode (see README for howto)"},
+	{'d',"daemon","Daemon mode"},
 	{'g',"group","Modem TTY group",MANDATORY,STRING,"uucp"},
 	{'p',"perm","Modem TTY permission",MANDATORY,INTEGER,"0660"},
 #ifdef MODEM_CONFIG_RING_DETECTOR
@@ -252,6 +255,8 @@ void modem_cmdline(int argc, char *argv[
 #endif
 		use_alsa = 1;
 	}
+	if(opt_list[OPT_DAEMON].found)
+		daemonize = 1;
 	if(opt_list[OPT_GROUP].found)
 		modem_group = opt_list[OPT_GROUP].arg_val;
 	if(opt_list[OPT_PERM].found) {
diff -up slmodem-2.9.11-20080817/modem/modem_main.c.daemon slmodem-2.9.11-20080817/modem/modem_main.c
--- slmodem-2.9.11-20080817/modem/modem_main.c.daemon	2008-08-04 03:40:13.000000000 +0200
+++ slmodem-2.9.11-20080817/modem/modem_main.c	2008-10-15 23:49:00.000000000 +0200
@@ -57,6 +57,7 @@
 #include <signal.h>
 #include <limits.h>
 #include <grp.h>
+#include <syslog.h>
 
 #ifdef SUPPORT_ALSA
 #define ALSA_PCM_NEW_HW_PARAMS_API 1
@@ -70,8 +71,8 @@
 #include <modem.h>
 #include <modem_debug.h>
 
-#define INFO(fmt,args...) fprintf(stderr, fmt , ##args );
-#define ERR(fmt,args...) fprintf(stderr, "error: " fmt , ##args );
+#define INFO(fmt,args...) (daemonize) ? syslog(LOG_INFO, fmt, ##args) : fprintf(stderr, fmt , ##args );
+#define ERR(fmt,args...) (daemonize) ? syslog(LOG_ERR, "error: " fmt, ##args) : fprintf(stderr, "error: " fmt , ##args );
 
 #define DBG(fmt,args...) dprintf("main: " fmt, ##args)
 
@@ -131,6 +132,7 @@ static char outbuf[4096];
 #define INTERNAL_DELAY 40 /* internal device tx/rx delay: should be selfdetectible */
 
 extern unsigned use_alsa;
+extern unsigned daemonize;
 static snd_output_t *dbg_out = NULL;
 
 static int alsa_mixer_setup(struct device_struct *dev, const char *dev_name)
@@ -966,6 +968,11 @@ int modem_main(const char *dev_name)
 	INFO("modem `%s' created. TTY is `%s'\n",
 	     m->name, m->pty_name);
 
+	// daemonize
+	if (daemonize)
+		if (!daemon(0, 0))
+			ERR("slmodemd could not daemonize");
+
 	sprintf(path_name,"/var/lib/slmodem/data.%s",basename(dev_name));
 	datafile_load_info(path_name,&m->dsp_info);
 
@@ -984,7 +991,7 @@ int modem_main(const char *dev_name)
 	signal(SIGINT, mark_termination);
 	signal(SIGTERM, mark_termination);
 
-	INFO("Use `%s' as modem device, Ctrl+C for termination.\n",
+	INFO("Modem device: `%s'\n",
 	     *link_name ? link_name : m->pty_name);
 
 	/* main loop here */


--- NEW FILE slmodem.init ---
#!/bin/sh
#
# slmodem      This shell script takes care of starting and stopping
#              the SmartLink modem userspace daemon.
#
# chkconfig: 2345 50 50
# description: slmodemd is a daemon which is needed to use the SmartLink \
#              softmodem.
# processname: slmodemd

# Source function library.
. /etc/rc.d/init.d/functions

[ -x /usr/sbin/slmodemd ] || exit 0

if [ -f /etc/sysconfig/slmodem ]; then
    . /etc/sysconfig/slmodem
fi

if [ $COUNTRY ]; then
    COUNTRYARG="-c $COUNTRY"
fi

if [ "$INTERFACE" == "alsa" ] && [ "$ALSA_DEVICE" != "" ]; then
	DEVICE=$ALSA_DEVICE
fi

modules_load() {
	case "$INTERFACE" in
	  alsa)
		ALSA="--alsa"
		;;
	  slamr)
		if [ ! -f /lib/modules/$(uname -r)/extra/slmodem/slamr.ko ]; then
			echo "Please install the slmodem-kmod package for your kernel"
			exit 1
		else
			modprobe slamr
			[ -e /dev/slamr ] || mknod /dev/slamr c 242 0
			DEVICE=/dev/slamr
		fi
		;;
	  slusb)
		if [ ! -f /lib/modules/$(uname -r)/extra/slmodem/slusb.ko ]; then
			echo "Please install the slmodem-kmod package for your kernel"
			exit 1
		else
			modprobe slusb
			[ -e /dev/slusb ] || mknod /dev/slusb c 243 0
			DEVICE=/dev/slusb
		fi
		;;
	  *)
		echo "Please edit /etc/sysconfig/slmodem"
		echo_failure
		echo
		exit 1
		;;
	esac
}

modules_unload() {
	case "$INTERFACE" in
	  slamr)
		rmmod slamr > /dev/null
		[ -c /dev/slamr ] && rm -f /dev/slamr > /dev/null
		;;
	  slusb)
		rmmod slusb > /dev/null
		[ -c /dev/slusb ] && rm -f /dev/slusb > /dev/null
		;;
	  *)
		;;
	esac
}

# See how we were called.
case "$1" in
  start)
	# Start daemon.
	echo -n $"Starting SmartLink modem daemon: "
	modules_load
	daemon /usr/sbin/slmodemd ${ALSA} ${COUNTRYARG} ${ARGS} --daemon ${DEVICE}
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/slmodem
	;;
  stop)
	# Stop daemon.
	echo -n $"Shutting SmartLink modem daemon: "
	killproc slmodemd
	RETVAL=$?
	modules_unload
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/slmodem
	;;
  status)
	status slmodemd
	RETVAL=$?
	;;
  restart|reload)
	$0 stop
	$0 start
	;;
  condrestart)
        [ -f /var/lock/subsys/slmodem ] && restart || :
        ;;
  *)
	echo $"Usage: $0 {start|stop|status|restart|reload}"
	RETVAL=1
	;;
esac

exit $RETVAL


--- NEW FILE slmodem.spec ---
%define   filever 2.9.11-20080817
%define   relver 2.9.11
%define   datetag 20080817

Summary:         Userspace application for smartLink softmodems
Name:            slmodem
Version:         %{relver}
Release:         5.%{datetag}%{?dist}
Group:           System Environment/Daemons
License:         BSD w/binary object
# Outdated
# URL:           http://www.smlink.com/content.aspx?id=132
URL:             http://linmodems.technion.ac.il/packages/smartlink/
Source0:         http://linmodems.technion.ac.il/packages/smartlink/slmodem-%{filever}.tar.gz
Source1:         slmodem.init
Source2:         slmodem.sysconfig
Source3:         README.fedora
Patch0:          slmodem-2.9.11-daemon.patch
Patch1:          slmodem-2.9.11-create.patch
BuildRoot:       %{_tmppath}/%{name}-%{version}-buildroot
BuildRequires:   alsa-lib-devel
ExclusiveArch:   i386
Provides:        slmodem-alsa = %{version}, slmodem-kmod-common = %{version}
Requires(post):  /sbin/chkconfig
Requires(post):  /sbin/service
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service


%description
This package contains the userspace application to control several
SmartLink based modems.

More information about installation and configuration of the slmodem
package can be found at %{_docdir}/%{name}-%{version}/README.fedora
after installation.


%prep
%setup -q -n slmodem-%{filever}
%patch0 -p1 -b .daemon
%patch1 -p1 -b .create


%build
pushd modem
make %{?_smp_mflags} SUPPORT_ALSA=1 EXTRA_CFLAGS="$RPM_OPT_FLAGS" 
popd


%install
rm -rf %{buildroot}
install -D -m 755 modem/slmodemd %{buildroot}%{_sbindir}/slmodemd
install -d -m 755 %{buildroot}%{_localstatedir}/lib/slmodem

install -D -m 755 %{SOURCE1} %{buildroot}%{_sysconfdir}/init.d/slmodem
install -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/slmodem

cp %{SOURCE3} .


%post
/sbin/chkconfig --add slmodem


%preun
if [ $1 = 0 ]; then
        /sbin/service slmodem stop >/dev/null 2>&1
        /sbin/chkconfig --del slmodem
fi


%postun
if [ "$1" -ge "1" ]; then
        /sbin/service slmodem condrestart >/dev/null 2>&1
fi


%clean
rm -rf %{buildroot}


%files
%defattr (-,root,root)
%doc README.fedora README Changes COPYING Documentation/Smartlink.txt
%{_sbindir}/slmodemd
%{_sysconfdir}/init.d/slmodem
%config(noreplace) %{_sysconfdir}/sysconfig/slmodem
%{_localstatedir}/lib/slmodem/


%changelog
* Sat Sep 08 2007 Andreas Thienemann <andreas at bawue.net> 2.9.11-4.20070813
- Updated to recent slmodem package

* Wed Feb 07 2007 Andreas Thienemann <andreas at bawue.net> 2.9.11-3.20070204
- Updated to recent slmodem package
- Added README.fedora, explaining some configuration and hardware support details

* Fri Apr 28 2006 Andreas Thienemann <andreas at bawue.net> 2.9.11-2
- Modified .spec to coexist with slmodem and kmod-slmodem.
- Updated description
- Changed name of initscripts

* Wed Mar 29 2006 Andreas Thienemann <andreas at bawue.net> 2.9.11-1
- Updated to 2.9.11 snapshot.

* Thu Mar 09 2006 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- switch to new release field
- drop Epoch

* Tue Feb 28 2006 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- add dist

* Tue Jul 10 2005 Andreas Thienemann <andreas at bawue.net> 2.9.9d-0.lvn.2
- Only builds on x86

* Tue Jun 28 2005 Andreas Thienemann <andreas at bawue.net> 2.9.9d-0.lvn.1
- Repackaged for rpm.livna.org
- Added daemonize patch, cleaned up init file
- Added %%pre and %%post scriptlets

* Tue Jun 28 2005 Andreas Thienemann <andreas at bawue.net> 2.9.9d-1
- Initial package



--- NEW FILE slmodem.sysconfig ---
# Country you are in
# Possible values can be gotten from calling slmodemd --countrylist
# e.g. COUNTRY=USA or COUNTRY=GERMANY
COUNTRY=

#
# Interface the userspace daemon should use to communicate with the modem
# alsa: For SmartLink Modems, supported by the alsa sound system.
# slamr: For PCI and Integrated SmartLink Modems
# slusb: For USB based SmartLink Modems
#
INTERFACE=

#
# If you are using the alsa sound system to drive the modem and you need too
# specify a special alsa device, as the slmodem daemon does not autodetect
# the correct sound device, please specify it here as "hw:0,6" or similar
# value.
# If you do not use the alsa interface, this value is being ignored.
ALSA_DEVICE=

#
# Any other arguments passed to the slmodem daemon
#
ARGS=


Index: .cvsignore
===================================================================
RCS file: /cvs/nonfree/rpms/slmodem/F-8/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	3 Oct 2008 12:02:54 -0000	1.1
+++ .cvsignore	16 Oct 2008 20:24:54 -0000	1.2
@@ -0,0 +1 @@
+slmodem-2.9.11-20080817.tar.gz


Index: sources
===================================================================
RCS file: /cvs/nonfree/rpms/slmodem/F-8/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	3 Oct 2008 12:02:54 -0000	1.1
+++ sources	16 Oct 2008 20:24:54 -0000	1.2
@@ -0,0 +1 @@
+37da7d0fe98f1a51adbbc8b81b0981a4  slmodem-2.9.11-20080817.tar.gz



More information about the rpmfusion-commits mailing list