Serveur minecraft

Serveur dédié Minecraft Bedrock officiel sur Raspberry Pi * – Un bon serveur Minecraft

Le 1 novembre 2019 - 21 minutes de lecture

Logo Minecraft Bedrock Edition
Logo Minecraft Bedrock Edition

L'une des fonctionnalités les plus demandées dans mon guide du serveur Raspberry Pi Minecraft est la prise en charge de l'édition Bedrock de Minecraft. Il s’agit de la version qui permet à Minecraft d’utiliser iOS / Android / Xbox / Nintendo Switch ainsi que l’édition gratuite Windows 10.

Il y a cependant un gros problème. Le serveur dédié officiel Minecraft Bedrock est uniquement compilé pour Windows et Ubuntu X86_64. Sans le support ARM, il semble impossible de faire fonctionner le serveur dédié Bedrock sur un Raspberry Pi. Je ne pouvais pas trouver une instance documentée de quelqu'un le faire n'importe où.

Alors, naturellement, dans ce guide, nous allons faire l'impossible. Mais tout de suite, permettez-moi de souligner qu'il y a un astérisque dans le titre de mon article. Pourquoi demandes-tu? En effet, contrairement à mes autres guides, celui-ci ne vous fournira pas un serveur performant. En effet, nous allons émuler un processeur x86_64 sur ARM. C'est lent. Très lent.

À quoi ça sert?

Donc, si le serveur ne fonctionne pas bien et qu’il est trop lent, pourquoi ai-je pris la peine d’écrire cet article?

Fondamentalement, «trop lent» n’est qu’uniquement lié au matériel et aux logiciels actuels dont nous disposons. Le matériel et les logiciels pour ARM évoluent à un rythme effréné. ARM alimente les smartphones, ce qui signifie qu’il n’y va pas et qu’il continuera d’investir beaucoup d’argent dans la recherche et le développement et que le matériel sera peut-être rapidement suffisamment puissant.

En partageant ce travail, il est également possible que quelqu'un qui lit ceci le connaisse ou découvre des moyens d'accélérer les choses et de développer ce que je présente ici. Si vous faites partie de ces personnes, envoyez-moi un commentaire ou envoyez-moi un email. Je serai ravi de partager votre travail!

Enfin, les techniques que j'utilise ici peuvent être utilisées pour exécuter d'autres binaires x86_64 sur Raspberry Pi. De nombreuses applications fonctionneront très bien, même sur les engins de la génération actuelle.

Matériel

C'est le matériel que j'ai utilisé pour le serveur. Je recommande toujours d'utiliser le stockage à l'état solide pour obtenir les meilleures performances. Pour voir pourquoi consulter la section Repères de stockage Raspberry Pi. Il contient les points de repère soumis par d’autres personnes qui ont exécuté le point de repère afin que vous puissiez voir ce que les autres utilisateurs utilisent et fournir les meilleures performances.

Raspberry Pi 4 Modèle B 2 Go

Serveur dédié Minecraft Bedrock officiel sur Raspberry Pi *

Adaptateur SATA vers USB 2.5 ″ StarTech – et – SSD Kingston A400 SSD 120 Go SATA 3 Disque SSD 2,5 ”

Serveur dédié Minecraft Bedrock officiel sur Raspberry Pi *
Serveur dédié Minecraft Bedrock officiel sur Raspberry Pi *
Adaptateur USB SATA vers 2.5 ″

Ou pour une configuration compacte: Lecteur flash USB à état solide SanDisk Extreme Pro 128 Go USB

Serveur dédié Minecraft Bedrock officiel sur Raspberry Pi *

Distribution Linux

Pour que cela fonctionne, nous devons utiliser une distribution aarch64 / arm64 64 bits. En effet, lorsque nous essayons d'émuler ARM 32 bits, nous obtenons une «erreur de bus» dès que le serveur tente de démarrer. Ceci est probablement dû au manque de prise en charge de QEMU 32 bits dont nous avons besoin pour émuler l’architecture x86_64.

Des distributions qui fonctionneront:

Le serveur étant nativement compilé pour Ubuntu, il est préférable d’utiliser une distribution basée sur Debian. Pour le Raspberry Pi, je recommande Ubuntu Server 18.04.2. Consultez mon article sur la façon d'installer Ubuntu Server sur Raspberry Pi.

Vous pouvez également utiliser l’aperçu «Buster» de Debian qui présente l’avantage d’avoir QEMU 3.1 actuellement disponible dans le référentiel apt, ce qui vous évitera plusieurs étapes ultérieures de l’acquisition d’un binaire statique plus récent de QEMU.

Raspbian ne fonctionnera pas avec cette méthode parce que c'est seulement 32 bits. Vous obtiendrez une erreur de segmentation lorsque vous l'exécuterez sur un système ARM 32 bits au lieu d'un système 64 bits.

Script d'installation automatique

Si vous souhaitez simplement mettre la main sur le serveur opérationnel terminé, mon guide Minecraft Bedrock Dedicated Server prend déjà en charge ARM. Il configurera les dépendances et téléchargera le serveur à votre place. Il prend également en charge les éléments suivants:

  • Configuration du serveur Minecraft Bedrock Edition entièrement opérationnel en quelques minutes
  • Distributions Ubuntu / Debian prises en charge
  • Configure Minecraft en tant que service système avec l'option de démarrage automatique au démarrage
  • Sauvegardes automatiques au redémarrage du serveur
  • Met à jour automatiquement la dernière version au démarrage du serveur
  • Contrôle facile du serveur avec les scripts start.sh, stop.sh et restart.sh
  • Redémarrage quotidien programmé facultatif du serveur à l'aide de cron

Exécutez le script d'installation automatique en collant / en tapant ce qui suit sur la ligne de commande:

wget https://raw.githubusercontent.com/TheRemote/MinecraftBedrockServer/master/SetupMinecraft.sh
chmod + x SetupMinecraft.sh
./SetupMinecraft.sh

Gardez à l'esprit que sur le Raspberry Pi actuel, les choses seront si lentes que votre connexion sera souvent interrompue avant la fin de la connexion. Lorsque vous vous connectez, le décalage ne permet pas une expérience de jeu fluide. Nous en discuterons plus tard dans l’article.

Obtenir le serveur dédié

La dernière version binaire officielle du serveur Minecraft Bedrock est disponible à l’adresse: https://minecraft.net/en-us/download/server/bedrock/. Nous allons télécharger la version du serveur Ubuntu.

mkdir bedrock
cd rock
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.12.0.28.zip
unzip -o bedrock-server-1.12.0.28.zip

Nous avons maintenant le serveur dédié Bedrock décompressé dans un dossier appelé «bedrock». Cependant, si nous essayons de l'exécuter en tapant ./bedrock_server, nous obtenons:

-bash: ./bedrock_server: impossible d'exécuter le fichier binaire: erreur de format d'exécution

En effet, nous sommes sur l’architecture ARM et ce type de fichier est compilé pour x86_64. Sous Linux, nous pouvons obtenir le format de type de fichier de n’importe quel exécutable en utilisant la commande file:

# fichier bedrock_server
bedrock_server: Objet partagé LSB 64 bits ELF, x86-64, version 1 (SYSV), liaison dynamique, interpréteur /lib64/ld-linux-x86-64.so.2, pour GNU / Linux 3.2.0, dépouillé

Maintenant que nous savons quelle architecture cible nous devons exécuter, nous devons obtenir QEMU.

Installation de l'émulateur en mode hôte QEMU

Vous avez peut-être déjà utilisé QEMU par le passé pour créer des machines virtuelles. Mais QEMU a un autre mode de fonctionnement moins connu appelé émulation en mode utilisateur. L'émulation en mode utilisateur est plus rapide qu'une machine virtuelle car elle tire parti du système d'exploitation hôte pour effectuer de nombreuses fonctions plutôt que d'émuler un système d'exploitation complet.

En plus d'être beaucoup plus rapide, cela nous permettra d'exécuter un binaire x86_64 sur la plate-forme ARM sans avoir à installer un système d'exploitation x86_64 complet dans un conteneur QEMU.

Au moment de la rédaction, les fichiers binaires fournis dans Ubuntu Server et Raspbian sont trop anciens et ne disposent pas du support x86_64 dont nous avons besoin. Les binaires disponibles dans apt sont QEMU 2.8 et nous avons besoin de 3.0 ou plus.

Vérifiez quelle est la dernière version de QEMU disponible pour votre distribution en tapant:

sudo apt search qemu-user-static

Sur mon système, cela a donné le résultat suivant:

qemu-user / stable 1: 2.8 + dfsg-6 + deb9u4 armhf
   Binaires d'émulation en mode utilisateur QEMU
qemu-user-static / stable 1: 2.8 + dfsg-6 + deb9u4 armhf
   Fichiers binaires d'émulation en mode utilisateur QEMU (version statique)

Notez que la version est 2.8 et non 3.0 ou supérieure. Si votre version est 3.0 ou supérieure, vous pouvez (et devriez) installer qemu-user-static à partir d'apt.

Les miens ne sont pas, alors nous allons tricher. Mais avant de tricher, je vais expliquer pourquoi nous violons les statuts sacrés de Linux sacré en faisant ce que je vais vous montrer et en expliquant pourquoi, en principe, il ne devrait jamais être utilisé. Si vous utilisez la distribution Debian Buster, vous pouvez ignorer la section suivante car QEMU 3.1 est déjà disponible dans apt pour Debian.

Mauvaise façon d'obtenir la dernière version de QEMU

La bonne chose à faire dans cette situation est de télécharger QEMU à partir des sources et de construire vous-même la version la plus récente. Le problème est que QEMU prend une éternité et un jour pour compiler. Même en essayant simplement de compiler les fichiers binaires en mode utilisateur, je suis revenu sur mon Pi 24 heures plus tard et cela n’était pas encore presque terminé.

Bon alors construire ce binaire dans le Pi est trop lent. Alors, quelle est la bonne chose à faire alors? La bonne chose à faire serait de configurer une machine de développement pour la compilation croisée sur votre système principal plus puissant et de la compiler de cette façon. Le mauvais côté? Sauf si vous avez déjà un système configuré avec une chaîne de compilation croisée, cela nécessitera également beaucoup de recherche et d’efforts pour être mis en place.

Alors, où pourrions-nous obtenir des fichiers binaires précompilés pour notre système? Comme nous utilisons une distribution Linux basée sur Debian, nous sommes en aval de Debian proprement dite. Jetons donc un coup d’œil au référentiel Debian et voyons ce qui est disponible: https://packages.debian.org/buster/qemu-user-static

Eh bien regarde ça. Le prochain référentiel Debian Buster contient QEMU 3.1! Nous pouvons simplement l'attraper à partir de là. Mais attendez… ALERTE ROUGE!

Picard Facepalm "class =" lazyload wp-image-927 "data-srcset =" https://origin.jamesachambers.com/wp-content/uploads/2019/04/PicardFacepalm-300x225.jpg 300w, https: // origine .jamesachambers.com / wp-content / uploads / 2019/04 / PicardFacepalm-768x576.jpg 768w, https://origin.jamesachambers.com/wp-content/uploads/2019/04/PicardFacepalm-1024x768.jpg 1024w, https : //origin.jamesachambers.com/wp-content/uploads/2019/04/PicardFacepalm.jpg 1440w "data-size =" (max-width: 300px) 100vw, 300px
Le capitaine Picard n'aimait pas ça

C'est une très mauvaise pratique. La raison pour laquelle nous pouvons nous en sortir dans ce cas est que qemu-user-static est compilé de manière statique et qu'il n'a qu'une dépendance (binfmt-support). Toutes les distributions Raspberry Pi disponibles n’ont rien qui dépend de l’un de ces paquets. Cela rend qemu-user-static et binfmt-support relativement autonomes. Rien d’autre dans notre système ne dépend d’eux et ils ne font pas partie des chaînes de dépendance.

Avez-vous déjà essayé d'installer un paquet et avez-vous été arrêté par une petite dépendance? Il peut être tentant d’utiliser cette technique dans de telles situations. cependant, Lorsque vous introduisez des paquets étrangers dans votre arborescence, vous allez très probablement casser tout votre système. Si quelque chose dépend de ces paquets, apt ira de travers, car il ne pourra pas résoudre les chaînes de dépendance et vous perdrez la possibilité de mettre à jour ou d’installer de nouveaux paquets. Beaucoup de paquets ont des dizaines de dépendances et un seul faux dans la chaîne va tout casser. Par conséquent, cette technique ne devrait presque jamais être utilisée.

OK, avec tout ce qui est à l’écart, poursuivons. Ces liens changent souvent, vous devrez donc probablement accéder vous-même au référentiel pour trouver les derniers noms de paquetages.

wget http://ftp.us.debian.org/debian/pool/main/q/qemu/qemu-user-static_4.1-1+b3_arm64.deb
wget http://ftp.us.debian.org/debian/pool/main/b/binfmt-support/binfmt-support_2.2.0-2_arm64.deb
sudo dpkg --install binfmt * .deb
sudo dpkg --install qemu-user * .deb  

Vous devriez maintenant avoir QEMU installé. Vous pouvez le vérifier avec les éléments suivants:

# qemu-x86_64-static --version

qemu-x86_64 version 3.1.0 (Debian 1: 3.1 + dfsg-7)
 Copyright (c) 2003-2018 Fabrice Bellard et les développeurs du projet QEMU

Dépendances satisfaisantes

Maintenant que QEMU est installé, si nous essayons de lancer bedrock_server, nous obtenons ce qui suit:

# ./bedrock_server
 /lib64/ld-linux-x86-64.so.2: Aucun fichier ou répertoire de ce type

C'est un progrès. Nous ne rencontrons plus d'erreur indiquant que le système ne peut pas lire le format binaire du fichier. Nous rencontrons maintenant une erreur de dépendance.

Ceci est à prévoir car nous fonctionnons sur un système ARM et aucune dépendance x86_64 n'est installée. L’exécutable du serveur Minecraft est lié dynamiquement comme nous l’avons appris précédemment avec l’outil Infos fichier. Cela signifie que nous devrons fournir des bibliothèques pour que le fichier exécutable fonctionne.

Le moyen le plus simple et le plus rapide de les obtenir consiste à installer Ubuntu x86_64 sur une machine virtuelle utilisant quelque chose comme VirtualBox ou sur une machine de rechange. Si vous souhaitez télécharger ma copie des dépendances et ignorer cette étape, je les ai compressées à l'adresse https://raw.githubusercontent.com/TheRemote/MinecraftBedrockServer/master/depends.zip.

Une solution consisterait à configurer un environnement chroot contenant un environnement x86_64, mais je n’ai eu que des problèmes pour essayer de créer un tel environnement sur ARM. Généralement, le chroot se bloque hors de QEMU et lorsque vous recherchez les codes de blocage, vous rencontrez des messages de bogues dans lesquels les auteurs de QEMU déclarent que ARM to x86_64 n’est pas utilisé souvent et que certaines choses ne sont pas implémentées. C'est également pourquoi nous devons utiliser QEMU version 3.0 ou ultérieure pour obtenir le support nécessaire à l'exécution du serveur car le support a été amélioré dans cette version.

Une fois que vous avez configuré un environnement x86_64, téléchargez le serveur comme nous l'avons fait précédemment et nous utiliserons l'outil ldd pour rechercher les dépendances. Sur votre type d'installation x86_64, ldd bedrock_server:

# ldd bedrock_server
         linux-vdso.so.1 (0x00007fff04bb0000)
         libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fb77c01b000)
         libCrypto.so => ​​/home/james/minecraftbe/./libCrypto.so (0x00007fb77bdf0000)
         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb77bbd1000)
         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb77b9cd000)
         libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fb77b763000)
         libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fb77b2eb000)
         libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb77b0ce000)
         libstdc ++. so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb77ad45000)
         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb77a9a7000)
         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb77a78f000)
         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb77a39e000)
         /lib64/ld-linux-x86-64.so.2 (0x00007fb780d6b000)
         libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fb77a179000)
         libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fb779f5c000)
         librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fb779d40000)
         libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007fb779b32000)
         libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fb7798e7000)
         libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fb779695000)
         liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fb779487000)
         libunistring.so.2 => /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fb779109000)
         libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fb778da4000)
         libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007fb778b70000)
         libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007fb77893a000)
         libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fb7786b9000)
         libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fb7783e3000)
         libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fb7781b1000)
         libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fb777fad000)
         libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fb777da2000)
         libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fb777b87000)
         libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fb77796c000)
         libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fb77772b000)
         libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fb7773fc000)
         libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fb7771e9000)
         libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fb776fe5000)
         libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fb776ddc000)
         libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fb776b4f000)
         libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fb7768ad000)
         libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fb776677000)
         libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007fb776461000)
         libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fb776259000)
         libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007fb776030000)
         libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fb775e21000)
         libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fb775bd7000)
         libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fb7758ce000)
         libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fb775696000)

Beurk. Cette chose a une tonne de dépendances! Ceci est dû au fait qu'il s'agit d'un exécutable lié de manière dynamique, de sorte qu'aucun code source ne soit compilé dans le binaire pour aucune de ces dépendances.

Heureusement, j'ai une doublure bash qui va rassembler une copie de toutes ces dépendances et la mettre dans un dossier:

mkdir dépend
ldd bedrock_server | grep "=> /" | awk 'print $ 3' | xargs -I '' cp -v '' dépend

Maintenant, zip ou tar ce dossier et déplacez-le sur votre Raspberry Pi. Nous allons placer les dépendances directement à la racine du dossier de substrat que nous avons créé précédemment. Votre structure de fichier sur le Pi devrait maintenant ressembler à ceci:

  bedrock_server libgnutls.so.30 libresolv.so.2
bedrock-server-1.10.0.7.zip libgpg-error.so.0 librtmp.so.1
bedrock_server_how_to.html libgssapi_krb5.so.2 libsasl2.so.2
behavior_packs libhogweed.so.4 libssh2.so.1
définitions libidn2.so.0 libssl.so.1.1
depend.zip libk5crypto.so.3 libstdc ++. so.6
ld-2.28.so libkeyutils.so.1 libtasn1.so.6
libcom_err.so.2 libkrb5.so.3 libunistring.so.2
libCrypto.so libkrb5support.so.0 libz.so.1
libcrypto.so.1.1 liblber-2.4.so.2 permissions.json
libc.so.6 libldap_r-2.4.so.2 README.txt
libcurl.so.4 libm.so.6 release-notes.txt
libdl.so.2 libnettle.so.6 resource_packs
libffi.so.6 libnghttp2.so.14 serveur.properties
libgcc_s.so.1 libp11-kit.so.0 structures
libgcrypt.so.20 libpsl.so.5 liste blanche.json
libgmp.so.10 libpthread.so.0

Maintenant pour la dernière étape, il reste une dépendance à résoudre qui ne sera pas incluse dans la commande que nous avons exécutée. Cette dépendance est la dépendance de l'éditeur de liens ld-2.28.so et le truc que nous allons utiliser dans la section suivante ne fonctionnera pas. Utilisez ces commandes:

sudo mkdir / lib64
sudo ln -s /home/pi/bedrock/ld-2.28.so /lib64/ld-linux-x86-64.so.2

Cela installera le binaire de l'éditeur de liens à l'endroit où nous devons l'exécuter en créant un lien symbolique. Les autres dépendances pourront se trouver dans le dossier que le serveur exécute.

Lancer le serveur

Nous avons maintenant toutes nos dépendances en place et sommes prêts à exécuter le serveur. Je ne peux pas attendre d’émettre un ./bedrock_server! Essayons:

# ./bedrock_server

/lib64/ld-linux-x86-64.so.2: Aucun fichier ou répertoire de ce type

Pouah. C’est chercher les dépendances au mauvais endroit! Alors, comment pouvons-nous résoudre ce problème? Le truc est en fait sur la page de téléchargement du serveur dédié du serveur Minecraft Bedrock. Nous devons changer le chemin de chargement de la bibliothèque en notre répertoire local. La manière correcte d’exécuter le serveur sera donc la suivante:

LD_LIBRARY_PATH =. ./bedrock_server

Maintenant que nous courons le serveur de cette façon, nous voyons la sortie suivante:

  PAS DE FICHIER LOG! - configuration de la journalisation du serveur…
[2019-04-27 00:47:16 INFO] Serveur de démarrage
[2019-04-27 00:47:16 INFO] Version 1.11.1.2
[2019-04-27 00:47:16 INFO] Nom du niveau: niveau du substratum rocheux
[2019-04-27 00:47:16 INFO] Mode de jeu: 0 Survival
[2019-04-27 00:47:16 INFO] Difficulté: 1 FACILE
Type d'hôte inconnu QEMU_IFLA: 50
Type d'hôte inconnu QEMU_IFLA: 51
Type d'hôte inconnu QEMU_IFLA: 50
Type d'hôte inconnu QEMU_IFLA: 51
Type d'hôte inconnu QEMU_IFLA: 50
Type d'hôte inconnu QEMU_IFLA: 51
Type d'hôte inconnu QEMU_IFLA: 50
Type d'hôte inconnu QEMU_IFLA: 51
Type d'hôte inconnu QEMU_IFLA: 50
Type d'hôte inconnu QEMU_IFLA: 51
Type d'hôte inconnu QEMU_IFLA: 50
Type d'hôte inconnu QEMU_IFLA: 51
Setsockopt level non supporté = 41 optname = 20
Setsockopt level non supporté = 41 optname = 20
Setsockopt level non supporté = 41 optname = 34
[2019-04-27 00:51:14 INFO] IPv4 pris en charge, port: 19132
[2019-04-27 00:51:15 INFO] IPv6 pris en charge, port: 19133
[2019-04-27 00:53:48 INFO] Le serveur a démarré.

