Cet article donne une vue d'ensemble du processus permettant à B2G OS (la version TV — sur laquelle Firefox OS pour TV est basée) d'être porté sur le Nexus Player (versions faisant touner Lollipop.)
Important : Le public visé par ces instructions est essentiellement les développeurs expérimentés qui sont déjà familiarisés avec la compilation de Firefox OS ou d'AOSP.
Note : Nous ne pouvons garantir la fiabilité des appareils portés. Cependant, les développeurs intéressés par le processus de portage et disposés à contribuer au programme sont encouragés à hacker leurs propres appareils. Les questions et les retours constructifs sont toujours les bienvenus : adressez-nous vos courriels à [email protected].
Note : Cet article, estimant que votre Nexus Player est déverrouillé, ne vous apprendra pas comment le rooter et/ou déverrouiller.
Préparer l'environnement de compilation
Actuellement, la construction de B2G OS pour Nexus Player nécessite un PC sous Ubuntu 14.04 LTS x64 ou compatible.
Vous devez commencer par lancer les commandes suivantes :
sudo dpkg --add-architecture i386 sudo dpkg --add-architecture amd64 sudo apt-get update sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git lib32ncurses5-dev lib32z1-dev libgconf2-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip lzop libxml2-utils openjdk-7-jdk nodejs unzip python
Configurer l'USB
Par défaut, sur les systèmes Linux, un utilisateur normal ne peut pas accéder directement aux périphériques USB. Vous devez configurer des règles udev.
Créez un fichier /etc/udev/rules.d/51-android.rules
contenant la commande suivante, puis enregistrez-le :
wget -S -O - https://raw.githubusercontent.com/cm-b2g/B2G/1230463/tools/51-android.rules | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules
Les nouvelles règles prendront effet la prochaine fois qu'un appareil sera branché.
Note : Pour plus d'informations sur les environnement de compilation appropriés, veuillez vous référer aux Prérequis pour construire Firefox OS.
Télécharger le code source
Pour télécharger le code source pour le Nexus Player, assurez-vous au préalable d'avoir Github installé, puis exécutez les commandes suivantes:
git clone git://github.com/mozilla-b2g/B2G.git nexusplayer cd nexusplayer BRANCH=v2.6 ./config.sh nexusplayer-l
Pour télécharger manuellement le code source Gecko correspondant, exécutez la commande suivante :
git clone https://github.com/mozilla-b2g/gecko-b2g
Et suivez les instructions de Changer l'arbre source de Gecko pour en construire une version personnalisée.
Compiler
Une fois l'environnement mis en place et le code source téléchargé, sa construction se résume à exécuter la commande suivante :
./build.sh
Flasher B2G sur le Nexus Player
Flashez B2G OS sur le Nexus Player avec la commande suivante :
./flash.sh
Le flashage terminé, l'appareil devrait redémarrer et charger B2G OS. Sauf si quelque chose n'allait pas, vous devriez voir peu de temps après l'écran d'accueil TV de B2G OS.
Dépannage
Quelquefois, les choses peuvent mal se passer. Ce qui suit est une liste des problèmes connus, avec des suggestions de solutions.
Fastboot ne trouve pas le Nexus Player
Il est possible que ./flash.sh
redémarre avec succès le Nexus Player en mode bootloader mais que ça se bloque indéfiniment sur le message < waiting for device >
. Cela peut être résolu en remplaçant le fastboot
de votre système par celui situé dans le répertoire <b2g>/
out/host/linux-x86/bin/
.
La fonctionnalité Bluetooth est absente
Nous ne pouvons pas construire automatiquement bluetooth.default.so
ni libbt-vendor.so
sur nexusplayer-l
, c'est pourquoi le Bluetooth ne fonctionne pas par défaut. Une solution de contournement consiste actuellement à construire les fichiers manquants à la main et à les flasher sur nexusplayer-l
, après quoi vous serez en mesure d'activer le bluetooth dans l'application Paramètres.
Les étapes de construction figurent ci-dessous :
Étapes pour construire bluetooth.default.so
- Aller sur
dir nexusplayer
puis tapezsource setup.sh
. - Aller sur
dir nexusplayer/external/tinyxml2
puis tapezmm
. - Aller sur
dir nexusplayer/external/bluetooth/bluedroid
puis tapezmm
. - Aller sur
dir nexusplayer/
puis tapez la commande suivante :
adb push out/target/product/fugu/system/lib/hw/bluetooth.default.so /system/lib/hw
Étapes pour construire libbt-vendor.so
- Aller sur
dir nexusplayer
puis tapezsource setup.sh
. - Aller sur
dir nexusplayer/hardware/broadcom/libbt
puis tapezmm
. - Aller sur
dir nexusplayer
puis tapez la commande suivante :
adb push out/target/product/fugu/system/vendor/lib/libbt-vendor.so /system/vendor/lib
L'écran d'accueil TV ne gère pas les événements de la souris
Par défaut, l'application écran d'accueil TV ne gère pas les événements de la souris (voir bug 1260083). Pour le moment, la recommandation est de se passer de l'usage de la souris et d'utiliser la télécommande à la place.
Suivez ces étapes pour que les choses fonctionnent :
- Utilisez le clavier physique pour démarrer le Nexus Player.
- Utilisez les touches fléchées pour naviguer sur l'écran d'accueil et aller dans l'application Paramètres.
- Utilisez les touches fléchées pour aller sur le panneau de configuration du Bluetooth et associez l'appareil avec la télécommande.
Vous pouvez alors utiliser la télécommande à la place. Branchez la souris lorsque vous souhaitez naviguer dans l'application Navigateur.