Serieportar virtuellt under VirtualBox
Serieportar virtuellt under VirtualBox
Är det någon som kört virtuella serieportar under VirtualBox?
Jag kör VitualBox (Ver 3.2.12) under Win7/64 och försöker använda en fysisk serieport inifrån en virtuell WinXP. Serieporten är mappad ut till en befintlig fysisk port på det sätt som jag tolkar att det ska göras. Ändå dyker det aldrig upp någon serieport i den virtuella XP:n. Inte i programmen och inte i enhetshanteraren. Är det några speciella fallgropar? Någon som fått motsvarande att fungera?
Jag kör VitualBox (Ver 3.2.12) under Win7/64 och försöker använda en fysisk serieport inifrån en virtuell WinXP. Serieporten är mappad ut till en befintlig fysisk port på det sätt som jag tolkar att det ska göras. Ändå dyker det aldrig upp någon serieport i den virtuella XP:n. Inte i programmen och inte i enhetshanteraren. Är det några speciella fallgropar? Någon som fått motsvarande att fungera?
Re: Serieportar virtuellt under VirtualBox
Kanske måste man gå in i BIOS på virtuella datorn och enabla com1/rs232 eller vad de har valt att kalla det.
Kanske även behöver i virtualbox välja i meny att connecta ön start till serieporten
Kanske även behöver i virtualbox välja i meny att connecta ön start till serieporten
Re: Serieportar virtuellt under VirtualBox
Finns det något egentligt virtuellt BIOS som det går att gå in och ändra i? Det verkar ju som att dom flesta sådana inställningar görs i "VirtualBox->Settings" för den virtuella maskinen. Dom inställningarna motsvarar väl det som normalt görs i BIOS.
Vad menar du med "Connect on start"?
Vad menar du med "Connect on start"?
- Klas-Kenny
- Inlägg: 11832
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Serieportar virtuellt under VirtualBox
Jag har gjort det vid ett par tillfällen, har inte varit några konstigheter alls utan bara att lägga till serieporten och köra på. 

Re: Serieportar virtuellt under VirtualBox
Tack, Janne! Man blir blind till slut. Jag var så helt inne på att det var jag som gjorde något handhavandefel, så jag inte ens tänkte på att det inte kommit upp en notifiering om ny hårdvara. Och serieportarna är man ju ganska van vid att dom bara finns där eller inte från början.
Jag tolkar buggen som att den alltså inte ger förändring av hårdvara till det virtuella OS:et när man gör en verklig förändring i den virtuella hårdvaran (serieportarna). När jag la till serieporten manuellt så fungerar det utmärkt!
Jag tolkar buggen som att den alltså inte ger förändring av hårdvara till det virtuella OS:et när man gör en verklig förändring i den virtuella hårdvaran (serieportarna). När jag la till serieporten manuellt så fungerar det utmärkt!
Re: Serieportar virtuellt under VirtualBox
He he, fördelen med att hjälpa till med något som man totalt saknar kompetens kring... 

