2022/11/06

Pourquoi choisir seulement le terminal avec l'IBM 600X?

 Je n'ai essayé que l'interface graphique MATE sur Debian 9.13.0 i386. Elle est très lente. Le processeur est presque toujours à 100% selon le terminal et la commande top. Quand j'ai essayé de basculer en mode terminal avec ctrl + alt + F2, l'écran a affiché des lignes verticales vertes et mauves. J'ai essayé F5 à F8 rien à faire.

Le bureau lui-même est lent, mais il est assez rapide pour afficher le terminal. Ouvrir Firefox ESR ne sert à rien parce qu'aucune page n'ouvre. Quand on essaie d'en ouvrir une, le processeur est utilisé à 95% par Firefox et rien ne se passe.

Les couleurs semblent aussi un peu étranges. Les choses sont beaucoup plus rouges ou roses et vertes qu'elles ne devraient l'être.


La RAM semble être utilisée à environ 520 Mo sur 576 Mo.

Pour désinstaller le bureau, on peut ouvrir le terminal et exécuter apt-get purge $(tasksel --task-packages desktop) et ensuite apt-get autoremove.

Après le redémarrage, on se retrouve avec une expérience terminal beaucoup plus fluide.

Liens externes qui m'ont aidé (en anglais):

1. unix.stackexchange.com - Can I Remove GUI From Debian?

2022/10/30

Envoyer et recevoir des données sur le réseau en Python

En quelques minutes avec Python, Debian 11.5 et nmap, on peut écrire un programme qui permet d'envoyer des données entre deux ordinateurs.

Quelques limites:

1. Il faut changer la constante RESEAU pour correspondre à so réseau local. La commande ip a est utile pour déterminer son adresse IP et son masque réseau.

2. Il faut que les deux machines soient sur le même réseau local pour se parler.

3. Il faut que les machines soient visibles par nmap. Normalement, que le ping fonctionne.

# Il faut installer nmap et pip avec apt-get install nmap python3-pip.
# Ensuite, il faut pip install python-nmap.
# Mieux vaut redémarrer le terminal après avoir installé les applications précédentes.
import nmap
import socket
RESEAU = "172.22.140.0/20"
def trouver_ordinateur() :
    print(
        "Découverte des ordinateurs sur le réseau. "
        "Ceci peut prendre quelques secondes..."
    )
    nm = nmap.PortScanner()
    nm.scan(hosts=RESEAU, arguments="-n -sP -PE -PA21,23,80,3389")
    ordre = 0
    ordinateurs = nm.all_hosts()
    for ordinateur in ordinateurs:
        print(f"{ordre} - {ordinateur}")
        ordre += 1
    choix = int(input("Entrer un  numéro: "))
    ordinateur = ordinateurs[choix]
    print(f"Ordinateur {ordinateur} choisi.")
    return ordinateur
def connecter(mode):
    port = int(input("Entrer port (2000 à 65535): "))
    socket_1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    canal_1 = (trouver_ordinateur(), port)
    canal_2 = (trouver_ordinateur(), port + 1)
    socket_2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    if mode == 1:
        socket_1.bind(canal_1)
        # J'ignore l'addresse avec _.
        donnees, _ = socket_1.recvfrom(4096)
        print(f"< {donnees.decode('utf-8')}")
    else:
        echange = socket_1
        socket_1 = socket_2 
        socket_2 = echange
        echange = canal_1
        canal_1 = canal_2
        canal_2 = echange
        socket_1.bind(canal_1)
    print("Ctrl+C pour arrêter le serveur...")
    while True:
        a_envoyer = input("> ")
        if a_envoyer == "disparaître":
            break
        socket_2.sendto(a_envoyer.encode('utf-8'), canal_2)
        # J'ignore l'addresse avec _.
        donnees, _ = socket_1.recvfrom(4096)
        print(f"< {donnees.decode('utf-8')}")
    socket_1.close()
    socket_2.close()
if __name__ == "__main__":
    mode = int(input(
        "Choisir le mode (1. écouter avant de la parler, "
        "2. parler avant d'écouter): "
    ))
    connecter(mode)

Pourquoi avoir deux sockets? Pour pouvoir communiquer sur le même ordinateur en ouvrant deux terminaux et où le premier terminal fonctionnera en mode 1 et le second en mode 2.

J'ai fait quelques changements au code d'origine en écrivant ce message. Si ça plante, c'est potentiellement à cause de ça. Ça devrait être assez simple à corriger. Le code est court.

2022/10/23

IBM 560Z, SSD M.2 NGFF et FreeDos 1.3

Je suis tombé sur un adapteur M2 NGFF SATAIII vers IDE: https://www.cafr.ebay.ca/itm/123459365354. Ce qui vient dans la boîte:

J'ai trouvé un SSD M.2 2280 SATA III de 500 Go et je l'ai connecté.

J'ai pris mon vieil adapteur IDE à USB et j'ai utilisé Rufus pour installer FreeDos dessus. Il ne venait pas avec la version plus récente et si je mettais les fichiers de FreeDos 1.3, en démarrant le 560Z, FreeDos pensait qu'il démarrait d'un CD dynamique. Je voulais avoir une vraie installation sur disque dur, donc j'ai continué à chercher.

J'ai utilisé Oracle VirtualBox en le configurant pour DOS. J'ai alloué 2 Go pour le disque dur et j'ai choisi le format VHD. J'ai pris le LiveCD FreeDos 1.3 et je l'ai inséré dans la machine virtuelle avant de la partir. L'installation s'est déroulée normalement. J'ai éteint la machine et j'ai utilisé 7-zip pour décompresser le fichier VHD. J'ai pu voir l'arborescence de FreeDos une fois installé sur un disque dur. Avec mon adatpeur IDE à USB, j'ai effacé tous les fichiers que Rufus avait copié et j'y ai copié ceux du VHD.

Pour installer le SSD dans l'IBM 560Z, il faut enlever le socle à disque dur du 560Z. Les soudures du connecteur IDE dépassent légèrement, ce qui fait plier le socle à disque dur et rend impossible l'insertion du disque dans le portable. Sans le socle, il faut attacher une corde pour retirer le disque dur du 560Z ultérieurement. Pour insérer le disque, il faut y aller tranquillement et pousser de gauche a droite vers l'intérieur. Les connecteurs mâle et femelle IDE vont s'aligner naturellement et une fois en place, le SSD tient bien fermement.

Quelques points importants:
  • La résolution maximale est de 640x480.
  • On peut changer le mode 80,50 et ensuite utiliser Fn + F8 pour étirer la console sur toute la surface de l'écran du portable.
  • Si on possède les exécutables pour DOS d'IBM pour le 560Z, ils fonctionnent sous FreeDos 1.3. Le seul problème est de les extraire de leurs installateurs d'origines si on n'a pas de disquette. C'était mon cas. J'ai utilisé VirtualBox et la fonctionnalité de diquettes virtuelles et de CD virtuels. Après le démarrage de la machine virtuelle, avec le CD virtuel, on pointe vers un répertoire avec les exécutables d'IBM. On insère une disquette virtuelle vierge. On va dans E: et on exécute le programme. Le programme copiera des fichiers et d'autres .exe vers A:. Ensuite, on retourne dans C: et on copie A: dans C:\copie. On peut ensuite décompresser de nouveau le VHD pour récupérer les exécutables qu'on copie ensuite avec l'adapteur IDE à USB sur le SSD à l'endroit de son choix.
    • Pour créer un dossier sous FreeDos: mkdir nom_fichier.
    • Pour copier sous FreeDos: copy A:\ C:\copie\.
Liens externes: