DOSEMU: DOS sotto linux
Da Wizard linux team wiki.
Caratteristiche della piattaforma dove sono state effettuate le operazioni
- kubuntu feisty (x86) con dosemu ver. 1.2.2
- ubuntu intrepid (x86) con dosemu ver. 1.4.0
Installare dosemu
Installare i seguenti pacchetti utilizzando il gestore pacchetti della vostra distribuzione:
- xfonts-terminus-dos - Fixed-width fonts for DOS encodings
- dosemu - The Linux DOS Emulator
- dosemu-freedos - FreeDOS package for DOSEMU
- xfonts-dosemu - VGA font for the DOS Emulator
Per ubuntu Intrepid
- dosemu - The Linux DOS Emulator
Abilitazione scrittura sul drive C (messo per default read-only)
- creare una cartella sotto la propria home ad esempio drive_c
- copiare i file dalla cartella dosemu e quella creata.
- Modificare l'autoexec.bat come sotto:
@echo off path c:\bin;c:\gnu;c:\dosemu set HELPPATH=c:\help set TEMP=c:\tmp set BLASTER=A220 I5 D1 H5 T6 prompt $P$G unix -s DOSDRIVE_D if "%DOSDRIVE_D%" == "" goto nodrived lredir C: linux\fs%DOSDRIVE_D%\drive_c :nodrived rem unix -s DOSTMP if "%DOSTMP%" == "" goto fidostmp if "%DOSDRIVE_D%" == "" goto dostmpd lredir e: linux\fs%DOSTMP% set TEMP=E:\ goto :fidostmp :dostmpd lredir C: linux\fs%DOSTMP%\drive_c set TEMP=C:\ :fidostmp rem uncomment to load another bitmap font rem loadhi display con=(vga,437,2) rem mode con codepage prepare=((850) c:\cpi\ega.cpx) rem mode con codepage select 850 rem chcp 850 rem uncomment the following to load cdrom support rem shsucdx /d:mscd0001 rem unix -s DOSEMU_VERSION rem echo "Welcome to dosemu %DOSEMU_VERSION%!" rem unix -e
Gestire 2 stampanti parallele senza far interferire i filtri di CUPS
Bisgna creare 2 stampanti RAW (senza driver) e assegnargli i nomi LPT1 e LPT2. Fatto questo nel file di configurazione dosemu.conf bisogna inserire nella chiave $_printer = "" rispettivamente LPT1 e LPT2 separati da virgola. (riconrdate di rimuovere il commento di inizio riga)
dosemu.conf
Stampante PDF sotto Dosemu
- Installare il pacchetto cups-pdf
- Crearsi la stampante e chiamarla LPT3 con i driver della HP LaserJet 2200
- modificare il file dosemu.conf mettendo LPT3 nella riga $_printer = "LPT1,LPT2,LPT3" (la prova in questione ha 3 stampanti una laser, una ad aghi e la terza crea i PDF)
Sotto la propria Home verrà creata in automatico una directory con in nome PDF e lì andranno a finire le stame che avrà il nome di '__stdin__.pdf' Ora la porta LPT3 sarà una porta collegata alla stampante PDF di cups. Quindi:
dir >lpt3
creerà un file '__stdin__.pdf' sotto la diretory PDF della propria Home.
Procedura su kubuntu feisty
- impostazioni di sistema (nel menù principlae)
- stampanti
- aggiungi stampante classe
- avanti
- cliccare su altro tipo di stampante
- poi dare avanti fino a che non appare la finestra sottostante dove dovete mettere LPT3
- dare successivo e poi fine
Generare un file PDF da un file PCL generato da un programma sotto DOSEMU
Problema: ho un programma che mi stampa dei file ma non mi consente di esportarli in nessun altro modo. Il top sarebbe fargli generare un PDF.
Soluzione: intercettare l'output sulla porta della stampante e convertirlo da PCL a PDF
- scaricare il pacchetto ghostpcl 1.411 reperibile presso http://www.artifex.com/downloads/.
Installazione ghostpcl:
make fonts
make
Se si dovesse presentare l'errore seguente:
../gs/src/gdevx.c:1133: error: ‘gx_device_X’ has no member named ‘text’ ../gs/src/gdevx.c:1133: error: request for member ‘char_count’ in something not a structure or union ../gs/src/gdevx.c:1133: warning: statement with no effect make[2]: *** [obj/gdevx.o] Error 1 make[2]: Leaving directory `/home/monica/Warez/ghostpcl_1.41p1/main' make[1]: *** [obj/ldgs.tr] Error 2 make[1]: Leaving directory `/home/monica/Warez/ghostpcl_1.41p1/main' make: *** [product] Error 2
bisogna installare il pacchetto libxt-dev.
make install
- lo script: Prende lo standar input e lo dirotta su di un file con estenzione pcl chiamato out.plc, poi scrive il file pdf mettendoci la data conteggiata in secondi a partire dal primo gennaio 1970 in modo da non avere un unico file che viene sempre sovrascritto. Il parametro -dNOPAUSE elimina la pausa del comando pcl6
#!/bin/sh cat - >/temp/out.pcl pcl6 -sDEVICE=pdfwrite -sOutputFile=out_$(date +'%s').pdf -dNOPAUSE out.pcl
- la modifiche da apportare sul file dosemu.conf
per la versione 1.2.2
$_printer_command = "<path_del_file_di_script_creato>/<nome_file>"
per la versione 1.4.0 è stata tolta l'istanza $_printer_command quindi:
$_lpt1 = "<path_del_file_di_script_creato>/<nome_file>"
- l'utilizzo: ho creato 2 icone di lancio sul desktop una che mi apre il dosemu facendo riferimento al file di configurazione di default e quindi l'output viene stampato, l'altro sul comando c'è l'aggiunta di -f <nouovo_dos_emu.conf> dove c'è la modifica apportata per fargli generare dal pcl il pdf




