Just nu i M3-nätverket
Jump to content
Mikael63

USB-drivers i Linux eller i Wine?

Recommended Posts

Har lyckats installera en speciell programvara under Wine.

Programmet går bara att köra upp t.o.m. XP (eller möjligen Vista) enligt den info jag fått.

 

Eftersom jag håller på att testa med Linux, som går snabbt att starta upp testade jag alltså detta.

 

Programmet kan bara använda COM1-COM4.

Så länge dessa finns som riktiga comportar på datorn lär det ju fungera även under Linux antar jag.

 

På en Windowsmaskin utan dessa comportar kan man använda en adapter och då ställa om portnummer till 1-4.

Drivers för adaptern behövs och så långt inga problem.

http://www.ftdichip.com/Documents/InstallGuides.htm

 

Nu skulle jag då vilja få till detta med adaptern i Linux. Drivers verkar inte finnas för just denna och avsedd för Linux. Men hur är det egentligen då jag kör ett program under Wine - ska jag installera drivers under Wine då?

Hur gör jag det? Jag har installationsfilerna men ingen setup.exe. Högerklick på .inf och installera finns ju liksom inte.

Share this post


Link to post
Share on other sites

Drivrutinen är antagligen ftdi_sio.ko.gz (USB-serial). Modulen ingår i min linuxversion Mandriva 2010) som standard. Filen finns i /lib/modules/2.6.31.14-server-1mnb/kernel/usb/serial (2.6.31.14 -server-1mnb= namnet på den aktuella kärnan, så det är något annorlunda hos dig).

 

Moduler laddas med kommandot: modprobe modulnamn (modulnamnet är ftdi_sio).

Vad ger kommandot: lsusb? Kommandot listar USB-enheter.

Kommer modulen upp i utdatat från kommandot lsmod när adaptern är ansluten?

Edited by fagerja

Share this post


Link to post
Share on other sites

Drivrutinen är antagligen ftdi_sio.ko.gz (USB-serial). Modulen ingår i min linuxversion Mandriva 2010) som standard. Filen finns i /lib/modules/2.6.31.14-server-1mnb/kernel/usb/serial (2.6.31.14 -server-1mnb= namnet på den aktuella kärnan, så det är något annorlunda hos dig).

 

Moduler laddas med kommandot: modprobe modulnamn (modulnamnet är ftdi_sio).

Vad ger kommandot: lsusb? Kommandot listar USB-enheter.

Kommer modulen upp i utdatat från kommandot lsmod när adaptern är ansluten?

Ja, filen ftdi_sio.ko finns på motsvarande ställe.

mint@mint-Dell-DXP051 ~ $ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 008: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 006: ID 05e3:0604 Genesys Logic, Inc. USB 1.1 Hub
Bus 002 Device 002: ID 046d:c509 Logitech, Inc. Cordless Keyboard & Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0644:0200 TEAC Corp. All-In-One Multi-Card Reader CA200/B/S
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
mint@mint-Dell-DXP051 ~ $ lsmod
Module                  Size  Used by
ftdi_sio               35699  0 
usbserial              37116  1 ftdi_sio
(nerkortat)
mint@mint-Dell-DXP051 ~ $ 

 

Möjligt att den fungerar men jag ser den inte som en Device i Systeminformation, möljigt att den inte behöver visas där men hur ska jag hitta och ändra comportens nummer? Eller åtm. se vilket nummer den fått.

Edited by Mikael63

Share this post


Link to post
Share on other sites

Mer info:

mint@mint-Dell-DXP051 ~ $ dmesg | grep tty
[    0.000000] console [tty0] enabled
[  100.528765] usb 2-2.1: FTDI USB Serial Device converter now attached to ttyUSB0
[  100.530682] usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB1
[ 1176.928289] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 1176.928585] ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1
[ 1218.195292] usb 2-2.1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 1218.422292] usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB1
[ 2244.816272] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 2244.816567] ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1
[ 2249.064299] usb 5-1.1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 2249.287172] usb 5-1.2: FTDI USB Serial Device converter now attached to ttyUSB1

