Fungerar i NetBSD?
Moderator: Telldus
Fungerar i NetBSD?
Hej!
Ni vet inte om någon provkört den i NetBSD?
Vad jag förstått så kör den vanlig serieport över USB?
Jag är sugen på att köpa en, men min server kör NetBSD så den
ska helst funka på den som ändå alltid är igång...
Lite googlande gjorde mig tyvärr inte klokare...
MVH: Mikael
Ni vet inte om någon provkört den i NetBSD?
Vad jag förstått så kör den vanlig serieport över USB?
Jag är sugen på att köpa en, men min server kör NetBSD så den
ska helst funka på den som ändå alltid är igång...
Lite googlande gjorde mig tyvärr inte klokare...
MVH: Mikael
Hmm, fick låna en Tellstick. NetBSD känner inte igen den, men efter en hel del googlande och rotande i källkoden till NetBSD's kärna så verkar det vara exakt samma grej som i fallet med Linux 2.4. Drivrutinen finns, men VendorID och ProductID känns inte igen. Håller på och kompilerar nu, men måste lämna tillbaka stickan imorgon innan jag hinner testa . Min server är för slö, en PIII 500Mhz.
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Tellstick i (free) BSD
Jag fick igång Tellsticken i FreeBSD (som använder uftdi.c från NetBSD). Det som behövdes göras var att lägga till följande i
/usr/src/sys/dev/usb/usbdevs
och
telldus-core/rfcmd/rfcmd.c
(ovan kanske skall in i svn:en så det funkar default i fortsättningen?)
Kompilera och installera nya kärnan, starta om. Kör gmake i telldus-core/rfcmd/ sen är det bara att köra.
/usr/src/sys/dev/usb/usbdevs
Code: Select all
vendor TELLDUS 0x1781 Telldus
product TELLDUS TELLSTICK 0x0c30 Tellstick
telldus-core/rfcmd/rfcmd.c
Code: Select all
--- rfcmd.c (revision 254)
+++ rfcmd.c (working copy)
@@ -113,6 +113,8 @@
tio.c_cflag = B4800 | CS8 | CLOCAL | CREAD; /* CREAD not used yet */
tio.c_iflag = IGNPAR;
tio.c_oflag = 0;
+ tio.c_ispeed = 4800;
+ tio.c_ospeed = 4800;
tcflush(fd, TCIFLUSH);
tcsetattr(fd,TCSANOW,&tio);
Kompilera och installera nya kärnan, starta om. Kör gmake i telldus-core/rfcmd/ sen är det bara att köra.
Ah, min lösning var lite annorlunda, jag lade till product och vendor-id:na och ändrade så en annan drivrutin skulle användas (samma som äldre linuxar). Men i ditt fall dyker tellsticken fortfarande upp som ugen ?
Nu fick jag lust att prova igen... Ska kolla om jag kan låna tellsticken igen. Har inte råd att köpa någon den här månaden :/
Nu fick jag lust att prova igen... Ska kolla om jag kan låna tellsticken igen. Har inte råd att köpa någon den här månaden :/
Nejdå, blir en riktig ucom som nås på /dev/cuaUx
Funkar med två stycken också.
Code: Select all
ucom0: <Telldus TellStick, class 0/0, rev 2.00/6.00, addr 2> on uhub0
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Tack för det!
http://svn.telldus.se/comp.php?repname= ... Frfcmd@255
http://svn.telldus.se/comp.php?repname= ... Frfcmd@255
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Nicemicke.prag wrote:Tack för det!
http://svn.telldus.se/comp.php?repname= ... Frfcmd@255
Jag är förvirrad, glömde ju helt skriva att jag fick ändra i uftdi.c också för att lägga till vendor- & productid:adent wrote:Ah, FreeBSD har redan vendorid/productid på rätt drivis, till skillnad från NetBSD då? Så din första ändring ger den eg. bara rätt namn?
Code: Select all
150a151,154
> if (uaa->vendor == USB_VENDOR_TELLDUS &&
> uaa->product == USB_PRODUCT_TELLDUS_TELLSTICK)
> return (UMATCH_VENDOR_PRODUCT);
>
266a271,282
> case USB_VENDOR_TELLDUS:
> switch( uaa->product ){
> case USB_PRODUCT_TELLDUS_TELLSTICK:
> sc->sc_type = UFTDI_TYPE_8U232AM;
> sc->sc_hdrlen = 0;
> break;
>
> default: /* Can't happen */
> goto bad;
> }
> break;
>
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Nej det blir ingen krash utan attach-funktionen avbryts på ett snyggt sätt. Innan attach-koden kan köras måste enheten matchas (vilket sker runt rad 150), om den inte matchas kommer den inte heller attachas och då kommer den aldrig i närheten av det switch-statementet.micke.prag wrote:En intressant fråga: Vad händer vid "goto bad"?
Krashar man ett BSD-system om vi utvecklar fler produkter?
Om man skulle göra något fel när man ändrar i koden för uftdi.c (som t.ex. att glömma skapa något som matchar i attach-funktionen och bara ändra i match-funktionen) så får man följande:
Code: Select all
kernel: device_attach: ucom0 attach returned 6
OpenBSD också....
Jag följer väl upp med OpenBSD support då....
Patch mot -current, bör även fungera mot 4.4 och 4.5. Kanske även tidigare...
Jag har postat patcharna till tech@openbsd.org, så förhoppningsvis slipper man patcha om ett tag... Med det sagt så vet jag egentligen inte vad jag gör, utan går på chans
Jag byggde rfcmd för 20-30 minuter sedan och det fungerade, gissar louies patch var med då...
Patch mot -current, bör även fungera mot 4.4 och 4.5. Kanske även tidigare...
Jag har postat patcharna till tech@openbsd.org, så förhoppningsvis slipper man patcha om ett tag... Med det sagt så vet jag egentligen inte vad jag gör, utan går på chans
Jag byggde rfcmd för 20-30 minuter sedan och det fungerade, gissar louies patch var med då...
Code: Select all
Index: uftdi.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uftdi.c,v
retrieving revision 1.52
diff -u -r1.52 uftdi.c
--- uftdi.c 21 Apr 2009 05:22:51 -0000 1.52
+++ uftdi.c 22 Apr 2009 11:48:28 -0000
@@ -400,6 +400,7 @@
{ USB_VENDOR_TESTO, USB_PRODUCT_TESTO_SERIAL_1 },
{ USB_VENDOR_TESTO, USB_PRODUCT_TESTO_SERIAL_2 },
{ USB_VENDOR_TESTO, USB_PRODUCT_TESTO_SERVICE },
+ { USB_VENDOR_TELLDUS, USB_PRODUCT_TELLDUS_TELLSTICK },
{ USB_VENDOR_THURLBY, USB_PRODUCT_THURLBY_QL355P }
};
Code: Select all
Index: usbdevs
===================================================================
RCS file: /cvs/src/sys/dev/usb/usbdevs,v
retrieving revision 1.425
diff -u -r1.425 usbdevs
--- usbdevs 21 Apr 2009 05:22:52 -0000 1.425
+++ usbdevs 22 Apr 2009 11:44:26 -0000
@@ -518,6 +518,7 @@
vendor ASUS2 0x1761 ASUS
vendor SWEEX2 0x177f Sweex
vendor METAGEEK 0x1781 MetaGeek
+vendor TELLDUS 0x1781 Telldus
vendor DISPLAYLINK 0x17e9 DisplayLink
vendor AMIT 0x18c5 AMIT
vendor QCOM 0x18e8 Qcom
@@ -2898,6 +2899,9 @@
/* Telex Communications products */
product TELEX MIC1 0x0001 Microphone
+
+/* Telldus */
+product TELLDUS TELLSTICK 0x0c30 Tellstick
/* Tenda */
product TENDA TWL541U 0x1fab TWL541U WLAN