Re: Serieportar virtuellt under VirtualBox
Kan ju uppdatera min tråd runt detta problem. Mycket riktigt så löste sig problemet att använda en serieport virtuellt under VirtualBox med Jannes inlägg.
Grundproblemet var att jag har en utvecklingsmiljö som behöver två serieportar, dels själva debuggern mot målsystemet och sedan bootloadern för att ladda debuggerkärnan till målsystemet. Denna miljö har jag nu kört en lång tid under WinXP och det fungerar väl. Problememen kom när PC:n ersattes med en ny som bara har en fysisk serieport och dessutom kör Win7/64. Jag insåg för länge sedan att det skulle bli en hel del problem vid en sådan uppdatering och har kört länge på det gamla systemet. Men nu dog den gamla datorn och uppgraderingen blev nödvändig.
Den gamla datorns operativsystem inklusive all installerad programvara, flyttades över till en virtuell dator dator som kör under VirtualBox på den nya datorns Win7/64. Detta möjliggör en gradvis övergång till att få allting fungerande i den nya miljön.
Problemen kom när jag skulle försöka köra den här utvecklingsmiljön i den virtuella datorn. Bootloadern till debuggerkärnan har jag skrivit själv och den är ett Win32-program som visade sig gå alldeles utmärkt under Win7/64. Det fungerar dessutom med en USB-serieport om det är en FTDI-krets. Jag försökte först med en ATEN som har Prolific-krets, men fick aldrig den att detektera break-signal från bootloadern i mikrokontrollern. Med FTDI:n så fungerar det däremot. Med en 5V FTDI-kabel som saknar RS232-drivkretsar så slipper jag dessutom "omvandla tillbaka" till 5V-nivåer igen som jag gjorde tidigare när jag körde en fysisk RS232-port. Med USB-serieporten för bootloadern, så frigör jag den fysiska RS232-porten på datorn till den riktiga debuggerkommunikationen.
Anledningen till att debugern måste köras i den virtuella miljön, är att den inte är ett Win32-program och därför inte kan köras native under Win7/64. Först fick jag problem att köra debuggern virtuellt också. Det skrev bara "Cant execute xxxx.exe" när man försökte starta den, vilket naturligtvis inte sa så mycket om vad som egentligen var fel. Efter lite testande så visade det sig att det var placeringen av exe-filen som var avgörande. Det var precis samma plats och path som tidigare när den gick på en gamla fysiska maskinen. Men nu blev det problem att köra virtuellt. Efter ytterligare lite felsökning så visade det sig att det var ett långt filnamn (mappnamn) i pathen till debuggern som ställde det till det. Det har ju fungerat, med samma path i den fysiska maskinen, men tydligen inte under VB. När jag väl kommit fram till att det var detta som var orsaken, så var det ju bara att flytta filen och det fungerar. Den kör nu mot den enda fysiska serieporten på maskinen.
Det blev ett långt inlägg, men det kanske kan vara till nytta för någon annan som trixar med liknande saker.
Grundproblemet var att jag har en utvecklingsmiljö som behöver två serieportar, dels själva debuggern mot målsystemet och sedan bootloadern för att ladda debuggerkärnan till målsystemet. Denna miljö har jag nu kört en lång tid under WinXP och det fungerar väl. Problememen kom när PC:n ersattes med en ny som bara har en fysisk serieport och dessutom kör Win7/64. Jag insåg för länge sedan att det skulle bli en hel del problem vid en sådan uppdatering och har kört länge på det gamla systemet. Men nu dog den gamla datorn och uppgraderingen blev nödvändig.
Den gamla datorns operativsystem inklusive all installerad programvara, flyttades över till en virtuell dator dator som kör under VirtualBox på den nya datorns Win7/64. Detta möjliggör en gradvis övergång till att få allting fungerande i den nya miljön.
Problemen kom när jag skulle försöka köra den här utvecklingsmiljön i den virtuella datorn. Bootloadern till debuggerkärnan har jag skrivit själv och den är ett Win32-program som visade sig gå alldeles utmärkt under Win7/64. Det fungerar dessutom med en USB-serieport om det är en FTDI-krets. Jag försökte först med en ATEN som har Prolific-krets, men fick aldrig den att detektera break-signal från bootloadern i mikrokontrollern. Med FTDI:n så fungerar det däremot. Med en 5V FTDI-kabel som saknar RS232-drivkretsar så slipper jag dessutom "omvandla tillbaka" till 5V-nivåer igen som jag gjorde tidigare när jag körde en fysisk RS232-port. Med USB-serieporten för bootloadern, så frigör jag den fysiska RS232-porten på datorn till den riktiga debuggerkommunikationen.
Anledningen till att debugern måste köras i den virtuella miljön, är att den inte är ett Win32-program och därför inte kan köras native under Win7/64. Först fick jag problem att köra debuggern virtuellt också. Det skrev bara "Cant execute xxxx.exe" när man försökte starta den, vilket naturligtvis inte sa så mycket om vad som egentligen var fel. Efter lite testande så visade det sig att det var placeringen av exe-filen som var avgörande. Det var precis samma plats och path som tidigare när den gick på en gamla fysiska maskinen. Men nu blev det problem att köra virtuellt. Efter ytterligare lite felsökning så visade det sig att det var ett långt filnamn (mappnamn) i pathen till debuggern som ställde det till det. Det har ju fungerat, med samma path i den fysiska maskinen, men tydligen inte under VB. När jag väl kommit fram till att det var detta som var orsaken, så var det ju bara att flytta filen och det fungerar. Den kör nu mot den enda fysiska serieporten på maskinen.
Det blev ett långt inlägg, men det kanske kan vara till nytta för någon annan som trixar med liknande saker.