Guide
Comment fonctionnent les deux moitiés, et ce que chacune demande : une VM sur votre matériel, ou Linux sur le téléphone lui-même.
wisq fait deux choses distinctes, et savoir laquelle vous voulez décide de tout le reste. Atteindre une machine virtuelle qui tourne sur un Mac, un PC ou un NAS donne un bureau complet à la vitesse de cette machine. Démarrer Linux sur le téléphone lui-même donne un shell sans le moindre réseau. Ni l'un ni l'autre n'exige de jailbreak.
Distant : une VM sur votre matériel
wisq parle deux protocoles de console. RFB 3.8 — VNC — atteint tout ce qui expose une console VNC : QEMU, libvirt, VirtualBox, Proxmox, un Raspberry Pi sous x11vnc, un Mac qui partage son écran. SPICE atteint ce que les hôtes libvirt publient plutôt d'habitude, et transporte davantage : le son dans les deux sens, le presse-papiers, et ses propres codecs d'image.
qemu-system-x86_64 -m 2048 -vnc :1 -hda disk.qcow2
# ou exposer un affichage qui existe déjà
x11vnc -display :0 -rfbport 5901- Dans wisq, touchez + et nommez la machine.
- Saisissez l'hôte et le port. Un affichage VNC :1 signifie le port 5901 — le port vaut 5900 plus le numéro d'affichage.
- Saisissez le mot de passe si le serveur en demande un ; il est rangé dans le trousseau de l'iPhone, jamais dans la liste des machines.
- Touchez la machine pour vous connecter.
L'agent : allumer une VM avant de s'y connecter
Sans agent, wisq fonctionne — il faut simplement que la VM soit déjà démarrée. L'agent est ce qui transforme « un client VNC de plus » en « mes machines, depuis mon téléphone » : toucher une VM éteinte la démarre, attend sa console et s'y connecte sur le port qu'elle a obtenu.
Avec --service, il installe un job launchd sur macOS ou une unité systemd utilisateur sur Linux, et survit donc à un redémarrage. Avec --demo, il sert deux VM factices aux transitions d'état réelles : de quoi vérifier le côté téléphone avant de le pointer vers un hyperviseur.
Au premier lancement, le démon imprime un lien d'appairage par adresse joignable, et un QR code si qrencode est installé. Ouvrez-en un sur l'iPhone — scanné ou collé — et wisq arrive sur l'écran d'import, adresse et jeton déjà remplis.
wisq-agent en écoute sur le port 7442 (virsh)
jeton : k3f9x2m8q1w7e4r6t5y0u8i2o4p6a1s3
appairage :
wisq://agent?host=nas&port=7442&token=…&name=nasLe jeton est généré une fois et conservé dans ~/.wisq-agent/token, lisible par son seul propriétaire. Révoquer un accès, c'est supprimer ce fichier et relancer le démon.
Local : Linux sur le téléphone lui-même
La machine locale est un ordinateur RISC-V interprété — un hart rv32ima, 64 Mo de RAM, un UART 8250, un minuteur CLINT. Elle amène un vrai noyau Linux jusqu'à l'invite de connexion en une fraction de seconde, sans réseau et sans hôte.
- Procurez-vous une image de noyau rv32ima nommu. Le projet mini-rv32ima en propose des prêtes à l'emploi.
- Placez-la où l'app Fichiers peut la lire — iCloud Drive, ou Sur mon iPhone.
- Dans wisq, ouvrez l'écran de machine locale et importez l'image.
- Touchez démarrer. La console apparaît au fil de ce que le noyau écrit sur son UART.
L'horloge virtuelle avance avec les instructions exécutées et non avec le temps réel : la même image démarre donc de la même façon sur chaque appareil — ce qui est aussi ce qui rend ce démarrage testable en intégration continue.
Quand quelque chose ne marche pas
- L'écran reste noir après connexion
- Le serveur a accepté la connexion mais n'envoie pas de mise à jour. Vérifiez que le serveur VNC est attaché à un affichage qui existe — un QEMU sans -vga se connecte et ne montre rien.
- Les couleurs sont fausses
- Signalez-le. wisq négocie un format de pixels pour le rendu au lieu d'accepter celui du serveur : un décalage est un défaut de notre côté, pas un réglage du vôtre.
- L'agent dit qu'un domaine est introuvable
- Le démon interroge libvirt via virsh : il voit exactement ce que voit `virsh list --all`, et sous l'utilisateur qui le fait tourner. Une VM définie pour root est invisible à un démon lancé sous votre compte.
- Le lien d'appairage ne fait rien
- Le lien n'ouvre wisq que si l'application est installée. Sur un téléphone neuf : installez d'abord, scannez ensuite.
- Le noyau local démarre puis cesse d'écrire
- C'est généralement l'invite de connexion, qui se termine sans saut de ligne. Tapez dedans — la console fonctionne dans les deux sens.