FRED a jeho ovladače se přímo v Linuxu provozovat nedají, použitelné nejsou ani ve wine. Přesto není nutné bootovat PC jen kvůli FREDovi do Windows, lze využít Windows ve virtuálním stroji. Vyzkoušeny jsou WIN XP ve VirtualBoxu (balík
virtualbox). Trochu obtíží pak vzniká při komunikaci FREDa s centrálami, ale jejich možné řešení je popsáno dále.
Nastavení VirtualBoxuVe VirtualBoxu není nutné nastavovat nic zvláštního, kromě režimu sítové karty (
Nastavení >> Síť >> Připojit_k). Síťovou kartu je nejlepší provozovat v režimu
síťový most (
bridge). Virtuální Windows by pak měly mít takovou IP-adresu, aby mohly normálně komunikovat v místní síti.
USB bez dalších doplňků z VirtualBoxu použitelné nejsou, tak mohou rovnou zůstat zakázány.
Centrály s připojením po ethernetu (např. XCOM), kromě CCPU-34S těmito centrálami se kounikuje úplně stejně, jako z PC s Windows. V ovladači FREDa se jen nastaví jejich IP-adresa.
Centrály s připojením po USB (např. XCPU)Centrála se připojí pomocí USB k PC, tím se v Linuxu vytvoří sériové zařízení, např. /dev/ttyUSB0. Je nutné upravit parametry tohoto zařízení následujícím příkazem (z balíku
coreutils):
stty -F /dev/ttyUSB0 38400 -icrnl -ixon -opost -onlcr -icanon -echo -echoe -crtscts cstopb
Dál se v Linuxu spustí program
socat TCP4-LISTEN:1998,fork OPEN:/dev/ttyUSB0
(z balíku
socat, testováno s verzí 1.7.1.3), kde
1998 je volitelný port TCP a
/dev/ttyUSB0 je aktuálně připojená centrála.
Ve Windows v ovladači FREDa se nenastaví komunikace po USB, ale přes TCP (adresa Linuxu a port jako v programu socat). Ovladač pak vše posílá po TCP do Linuxu a tam to program socat přesměruje do /dev/ttyUSB0. Odpovědi jdou z centrály zpátky přes /dev/ttyUSB0 a TCP do fredovského ovladače ve Windows.
Centrála CCPU-34Zdálo by se, že CCPU-34, vzhledem ke svému připojení ethernetem, nebude mít s komunikací problém. Komplikace ale nastávají kvůli nutnosti překladu fredovského projektu v linuxovém prostředí. Z důvodu jednoduchosti ponecháváme pro překlad i v linuxovém PC virtuální Linux.
Pro virtuální Linux lze opět využít VirtualBox (se síťovou kartou v režimu
most a vhodnou IP-adresou), virtuální disky se použijí z windowsového virtuálního Linuxu. Virtuální Linux se musí provozovat v hlavním (hostitelském) Linuxu, ve virtuálním stroji (virtuální Windows) nelze vytvořit vnořený virtuální stroj.
Ve windowsovém PC s virtuálním Linuxem zpřístupňuje VirtualBox prostřednictvím roury (pipe) konzoli virtuálního Linuxu, na tuto rouru (linuxovou konzoli) se pak připojuje fredovský ovladač. Ovšem v linuxovém PC se dvěma virtuálními stroji (s Windows a s překládacím Linuxem) se tento přístup nepodařilo zprovoznit, proto je nutné spojení mezi virtuálními stroji vytvořit jinak, např. dále popsaným způsobem.
Začne se spuštěním obou virtuálních strojů. Pak se v hostitelském Linuxu spustí příkaz ve tvaru
socat TCP4-LISTEN:7789 EXEC:'ssh fred@192.168.222.123',pty
, kde
7789 je volitelný otevřený port pro navázaní spojení z Windows a
192.168.222.123 je IP-adresa virtuálního Linuxu.
Pak se ve virtuálních Windows spustí program
TCPPipeServer.exe ipadr ipport (program je v příloze nebo ke stažení na elsaco.cz), kde parametr
ipadr je IP-adresa hostitelského Linuxu a
ipport je otevřený IP-port programem socat, např.
TCPPipeServer.exe 192.168.222.24 7789
. V tuto chvíli se vytváří přes hostitelský Linux spojení do virtuálního Linuxu, proto si socat v hostitelském Linuxu vyžádá heslo (uživatele "fred" virtuálního Linuxu).
Heslo je "fred" (bez uvozovek). Tím by se mělo celé spojení otevřít a fredovský ovladač tak bude moci komunikovat jeho obvyklým způsobem s virtuálním Linuxem:
fredovský ovladač - pipe - TCPPipeServer - socat - konzole virtuálního linuxu přes ssh.
Ještě je ale nutné ve Windows v souboru
c:\Program Files\Common Files\Elsaco\drivers\iMXCPU\Driver.iMXCPU.config
opravit první řádek na
<DriverSetting logout="disable">
, protože jinak by fredovský ovladač spojení po každé akci rušil.