mint@mint-Dell-DXP051 ~ $ setserial -g /dev/ttyUSB[0123]
/dev/ttyUSB0, UART: unknown, Port: 0x0000, IRQ: 0, Flags: low_latency
/dev/ttyUSB1, UART: unknown, Port: 0x0000, IRQ: 0, Flags: low_latency
mint@mint-Dell-DXP051 ~ $ 

Share this post


Link to post
Share on other sites

Varför ge upp så lätt? Konfiguration av serieportar är inte länge något vanligt förekommande. Det kan hända att setserial inte är installerad då moderna datorer saknar serieportar. De serieportar som finns på moderkortet konfigureras automatiskt medan övriga måste konfigureras med setserial. Kommandot sudo setserial /dev/ttyUSB0 port 0x3f8 irq 4 uart 16550A autoconfig borde konfigurera första porten på adaptern som COM1. Se även manualen för setserial. Antar att UART är den modernaste 16550A på adaptern.

/dev/ttys0 (COM1), port 0x3f8, irq 4

/dev/ttys1 (COM2), port 0x2f8, irq 3

/dev/ttys2 (COM3), port 0x3e8, irq 4

/dev/ttys3 (COM4), port 0x2e8, irq 3

 

Det kan vara att du får automatisk konfigurering om du länkar till /dev/ttyUSB0 till dev/ttyS0 os.v.

Länk gör du (som root eller med sudo) ln -s /dev/ttyUSB0 /dev/ttyS0

 

Share this post


Link to post
Share on other sites

Varför ge upp så lätt? Konfiguration av serieportar är inte länge något vanligt förekommande.

..//..

Jag delar upp det lite..

En liten bakgrund till just denna frågeställning kan vara på plats.

 

Programvaran i fråga är för att programmera larmsändare. En "jobbrelaterad" fråga således. Enligt andrahandsuppgifterna kan man inte använda den under W7 men jag har inte testat detta själv, vilket jag skulle kunna göra. En lösning som torde fungera är att köra programvaran i en VMware-maskin. ATT kunna köra och använda programmet är alltså inte problemet. Min tanke var att man som alternativ skulle kunna ha en "LiveCD" av Linux på ett USB-minne, helst då med Wine och programvaran installerad. Oavsett vems dator som används och man behöver komma åt en sådan larmsändare skulle man alltså kunna boota på minnet, enkelt få till detta med portarna och utföra jobbet.

 

Min idé är alltså helt på det experimentella planet, att hitta ett enkelt verktyg för detta.

Om det nu inte är relativt enkelt för mig och mina kollegor att nyttja detta så faller hela idén.

 

Nu har jag ju själv en sådan enhet, som styr min elpanna, och därför så finns det ju en orsak till att jag skulle kunna tänka mig att fortsätta försöken, på just min specifika dator här hemma.

Jag kikar på föreslagna åtgärder och återkommer i nytt inlägg.

Share this post


Link to post
Share on other sites

..//..Kommandot sudo setserial /dev/ttyUSB0 port 0x3f8 irq 4 uart 16550A autoconfig borde konfigurera första porten på adaptern som COM1. Se även manualen för setserial. Antar att UART är den modernaste 16550A på adaptern.

/dev/ttys0 (COM1), port 0x3f8, irq 4

/dev/ttys1 (COM2), port 0x2f8, irq 3

/dev/ttys2 (COM3), port 0x3e8, irq 4

/dev/ttys3 (COM4), port 0x2e8, irq 3

 

Det kan vara att du får automatisk konfigurering om du länkar till /dev/ttyUSB0 till dev/ttyS0 os.v.

Länk gör du (som root eller med sudo) ln -s /dev/ttyUSB0 /dev/ttyS0

$ sudo setserial /dev/ttyUSB0 port 0x3f8 irq 4 uart 16550A autoconfig
[sudo] password for mint: 
Cannot autoconfigure port: Invalid argument

 

$ ln -s /dev/ttyUSB0 /dev/ttyS0
ln: skapar symbolisk länk "/dev/ttyS0": Filen existerar

post-52940-0-38916100-1321044551_thumb.png

Share this post


Link to post
Share on other sites

Skulle vi kunna göra nya försök?

Jag har även en annan adapter, med bara en comport, och som i sig verkar fungera under Linux.

http://www.aten.com/products/productItem.php?model_no=UC232A

 

I Windows har jag en bra mjukvara för att testa comportar.

I DOS kan man ju testa comporten genom att typ skriva copy c:\Autoexec.bat com1 (eller någon annan textfil) och då se på ansluten hårdvara om något händer.

Adaptrarna har lysdiod(er) som lyser/blinkar vid trafik.

Möjligen ska man bygla pin 2 & 3.

 

Finns i Linux liknade program/kommandon?

 

Jag skulle mycket väl kunna acceptera att min specifika programvara ovan inte kan hantera/tolka comport via adapter i Linuxmiljö men det är ju lite retsamt om det är jag själv som inte gjort rätt.

Edited by Mikael63

Share this post


Link to post
Share on other sites

Optionen (växeln) -b gör backup (kopia) och -s gör en mjuklänk (hänvisning).

I linux får du fram manualen till program med kommandot: man programnamn. Kommandot info programnamn ger mer detaljerad beskrivning. Ett program kan ha flera manualsidor, med optionen -a visas alla. Manualsidan stängs med q.

Share this post


Link to post
Share on other sites

Skulle vi kunna göra nya försök?

Jag har även en annan adapter, med bara en comport, och som i sig verkar fungera under Linux.

http://www.aten.com/...model_no=UC232A

 

I Windows har jag en bra mjukvara för att testa comportar.

I DOS kan man ju testa comporten genom att typ skriva copy c:\Autoexec.bat com1 (eller någon annan textfil) och då se på ansluten hårdvara om något händer.

Adaptrarna har lysdiod(er) som lyser/blinkar vid trafik.

Möjligen ska man bygla pin 2 & 3.

 

Finns i Linux liknade program/kommandon?

 

Jag skulle mycket väl kunna acceptera att min specifika programvara ovan inte kan hantera/tolka comport via adapter i Linuxmiljö men det är ju lite retsamt om det är jag själv som inte gjort rätt.

 

DOS kommandot copy motsvarar i linux och unix av cp. Serieporten com1 heter i linux /dev/ttyS0.

 

http://www.cyberciti.biz/tips/connect-soekris-single-board-computer-using-minicom.html

http://www.cyberciti.biz/faq/find-out-linux-serial-ports-with-setserial/

Share this post


Link to post
Share on other sites

Sparkar liv i tråden även om det inte gäller just USB längre..

 

Tänkte testa samma program fast på en dator som har en "äkta" serieport och således då utan usb-adapter.

Får samma felmeddelande som i #9.

Även gamla hederliga Terminal.exe (från Win 3.11) ger felmeddelande att inga serieportar finns.

 

Har testat med både COM1 och COM4

 

# setserial -g /dev/ttyS[0123]

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3

/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4

/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 3

~$ dmesg | grep tty

[ 0.000000] console [tty0] enabled

[ 0.843958] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

[ 0.864638] serial8250: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A

[ 0.885346] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

 

 

Jag ska väl inte behöva skapa en länk mellan COM1 & COM1?

 

Är det kopplingen till Wine/Crossover som fattas?

Edited by Mikael63

Share this post


Link to post
Share on other sites
Har du kollat om porten fungerar under linux?

 

Stort tack!

 

Jag funderade över lämplig pryl att ansluta mot comporten och hittade ett analogt modem - med lysdiodindikeringar för seriekommunikationen.

 

Kopplade in det och skulle starta något terminalprogram att testa med men fick ett infall och startade "mitt" program. Prövade att ansluta (mot modemet nu då) bara för att kolla lysdioderna.

Lysdioderna blinkade till och programmet svarade nu "Ej ansluten" - inte att serieporten inte kan användas.

 

Funderade då om det kunde vara så enkelt..? Kopplade då in "min" utrustning och därefter startade jag mitt program och testade ansluta och fick kontakt direkt!

 

Tydligen måste det i Linux finnas någon signal på porten för att den ska funka. Och att detta måste finnas innan man startar aktuellt program. (?)

Modemet har ju DSR och CTS hög.

 

Dock verkar terminal.exe inte hitta någon comport men det är ju en annan sak..

Edited by Mikael63

Share this post


Link to post
Share on other sites

Fortsättning

 

Skulle använda en annan dator, med Mint 14 för samma uppgift. Får felmeddelande även med ansluten hårdvara.

En VM-maskin säger att det inte finns någon comport.

 

Skriver setserial -g /dev/ttyS[0123] men får bara felmeddelande.

Skriver setserial och får veta att setserial inte är installerad.

Installerar setserial och startar om datorn. (verkar krävas)

Skriver setserial -g /dev/ttyS[0123] och får nu svar.

Kan inte testa skarpt i detta läge men dag 2 efter omstart så konstaterar jag att det fortfarande inte fungerar.

 

Kör och får:

[sudo] password for mint: 
mint-LIFEBOOK-E751 ~ # setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
mint-LIFEBOOK-E751 ~ # dmesg | grep tty
[    0.000000] console [tty0] enabled
[    0.567025] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.588850] 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.609426] 0000:00:16.3: ttyS4 at I/O 0x30b0 (irq = 19) is a 16550A

 

Hur kan jag komma vidare tro?

I detta läge är jag ute på fältet och har i princip bara mjukvaran under Wine och ansluten hårdvara att testa med...

Share this post


Link to post
Share on other sites

Ytterligare info:

Har gjort ytterligare tester, bl.a. med Puppy som jag startar upp på ett bootbart USB-minne som jag gjort i ordning enbart för detta ändamål. Även där fungerar det inte med den "äkta" serieporten, på två datorer, men det fungerar, på båda, om man använder en USB-adapter (dock ej i en USB3 port) och använder kommandot i inlägg #11.

Tycker det är märkligt att det fungerar om man krånglar till det med en adapter men inte utan?

Share this post


Link to post
Share on other sites

Troligen saknar kärnan någon drivrutin som behövs. Eftersom man efterstävar att hålla kärnan så liten om möjlg så kan fullt stöd för alla funktioner i gamla sydbryggor ha utelämnats. En lösning kan vara att kompilera en egen kärna, som är anpassad efter den aktuella hårdvaran. I dagsläget så saknar de flesta datorer serieport så de användare, som behöver serieport, använder USB-adapter.

Share this post


Link to post
Share on other sites

Okej, jag köper detta och jag kan kringgå problemet genom att alltid använda denna adapter (jag måste ju ändå använda en speciell seriekabel) men varför får jag då det resultatet i inlägg #17?

 

Rader med ttyS0 avviker ju från de övriga?

 

Det finns alltså EN fysisk serieport på båda dessa datorer.

Share this post


Link to post
Share on other sites

Åååh, så otroligt simpelt!!

 

Man måste starta aktuellt program som Superanvändare för att man ska få tillgång till comporten!

Ja, det är ju en jädra tur eforum finns så att jag kan bli påmind när jag glömt  :blush:

Men att starta programmet som Superanvändare funkade inte så som det normalt gör, att högerklicka och välja att Öppna som administratör.

Fick öppna program-mappen som admin och sedan starta programmet.

 

Har för mig att jag fick skapa en fil för detta och sedan en Programstartare till den filen men DET har jag glömt hur jag gjorde... :huh:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×