Min server strulade så nu har jag installerat allting på en rejäl server som kör VMware. (Fick tag på en HP DL380 G5 med dubbla processorer, 16 GB ram och SAS-diskar). Då den fysiska hårdvaran alltid är igång då den har en windows server med exchange och en virtuell brandvägg, så kändes det mycket strömsnålare att köra OSCam på den.
Nu till problemet. Efter att ha installerat allting på en ubuntu på VMware så strular USB hela tiden. Exempelvis så disablar den USB0 och flyttar den till USB2, flyttar USB1 till USB3 osv.
Jag kör mina Phoenix-läsare i mouse-läge på 600 MHZ som tidigare har fungerat klockrent, men jag undrar om det är hastigheten som numera blivit ett problem. Vet någon om det är någonting speciellt om man kör USB via VMware i passthrough läge? Typ att man då måste ställa ned hastighet på läsarna eller att det generellt fungerar sämre? Alternativet är givetvis att sätta upp en ny hårdvara, men det bär emot då det innebär mer ström helt i onödan.
root@dm-proxy:/usr/local/etc# dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 0.943207] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.991070] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 1.044239] 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 1.095067] 00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 8.869860] usb 2-2.1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 8.878026] usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB1
[ 196.059453] ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1
[ 197.027476] usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB2
[ 471.699537] ftdi_sio ttyUSB2: FTDI USB Serial Device converter now disconnected from ttyUSB2
[ 472.664047] usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB1
*********
Vad du behöver innan, en fungernade linuxinstallation som använder udev för att skapa devices.
Du kollar genom att skriva köra kommandot udevinfo --version (svarar med ett nummer, i mitt fall 125)
1. Samla ihop dina läsare i en hög och kontrollera att alla har ID chip installerat (chippet sitter längst upp till höger om du håller usbkontakten uppåt. tom sockel = inget chip = detta kommer inte att fungera.
2. plugga i en av läsarna och kör följande kommando:
Kod:
udevinfo -a -p $(udevinfo -q path -n /dev/ttyUSB0) | grep serial
Anteckna nummret i raden som ser ut typ: ATTRS{serial}=="FTRXAABB" på respektive läsare. Detta är vad som identifierar respektive läsare.
Repetera för varje separat läsare tills du har alla chip ids noterade.
3. nu ska vi skapa udev regler för respektive läsare. Här kan det skilja sig en del mellan olika distros vad udev filerna heter så ta reda på violken som är lämplig att redigera genom att skriva följande:
cd /etc/udev/rules.d (och sedan enter)
grep ttyUSB * (och enter)
det första som står bör vara vilken fil (eller filer som innehåller regler för att redigera usb/resiella devices).
Sagt och gjort, vi redigerar 50-udev.rules (i mitt fall) med den editor vi kan hantera.
För den som inte fattar det här med unix och linux kan man rekommendera nano som editor då den är rättfram och enkel att hantera från början, ni andra vet ju vad ni gillar...
Leta reda på raden som innehåller "KERNEL=="ttyUSB*"
På raden ovanför lägger du till din egen regel för att skapa devices och den bör se ut så här:
Kod:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*",ATTRS{serial}=="FTRXAABB",SYMLINK+="adteknik/adph0"
Den här raden ser till att skapa ett device som ligger i /dev/adteknik/adph0 om läsaren med serienummer FTRXAABB kopplas in.
Låt oss göra fyra separata devices:
Kod:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*",ATTRS{serial}=="FTRXAABB",SYMLINK+="adteknik/adph0"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*",ATTRS{serial}=="FTRXAACC",SYMLINK+="adteknik/adph1"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*",ATTRS{serial}=="FTRXAADD",SYMLINK+="adteknik/adph2"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*",ATTRS{serial}=="FTRXAAEE",SYMLINK+="adteknik/adph3"
Varje rad innehåller ett unikt serienummer (som vi plockade fram tidigare och noterade) samt ett device som skapas för respektive läsare. Jag har valt att kalla dem för adteknik/adph?. Här kan ni naturligtvis döpa grejerna precis som ni vill.
Skippa adteknik/ så hamnar alla dina devices direkt i /dev istället för /dev/adteknik
Egentligen pekar det skapade devicet med en symlänk till ett device i /dev/ttyUSB? men det viktiga är att vi alltid frå samma namn på samma kortläsare och det får vi på det här sättet.
4. inte riktigt klara, vi måste starta om udev för att få det hella att fastna.
De flesta linux distros har nog ett färdig script för detta och borde kunan köras genom att skriva:
Kod:
/etc/init.d/udev restart
om något sådant script inte finns så testa följande:
Kod:
kill -1 `pidof udevd`
Skulle det inte heller lira så funkar alltid en hederlig reboot.