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 $: