telldus-core utan udev

Moderator: Telldus

Post Reply
robin.stridh
Posts: 8
Joined: Fri Mar 17, 2023 9:45 am

telldus-core utan udev

Post by robin.stridh »

Hej,

Kan telldus-core fungera utan udev?

Jag försöker installera på en ARM-baserad plattform (buildroot) där udev saknas och /dev hanteras genom statiska noder.
* Har installerat alla beroenden och korskompilerat telldus-core-2.1.1.
* Installerat i /usr/local på målsystemet
* Lagt till enheter i /etc/tellstick.conf - ändrat user/group till root/root (gruppen plugdev saknas)
* Kör telldusd --nodaemon utan klagomål
* tdtool --list listar alla mina enheter
* tdtool --on 3 svarar med "Turning on device 3, remote2 - TellStick not found"

Har provat samma sak med ett udev-baserat system och då fungerar det. Dock medför det en hel del andra problem i systemet, så jag vill helst undvika udev helt.

Mvh,
Robin
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: telldus-core utan udev

Post by micke.prag »

Det går bra att köra utan udev. Dock får du lösa följande på annat sätt:

* Se till att användaren som telldusd körs som har rättigheter till din TellStick.
* Se till att telldusd får reda på när TellStick ansluts genom att kalla på tdadmin.
Micke Prag
Software
Telldus Technologies
robin.stridh
Posts: 8
Joined: Fri Mar 17, 2023 9:45 am

Re: telldus-core utan udev

Post by robin.stridh »

Hej Micke och tack för snabbt svar!

Punkt 2 förstår jag - jag måste manuellt göra det som hjälpskriptet udev.sh gör, alltså

Code: Select all

tdadmin controller connect --pid=xxx --vid=yyy --serial=zzz 
med xxx=1781, yyy=0c31 och zzz går väl att få fram från /sys/bus/usb/devices

Däremot har jag svårt att förstå punkt 1. Kommunicerar telldus-core med enheten via en device-nod under /dev (som inte längre heter /dev/tellstick utan /dev/bus/usb/00x/00y) och det är rättigheten till denna jag måste sätta? I mitt system skapas inga noder automatiskt - kan jag skapa en statisk nod med major=189, minor=? och hoppas att tellsticken kopplar sig mot den? Jag antar att namnet inte spelar någon roll utan att telldus-core hittar noden automatiskt genom punkt 1 ovan. Men kopplingen mellan hårdvaran och /dev/?? måste jag väl ordna. Korrekt?

Mvh,
Robin
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: telldus-core utan udev

Post by micke.prag »

/dev/tellstick används inte sedan 2.1.0 utan libusb används istället. Se även till att du inte har ftdi_sio laddat i kärnan då den kan "lägga beslag" på enheten.
Är det TellStick eller TellStick Duo du vill använda?
För att återgå till ursprungsinlägget.
robin.stridh wrote:* Lagt till enheter i /etc/tellstick.conf - ändrat user/group till root/root (gruppen plugdev saknas)
* Kör telldusd --nodaemon utan klagomål
Gissar att du kör telldusd --nodaemon som root? Isåfall har telldusd root rättigheter så rättighetsproblem borde vi kunna undanröja.
robin.stridh wrote:* tdtool --on 3 svarar med "Turning on device 3, remote2 - TellStick not found"
Finns ingen TellStick ansluten kommer telldusd scanna usb en extra gång även om tdadmin inte har körts.

Så troligtvis är det något annat som inte är rätt. Vad är det för hårdvara du kör på?
Micke Prag
Software
Telldus Technologies
robin.stridh
Posts: 8
Joined: Fri Mar 17, 2023 9:45 am

Re: telldus-core utan udev

Post by robin.stridh »

Hej Micke,

Jag har inte kört "tdadmin controller connect ...", så det kanske förklarar hela problemet. Ska testa ikväll. Kör som sagt allt som root, så rättigheter borde inte vara problemet.

Mitt system är ett Atmel AT91SAM260 baserat kort med en hemmabyggd buildroot distribution. Mycket kan vara fel där... ...men det funkar när jag använder udev, så jag är nog ganska nära.

Mvh,
Robin
robin.stridh
Posts: 8
Joined: Fri Mar 17, 2023 9:45 am

Re: telldus-core utan udev - Löst!

Post by robin.stridh »

Hej,

Nu fungerar det som det ska!
Hemligheten var att dessa devicenoder måste finnas:

Code: Select all

crw-rw-r--    1 root     root      189,   0 Nov 19  2012 /dev/bus/usb/001/001   
crw-rw-r--    1 root     root      189,   1 Nov 19  2012 /dev/bus/usb/001/002
(002 är Tellstick duo och 001 verkar vara själva USB-porten)
Antar att libusb använder dem för kommunikationen trots allt.

Tack för bra support!
Mvh,
Robin
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Re: telldus-core utan udev

Post by Jaxån »

Du bör inte köra som root utan isället skapa en user och grupp att köra som. Detta för att inte buggar i program orsakar säkerhetshål i onödan.

(du vet nog vad du gör, men tänkte så att inte andra får för sig att köra som root)
Post Reply