Newsgroup: it.comp.os.linux.development
Titolo: Makefile E Installazione Driver Modem Mq4usm560, Disperato: istallazione modem su FC4

vi spiogo il problema, sperando in un'anima pia...
Ho il seguente modem:
Typhoon USB V.90 56K Fax/modem numero modello: mq4usm560
collegato tramite porta USB.
Ho scaricato il driver dal sito del suo produttore:
http://anubis.e-ws.com/slmdm-2.7.4_i386.tar.gz
(già ho avuto fortuna che esiste...)
il problema si presenta nell'installazione
eseguo, come indicato nel file leggimi (allegato sotto):
$ gzip -dc slmdm-2.7.4_i386.tar.gz | tar xf -
ok... va bene crea la cartella:
slmdm-2.7.4_i386
poi continuo con:
$ cd slmdm-2.7.4_i386
adesso senza sapere né leggere e né scrivere do il comando
$ make
ed ecco venir fuori l'ira di dio:
gcc -Wall -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE
-DEXPORT_SYMTAB -I. -I/ usr/src/linux/include -DMODVERSIONS --include
/usr/src/linux/include/linux/modv ersions.h -o amrmo_init.o -c
amrmo_init.c
cc1: error: /usr/src/linux/include/linux/modversions.h: No such file or
director y
In file included from amrmo_init.c:46:
/usr/include/linux/config.h:5:2: error: #error Incorrectly using glibc
headers f or a kernel module
amrmo_init.c:178: error: array type has incomplete element type
amrmo_init.c:180: error: 'PCI_ANY_ID' undeclared here (not in a
function)
amrmo_init.c:224: error: invalid application of 'sizeof' to
incomplete type 'str uct pci_device_id'
amrmo_init.c: In function 'amr_mod_usage_increase':
amrmo_init.c:228: warning: implicit declaration of function
'atomic_inc'
amrmo_init.c:228: error: '__this_module' undeclared (first use in
this function)
amrmo_init.c:228: error: (Each undeclared identifier is reported only
once
amrmo_init.c:228: error: for each function it appears in.)
amrmo_init.c:228: warning: value computed is not used
amrmo_init.c: In function 'amr_mod_usage_decrease':
amrmo_init.c:232: warning: implicit declaration of function
'atomic_dec'
amrmo_init.c:232: error: '__this_module' undeclared (first use in
this function)
amrmo_init.c:232: warning: value computed is not used
amrmo_init.c: At top level:
amrmo_init.c:235: warning: 'struct pt_regs' declared inside
parameter list
amrmo_init.c:235: warning: its scope is only this definition or
declaration, whi ch is probably not what you want
amrmo_init.c: In function 'amrmo_probe':
amrmo_init.c:259: warning: implicit declaration of function
'printk'
amrmo_init.c:259: error: 'KERN_INFO' undeclared (first use in this
function)
amrmo_init.c:259: error: syntax error before string constant
amrmo_init.c:263: error: dereferencing pointer to incomplete type
amrmo_init.c:264: error: dereferencing pointer to incomplete type
amrmo_init.c:266: error: 'KERN_WARNING' undeclared (first use in
this function)
amrmo_init.c:266: error: syntax error before string constant
amrmo_init.c:268: error: 'ENODEV' undeclared (first use in this
function)
amrmo_init.c:271: warning: implicit declaration of function
'pci_enable_device'
amrmo_init.c:272: error: dereferencing pointer to incomplete type
amrmo_init.c:275: warning: implicit declaration of function
'kmalloc'
amrmo_init.c:275: error: 'GFP_KERNEL' undeclared (first use in this
function)
amrmo_init.c:275: warning: assignment makes pointer from integer
without a cast
amrmo_init.c:277: error: 'ENOMEM' undeclared (first use in this
function)
amrmo_init.c:278: warning: implicit declaration of function
'memset'
amrmo_init.c:278: warning: incompatible implicit declaration of
built-in functio n 'memset'
amrmo_init.c:280: error: dereferencing pointer to incomplete type
amrmo_init.c:283: error: dereferencing pointer to incomplete type
amrmo_init.c:284: warning: implicit declaration of function
'pci_resource_flags'
amrmo_init.c:284: error: 'IORESOURCE_MEM' undeclared (first use in
this function )
amrmo_init.c:285: warning: implicit declaration of function
'pci_resource_start'
amrmo_init.c:297: error: dereferencing pointer to incomplete type
amrmo_init.c:301: warning: implicit declaration of function 'kfree'
amrmo_init.c:305: warning: implicit declaration of function
'pci_set_master'
amrmo_init.c:307: warning: implicit declaration of function
'pci_request_regions '
amrmo_init.c:308: error: 'KERN_ERR' undeclared (first use in this
function)
amrmo_init.c:308: error: syntax error before string constant
amrmo_init.c:311: warning: implicit declaration of function
'request_irq'
amrmo_init.c:311: error: 'SA_SHIRQ' undeclared (first use in this
function)
amrmo_init.c:312: error: syntax error before string constant
amrmo_init.c:313: warning: implicit declaration of function
'pci_release_regions '
amrmo_init.c:317: warning: implicit declaration of function
'pci_set_drvdata'
amrmo_init.c:323: warning: implicit declaration of function
'pci_disable_device'
amrmo_init.c: In function 'amrmo_remove':
amrmo_init.c:329: warning: implicit declaration of function
'pci_get_drvdata'
amrmo_init.c:329: warning: initialization makes pointer from integer
without a c ast
amrmo_init.c:331: warning: implicit declaration of function
'free_irq'
amrmo_init.c:334: error: 'NULL' undeclared (first use in this
function)
amrmo_init.c: At top level:
amrmo_init.c:351: error: variable 'amrmo_pci_driver' has
initializer but incompl ete type
amrmo_init.c:352: error: unknown field 'name' specified in
initializer
amrmo_init.c:352: warning: excess elements in struct initializer
amrmo_init.c:352: warning: (near initialization for
'amrmo_pci_driver')
amrmo_init.c:353: error: unknown field 'id_table' specified in
initializer
amrmo_init.c:353: warning: excess elements in struct initializer
amrmo_init.c:353: warning: (near initialization for
'amrmo_pci_driver')
amrmo_init.c:354: error: unknown field 'probe' specified in
initializer
amrmo_init.c:354: warning: excess elements in struct initializer
amrmo_init.c:354: warning: (near initialization for
'amrmo_pci_driver')
amrmo_init.c:355: error: unknown field 'remove' specified in
initializer
amrmo_init.c:355: warning: excess elements in struct initializer
amrmo_init.c:355: warning: (near initialization for
'amrmo_pci_driver')
amrmo_init.c: In function 'amrmo_init':
amrmo_init.c:365: warning: implicit declaration of function
'pci_present'
amrmo_init.c:366: error: 'ENODEV' undeclared (first use in this
function)
amrmo_init.c:368: error: 'KERN_INFO' undeclared (first use in this
function)
amrmo_init.c:368: error: syntax error before string constant
amrmo_init.c:372: warning: implicit declaration of function
'pci_for_each_dev'
amrmo_init.c:372: error: syntax error before '{' token
amrmo_init.c:378: error: dereferencing pointer to incomplete type
amrmo_init.c:378: error: dereferencing pointer to incomplete type
amrmo_init.c:379: error: dereferencing pointer to incomplete type
amrmo_init.c:380: error: dereferencing pointer to incomplete type
amrmo_init.c:380: error: 'NULL' undeclared (first use in this
function)
amrmo_init.c: At top level:
amrmo_init.c:382: error: syntax error before '}' token
amrmo_init.c: In function 'amrmo_exit':
amrmo_init.c:394: warning: implicit declaration of function
'pci_unregister_driv er'
make: *** [amrmo_init.o] Error 1
nel file LEGGIMI c'è scritto:
[...]edit (if need) 'Makefile'
ma chi, io?
l'unica cosa che sono riuscito a cambiare è il nome di quello che
penso sia un parametro di Makefile e cioé
KERNEL_INCLUDES:=/usr/src/linux/include
visto che indicava una directory inesistente, e ho messo:
KERNEL_INCLUDES:=/usr/include
poi ho anche verificato l'inesistenza di:
MODULES_CONF:= /etc/modules.conf
ma più non so dove mettere le mani e comunque la situazione non
migliora.
Ho provato anche con rpm (vedi file leggimi riportato sotto)... niente
il file non è nello standard...
A questo punto mi serve veramente un aiuto da voi....
di seguito riporto il file leggimi:
CODE
Smart Link Ltd.
http://www.smlink.com
Apr 12, 2002
Smart Link Soft Modem for Linux
-------------------------------
Introduction
============
This is Smart Link Soft Modem for Linux version 2.X. It provides
full-featured 56K Voice Fax Modem.
Features
========
Modem: V.90, V.34, V.32bis, V.23, V.22, V.21, Bell 103/212.
Flow control: V.42, MNP 2-4.
Compression: V.44, V.42bis, MNP5.
Fax: Class 1.
Voice: ADPCM voice compression, Digital Answering Machine.
Requirements
============
CPU: Intel Pentium II, Celron. AMD K6, Cyrix 400MHz or higher.
Memory: 64MB (may work also with 32MB).
OS: Linux 2.4 series.
Supported Hardware
==================
HAMR5600 based AMR/CNR/MDC/ACR modem cards on the following Southbridge
chips:
- Intel ICH0, ICH2
- Via 686A, 686B, 8231, 8233
- SiS 630
- ALI 1535.
SmartPCI56, SmartPCI561 based PCI modem cards.
SmartUSB56 based USB modem.
Installation
============
1. Unpack tar.gz package file:
$ gzip -dc slmdm-2.X.X.tar.gz | tar xf -
2. 'cd' to package directory:
$ cd slmdm-2.X.X
3. Review and edit (if need) 'Makefile'.
  Note: Probably you will want to correct in Makefile path to your
        local linux kernel header files:
         KERNEL_INCLUDES=/path/to/linux/include
        Another way is to pass command line the parameter while
        running 'make':
         $ make KERNEL_INCLUDES=/path/to/linux/include ...
