|
|
Graphics
By Gimp |
|
||||||
Home |
Software | Gchemist' s |
Gtklin |
Farmacia |
Howto |
Links |
F4000 |
From SCO to Linux |
|||||||||||||||||
FarmaQuattromila
è un gestionale per la farmacia nato e sviluppato su SCO Unix.
La procedura impiega uno
stabilissimo database relazionale chiamato “today”, il porting è
stato testato sui sistemi RedHat e la procedura eseguita attraverso l'
emulatore iBCS per i kernel della serie 2.2.x e “abi” per la serie
2.4.x.
IBCS può essere
lanciato da “rc.local” con un “modprobe iBCS”, mentre per “abi “ va
creato sotto “/etc” il file “rc.modules” con le seguenti righe:
modprobe binfmt_coff
modprobe abi-sco modprobe abi-ibcs Il passo successivo
è quello di creare un utente “f4000” di gruppo “farma “ con home
in “/usr”, o mediante il comando “useradd -G farma -d /usr “ oppure
editando “/etc/default” inserendo “usr” al posto di “home” e usando
useradd senza l' opzione “-d”.
Eseguita la tar della
procedura, bisogna importare nel database il terminale “linux” per la
console grafica digitando il comando :
archive -xv8i -f
config -aadminist
dove config è il
file di input che contiene le specifiche del terminale da importare,
nel nostro caso “linux”, clicca link
per scaricarlo.
Clicca su questo link
per le
specifiche del terminale today unitamente ad alcuni appunti sul
terminale wyse 160
Per spostare il kernel al modo
grafico, in $HOME/.bash_profile prima della riga “today -ufarma”
inserire la riga:
echo -e '\033(U'
Da qualche anno ormai il
terminfo di linux è stato spostato in /usr/share, quindi
dobbiamo creare il link simbolico:
ln -sf /usr/share/terminfo /usr/lib/terminfo ancora dobbiamo fare in
modo che “today” trovi la localizzazione così come la cerca su
SCO Unix, dunque creiamo in /etc/default il file “lang” con la seguente
riga:
LANG=it_IT.39
La convenzione per SCO
è “lingua_PAESE.codice”; se abbiamo inserito it_IT, anche in
“/etc/sysconfig/i18n” la variabile “LANG” deve essere impostata a
it_IT, ma senza codice, cioè semplicemente LANG=”it_IT”.
A partire dalla RedHat 8.0
è stato inserito il set di caratteri UTF8-Unicode che manca dei
caratteri grafici, dunque in “/etc/sysconfig/i18n” la variabile SYSFONT
va inpostata a:
SYSFONT=”cp866-8x16”
A questo punto possiamo
sistemare la tastiera, per i kernel della serie 2.2.x, clicca su questo link
scaricare la keymap modificata, mentre per i kernel della serie 2.4.x,
bisogna scaricare quest' altra keymap -> it_kmap_2.4
La keymap per RedHat include
"/lib/kbd/keymaps/i386/include/linux-with-alt-and-altgr"
Questo file include a sua
volta "linux-keys-bare" dove ogni keycode è associato ad un
tasto.
I codici 87 e 88 sono
associati a F23 ed F24, per motivi che mi sfuggono fino alla RH 7.3 era
possibile associare nella keymap una stringa ad una sequenza di escape
anche ai tasti che vanno oltre F20.
La mia "vecchia" keymap
modificata se caricata su RH8.0 attribuisce l' escape associato nella
maniera classica :
string F20 = "\033[34~"
solo fino a F20, se definisco nella stessa maniera F23 ed F24 dumpkeys
mi conferma che non vengono settati.
Per personalizzare la
tastiera ho associato dunque direttamente nella definizione del tasto
dei codici arbitrari di escape :
keycode 87 =
Control_k Control_x Console_23 F35
alt keycode 87 = Console_11 keycode 88 = Control_t Control_y Console_24 F36 alt keycode 88
= Console_12
control alt keycode 88 = Console_12 Cioè
F11 = ^K
sF11 = ^X F12 = ^T La keymap rinominata in “it.kmap.gz” va posta in /lib/kbd/keymaps/i386/qwerty/ e successivamente va lanciato il comando “loadkeys it.kmap”. Infine, in “/usr/f4000/archivi” va creato un nodo di tipo pipe per la stampante: su -c “mknod lpt1 p”
chown f4000 lpt1 chgrp farma lpt1 Questa operazione in
realtà, può essere eseguita anche da programma,
scegliendo dal menu principale, “Servizio” -> “Utilità
utente” -> “Creazione nodi stampanti” :
Creato il FIFO faremo in
modo che venga copiato sulla device :
In “rc.local” mettiamo la seguente riga: [ -s /bin/lpcp
] && /bin/lpcp &
e passiamo alla creazione di “lpcp” in “/bin” contenente il ciclo di copia: while true
do cp /usr/f4000/archivi/lpt1 /dev/lp0 done Per i vecchi kernel (2.2.x
) la prima device è “/dev/lp0” e la seconda “/dev/lp1”
Oltre a quanto descritto ho
dovuto modificare una serie di script sotto la bin della procedurache
puoi scaricare cliccando su questo link.
Le ultime note riguardano
il client per la trasmissione dei dati alla Federfarma scritto dalla
PHASE e compilato con le ncurses_3, tracciando il programma che non
veniva eseguito sulle moderne distribuzioni, ho verificato la mancanza
delle librerie ld.so che puoi scaricare di seguito:
ncurses_3-1.9.9e-11.i386.rpm ld.so-1.9.5-13.i386.rpm
|