Le HOWTO dosemu

Édité par Mike Deisher (deisher@dspsun.eas.asu.edu)

v0.60pl3, 17 Avril 1995
Ceci est la traduction française
Traduction : Thomas Parmelan <tom@darshiva.efrei.fr>
de la "Foire Aux Questions" (FAQ) / document HOWTO pour dosemu. La version la plus à jour du document original est disponible dans dspsun.eas.asu.edu:/pub/dosemu.

1. Introduction

1.1 Qu'est-ce que dosemu?

D'après le manuel : "dosemu est un programme utilisant certaines fonctionnalités du noyau Linux et du processeur 80386 afin de faire tourner MS-DOS dans une `boîte DOS'. La boîte DOS est une combinaison d'astuces matérielles et logicielles, et est capable :

1.2 Quelle est la dernière version de dosemu et où la trouver?

La dernière version est dosemu 0.60. Elle est disponible par ftp sur :

        tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/
        dspsun.eas.asu.edu:/pub/dosemu/

Cependant, des pré-versions sont disponibles pour les développeurs et les alpha-testeurs sur :

        tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/Development
        dspsun.eas.asu.edu:/pub/dosemu/Development/
et ont des noms de la forme pre0.61.*.tgz. Ce code a l'avantage d'être compatible avec les noyaux Linux les plus récents. Il inclut également de nouvelles fonctionnalités Il ne faut cependant pas oublier que ceci est du code ALPHA : il peut y avoir des bogues sérieux et très peu de documentation pour les nouvelles fonctionnalités.

1.3 Comment suivre le développement?

Si vous voulez suivre le développement de dosemu, souscrivez à la liste de distribution linux-msdos-digest. Pour souscrire, il suffit d'envoyer un mail à Majordomo@vger.rutgers.edu avec, dans le corps du message, la ligne suivante :

    subscribe linux-msdos-digest votre_nom@votre.adresse.email

Si jamais vous désirez vous désabonner de la liste, vous pouvez envoyer un mail à Majordomo@vger.rutgers.edu avec la commande suivante dans le corps de votre message :

    unsubscribe linux-msdos-digest votre_nom@votre.adresse.email

1.4 Quelle est la documentation disponible pour dosemu?

Le manuel de dosemu (dosemu.texinfo) écrit par Robert Sanders n'a pas été mis à jour depuis un certain temps, mais il reste encore une bonne source d'informations. Il est distribué avec dosemu.

Le DANG, ou "dosemu Novice's Altering Guide", explique le fonctionnement interne de dosemu. Il est écrit pour les aventureux, ceux qui veulent modifier eux-mêmes le source. Il est maintenu par Alistair MacDonald (am20@unix.york.ac.uk) et est posté régulièrement dans la liste de distribution MSDOS de Linux Activists.

La liste EMU (EMUsuccess.txt) est une liste de tous les programmes qui ont été essayés avec succès sous dosemu. Elle est postée de temps à autres dans la liste de distribution. La dernière version est disponible par ftp dans dspsun.eas.asu.edu:/pub/dosemu.

Et, bien sûr, il y a le HOWTO dosemu. Mais vous le saviez déjà, n'est-ce pas? Il est posté régulièrement dans la liste de distribution MSDOS de Linux Activists. La version la plus à jour est disponible dans dspsun.eas.asu.edu:/pub/dosemu.

1.5 Comment soumettre des corrections ou additions à ce HOWTO?

La meilleure méthode est d'éditer le fichier dosemu-HOWTO-xx.x.sgml afin d'y incorporer les changements, de créer un fichier diff comme ceci

                diff fichier-original nouveau-fichier
et de l'envoyer à deisher@dspsun.eas.asu.edu. Ce n'est pas grave si vous ne connaissez pas SGML. Les changements et nouvelles informations seront acceptées sous toutes les formes, créer un fichier diff rend simplement le travail plus facile au coordinateur. :-)

[ Note : Cette version française n'est qu'une traduction du document original. Addresser les corrections et suggestions d'ordre technique à deisher@dspsun.eas.asu.edu; signaler les erreurs de traduction à Thomas.Parmelan@darshiva.efrei.fr]

1.6 Un petit message de Greg ...

Sauf mention contraire, les auteurs détiennent les copyrights sur les HOWTO Linux. Les HOWTO Linux, ou des extraits des HOWTO Linux, peuvent être reproduits et distribués, sur n'importe quel média physique ou électronique, tant que cette notice de copyright reste présente sur toutes les copies. La redistribution commerciale est autorisée et encouragée ; cependant, l'auteur désire être mis au courant de telles distributions.

Toute traduction, synthèse ou travail dérivé d'un HOWTO Linux doit être couvert par cette notice de copyright. C'est-à-dire que vous pouvez réaliser un travail dérivé d'un HOWTO Linux, mais que vous ne pouvez pas imposer des restrictions supplémentaires sur sa distribution. Des exceptions à cette règle peuvent être accordées dans certains cas ; contacter le coordinateur des HOWTO Linux à l'adresse donnée plus bas.

En bref, nous désirons promouvoir la circulation de ces informations autant que possible. Cependant, nous désirons également garder le copyright sur ces HOWTOs, et aimerions être prévenus de leur redistribution.

Si vous avez des questions, contactez Greg Hankins, le coordinateur des HOWTO LInux, à gregh@cc.gatech.edu.

NDT: En ce qui concerne les traductions françaises, contacter Xavier Cazin, le coordinateur français, à xc@itp.fr.
.

Voici le texte original du copyright, pour référence :

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

If you have questions, please contact Greg Hankins, the Linux HOWTO coordinator, at gregh@cc.gatech.edu.

2. Compiler et installer dosemu

2.1 Où sont les instructions d'installation?

Les instructions d'installation sont dans le fichier QuickStart présent dans la distribution.

2.2 Les 10 Erreurs Stupides les plus courantes à l'installation

(08/04/95)

  1. Oublier de lire le QuickStart Guide;
  2. Essayer de compiler avec un noyau postérieur au 1.1.45;
  3. Ne pas avoir les sources du bon noyau dans /usr/src/linux;
  4. Utiliser dosemu avec un noyau n'ayant pas le support pour les IPC;
  5. Compiler avec un gcc antérieur à 2.5.8 ou une libc antérieure à 4.5.21;
  6. Oublier d'éditer le fichier /etc/dosemu.conf;
  7. Oublier de lancer "FDISK /mbr" sur son hdimage;
  8. Lancer DOSEMU avec un accès partition lorsque ces partitions sont déjà montées;
  9. Ne pas compiler dosemu avec suffisamment de privilèges (root).
  10. Essayer de lancer DOSEMU sur le système multi-utilisateurs d'un fournisseur de connectivité IP.

2.3 Comment créer un exécutable simple (pas de librairie) ?

Marty Leisner (leisner@sdsp.mc.xerox.com, 08/04/95

Si vous voulez un exécutable QMAGIC, il faut définir STATIC dans le Makefile; sinon il y aura une combinaison librairie/exécutable.

2.4 Comment créer des binaires ELF ?

Marty Leisner (leisner@sdsp.mc.xerox.com, 08/04/95

Pour créer un binaire ELF, définir ELF dans le Makefile. Compiler et installer la librairie slang séparément. slang fonctionne très bien en librairie ELF partagée.

2.5 Comment compiler dosemu sur une machine ayant peu de mémoire ?

Marty Leisner (leisner@sdsp.mc.xerox.com, 08/04/95

Si vous êtes à court de place dans le swap, vous pouvez ajouter la ligne

    CFLAGS+=-fno-inline
après la définition de CFLAGS dans dpmi/Makefile. Attention à bien vérifier que vous avez activé votre swap: j'ai déjà expérimenté des plantages quand Linux manque de swap.

2.6 Comment accélerer la compilation ?

Marty Leisner (leisner@sdsp.mc.xerox.com, 08/04/95

L'optimisation par défaut est -O2. Il suffit de changer le Makefile afin d'utiliser -O (compilation un peu plus rapide, exécutable légèrement plus petit).

2.7 Comment compiler de manière non-interactive ?

En définissant do_DEBUG dans le Makefile, vous aurez -Wall -g, une compilation non-interactive et sans tex.

2.8 Autres astuces de compilation de Marty ...

Il faut avoir compilé le noyau sur son propre système pour avoir la version courante. Sinon, il faut modifier à la main KERNEL_VERSION dans le Makefile racine. Le nombre est de la forme nmmmppp, où n est le numéro de version, mmm est le numéro mineur de version, et ppp le numéro de patch. Par exemple, le noyau 1.1.88 correspond à "1001088" et le noyau 1.2.1 à "1002001".

Commencer toutes les compilations à partir du répertoire racine des sources. Dans ce répertoire, "make sous-repertoire" lancera make dans sous-repertoire. Chaque répertoire possède les cibles habituelles clean et realclean. clean efface les fichiers objets, realclean efface également les fichiers de dépendance et quelques autres fichiers.

2.9 Faut-il compiler dosemu sous l'identité "root" ?

08/04/95

Non. Il faut l'installer sous l'identité "root", cependant.

Marty Leisner (leisner@sdsp.mc.xerox.com) ajoute :

Afin d'accéder aux ports E/S (y compris la console), dosemu a besoin de tourner avec l'identité "root". Lancer dosemu dans un xterm ou une fenêtre X et demander ensuite l'accès direct au matériel vous permet de tourner dosemu sous une identité utilisateur. Les implications de sécurité / setuid seront étudiées dans les versions de développement.

2.10 Le Makefile est dans une boucle infinie ...

James B. MacLean (jmaclean@fox.nstn.ns.ca), 12/04/95

Nous avons quelquefois remarqué ceci, généralement lorsque la date d'un fichier est importante. Quelques personnes résolvent le problème en mettant à jour leur noyau, d'autres (dont moi) en lancant les commandes :

        make realclean
        make most

3. Configuration du disque dur

3.1 Comment puis-je utiliser mon disque dur avec dosemu?

Tout d'abord, montez votre partition DOS sur un répertoire Linux. Par exemple, on peut créer un répertoire tel que /dos sous Linux (mkdir -m 755 /dos) et ajouter une ligne du type :

 /dev/hda1      /dos    msdos   umask=022
à /etc/fstab. (Dans cet exemple, le disque DOS est monté en lecture seule. Il est possible de le monter en lecture et écriture en remplaçant "022" par "000", et en utilisant l'option -m 777 avec mkdir). Maintenant, mount /dos. Vous pouvez ensuite ajouter une ligne
 lredir d: linux\fs/dos
au fichier AUTOEXEC.BAT de votre hdimage (voir plus bas les commentaires au sujet de LREDIR). Sur un système multi-utilisateurs, on peut utiliser :
 lredir d: linux\fs\${home}
home est le nom d'une variable d'environnement contenant l'emplacement du répertoire dos (/dos dans cet exemple).

---------------------

Tim Bird (Tim_R_Bird@Novell.COM) explique qu'il faut faire attention lorsque l'on utilise LREDIR dans l'autoexec.bat, car COMMAND.COM continue à lire dans l'autoexec.bat du disque redirigé à partir de l'endroit où il en était resté dans l'autoexec.bat du disque physique. Pour cette raison, il est plus sûr d'utiliser le même autoexec.bat pour les deux disques.

---------------------

Robert D. Warren (rw11258@xx.acs.appstate.edu) expliquait le 28/04/94 :

Je boote à partir d'un fichier hdimage de moins d'1 Mo, et la dernière ligne de mon config.sys dans le hdimage est :

        install=c:\lredir.exe LINUX\FS\home/dos
Ceci exécute lredir juste avant de lancer l'interpréteur de commandes. J'ai utilisé cela avec succès avec COMMAND.COM et 4DOS. Cela élimine le problème de l'offset lié à l'utilisation de lredir dans l'AUTOEXEC.BAT.

3.2 Puis-je utiliser un disque compressé avec stacker/double-space/super-store?

Pour le moment, il n'est pas possible d'accéder aux disques compressés à partir des redirigeurs (lredir ou emufs). Cependant, de nombreuses personnes ont utilisé avec succès la technique consistant à décommenter la ligne

 disk { wholedisk "dev/hda" } # 1ere partition du 1er disque
du fichier de configuration de dosemu. D'autres utilisent la ligne
 disk { partition "dev/hda1" }

Si votre partition DOS est déjà montée et accessible en écriture lorsque vous lancez dosemu avec l'accès partition ou l'accès disque, dosemu affiche un message d'avertissement et ne se lance pas. Ceci évite DOS et Linux d'écrire indépendamment l'un de l'autre sur votre disque, et de rendre votre partition DOS inutilisable (tout au moins les fichiers qui y résident).

---------------------

Si LILO est installé, la procédure ci-dessus ne fonctionnera pas. Cependant...

Thomas Mockridge (thomas@aztec.co.za) (8/5/94):

Pour démarrer dosemu avec LILO et Stacker 4.0 j'ai procédé de la manière suivante...

  1. dd le MBR vers un fichier (ou norton utility, etc., les premiers 512 octets)
  2. Démarrer le DOS (le vrai), faire un fdisk /mbr, rendre la partition dos active avec fdisk.
  3. Copier le nouveau MBR vers un fichier.
  4. Remplacer le MBR original.
  5. Copier le second MBR vers /var/lib/dosemu/partition.hda? (suivant votre partition dos).
  6. Editer dosemu.conf
                    disk {partition "/dev/hda? ?"}
    
  7. Lancer dosemu et voilà! Plus de LILO.

---------------------

Holger Schemel (q99492@pbhrzx.uni-paderborn.de) expliquait le 10/02/94 :

Cela marche parfaitement sous dosemu avec MS-DOS 6.0. Si vous avez des problèmes, il faut éditer le fichier DBLSPACE.INI pour mettre la lettre d'unité de disque qui correspond à votre disque sous dosemu.

---------------------

Darren J Moffat (moffatd@dcs.gla.ac.uk) expliquait le 27/03/94 :

"...utilisez 6.2 si vous pouvez !! Assurez-vous d'avoir sous la main une disquette de boot avec LILO, car le DOS 6.2 change le MBR du disque de démarrage."

4. Ports séries, parallèles et souris

4.1 Où sont les pilotes pour les souris (compatibles microsoft)?

Tom Kimball (tk@pssparc2.oc.com) expliquait le 24/11/93 :

De nombreuses personnes utilisent un autre pilote de souris. En voici quelques uns qui semblent fonctionner correctement :

 oak.oakland.edu:/pub/msdos/mouse/mouse701.zip (mscmouse)
 oak.oakland.edu:/pub/msdos/mouse/gmous102.zip (gmouse)

4.2 Pourquoi le pilote de ma souris ne fonctionne-t-il pas?

Mark Rejhon (mdrejhon@magi.com), 07/04/95

Si le pilote de souris "plante" lorsque vous le lancez (cela peut prendre de 30 à 60 secondes), et si vous attendez plus d'une minute avant qu'il soit chargé, essayer de préciser sur la ligne de commande du pilote de souris, le port COM sur lequel votre souris est branchée.

4.3 Pourquoi dosemu rend-il COM4 inaccessible?

Rob Janssen (rob@pe1chl.ampr.org) expliquait le 24/03/94 :

D'après jmorriso@bogomips.ee.ubc.ca, "dosemu rend encore inaccessible le port COM4 (0x2e8, IRQ 5). 0x2e8 n'est pas listé dans ports{} dans la configuration. Je suis obligé de lancer setserial /dev/cua3 irq 5 lorsque dosemu est terminé."

Ceci est dû au BIOS de la carte VGA. J'ai trouvé cela en utilisant la trace des ports d'E/S et en regardant à quel moment COM4 devenait inutilisable.

Commentez la ligne allowvideoportaccess on dans le fichier de configuration et tout devrait rentrer dans l'ordre. Si vous avez des problèmes vidéo, essayez de sélectionner plus précisément les ports autorisés dans le fichier de configuration (par exemple, 40-43).

4.4 Comment utiliser dosemu et un shell à travers une liaison série?

John Taylor (taylor@pollux.cs.uga.edutt) expliquait le 25/05/94 :

J'utilise Linux 1.1.13 et j'aimerais signaler une fonctionnalité intéressante qu'il faudrait, à mon avis, conserver. Avec la version 52, il est possible d'utiliser le programme screen. À partir de screen, on peut invoquer dos -D-a. Le point intéressant est que les commandes de screen fonctionnent encore ! Ainsi avec CTRL-A C il est possible d'ajouter un autre shell unix, et de passer de l'un à l'autre (DOS / UNIX). Ceci permet d'utiliser facilement dosemu à travers une liaison série.

4.5 Comment faire fonctionner les ports parallèles ?

Dennis Flaherty (dennisf@flaherty.elk.miles.com, 02/03/95

Le fichier dosemu.conf permet de rediriger les imprimantes vers lpr ou vers des fichiers. Si vous désirez un accès direct au port, commentez ces lignes et ajoutez la ligne suivante:

    ports { 0x3b8 0x3b9 0x3ba 0x3bb 0x3bc 0x3bd 0x3be 0x3bf } # lpt0
pour le port parallèle correspond à la carte moniteur (LPT0), ou les lignes
    ports { 0x378 0x379 0x37a 0x37b 0x37c 0x37d 0x37e 0x37f } # lpt1
    ports { 0x278 0x279 0x27a 0x27b 0x27c 0x27d 0x27e 0x27f } # lpt2
pour LPT1 et LPT1, respectivement.

5. Multi-utilisateurs et sessions non-interactives

5.1 Est-il possible d'utiliser dosemu sur un système multi-utilisateurs?

Corey Sweeney (corey@amiganet.xnet.com) expliquait le 08/12/93 :

Si plusieurs personnes doivent utiliser dosemu sur votre machine, il faut changer le répertoire de votre hdimage. Dans le fichier /etc/dosemu.conf, remplacez hdimage par /var/lib/dosemu/hdimage. Ainsi les utilisateurs n'ont pas à se soucier de leur répertoire courant lorsqu'ils lancent dosemu, et il n'est plus nécessaire de déplacer hdimage à chaque installation d'une nouvelle version.

Si vous faites cela pour un dosemu multi-utilisateurs, positionnez /var/lib/dosemu/hdimage en lecture seule pour tout le monde, sauf pour l'administrateur de dosemu.

Notez qu'il est également possible d'utiliser la nouvelle fonctionnalité emufs.sys pour monter un répertoire public et/ou un répertoire privé (un sous-répertoire dans le répertoire racine de chaque utilisateur).

[Note : Les utilisateurs peuvent aussi créer un fichier de configuration personnel ~/.dosrc (même format que /etc/dosemu.conf) pour exécuter leur propre version de dos.]

5.2 Comment exécuter des commandes DOS de manière non-interactive ?

Dan Newcombe (newcombe@aa.csc.peachnet.edu) reporte (27/01/94) :

Voici une idée (non testée) pour lancer une commande DOS depuis la ligne de commande (ou depuis un menu, etc...) sans modifier l'émulateur actuel. [ Votre partition DOS est censée être déjà montée sous Linux. ]

Supposons que vous vouliez lancer wp60.exe avec le paramètre "wp60 d:\doc\paper.txt". Il suffirait de lancer quelquechose comme "dosrun wp60 d:\doc\paper.txt". dosrun serait un script shell qui a) édite/modifie/recrée le fichier autoexec.bat sur votre partition DOS, et b) lance simplement dosemu (par exemple, "dos -C >/dev/null". L'étape a) consisterait à garder tout ce qui est normalement dans votre autoexec.bat et à rajouter à la fin "wp60 d:\doc\paper.txt".

Il faudrait auparavant modifier le config.sys situé sur votre hdimage afin que dosemu utilise emufs pour accéder à la partition DOS comme D:, positionner COMPSEC=D:\ (Je pense. Je n'ai pas de manuel DOS sous la main), et shell=c:\command.com /p.

Le principe est le suivant: à chaque fois que vous lancerez l'émulateur DOS, il recréera un autoexec.bat spécifique à cette session. Ce qui le rend spécifique est cette dernière ligne qui exécute le programme que vous voulez utiliser. Les modifications du hdimage sont nécessaire pour indiquer à l'émulateur et au DOS que vous voulez utiliser et booter depuis D:, qui sera en fait la vraie partition DOS.

Si vous n'utilisez pas hdimage et accédez au système de fichiers DOS directement au démarrage de dosemu, alors ceci fonctionnera, et vous n'avez pas à vous soucier de la partie concernant le hdimage.

---------------------

Daniel T. Schwager (danny@dragon.s.bawue.de) rapporte (02/07/94) :

Vous pouvez utiliser plusieurs dosemu.conf (et plusieurs images de boot avec plusieurs autoexec.bat) en lançant dosemu comme ceci :

$ dos -F my_quicken_q_exe_dosemu.conf

---------------------

Dietmar Braun (braun@math20.mathematik.uni-bielefeld.de) rapporte (04/07/94) :

Cela est facile si l'on utilise le redirigeur de dosemu. Il est possible de rediriger une lettre d'unité DOS vers un chemin linux donné par une variable d'environnement.

Ainsi, j'ai un script shell appelé "DOS" qui contient

 mkdir /tmp/dos.$$;
 DOSTMP=/tmp/dos.$$; export DOSTMP
et un petit truc pour faire fonctionner "echo $* > $DOSTMP/startup.bat" (en fait, un petit programme C qui convertit '/' en '\', termine les lignes correctement pour DOS (CR/LF) et ajoute ^Z à la fin du fichier), crée les fichiers de démarrage et les liens dans ce répertoire, et lance dosemu. Dans l'autoexec.bat, l'unité C: est redirigée depuis le hdimage vers ce répertoire temporaire, qui contient des liens pour $HOME et $PWD.

Ainsi, si je veux voir mes fichiers réduits en 8.3 je tape "DOS dir". Comme cela, j'ai un DOS multi-utilisateurs (je n'ai pas de partition DOS, et rediriger vers Linux préserve les permissions utilisateur) et multi-tâches (les sessions dosemu sont complètement indépendantes). J'ai fait cela un jour pour utiliser un programme DOS pour mon imprimante. En fait, l'entrée df de mon printcap est un réalité un programme DOS !

6. dosemu and Netware

6.1 Comment accéder à Netware depuis dosemu?

James B. MacLean (jmaclean@fox.nstn.ns.ca) expliquait le 28/11/94 :

dosemu supporte maintenant pdipx (un pilote de paquets IPX) et pdether (qui utilise les spécifications MLID de Novell) pour accéder à un réseau Novell à travers le pilote de paquets intégré. Ce pilote utilise l'interruption 0x60, et respecte les règles du pilote normal. Cela étant dit, n'essayez pas encore d'utiliser des outils TCP/IP DOS. Pour utiliser Netware, il faut :

  1. cd ./net
  2. cp libpacket.c.single libpacket.c
  3. cp pktnew.c.single pktnew.c
  4. recompiler dosemu
  5. lancer dosemu
  6. lancer pdether comme expliqué dans sa documentation (pdipx est une autre possibilité)
  7. Lancer netx.
  8. Utiliser l'accès Netware :-)
Si vous avez besoin d'un accès spécial à votre NIC, lisez attentivement ce qui suit. Par défaut, dosemu ne reçoit pas d'interruptions du noyau. Ceci dit, j'ai un pilote (Silly Interrupt Generator), à compiler dans le noyau, que dosemu ou d'autres programmes peuvent utiliser pour accéder à l'interruption correspondant à votre NIC. Je l'ai utilisé avec dosemu pour accéder à un réseau Novell Lite lorsque le pilote de paquet n'était pas disponible.

Si vous êtes intéressés, envoyez-moi un courrier électronique (jmaclean@fox.nstn.ns.ca) et je vous donnerai des explications.

Vous voulez plusieurs accès à Novell depuis dosemu?

  1. Compiler la pré-]version courante de dosemu
  2. Suivre les indications de ./v-net/dosnet.README
  3. Reprendre au point 5 ci-dessus.

6.2 Netware-HOWTO

Le Netware-HOWTO de Lauri Tischler (ltischler@fipower.pp.fi) est maintenant un document à part entière. Il est inclus dans la distribution dosemu et est bien sûr disponible sur les sites archivant les HOWTOs, par exemple http://sunsite.unc.edu/mdw/linux.html

NDT: Pour nous autres francophones, il vaut mieux aller sur http://www.loria.fr/linux/.
.

7. dosemu et X-Window

7.1 Est-il possible d'utiliser dosemu sur une console tout en utilisant X?

Ronald Schalk (R.Schalk@uci.kun.nl) expliquait le 17/01/94 :

Oui, sans aucun problème. Il suffit de se rappeler qu'il faut utiliser Ctrl-Alt-<Fn> pour accéder à une console virtuelle, et qu'il est alors possible de lancer n'importe quelle application Linux (dosemu est une application Linux). J'ai quasiment en permanence WP 5.1 dans une session dos.

[Note : Utiliser Ctrl-Alt-F7 pour revenir à X à partir de dosemu.]

7.2 Est-il possible d'utiliser dosemu dans une fenêtre X ?

Mark Rejhon (mdrejhon@magi.com), 08/04/95

Si vous avez installé X, avez compilé dosemu, et réussissez à l'utiliser en dehors de X-Window, il devrait suffire de lancer directement "xdos" ou "dos -X" pour obtenir une fenêtre dosemu. Si cela ne marche pas, vérifier que :

  1. dosemu a été compilé avec le support X (X_SUPPORT=1 dans le Makefile) ;
  2. les fontes VGA ont été installées. Il suffit de lancer le script xinstallvgafont dans le répertoire source de dosemu :
            sh xinstallvgafont
        
    
  3. les codes claviers sont corrects. Dans un xterm, taper:
             xmodmap -e "keycode 22 = 0xff08"
             xmodmap -e "keycode 107 = 0xffff"
        
    
    Ces commandes corrigent les touches Backspace et Delete ;
  4. les options relatives à X ont été configurées correctement dans /etc/dosemu.conf.

Une autre méthode est de lancer dosemu à l'intérieur d'un color_xterm, mais cela n'est pas recommandé car la plupart des color_xterm ne sont pas capables de gérer correctement toutes les ressources complexes d'affichage de dosemu. Cette méthode ne nécessite pas l'option de compilation X_SUPPORT. Si vous voulez vraiment faire comme ceci, voici les instructions:

  1. Installer ansi_xterm. Il est disponible sur tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/Development/ansi-xterm-R6.tar.gz ;
  2. Installer les fontes VGA. Il suffit de lancer le script xinstallvgafont dans le répertoire source de dosemu :
            sh xinstallvgafont
        
    
  3. Configurer les codes clavier. Dans un xterm, taper:
             xmodmap -e "keycode 22 = 0xff08"
             xmodmap -e "keycode 107 = 0xffff"
        
    
    Ces commandes corrigent les touches Backspace et Delete ;
  4. Configuer les options de terminal dans /etc/dosemu.conf

Marty Leisner (leisner@sdsp.mc.xerox.com), 31/03/95

J'utilise xrdb pour utiliser les ressources suivantes :

dosxterm*Font:          vga
dosxterm*geometry:      80x25
dosxterm*saveLines:     25

ou bien je fais un alias dosxterm correspondant à

xterm -fn vga -title dosxterm -geometry 80x25 -sl 25

Pour utiliser la méthode xrdb, il suffit de taper :

xterm -name dosxterm

7.3 L'émulation ansi fonctionne-t-elle correctement ?

Marty Leisner (leisner@sdsp.mc.xerox.com), 31/03/95

Oui. J'utilise nnansi.com sous X-Window. Les modes 25, 43 et 50 lignes fonctionnent correctement, bien que le mode 50 lignes soit difficile à lire sur un écran 1024x768 (à moins d'utiliser des fontes plus petites ou un écran plus grand). Le mode 43 lignes retaille le xterm pour utiliser 43 lignes.

8. dosemu et MS-Windows 3.1

8.1 Est-il possible de lancer MS-Windows 3.1 sous dosemu ?

D'après le fichier README :

****************************************************************
*    ATTENTION !!!  ATTENTION !!!  ATTENTION!!!  ATTENTION !!! *
*                                                              *
*  Danger ! Ceci n'est pas completement supporte et de         *
*  nombreux bogues connus sont presents ! La plupart des gros  *
*  programmes ne fonctionneront sans doute pas !!!             *
*                                                              *
*  Soyez prets pour des plantages systeme si vous essayez !!!  *
*                                                              *
*    ATTENTION !!!  ATTENTION !!!  ATTENTION!!!  ATTENTION !!! *
****************************************************************

Bon, vous êtes toujours là ? Bien. Il est possible de lancer WINOS2 (la version modifiée de Windows 3.1 utilisée par OS/2) sous dosemu. Félicitations à Lutz et Dong !

De nombreux problèmes sont connus. Windows est enclin aux plantages et peut vous faire perdre des données. Les gros programmes ne se chargent pas. La souris risque d'être très peu maniable, etc. En d'autres termes, ceci n'est pas prêt pour une utilisation normale. De nombreuses cartes graphiques posent problème (vous pouvez obtenir un très bel écran blanc). Vos groupes de programmes peuvent disparaître. En un mot, c'est une horreur.

D'un autre côté, si vous mourrez d'envie de voir le logo Windows s'afficher sous Linux et que vous avez lu attentivement tout ceci, et que vous promettez de ne pas bombarder les développeurs de dosemu de messages du type "MS Word 6.0 ne fonctionne pas !" ...

  1. Prendre les distributions sources de Linux et dosemu ;
  2. Décompresser la distribution dosemu ;
  3. Appliquer le patch dpmi/kernel.diff à vos sources du noyau ;
  4. Recompiler le noyau ;
  5. Compiler dosemu ;
  6. Se procurer WINOS2.ZIP sur tsx-11.mit.edu ;
  7. Décompresser le contenu de WINOS2.ZIP dans votre répertoire WINDOWS/SYSTEM ;
  8. Redémarrer avec le nouveau noyau ;
  9. Lancer dosemu (après avoir vérifié que DPMI est "ON") ;
  10. Croiser les doigts.

Bonne chance !

RAPPEL: CECI N'EST PAS RECOMMANDÉ ! NOUS NE VOUS CONSEILLONS PAS DE FAIRE CECI !!!

9. Vidéo et son

9.1 Peut-on utiliser les jeux 32-bits sous dosemu ?

Mark Rejhon (mdrejhon@magi.com), 08/04/95

Avec les améliorations concernant le DPMI qui ont été intégrées à la version 0.60, il est maintenant possible de faire tourner quelques jeux 32 bits sous dosemu. Si le jeu est compatible avec OS/2, il y a de fortes chances pour qu'il fonctionne sous dosemu (exemples de jeux 32 bits : Descent, Dark Forces, Mortal Kombat 2, Rise of The Triad, ont tous été testés avec les versions récentes de dosemu).

Avant d'essayer quoi que ce soit, il faut avoir configuré le clavier en mode direct

NDT: raw mode
et autorisé les graphiques VGA dans /etc/dosemu.conf. Si vous avez déjà réussi à lancer des programmes graphiques sous dosemu, et que vous êtes prêt à prendre le risque d'un plantage système (puisque vous laissez dosemu accéder directement à la carte vidéo, ce qui peut laisser celle-ci dans un état instable dont il est difficile de ressortir), alors allez-y, lancez votre jeu !

Attention cependant, il faut désactiver le son du jeu. (Il faudra que quelqu'un programme une émulation de carte son pour éviter cela). Le jeu sera peut-être un peu lent, étant donné que Linux est multi-tâches et ne possède pas de timer à haute fréquence. Alors, le jeu peut fonctionner de 5 à 100 % de sa vitesse normale. En général, il s'agit de 50 % pour les versions récentes de dosemu, et cela devrait augmenter.

Qui sait, cela pourrait même fonctionner. N'hésiter pas à envoyer un message au coordinateur de EMUsuccess.txt si votre jeu fonctionne correctement sous dosemu  !

9.2 En quittant dosemu, j'obtiens un écran rempli de caractères bizarres.

08/04/95

Le problème est que la police de l'écran texte VGA n'est pas sauvée. Procurez vous le kit svgalib. La version courante est dans

    sunsite.unc.edu:/pub/Linux/libs/graphics/svgalib125.tar.gz
Ce kit est sans doute également disponible sous forme précompilée dans votre distribution Linux préférée (par exemple, Slackware). Utilisez savetextmode pour sauver les paramètres du mode courant vers un fichier dans /tmp avant de lancer dosemu. En sortant de dosemu, lancez textmode pour les restaurer.

9.3 Comment utiliser dosemu avec ma carte vidéo Trident/Actix/etc?

[L'écran vacille, affiche le message du BIOS vidéo, puis plus rien.]

Andrew Tridgell (tridge@nimbus.anu.edu.au) expliquait le 29/01/94 :

Avec les versions précédentes, j'ai découvert que cela fonctionnait en utilisant :

 ports { 0x42 }
mais quelquefois, ma machine se plantait pendant que le BIOS vidéo s'exécutait dans dosemu. La raison est que l'on permet au BIOS VGA de re-programmer l'horloge, ce qui interagit avec Linux.

Cela m'a conduit à implémenter readonly et masking dans dosemu, et je crois qu'ils sont toujours dans la dernière version. Maintenant, j'utilise :

 ports { readonly 0x42 }
et dosemu se lance plus lentement, mais plus sûrement.

---------------------

Tim Shnaider (tims@kcbbs.gen.nz) expliquait aussi le 18/01/94 :

L'une des solutions pour corriger ce problème est d'utiliser le programme GETROM afin de copier le BIOS vidéo vers un fichier, et d'éditer le fichier de configuration dans le répertoire /etc/dosemu. Voici la ligne que j'utilise pour la vidéo :

 video { vga console graphics chipset trident memsize 1024 vbios_file
 /etc/dosemu/vbios }
vbios est le fichier généré par la commande
 getrom > vbios

---------------------

Douglas Gleichman (p86884@tcville.edsg.hac.com) explique (01/09/94) que (avec une ATI Graphics Ultra) :

Pour dosemu 0.52 il faut ajouter cette ligne à dosemu.conf :

 ports { 0x1ce 0x1cf 0x238 0x23b 0x23c 0x23f 0x9ae8 0x9ae9 0x9aee 0x9aef }
Le programme d'auto-test de la carte indiquera une erreur, mais les programmes graphiques fonctionneront correctement.

9.4 Pourquoi les programmes livrés avec ma carte son ne fonctionnent-ils pas sous dosemu?

Hannu Savolainen (hsavolai@cs.Helsinki.FI) expliquait le 21/03/94 :

dosemu et les programmes DOS s'exécutent sous le contrôle d'un système d'exploitation en mode protégé. Cela signifie que la mémoire n'est pas projetée de la manière attendue par le programme. S'il réussit, d'une manière ou d'une autre, à commencer un enregistrement basé sur la DMA de la SB, le son enregistré n'arrive pas jusqu'à l'application. Il ne fait que détruire des informations quelque part dans la mémoire du système.

James B. MacLean (jmaclean@fox.nstn.ns.ca) explique (19/06/94) :

Désolé de vous décevoir, mais à l'heure actuelle dosemu ne supporte pas directement les interceptions d'interruptions ou DMA généralement nécessaires à l'utilisation d'une carte son sous dosemu :-(.

Cela devrait cependant arriver dans un futur proche, cependant :-)

10. Autres matériels

10.1 Comment faire fonctionner mon périphérique xxxxx avec dosemu?

Corey Sweeney (corey@bbs.xnet.com) expliquait le 30/05/94 :

Voici un compte rendu de mes tentatives pour faire fonctionner des périphériques avec dosemu. J'ai réussi à faire fonctionner correctement mon système de courrier vocal, et mon scanner fonctionne à moitié. Voici ce qu'il faut faire :

  1. Regarder dans le manuel si la carte utilise des ports. Si oui, les inclure dans la ligne "ports" du fichier de configuration. Attention au fait que, quelquefois, plusieurs ports sont utilisés mais seul le premier est documenté.
  2. Essayer. Si cela ne marche pas, ou en l'absence de manuel (ou si celui-ci est aussi intéressant que mon manuel AT&T :), lancer dosemu par "dos -D+i 2> /tmp/io.debug". Lancer les logiciels dédiés au périphérique utilisé, et sortir de dosemu. Regarder dans /tmp/io.debug tous les numéros de ports. Essayer de les ajouter au fichier de configuration et essayer à nouveau.
  3. Si cela ne marche toujours pas, le périphérique utilise peut-être des interruptions. Trouver l'interruption en question et installer le paquetage SIG.tgz (Silly Interrupt Generator) disponible sur tsx-11.mit.edu après avoir lu les instructions.

Et c'est tout...

Question : Et si ma carte utilise le DMA?
Réponse : Dommage.

11. Problèmes et solutions

11.1 dosemu s'est planté et je ne peux plus rien taper

Daniel Barlow(jo95004@sable.ox.ac.uk), 08/04/95

Si vous ne pouvez pas vous connecter depuis le réseau ou sur un autre terminal, il y a de fortes chances pour que vous soyez obligé d'appuyer sur le bouton Reset. Si vous réussisez tout de même à obtenir un shell utilisable, lancez "kbd_mode -a" pour sortir le clavier du mode direct, et/ou "stty sane" sur la console pour voir ce que vous tapez.

Le plus simple est de se faire un script pour lancer dosemu, qui lance automatiquement "kbd_mode -a" juste après dosemu. Quand dosemu se plante, le script récupère la main et exécute la commande "kbd_mode -a".

11.2 J'ai mis de l'EMS dans dosemu.conf, mais cela ne fait rien.

Rob Janssen (rob@pe1chl.ampr.org) (11/07/94) :

N'oubliez pasde charger ems.sys depuis le config.sys.

11.3 Comment me débarasser de tous ces messages "disk change"?

(11/08/94)

Installez klogd.

 sunsite.unc.edu:/pub/Linux/system/Daemons/sysklogd1.2.tgz

11.4 Pourquoi dosemu refuse-t-il de se lancer une deuxième fois après être revenu en mode console?

Aldy Hernandez (aldy@sauron.cc.andrews.edu) (7/8/94) :

Vous devriez désactiver le cache de votre carte vidéo et/ou de votre BIOS.

11.5 Pourquoi dosemu fonctionne-t-il dans un xterm mais pas sur la console?

JyiJiin Luo (jjluo@casbah.acns.nwu.edu) expliquait le 19/04/94 :

J'ai eu exactement le même problème. J'ai découvert que tout le cache de la mémoire vidéo devait être invalidé. Maintenant, dosemu fonctionne parfaitement.

11.6 Comment accélérer dosemu?

Dans certains cas, il peut être utile de jouer avec le paramètre HogThreshold dans dosemu.conf.

Daniel Barlow(jo95004@sable.ox.ac.uk), 08/04/95

HogThreshold devrait être positionné environ à la moitié du nombre de BogoMips donné au démarrage du sytème.

11.7 Mon lecteur de CD-ROM à quelquefois des problèmes pour accéder à certains fichiers sous dosemu.

Vinod G Kulkarni (vinod@cse.iitb.ernet.in) expliquait le 07/04/94 :

Quand un CDROM est monté depuis Linux et utilisé depuis dosemu (lecteur redirigé), il peut y avoir quelques problèmes. Le pilote de CDROM (iso9660) du noyau tente de déterminer le type de fichier (binaire ou texte). S'il ne réussit pas, il essaye de déterminer ce type en utilisant une méthode heuristique. Cette méthode échoue dans certains cas, généralement quand un fichier texte est traité comme un fichier binaire (je ne sais pas si c'est un bogue ou une fonctionnalité).

Quoi qu'il en soit, il en résulte que la copie d'une tel fichier depuis le CDROM (depuis Linux lui-même, et pas nécessairement depuis dosemu) génère un fichier cible généralement plus gros que le fichier source. (Des espaces sont ajoutés avant ^J,^M.) C'est pourquoi un programme tournant sous dosemu produit des messages d'erreurs ou se plante, ce qui peut être pris, à tort ("t"), pour un problème de dosemu.

Rob Janssen (pe1chl@rabo.nl) (10/08/94) :

La solution à ce problème est de désactiver la conversion. Utiliser l'option "-o conv=binary" à la commande mount pour le CDROM, ou la spécifier dans /etc/fstab :

/dev/cdrom /cdrom iso9660 conv=binary,ro
Aucune modification du noyau n'est nécessaire.

11.8 Comment obtenir des informations de déboguage?

Daniel Barlow(jo95004@sable.ox.ac.uk), 08/04/95

En ce qui concerne dosemu0.60, les informations de déboguage sont stockés dans un fichier précisé en argument sur la ligne de commande. Utiliser "dos -D+a -o /tmp/debug" pour stocker tous les informations de déboguage dans /tmp/debug. Il ne devrait plus y avoir besoin de rediriger stderr.

11.9 Pourquoi les caractères que j'entre au clavier sont-ils affichés ddeeuuxx fois?

Nick Holloway (alfie@dcs.warwick.ac.uk) expliquait le 22/02/94 :

Après avoir lancé dos et après avoir changé quelques paramètres avec stty, j'avais des caractères en double. Je peux maintenant en expliquer la raison !

Cela arrive uniquement lorsque dos est lancé sur la console avec istrip positionné. Je pense que l'explication est que les codes clavier bruts sont modifiés par istrip, de telle manière que les événement "relâchement d'une touche" sont vus comme des événements "appui sur une touche".

Donc, il faut que istrip ne soit pas positionné pour utiliser les codes claviers sur une console (ce ne serait pas une bonne idée pour les lignes tty).

12. Si vous voulez participer au projet dosemu

12.1 Qui est le coordinateur de dosemu?

(3/18/94)

dosemu a été conçu d'après le travail de Matthias Lautner et Robert Sanders. James B. MacLean (jmaclean@fox.nstn.ns.ca) est le coordinateur pour les prochaines versions de dosemu.

12.2 Historique de dosemu

Version Date Personne
0.1 3 Septembre 1992 Matthias Lautner
0.2 13 Septembre 1992 Matthias Lautner
0.3 ??? Matthias Lautner
0.4 26 Novembre 1992 Matthias Lautner
0.47 27 Janvier 1993 Robert Sanders
0.47.7 5 Février 1993 Robert Sanders
0.48 16 Février 1993 Robert Sanders
0.48pl1 18 Février 1993 Robert Sanders
0.49 20 Mai 1993 Robert Sanders
0.49pl2 18 Novembre 1993 James MacLean
0.49pl3 30 Novembre 1993 James MacLean
0.49pl3.3 3 Décembre 1993 James MacLean
0.50 4 Mars 1994 James MacLean
0.50pl1 18 Mars 1994 James MacLean
0.52 16 Juin 1994 James MacLean
0.60 9 Avril 1995 James MacLean

12.3 J'aimerais participer. Qui dois-je contacter?

Le projet dosemu est un travail d'équipe. Si vous souhaitez y participer, lisez le DPR (dosemu Project Registry). Il est disponible par ftp dans dspsun.eas.asu.edu:/pub/dosemu.