We suppose that you have allready installed the device service part (Device Manager and Driver Locator). See the Device manager part to start the system.

Installation from obr


1) Install the module manager

The module manager loads and unloads linux modules for drivers. It is need by low level drivers on top of linux.
-> obr Module Manager 
Installing Module Manager...
INFO : 9 : BundleEvent.INSTALLED
-> start 9
INFO : 9 : ServiceEvent.REGISTERED
INFO : 9 : ModuleManager has been started
INFO : 9 : BundleEvent.STARTED

2) Install the pcmciadevice

The pcmciadevice will declare a device and the DeviceManager will try to install a corresponding driver. In our implementation the driver relies on pcmcia_core, yenta_socket and ds modules. Those modules will be installed by the driver. If your hardware architecture relies on another hardware (tcic, i82365) you need to recompile pcmciadriver.jar (sorry, it's not yet a parameter).
As our program is now handling the pcmcia bus, the cardmanager is no more needed and you have to stop it by the command : /etc/init.d/pcmcia stop.
-> obr PCMCIA Device Service
If all these tasks have been done, we can start the pcmciadevice bundle :
-> start 179
INFO : 179 : PcmciaDevice : started : 0.0.1
-> INFO : 179 : ServiceEvent.REGISTERED
DEBUG : 92 : DeviceManager.serviceRegistered
INFO : 92 : DeviceManager.deviceRegistered
DEBUG : 92 : getRegisteredProperties : Property 0 : service.id = 36
DEBUG : 92 : getRegisteredProperties : Property 1 : objectClass = [Ljava.lang.String;@ee22f7
DEBUG : 92 : getRegisteredProperties : Property 2 : DEVICE_DESCRIPTION = Bus de connexion PCMCIA
DEBUG : 92 : getRegisteredProperties : Property 3 : DEVICE_CATEGORY = [Ljava.lang.String;@51052d
DEBUG : 92 : getRegisteredProperties : Property 4 : DEVICE_SERIAL = RL5c465 (rev 80)
DEBUG : 92 : constructDriverDictionnary
INFO : 9 : findDriver : pcmciadriver corresponding to device Category pcmcia found  
INFO : 92 : ******* New Driver Reference 2 insa.device.services.devicemanager.DeviceManager@9e29fb : [insa.device.provider.pcmcia.device.PcmciaDevice, org.ungoverned.oscar.service.shell.Command]:pcmciadriver : org.ungoverned.oscar.BundleContextImpl@1d64c37
INFO : 181 : Install modules
DEBUG : 145 : we are going to install module :pcmcia_core
DEBUG : 145 : the module has been loaded
DEBUG : 145 : we are going to install module :yenta_socket
DEBUG : 145 : the module has been loaded
DEBUG : 145 : we are going to install module :ds
DEBUG : 145 : the module has been loaded
DEBUG : 181 : we create a new threaded card listener
DEBUG : 181 : Socket created v0 : 44
DEBUG : 181 : Started listening Event Thread
INFO : 181 : start : fr.insa-lyon.telecom.pcmciadriver 1.2.1 installed
DEBUG : 92 : recherche du driver[org.osgi.service.device.Driver]
DEBUG : 92 : Bundle trouvé [181]
INFO : 92 : ******* New Driver Added insa.device.services.devicemanager.DriverReference@e28b9[org.osgi.service.device.Driver] : fr.insa-lyon.telecom.pcmciadriver 1.2.1
INFO : 92 : The best matching driver is insa.device.services.devicemanager.DriverReference@e28b9
DEBUG : 92 : The Driver is attached to >>>>>> [insa.device.provider.pcmcia.device.PcmciaDevice, org.ungoverned.oscar.service.shell.Command]
DEBUG : 92 : Adding filter to attached driver<->device (|(service.id=37)(service.id=36))
DEBUG : 181 : attach : the driver fr.insa-lyon.telecom.pcmciadriver 1.2.1is attached to service [insa.device.provider.pcmcia.device.PcmciaDevice, org.ungoverned.oscar.service.shell.Command]
INFO : 92 : successful attach : insa.device.services.devicemanager.DriverReference@e28b9 : [org.osgi.service.device.Driver] on winner [insa.device.provider.pcmcia.device.PcmciaDevice, org.ungoverned.oscar.service.shell.Command] device : [insa.device.provider.pcmcia.device.PcmciaDevice, org.ungoverned.oscar.service.shell.Command]
INFO : 179 : BundleEvent.STARTED
INFO : 181 : BundleEvent.INSTALLED
INFO : 181 : ServiceEvent.REGISTERED
INFO : 181 : BundleEvent.STARTED
At this time, if all the bundles have been successfully installed and started, you can verify that several modules have been installed :
[root@Awap root]# lsmod
Module                  Size  Used by    Not tainted
ds                      8288   1
yenta_socket           26416   1
pcmcia_core            43808   0  [ds i82365]
[root@Awap root]#
There is also a new Oscar command (cardinfo) that can be used to get the cis information from the pcmciacard.
If there is no card inserted, the answer is :
-> cardinfo
No card inserted or no cis

6) Invoke the pcmcia base driver

Now the pcmcia base driver works, you should try inserting a new pcmcia card.

-> ok : reading socket 4INFO : 181 : getEvent : card inserted
INFO : 181 : Insertion d'une nouvelle carte : Fonction : 6 : ManfidManuf Ox156 : ManfidCard Ox2
INFO : 179 : cardInserted : We are registering a new device : Fonction : 0x6 : ManfidManuf 0x156 : ManfidCard 0x2
INFO : 179 : WlanDeviceImpl 0.0.1 on socket 44
INFO : 179 : ServiceEvent.REGISTERED
DEBUG : 92 : DeviceManager.serviceRegistered
INFO : 92 : DeviceManager.deviceRegistered
DEBUG : 92 : getRegisteredProperties : Property 0 : service.id = 40
DEBUG : 92 : getRegisteredProperties : Property 1 : objectClass = [Ljava.lang.String;@9df354
DEBUG : 92 : getRegisteredProperties : Property 2 : DEVICE_DESCRIPTION = Cartes Wifi
DEBUG : 92 : getRegisteredProperties : Property 3 : DEVICE_CATEGORY = [Ljava.lang.String;@1f6df4c
DEBUG : 92 : getRegisteredProperties : Property 4 : DEVICE_SERIAL = Ox156,0x2
DEBUG : 92 : constructDriverDictionnary
INFO : 92 : ******* New Driver Reference 1 insa.device.services.devicemanager.DeviceManager@9e29fb : [insa.device.provider.wlan.device.WLanDevice, org.ungoverned.oscar.service.shell.Command]:file:pcmciadriver.jar : org.ungoverned.oscar.BundleContextImpl@1d64c37 : [org.osgi.service.device.Driver]
DEBUG : 92 : constructDriverDictionnary : drivers already installed found :file:pcmciadriver.jar
INFO : 9 : findDriver : wlandriver corresponding to device Category wlan found  
INFO : 92 : ******* New Driver Reference 2 insa.device.services.devicemanager.DeviceManager@9e29fb : [insa.device.provider.wlan.device.WLanDevice, org.ungoverned.oscar.service.shell.Command]:wlandriver : org.ungoverned.oscar.BundleContextImpl@1d64c37
DEBUG : 145 : we are going to install module :orinoco_cs
DEBUG : 145 : the module has been loaded
INFO : 183 : start : fr.insa-lyon.telecom.wlandriver.0.1
DEBUG : 92 : recherche du driver[org.osgi.service.device.Driver]
DEBUG : 92 : Bundle trouvé [183]
DEBUG : 92 : recherche du driver[org.osgi.service.device.Driver]
INFO : 92 : ******* New Driver Added insa.device.services.devicemanager.DriverReference@157c2bd[org.osgi.service.device.Driver] : fr.insa-lyon.telecom.wlandriver.0.1
INFO : 92 : The best matching driver is insa.device.services.devicemanager.DriverReference@157c2bd
DEBUG : 92 : The Driver is attached to >>>>>> [insa.device.provider.wlan.device.WLanDevice, org.ungoverned.oscar.service.shell.Command]
DEBUG : 92 : Adding filter to attached driver<->device (|(service.id=41)(service.id=40))
DEBUG : 183 : attach : the driver fr.insa-lyon.telecom.wlandriver.0.1is attached to service [insa.device.provider.wlan.device.WLanDevice, org.ungoverned.oscar.service.shell.Command]
INFO : 179 : setDriver : WLanDevice : 0.0.1:insa.device.provider.wlan.device.WLanDeviceImpl@f4f44a ==> fr.insa-lyon.telecom.wlandriver.0.1
INFO : 92 : successful attach : insa.device.services.devicemanager.DriverReference@157c2bd : [org.osgi.service.device.Driver] on winner [insa.device.provider.wlan.device.WLanDevice, org.ungoverned.oscar.service.shell.Command] device : [insa.device.provider.wlan.device.WLanDevice, org.ungoverned.oscar.service.shell.Command]
INFO : 183 : BundleEvent.INSTALLED
INFO : 183 : ServiceEvent.REGISTERED
INFO : 183 : BundleEvent.STARTED

You can verify at this point that the Linux drivers for the card have been installed :
[root@Awap root]# lsmod
Module                  Size  Used by    Not tainted
orinoco_cs              5832   0  (unused)
orinoco                32192   0  [orinoco_cs]
hermes                  6816   0  [orinoco_cs orinoco]
ds                      8288   1  [orinoco_cs]
yenta_socket           26416   1
pcmcia_core            43808   0  [orinoco_cs ds i82365]
[root@Awap root]#

7) Test the wlan driver

When the wlandriver is installed, we register a new oscar command (iwconfig) in the shell.
In order to test the wlandriver configuration. One can issue the "iwconfig" command.
-> iwconfig
<ERR> lo        no wireless extensions.
<ERR> 
<ERR> vmnet1    no wireless extensions.
<ERR> 
<STD> eth0      IEEE 802.11-DS  ESSID:"Bron"  Nickname:"ares-frenot-2.insa-lyon.fr"
<STD>           Mode:Ad-Hoc  Frequency:2.457GHz  Cell: 02:09:2B:05:41:39  
<STD>           Bit Rate=2Mb/s   Tx-Power=15 dBm   Sensitivity:1/3  
<STD>           Retry limit:4   RTS thr:off   Fragment thr:off
<STD>           Encryption key:off
<STD>           Power Management:off
<STD>           Link Quality:0  Signal level:0  Noise level:0
<STD>           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
<STD>           Tx excessive retries:170  Invalid misc:0   Missed beacon:0
<STD> 

Contributors

Stephane Frenot
A special thanks to all INSA students that contributed to that code
Mathias Faure
Cedric Logeais
Yannick Presumey
Marouane Sefiani

$Id: start.html,v 1.1 2004/06/20 15:03:15 sfrenot Exp $: