web-dev-qa-db-fra.com

Déséquilibre des fréquences QEMU sur Kubuntu

J'ai le message suivant sur mon Kubuntu 17.10 - J'ai cherché le message sur Google, mais malheureusement, les hits sont bien trop techniques pour que je puisse trouver une solution:

Emulator: qemu-system-i386: warning: TSC frequency mismatch between VM
(2394456 kHz) and Host (2394457 kHz), and TSC scaling unavailable

Avec le symptôme suivant: enter image description here

Au début, tout a bien fonctionné à cet égard, alors je ne sais pas ce qui a causé le problème ni comment le résoudre.

5
itarill

J'ai la solution via une solution de contournement!

tl; dr version : L'option -use-system-libs avec l'émulateur est une solution temporaire.

version plus longue :

La recherche sur Google du décalage de fréquence TSC ne donne aucune idée de ce qui pourrait causer le problème. Désactiver l'accélération matérielle était une solution possible, mais le résultat est une émulation lente. Je lui ai donné un peu de repos, mais j'ai alors pensé qu'il devrait s'agir d'un problème lié au noyau, car c'était KVM qui semblait être à l'origine du problème. J'ai essayé de désactiver le pilote de microcode intel (pas d'aide) et une mise à jour du noyau (pas d'aide), mais après cette dernière, au moins, j'ai reçu un peu moins de messages d'erreur cryptiques, comme:

21:31   Emulator: libGL error: unable to load driver: i965_dri.so
21:31   Emulator: libGL error: driver pointer missing
21:31   Emulator: libGL error: failed to load driver: i965
21:31   Emulator: libGL error: unable to load driver: i965_dri.so
21:31   Emulator: libGL error: driver pointer missing
21:31   Emulator: libGL error: failed to load driver: i965
21:31   Emulator: libGL error: unable to load driver: swrast_dri.so
21:31   Emulator: libGL error: failed to load driver: swrast
21:31   Emulator: X Error of failed request:  BadValue (integer parameter out of range for operation)
21:31   Emulator: Major opcode of failed request:  155 (GLX)
21:31   Emulator: Minor opcode of failed request:  24 (X_GLXCreateNewContext)
21:31   Emulator: Value in failed request:  0x0
21:31   Emulator: Serial number of failed request:  64
21:31   Emulator: Current serial number in output stream:  65
21:31   Emulator: Process finished with exit code 1

Donc, cela doit être un problème de pilote! Googler le premier message d'erreur m'a donné ce hit , en utilisant -use-system-libs avec l'émulateur. Ça marche maintenant! Mais comment le rendre permanent? Cette page m'a également dirigé dans la bonne direction: utilisez un script pour lancer l'émulateur. Maintenant, tout fonctionne comme un charme.

Donc, solution pas à pas:

  1. dans le terminal: /home/$user/Android/Sdk/emulator/emulator -list-avds pour trouver votre AVD-s - les noms peuvent différer de ceux apparaissant dans Android Studio. Trouvez le nom du DAV qui vous pose problème. Notez que le chemin de l'émulateur peut également différer, en fonction du chemin que vous avez spécifié lors de l'installation d'AStudio.
  2. vérifiez si les solutions suivantes vous conviennent comme solution de contournement manuelle: /home/$user/Android/Sdk/emulator/emulator -avd your_emulator_name_here -use-system-libs
  3. si (2) fonctionne pour vous, renommez le fichier émulateur d'origine et lancez-le à partir d'un script Shell pour le lancement permanent de l'indicateur d'option (votre chemin et votre éditeur de texte peuvent être différents):

    $ cd /home/$user/Android/Sdk/emulator/ $ mv emulator emulator.0 $ touch emulator $ chmod +x emulator $ kate emulator

insérez le texte suivant et enregistrez:

#!/bin/sh
set -ex
$0.0 $@ -use-system-libs

Maintenant, chaque fois que l’émulateur est appelé, il le fait avec les bibliothèques système à travers le script Shell appelé emulator , et il ne devrait plus y avoir d’erreurs.

7
itarill

J'ai eu le même problème en raison de certaines mises à jour, j'ai ouvert mon Gestionnaire de périphériques virtuel Android depuis Android Studio (Outils-> Gestionnaire AVD), puis j'ai fait correspondre l'émulateur où le problème s'est produit. J'ai cliqué sur la colonne icône de la liste déroulante à partir de Actions et sélectionné l'option Effacer les données.

3

Allez à Gestionnaire AVD, cliquez sur le DAV qui est à l'origine de ce problème, puis sélectionnez Effacer les données dans les options.

2
Derian Tungka