Comme nous pouvons le constater, QEMU se plaint de plusieurs types QEMU_IFLA manquants. Ces messages concernent certaines fonctionnalités non encore implémentées dans QEMU. Celles-ci peuvent être ignorées en toute sécurité pour le moment, mais j'espère que si QEMU les implémentera plus tard, cela augmentera la vitesse du serveur.

Une autre chose à noter est l'horodatage. Le chargement du serveur prend du temps lorsqu’on utilise l’émulation. Le temps total nécessaire pour atteindre la ligne «Le serveur a démarré» était d'environ 5 minutes. Je t'ai dit que c'était lent!

Vous pouvez maintenant vous connecter au serveur, mais attendez-vous à ce qu'il expire un grand nombre de vos tentatives de connexion. Lorsque vous entrez dans les monstres, ils seront très lents et glitch. Les blocs cassants auront un retard important.

Conclusion

Avec les outils et le matériel dont nous disposons aujourd'hui, nous sommes en mesure d'exécuter le serveur dédié Minecraft Bedrock sur Pi, mais il est trop lent.

Des améliorations matérielles et logicielles, telles que davantage de mises à jour et une meilleure implémentation de l'émulation x86_64 sur la plate-forme ARM, vont probablement changer cela dans un proche avenir.

Un autre changeur de jeu serait si Mojang choisit de distribuer un binaire ARM natif que nous pouvons exécuter sur le Pi. Ce serait * beaucoup * plus rapide et constituerait le scénario idéal. Envoyez-leur un email ou laissez un commentaire sur leur formulaire de commentaires si vous voulez voir ça!

Je mettrai à jour cet article à mesure que les choses évolueront. Si vous expérimentez avec cela et trouvez un moyen d’accélérer les choses, laissez un commentaire ici pour que je puisse vous créditer et publier vos résultats!

Si votre objectif avec ce projet était d’avoir un petit serveur Minecraft autonome qui n’utilise pas beaucoup d’énergie, j’ai quelques recommandations alternatives à utiliser entre-temps pour obtenir un serveur Bedrock performant.

Alternatives viables

Option SBC pas cher

La chose la plus proche d'un Raspberry Pi qui supporte nativement x86_64 est la clé de calcul Intel. C’est un Intel X86_64 avec 1 Go de RAM pour environ le même prix qu’un Raspberry Pi:

Intel Compute Stick STCK1A8LFC

Cette image a un attribut alt vide
Intel Compute Stick

La clé de calcul Intel est un peu plus grosse qu'un lecteur flash USB et est alimentée par Micro USB.

Si vous choisissez cette option, consultez mon guide ici pour savoir comment installer Ubuntu Server 18.04.2 sur: https://jamesachambers.com/2019/02/install-ubuntu-server-18-04-on-intel-compute -stick-guide /

Option milieu de gamme

Il s’agit d’un mini PC bon marché doté de 2 Go de RAM et préchargé avec Windows 10. C’est toujours très petit mais pas aussi petit qu’un Raspberry Pi ou un Intel Compute Stick. Vous pouvez également passer à la version de 4 Go de RAM pour un peu plus.

Mini PC sans ventilateur ACEPC T8

Serveur dédié Minecraft Bedrock officiel sur Raspberry Pi *
ACEPC Mini PC

Option d'extrémité supérieure

Il s’agit d’un PC complet sous forme de micro ATX qui utilise beaucoup moins d’énergie et prend beaucoup moins de place qu'un PC classique ATX ou Mini ATX.

Avertissement: C’est le prix le plus élevé absolu que vous voulez utiliser avant d’acquérir un PC usagé vendu par eBay ou par des entreprises locales. Vous devriez être en mesure de trouver un PC usagé doté de 4 à 8 Go de RAM pour un coût inférieur à celui d'un PC neuf.

L’avantage de cette option est que vous êtes couvert par la garantie du fabricant et que vous bénéficiez de l’assistance si nécessaire, mais au-dessus de ce prix, il est plus facile d’acheter un autre usagé si vous commencez à avoir des problèmes!

Dell Optiplex Micro 8 Go de RAM

Serveur dédié Minecraft Bedrock officiel sur Raspberry Pi *

J'ai testé le fonctionnement du serveur Bedrock sur quelques-uns de ceux que j'ai à la maison et les performances ont été excellentes. La consommation d'énergie d'un ordinateur entièrement épanoui est faible, car l'adaptateur secteur fourni ne peut tirer que 65 watts.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.