Table des matières

J'ai un vieux ACER ASPIRE ONE 753. Remarque : en cas d'écran noir au démarrage ou de suspicion d'un BIOS foutu, on peut le réinitialiser : il suffit de presser FN + ESC au démarrage pendant 5secondes –> la le bouton power va normalement clignoter ; pendant 7 mn le PC travaille à reflasher le bios à partir d'une mémoire morte sans doute, puis redémarre, et on doit retrouver quelquechose sur l'écran … :)

Mon Windows 7 merdait, n'arrivait pas à se connecter en WIFI. Du coup j'ai installé dessus Chrome OS et une Jessie par dessus, voici ce que je peux en dire : c'est mieux !

Chrome OS

Il s'agit d'une Debian qui lance une surcouche qui présente à l'utilisateur :

C'est à partir de chrome que quasiment tout se fait :

  1. Installation d'application, via le chrome web store
  2. Installation de plugin chrome
  3. Navigation internet
  4. Chrome OS permet d'exécuter des applications Android, mais elles ne sont pas toute compatibles; il faut installer ARC ou équivalent (moteur d'exécution d'application android); le playstore ne marche pas sur mon PC, mais il existe des outils pour convertir des APK en appli Chrome OS (magique mais foireux)

Le bureau permet juste de régler certains paramètres de cette surcouche. Il n'y a pas d'icone sur le bureau, donc aucune raison d'y rester, tout se passe sur les onglet de croco :).

Installation

  1. E1 : Faire une clé bootable en lancant clouready-usb-maker.exe, et choisississant l'image bin qui est dans le zip (après l'avoir décompressé)

Rqe : Il faut une clé USB > 16Go Rqe : L'image bin téléchargée est un pour un OS 64bits

  1. E2 : Plugger la clé dans l'ordi cible (un 64 bits)
  1. E3 : Redémarrer –> Chrome OS se lance à partir de la clé
  1. E4 : Dans l'IHM de Chrome OS, il y a menu pour installer Chrome OS sur le disque dur.

