D
dagobert2000
Hallo!
Folgende Ausgangssituation: Ich habe ein Bluetooth-Gerät, zu dem ich eine serielle Verbindung über PPP und RFCOMM herstelle. Diese Verbindung funktioniert und Daten können über TCP/IP ausgetauscht werden.
Nächster Schritt ist nun, dass ich an die TCP/IP-Pakete Debuginformationen anhänge muss. Damit aber die PPP-Verbindung weiterhin normal funktionieren kann, muss ich, bevor die Daten zur PPP-Schnittstelle kommen, diese Debuginformationen wieder wegfiltern.
Aus diesem Grund habe ich mit FUSD einen einfachen Treiber geschrieben, mit der die Daten vom RFCOMM entgegen nimmt, später diese Informationen filtert, und an PPP weitergibt.
Mein Problem ist nun aber schon, dass dieser Weg ohne die DebugInformationen, also mit den reinen IP-Paketen, nicht funktioniert, weil PPP als Zielgerät eine serielle Schnittstelle erwartet.
Fehlermeldung:
Das sollte aber eigentlich kein Problem sein, da ich die Konfigurationsaufrufe vom PPP quasi an zum RFCOMM durchschleife (über IOCTLs).
Der ErrorCode vom DeviceDriver:
0x000E bedeutet "bad address"
Tja... vllt hat hier jemand eine Idee wo das Problem liegt, oder aber auch eine andere Lösungsidee?
Falls noch wichtige Code-Teile zur Problemanalyse fehlen sollten, werde ich diese gerne noch anhängen...
freundliche grüße
dd
Folgende Ausgangssituation: Ich habe ein Bluetooth-Gerät, zu dem ich eine serielle Verbindung über PPP und RFCOMM herstelle. Diese Verbindung funktioniert und Daten können über TCP/IP ausgetauscht werden.
Nächster Schritt ist nun, dass ich an die TCP/IP-Pakete Debuginformationen anhänge muss. Damit aber die PPP-Verbindung weiterhin normal funktionieren kann, muss ich, bevor die Daten zur PPP-Schnittstelle kommen, diese Debuginformationen wieder wegfiltern.
Aus diesem Grund habe ich mit FUSD einen einfachen Treiber geschrieben, mit der die Daten vom RFCOMM entgegen nimmt, später diese Informationen filtert, und an PPP weitergibt.
Mein Problem ist nun aber schon, dass dieser Weg ohne die DebugInformationen, also mit den reinen IP-Paketen, nicht funktioniert, weil PPP als Zielgerät eine serielle Schnittstelle erwartet.
Fehlermeldung:
Code:
Aug 6 14:38:49 playmobil pppd[11735]: pppd 2.4.4 started by root, uid 0
Aug 6 14:38:49 playmobil pppd[11735]: Couldn't set tty to PPP discipline: Operation not permitted
Aug 6 14:38:50 playmobil pppd[11735]: Exit.
Das sollte aber eigentlich kein Problem sein, da ich die Konfigurationsaufrufe vom PPP quasi an zum RFCOMM durchschleife (über IOCTLs).
Code:
int do_ioctl(struct fusd_file_info *file, int cmd, void *arg)
{
int iRetVal = 0;
iRetVal = ioctl(iCom_Device, cmd, arg);
printf("ioctl-cmd: %d(RetVal: %d), (Errno: %04X)\n",cmd,iRetVal,errno);
return iRetVal;
}
Der ErrorCode vom DeviceDriver:
Code:
ioctl-cmd: 21539(RetVal: -1), (Errno: 000E)
0x000E bedeutet "bad address"
Tja... vllt hat hier jemand eine Idee wo das Problem liegt, oder aber auch eine andere Lösungsidee?
Falls noch wichtige Code-Teile zur Problemanalyse fehlen sollten, werde ich diese gerne noch anhängen...
freundliche grüße
dd