4. Run 'make' command to compile package:
$ make
5. Install.
  If you are going to use AMR/CNR/PCI modem type (as superuser):
# make install-amr
  , or
# make install-usb
  if you are going to use USB modem.
  It will install:
  - modem kernel modules slmdm.o (modem core), slfax.o (fax)
    into '/lib/modules/<kernel-version>/misc' directory
    (standard linux modules' directory).
  - hardware specific kernel module slamrmo.o (for AMR/CNR/PCI) or
    slusb.o (for USB) into '/lib/modules/<kernel-version>/misc'
    directory (standard linux modules' directory).
  - country settings data file 'country.dat' into directory '/etc'.
  Also it will:
  - create character tty device entry '/dev/ttySL0' with major
    number 212 and symbolic link 'dev/modem'.
  - config you '/etc/modules.conf' file in order to provide
    possibility for loading the modem modules into kernel on demand
    automatically by kmod, when you are going to use them.
  Note: currently you cannot use both AMR/CNR/PCI and USB Modems.
6. Config modem country.
  You can configure you current country by using module parameters
  'country' or 'country_code'.
  Add 'options' directive line to file '/etc/modules.conf':
options slmdm country=<MyCountry>
  , for example
options slmdm country=USA
  , or use module parameter while module loading:
# modprobe slmdm country=<MyCountry>
  Use 'slver -c' to see list of all supported countries and their
  codes (utility 'slver' may be found in package directory).
  Note: Command ATI7 shows installed country setting.
7. Using the modem.
  Installation will automatically create character tty device entry
  '/dev/ttySL0' with major number 212 and symbolic link '/dev/modem'.
  Use one of them as modem device for your dialing application.
8. Uninstallation.
  In package directory just type:
# make uninstall
Using RPM
=========
1. Build SRPM and RPM from tar.gz package:
  In order to build RPM and SRPM run command:
# rpm -ta slmdm-2.X.X.tar.gz
  It will build in your RPM directory:
  - slmdm-2.X.X-Y.src.rpm       - Source SRPM package
  - slmdm-2.X.X-Y.i386.rpm      - Core Modem RPM package
  - slmdm-amr-2.X.X-Y.i386.rpm  - AMR/CNR/PCI Modem driver
  - slmdm-usb-2.X.X-Y.i386.rpm  - USB Modem driver
2. Install
  To install Modem core package run:
# rpm -i /path/to/slmdm-2.X.X-Y.i386.rpm
  To install Modem hw driver run:
# rpm -i /path/to/slmdm-amr-2.X.X-Y.i386.rpm
  if you are going to use AMR/CNR/PCI Modem, or
# rpm -i /path/to/slmdm-usb-2.X.X-Y.i386.rpm
  if you are going to use SmartUSB56 Modem.
  Note: currently you cannot install and use both AMR/CNR/PCI and USB
Modems.
3. Uninstall.
# rpm -e slmdm slmdm-<amr|usb>
Getting Started
===============
After successful installation and configuration modules will be loaded
on
demand if you are using 'kmod' in linux kernel.
Also you can load modules by hand:
# modprobe slamrmo
if you are using AMR/CNR/PCI modem, or
# modprobe slusb
if you are using SmartUSB56 Modem.
Troubleshooting
===============
If you get an error message during installation/configuration or
loading
the modules try to see it in FAQ file.
Please report the problem to your modem provider or to us
(
sup...@smlink.com
).
Customization
=============
Look at 'editme.c' file in package directory.
Feedback
========
Please send any feedbacks to Smart Link. See the Smart Link
web site for contact information (
www.smlink.com
) or to
sup...@smlink.com
.
Poi metto anche la FAQ:
QUOTE
http://www.smlink.com
June 13, 2002
Smart Link Soft Modem for Linux - Frequently Asked Questions (FAQ).
==================================================================
1. General.
2. Installation.
3. Using the modem.
1. General.
  -------
Q: ???
A: Please read 'README' file.
Q: What are hardware supported by Smart Link Soft Modem drivers?
A: See 'Supported Hardware' in 'README' file.
Q: Where can I download recient version of Smart Link Soft Modem?
A: 
http://www.smlink.com
.
Q: Where can I buy AMR or CNR or ACR or PCI or USB modem?
A: Please send a message to: 
sa...@smlink.com
.
Q: Where can I send my feedbacks?
A: 
sup...@smlink.com
.
Q: What is slmdm-2.X.X_i386.tar.gz file?
A: Default release will work on i686 compatible architecture (PII and
up)
  and this with all i386 processors family (include Cyrix CIII).
Q: Is it Open Source?
A: Unfortunatly NO. Only part of system dependant files are open
sourced
  now.
2. Installation.
  ------------
Q: What development environment I need to compile the driver?
A: Linux kernel include files are needed.
Q: I edited the Makefile: 'KERNEL_INCLUDES=/usr/include'. After this
  compilation is failed. What is wrong?
A: Many popular linux distributions installs in '/usr/include'
  directory linux include files adopted for application development.
  It may be unusable with kernel module compilation. Use native linux
  kernel header files instead ('/usr/src/linux/include' directory is
  most popular place on such distributions).
3. Using the modem.
  ---------------
Q: I am going to upgrade the linux kernel. Is it possible to use the
modem
  with different kernels?
A: Yes. Just run 'make clean' and 'make install-amr' (or 'make
install-usb')
  with new linux kernel include files (whithout 'make uninstall').
Q: Can I use more then one Smart Link Soft Modem at once?
A: Unfortunalty not now. We are planning to support it in future
releases.
Q: During module loading I got warning: 'Load module without GPL
compatible
  License...'. Is it error?
A: No, this is the warning - Smart Link Soft Modem really does not have
  GPL compatible License.
Ora metto anche il Makefile:
CODE
###########################################################################
#
#
#       Makefile  --  Smart Link Soft Modem product Makefile.
#
#       Copyright (C) 2001
#          Smart Link Ltd. (
www.smlink.com
)
#
#       Author: Sasha K (
sas...@smlink.com
)
#
#
###########################################################################
#
###########################################################################
# Tools
CC      := gcc
LD      := ld
INSTALL := install
DEPMOD  := /sbin/depmod
MODPROBE:= /sbin/modprobe
RM      := rm
LN      := ln
SED     := sed
GREP    := grep
CP      := cp
MKNOD   := mknod
# debug mode options /* off */
# DEBUG:=0
-include 
debug.mk
# Definitions
MODULES_DIR  = /lib/modules/$(shell ./kernel-ver)/misc
MODEM_DEV   := ttySL0
MODEM_LINK  := modem
MODULES_CONF:= /etc/modules.conf
# Path to your kernel's includes
ifndef KERNEL_INCLUDES
KERNEL_INCLUDES:= /usr/src/linux/include
endif
INCLUDES := -I. -I$(KERNEL_INCLUDES)
ifndef MODVERSIONS_FLAGS
MODVERSIONS_FLAGS= -DMODVERSIONS --include
$(KERNEL_INCLUDES)/linux/modversions.h
endif
# C FLAGS
CFLAGS:= -Wall -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE
-DEXPORT_SYMTAB $(INCLUDES) $(MODVERSIONS_FLAGS)
#CFLAGS:= -Wall -O3 -fomit-frame-pointer -DMODEM_DEBUG=$(DEBUG)
-D__KERNEL__ -DMODULE -DEXPORT_SYMTAB $(INCLUDES) $(MODVERSIONS_FLAGS)
ifdef DEBUG
CFLAGS += -DMODEM_DEBUG=$(DEBUG)
endif
LFLAGS=
SLMDM := slmdm.o
SLAMR := slamrmo.o
SLUSB := slusb.o
SLFAX := slfax.o
ALL_TARGETS := $(SLAMR) $(SLUSB) $(SLMDM) $(SLFAX)
SLAMR_OBJ := amrmo.o
SLUSB_OBJ := usb.o
SLMDM_OBJ := mdm.o
SLFAX_OBJ := fax.o
MDM_OBJS        := mdm_init.o mdm_sltty.o mdm_country.o
FAX_OBJS        := fax_init.o
AMR_OBJS        := amrmo_init.o
USB_OBJS        := usb_st7554.o
CUSTOM_OBJ      := editme.o
SYSDEP_OBJ      := sysdep.o
SYSDEP_LINUX_OBJ:= sysdep_linux.o
SYSDEP_PCI_OBJ  := sysdep_pci.o
all: $(ALL_TARGETS) kernel-ver
$(SLAMR): $(SLAMR_OBJ) $(AMR_OBJS) $(SYSDEP_PCI_OBJ)
$(SLUSB): $(SLUSB_OBJ) $(USB_OBJS)
$(SLMDM): $(SLMDM_OBJ) $(MDM_OBJS) $(CUSTOM_OBJ) $(SYSDEP_OBJ)
$(SYSDEP_LINUX_OBJ)
$(SLFAX): $(SLFAX_OBJ) $(FAX_OBJS)
$(ALL_TARGETS):
$(LD) -r -o $@ $^
kernel-ver: kernel-ver.o
install-amr: install config-amr
install-usb: install config-usb
install: kernel-ver all
$(INSTALL) -D -m 644 slmdm.o $(prefix_dir)/$(MODULES_DIR)/slmdm.o
$(INSTALL) -D -m 644 slfax.o $(prefix_dir)/$(MODULES_DIR)/slfax.o
$(INSTALL) -D -m 644 slamrmo.o $(prefix_dir)/$(MODULES_DIR)/slamrmo.o
$(INSTALL) -D -m 644 slusb.o $(prefix_dir)/$(MODULES_DIR)/slusb.o
$(INSTALL) -D -m 755 country.dat $(prefix_dir)/etc/country.dat
$(INSTALL) -d $(prefix_dir)/dev
$(RM) -f $(prefix_dir)/dev/$(MODEM_DEV)
$(MKNOD) -m 666  $(prefix_dir)/dev/$(MODEM_DEV) c 212 0
$(LN) -sf ./$(MODEM_DEV)  $(prefix_dir)/dev/$(MODEM_LINK)
uninstall: kernel-ver cleanup-config unload-modules
$(RM) -f $(prefix_dir)/$(MODULES_DIR)/slmdm.o
$(RM) -f $(prefix_dir)/$(MODULES_DIR)/slfax.o
$(RM) -f $(prefix_dir)/$(MODULES_DIR)/slamrmo.o
$(RM) -f $(prefix_dir)/$(MODULES_DIR)/slusb.o
$(RM) -f $(prefix_dir)/etc/country.dat
$(RM) -f $(prefix_dir)/dev/$(MODEM_DEV)
$(RM) -f $(prefix_dir)/dev/$(MODEM_LINK)
config-usb: config
$(CP) $(MODULES_CONF) $(MODULES_CONF).slmdm && \
  $(SED) -e 's/^alias slmodem .*$$/alias slmodem slusb/'
$(MODULES_CONF).slmdm > $(MODULES_CONF)
$(DEPMOD) -a || echo -n
config-amr: config
$(CP) $(MODULES_CONF) $(MODULES_CONF)\.slmdm && \
  $(SED) -e 's/^alias slmodem .*$$/alias slmodem slamrmo/'
$(MODULES_CONF).slmdm > $(MODULES_CONF)
$(DEPMOD) -a || echo -n
config: cleanup-config
$(CP) $(MODULES_CONF) $(MODULES_CONF).slmdm || echo -n
echo 'alias char-major-212 slmodem' >> $(MODULES_CONF)
echo 'alias slmodem off' >> $(MODULES_CONF)
cleanup-config: unload-modules
$(CP) $(MODULES_CONF) $(MODULES_CONF).slmdm && \
  $(GREP) -v 'slmodem' $(MODULES_CONF).slmdm > $(MODULES_CONF) || \
  echo -n; \
$(DEPMOD) -a || echo -n
unload-modules:
$(MODPROBE) -r slusb
$(MODPROBE) -r slamrmo
$(MODPROBE) -r slfax
$(MODPROBE) -r slmdm
spec-file-lists: slmdm.modules slamr.modules slusb.modules
%.modules: kernel-ver
@echo "build modules list spec file $@..."
$(SED) -e 's/%modules_dir/$(subst /,\/,$(MODULES_DIR))/' $@-dist > $@
clean:
$(RM) -f $(ALL_TARGETS) $(MDM_OBJS) $(FAX_OBJS) $(AMR_OBJS) $(USB_OBJS)
$(CUSTOM_OBJ) $(SYSDEP_OBJ) $(SYSDEP_LINUX_OBJ) $(SYSDEP_PCI_OBJ)
kernel-ver kernel-ver.o
$(RM) -f *.modules
%.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
dep:
$(CC) -M -c $(CFLAGS) *.c > .depend
-include .depend
per tutti gli altri file potete scaricarli a:
http://anubis.e-ws.com/slmdm-2.7.4_i386.tar.gz
spero in un vostro aiuto...  
ciao

   most popular place on such distributions).
e se invece di postarle le faq le LEGGEVI ?????
c'è scritto chiaro e tondo al punto 1 !!!! non hai installato i kernel
include che di solito sono in un pacchetto che si chiama kernel-source o
kernel-headers .
tra l' altro al punto 2 c'è pure scritto che NON devi cambiare la dir nel
makefile.....
no comment.....
-- 
Un diplomatico e' una persona che riesce a dirti di andare all'inferno in
maniera tale che tu non vedi l'ora di partire.