Cliquer sur ca, l'installer en full (le dual boot n'a pas fonctionné pour moi) Attendre longtemps. L'ordi aurait redémarer mais il ne l'a pas fait

  1. E5 : Retirer la clé USB puis forcer le redémarrage du PC
  1. E6, Bonus : Changer le “channel” de Chrome pour se mettre en mode Developper –> permettra d'installer des distributions chroote
  1. E7, Bonus : Installer Archron C (moteur d'appli Android) et un installeur d'APK

Astuces Shell : Press [ Ctrl ] [ Alt ] [ T ] to get the crosh shell.

URL : https://www.neverware.com/freedownload https://www.howtogeek.com/217659/how-to-get-a-chrome-os-like-operating-system-on-any-pc/ Un autre facon, d'autre distrib : https://chromium.arnoldthebat.co.uk/index.php?dir=special/

Backup de chrome OS :

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Crouton, script d'install d'une Debian CHROOTE

https://github.com/dnschneid/crouton

Installation

Faire la manipulation pour passer d'abord Chrome OS en mode développeur Remarque : ça dure assez longtemps, téléchargement d'une version de Chrome OS en mode dev puis install transparente aux yeux de l'utilisateur …

  #shell  (ouvre une session shell sur chromeOS)
  #sh ~/Downloads/crouton -e -r <chrootname> -t gnome-desktop

<chrootname> = jessie, precise, ou autre ; pour lister les distrib linux dispo :

  #sh ~/Downloads/crouton -r

Remarque : L'option -e sert à encrypter la chroot

Lorsque l'option -k pathToStoreEncryptKey is not specified, la clé est stockée directement à la racine de la chroot. On y accède en se loggant à la CHROOT. C'est le fichier /.ecryptfs.

Je joins mon fichier : ecryptfs.gz

Mise à jour d'une distrib chrootée

  #sh ~/Downloads/crouton -u -n <chrootname>
  1. Option r : choix de la distrib linux
  2. Option t : choix du gestionnaire graphique (kde, gnome, lxde, xcfe, …)

Lancer une distribution chroot

Suite à ça, on lance l'OS linux Debian en tappant :

  sudo startgnome
  

Normalement, vous devriez voir une session GNOME s'ouvrir, génial ; et c'est relativement rapide …

 
 # uname -a 
 Linux 4.4.83+ .... x86_64 
   
 lsb_release -a
 Distributor ID:	Debian
 Description:	Debian GNU/Linux 8.9 (jessie)
 Release:	8.9
 Codename:	jessie

Lancer une distribution chroot : autre méthodes

  1. Via vnc server inside crouton, vnc viewer inside chromeos (peut être en faisant un #sudo enter-chroot)
  2. as a window within the chromeos gui, using 'xiwi'
  3. full xorg on vt-2

XIWI : Install supplémentaire pour disposer de l'ouverture du bureau dans un onglet de Chrome OS

  1. E1 : Tapper la commande suivante sous crosh :
  #sudo sh ~/Downloads/crouton -t xorg,xiwi -u -n chrootname
  1. E2 : Installer extension chrome xiwi :

https://chrome.google.com/webstore/detail/crouton-integration/gcpneefbbnfalgjniomfjknbcgkbijom

  1. E3 : Lancer le bureau dans un onglet :
  #sudo startgnome -n <chrootName> -X xiwi-tab
  1. E4 : Lancer une nouvelle appli dans un onglet :
  #xiwi -T <applicationName>

Plus d'information : https://github.com/dnschneid/crouton/wiki/crouton-in-a-Chromium-OS-window-%28xiwi%29

Accès à l'OS

Reférences : https://korben.info/installer-linux-chromebook.html

Lancer l'OS

  1. Ouvrir un onglet chrome pour avoir la ligne de commande de l'OS (crosh).
  2. Ouvrir un shell et accéder à la debian de Chrome en tappant :

#shell

  1. Lancer la chroot <chrooname> en tappant :

#sudo startgnome ou

 sudo startgnome -X <DesktopEnvironnement>

<DesktopEnvironnement> = xorg, ou xiwi, ou autre environnement de bureau installé avec la commande précédente

Pour rentrer sans lancer de session graphique

 #sudo enter-chroot
 

Switch entre la chroot et chrome OS et inversement

Maintenant appuyé les boutons (Ctrl)+(Shift)+(Alt), puis appuyer sur (F2)

Installer les locales

Installer les outils locale

  sudo apt-get install locales keyboard-configuration

Installer à minima les locales en-US.UTF8 et fr-FR.UTF8, puis reconfigurer:

  sudo dpkg-reconfigure locales
  locale

Après ça, on peut changer la locale par défaut de gnome

Setter le clavier francais

setxkbmap -layout fr 

Shell et clipboard

Xterm uses cut buffers, not the standard X11 clipboard selection used for standard copy-paste that gnome-terminal and most other Linux programs now use. But if you start xterm like this, then selections are available via the standard clipboard:

 xterm -ls -xrm 'XTerm*selectToClipboard: true'&
 

Ouvrir port pour activer des serveurs (ssh, hhtp, vnc, ...)

  /sbin/iptables -P INPUT ACCEPT
  Mettre ça dans /etc/rc.local

Références : https://github.com/dnschneid/crouton/wiki/Running-servers-in-crouton

Empecher la mise en veille

Installer et activer Keep Awake sur chrome OS. Ca a fonctionné sur mon PC

ADB et DPKG les 2 installeurs sur debian

Ce sont les 2 installeurs les plus connus. On utilise le plus souvent adb. La plupart du temps, il peut être nécessaire de rajouter des lignes dans le fichier /etc/apt/source.list, afin d'obtenir plus de package, provenant de distribution de test par exemple. Pour plus d'info : https://wiki.debian.org/fr/SourcesList

Définir nom réseau de l'OS et connectivité Netbios

Nom réseau

 #sudo hostnamectl set-hostname myhostname

SAMBA

References : https://doc.ubuntu-fr.org/samba_smb.conf

Package SAMBA = 2 services (daemon) :

  1. NMBD is the part of Samba that handles all NetBIOS name resolution issues. It responds to NetBIOS broadcasts for it's own name. It can also act as a Domain Master Browser on the network and can act as a WINS server.
  2. SMBD permet uniquement de gérer des partages Netbios ou CIFS

Remarques :

Le fichier de conf peut contenir beaucoup de choses, c'est très complexe, et le fichier de conf par défaut contient peut être 10% du vocabulaire existant pour définir la conf …

Installation

  #sudo apt-get install samba

Mise en place, configuration

/etc/samba/smb.conf (contient la conf pour les 2 services, bien lire les commentaires dans le fichier …)

Lien vers ma config:smb.conf.gz

Il faudra notamment setter :

Ajout d'utilisateur réseau, et paramétrage de son mot de passe

 #sudo smbpasswd -a <username> -D 8

Remarque : j'ai du faire ça pour accéder en CIFS depuis mon PC windows

Installer vncserver et ssh

sudo apt-get install ssh tightvnc(server?)
sudo service ssh start
echo tightvncserver  
tightvncserver -geometry 1600x1000
ps -ef | grep Xtightvnc

ATTENTION : tightvncserver ne fonctionne pas avec gnome ; il faut :

 /root/.vnc/xstartup
 /home/<votreCompte>/.vnc/xstartup

Références : http://www.yvangodard.me/installer-le-controle-vnc-sur-un-serveur-debian-avec-tightvncserver/

Server web nginx

 #sudo apt-get install nginx
 
 #sudo service nginx start
 

conf : /etc/nginx/nginx.conf

sites conf : /etc/nginx/sites-available

For example, /etc/nginx/sites-available/default is a site conf, whose file serve root folder is /var/www/html/

Mise en veille, économie d'energie, screensaver

Imprimantes

E1 :

  sudo apt-get install cups
  

E2 : Redemarrer

E3 :

  sudo apt-get install printer-driver-escpr

E4 : S'assurer que le daemon cupsd est bien lancé,

    Aller sur http://localhost:636, puis ajouter l'imprimante EPSON réseau (il faut récupérer le fichier PPD ici : [[http://www.epson-driver.com/2016/07/download-driver-epson-expression-premium-xp-530-windows-mac-linux.html]])

Logs :

  #sudo tail -f /var/log/cups/error_log

Administration à distance

E1 : Aller sur le site en local via un navigateur web

E2 : Cliquer sur Administration ; dans la section Server, cocher “Allow remote administration”, puis cliquer sur “Change settings

E3 : Editer /etc/cups/cupsd.conf

E4 : ajouter ServerAlias *

E5 : Redémarrer cupsd –> Normalement, c'est bon

Lancer crouton dans une fenetre

  sudo startgnome -t xiwi,

Backup de l'OS crouton

Pour connaitre le nom du CHROOT, avant de le sauvegarder :

  sudo edit-chroot -all

Ca donnera ceci :

  name: jessie
  encrypted: yes, locked
  Unmounting /mnt/stateful_partition/crouton/chroots/jessie...

Il se fait à partir de ChromeOS, via la commande suivante :

  sudo edit-chroot -b <nameofchroot>

Cette commande place la sauvegarde dans le dossier Downloads. Pensez tout de suite à transférer votre image vers un serveur de fichier ou une clé USB, parce que le dossier Downloads est sujet à des écrasements de fichiers …

Pour restaurer :

 sudo edit-chroot -r <nameofchroot>

Pour restaurer en clob :

 sudo edit-chroot -r <nameofchroot>

Références : https://github.com/dnschneid/crouton/wiki/Backups

Version du noyau linux : uname -r

lscpu : Hardware

Trouver le processus lié à une fenêtre du gestionnaire graphique

E1 : Dans un shell de la session graphique, tapper :

  xprop | grep WM_CLASS

E2 : Cliquer sur la fenêtre

Ajouter un élément au menu démarrer

Créer un fichier de type desktop dans le dossier /usr/share/applications. Remarque : Les catégories sont spécifiées autrement que telle qu'on voit les dossiers du menu ; aller voir les catégories disponibles quand vous positionnerez les catégories de l'application

Autre lien mais j'ai pas réussi : https://lkubaski.wordpress.com/2012/06/29/adding-lxde-start-menu-and-desktop-shortcuts/

Emulation android

Intro

virtualbox ne marche pas sur ma chroot jessie … De ce que j'ai compris, il faut retrouver les linux-headers pour construire des modules sur lesquels virtualbox s'appuie, pour sans doute compiler des binaires, bref … je n'ai pas réussi à trouver les headers de ma version de kernel : 4.4.83 ; du coup il faudrait updater le kernel de la chroot, donc de chrome OS =⇒ j'abandonne
Utiliser KVM n'est pas possible non plus :

Lui aussi s'appuie sur un module du kernel : kvm-intel Apparemment l'url https://gist.github.com/komuW/10992190 montre comment reconstruire un noyau avec le module kvm-intel, pour pouvoir jouer avec kvm mais je trouve dangereux =⇒ je ne fais pas

Le gros problème, c'est que l'émulateur android du sdk android se sert de KEMU, qui se sert de KVM. Du coup, pour l'instant je n'ai pas trouvé de moyen de lancer un apk avec ma jessie chroote. Bref, en gros pas possible d'utiliser les applications phares d'émulation android : anbox et genymotion

Installation du SDK Android

Le sdk android est le noyau ligne de commande de Android Studio ; il peut être téléchargé séparément de Android Studio.

Installation

  1. E1 : Récupérer le zip linux x86_64 à partir du site de Android Studio
  2. E2 : Extraire le zip, de tel manière à avoir les fichiers dans /home/<user>/android
  3. E3 : Update PATH env variable in /home/<user>/.basrc

Utiliser sdkmanager pour récupérer les 1ers outils

 #sdkmanager "platform-tools"
 #sdkmanager "tools"                 

–> créé les dossier /home/<user>/android/tools, platform-tools

avec les outils adb, fastboot, sdkmanager et avdmanager, emulator

 #sdkmanager "emulator"              

–> installe un emulateur (malheureusement, il se sert de KVM)

 #sdkmanager --list --verbose        

–> Lister tous les system android téléchargeable

 #sdkmanager "system-images;android-25;google_apis;x86_64" 

–> installer un système android

Create an Android Virtual Device

Pour créer un device avec un des systèmes android téléchargé à l'étape précédente

 #avdmanager create avd --force --name myAVD1 --abi google_apis/x86_64 --package 'system-images;android-25;google_apis;x86_64'

Pour l'instant je suis bloqué sur un sujet : disposer d'un émulateur android sur crouton.

Il existe 2 émulateurs android : anbox et shashik

j'ai essayer de lancer des applis avec shashik.
  /opt/shashlik/bin/shashlik-install <monApkFullpath>
  /opt/shashlik/bin/shashlik-run <package> <prettyName>

Le lancement de certaines se sont arrêtées toutes suites parce qu'elles présentaient du code natif, mais en dehors d'une architecture x86_64 ; en effet la plupart des apk hébergeant du code natif sont fournies avec du code natif dédié aux archi arm (dédié aux téléphones portable, raspberry pi, etc …)

J'ai essayé d'installer anbox, sans succès, même en mettant plein de trucs dans /etc/apt/source.list

Je n'ai pas envie de me lancer dans du make à partir du projet récupéré depuis github …

Telécharger des appli android hébergeant du code natif x86_64

En se connectant au google play store, mais le problème est que pour filtrer le code natif, il se sert de l'ID android sur lequel on projette d'installer l'appli =⇒ il faut disposer d'un nouveau ID android, qui doit être créé sous une archi x86_64 …

Il existe bien googleplaydownloader ; je l'ai installé ; c'est un binaire qui appelle du python ; cool ! Le problème, c'est qu'il n'arrive pas à s'authentifier … je n'ai pas compris pourquoi La conf est situé là :

 ~/.config/googleplaydownloader/googleplaydownloader.conf
 J'ai donné l'ID android de mon Oneplus One.

GplayCli

C'est un client en ligne de commande : Installation : (via l'installeur pip, à récupérer aussi via apt-get install python-pip) pour télécharger des apk –> les apk ne s'exécutent pas

  La conf de gplaycli est cherché dans : 
  ./gplaycli.conf, puis '/home/xavier/.config/gplaycli/gplaycli.conf', '/etc/gplaycli/gplaycli.conf'
 J'ai donné l'ID android de mon Oneplus One.

La commande pour rechercher est la suivante :

La commande pour télécharger est la suivante :

  gplaycli -p -d com.aa.generaladaptiveapps

> J'ai créé un nouveau android device ID : Pour ca, j'ai vu 2 solution :

  1. télécharger une image d'un OS qui permet de faire ca
  2. installer une apk qui permet de faire ca …
  3. Finalement je crois que j'ai réussi à créer un ID android à partir de la page “Création d'un ID client Android OAuth” http://docs.aws.amazon.com/fr_fr/mobile-hub/latest/developerguide/create-oauth-android-clientid.html

Client OAuth2 ID : 1072904677813-8biauo8tv8om3vvp3ucs2smtjmlnm5fv.apps.googleusercontent.com

ATTENTION : Il ne faut mettre que le début dans les conf (1072904677813)

J'espère juste que le filtre à partir de l'ID android permet de filtrer sur l'archi cible du code natif. Quand je l'ai créé, j'ai du mettre autre, mais je n'ai pas pu préciser que c'était du linux donc …

GplayWeb

L'installation se fait en utilisant pip Passer https://mondedie.fr/d/8157-Tuto-GPlayWeb-profiter-des-applications-Android-sans-playstore

J'ai aussi réussi à installer et utiliser gplayweb. C'est un serveur web, qui écoute sur le port 8888 ; il se sert en fait de gplaycli, et utilise par défaut le fichier de conf de gplaycli.conf, en cherchant dans plusieurs locations.

Pour le lancer :

  gplayweb -c /etc/gplayweb/gplayweb.conf

Il y aura quelques corrections à apporter au code python de lancement (dans gplaycli.py)

Savoir si un apk contient du code natif x86, x86_64, ou arm

Ensuite, pour voir si un apk contient du code x86 :

   unzip -l ./<monApkFullpath> | grep lib/ | grep arm | wc -l
   si différent de 0 alors il y les lib arm
   unzip -l ./<monApkFullpath> | grep lib/ | grep x86 | wc -l
   si différent de 0 alors il y les lib x86

Commandes adb pour se connecter avec un émulateur ou appareil android

https://developer.android.com/studio/command-line/adb.html#directingcommands

Creer un AVD

http://developer.android.com/tools/devices/managing-avds-cmdline.html android create avd -n -t –skin WVGA800 android create avd -n -t –skin 300×200

$ANDROID_HOME/tools/bin/avdmanager create avd –force –name testAVD –abi google_apis/x86_64 –package 'system-images;android-23;google_apis;x86_64'

Redemarrer ADB

adb kill-server

adb start-server

~/android/tools/monitor

Lancer un émulateur

cd ~/Library/Android/sdk/tools ./emulator -avd {AVD_NAME}

./emulator -list-avds

https://developer.android.com/studio/run/emulator-commandline.html

Lister les emulateur et appareils connectés

adb devices -l List of devices attached emulator-5554 device emulator-5555 device

Se connecter à un émulateur

adb connect localhost:5555

Installer une apk sur un emulateur

adb -s emulator-5555 install helloWorld.apk

Lancer une application installée dans un émulateur

adb shell am adb shell am start -a android.intent.action.VIEW

adb shell

Copier des fichier sur un émulateur ou device

adb pull remote local adb push local remote

Autre méthode d'accès à un émulateur

telnet localhost 5554