Difference between revisions of "Projets-2016-2017-NixosTegraX1"

From air
Jump to navigation Jump to search
(Creation)
 
 
(9 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
=Preambule=
 
=Preambule=
   
  +
Ce projet a pour but final de porter la distribution Linux NixOS sur les cartes Nvidia Jetson TX1 qui contiennent un processeur Tegra X1. Il s'agit la d'un processeur multicœurs ARM 64 bits couplé à un GPU de 256 coeurs.
The project subject [[ NixOS for Tegra X1 ]]
 
  +
Pour appréhender le sujet nous avous abordé le gestionnaire de paquet nix pour se familiariser avec les particularités de NixOS.
 
   
 
=Project presentation=
 
=Project presentation=
Line 10: Line 10:
 
= Team =
 
= Team =
   
* Supervisors : Amr Alyafi, Didier Donsez
+
* Supervisors : Olivier Richard
   
* Members : Christophe Adam, Zhengmeng Zhang
+
* Members : NASSIK Ahmed Amine, TURRIN Vincent
   
 
* Departement : [http://www.polytech-grenoble.fr/ricm.html RICM 4], [[Polytech Grenoble]]
 
* Departement : [http://www.polytech-grenoble.fr/ricm.html RICM 4], [[Polytech Grenoble]]
Line 20: Line 20:
 
The project started January 9th, 2017.
 
The project started January 9th, 2017.
   
== Week 1 (January 9th - January 15th) ==
+
== Semaine du Lundi 9 janvier ==
 
 
* Choix du projet
 
* Choix du projet
   
== Week 2 (January 16th - January 22th) ==
+
== Semaine du Lundi 16 janvier ==
 
 
* Découverte du projet
 
* Découverte du projet
  +
* Consultation des projet antérieur
* Installation des Dockers/machines virtuelles
 
  +
* Installation des outils Docker (sans succès) -> VM
  +
* Téléchargement de NixOS
   
  +
== Semaine du Lundi 23 janvier ==
  +
* Installation de NixOS sur la VM
  +
* Définition de l’objectif (paquet NixOS):
  +
** Renseignement sur les packages
  +
** Renseignement sur les gestionnaires de packages
   
== Week 3 (January 23th - January 29th) ==
 
   
  +
== Semaine du Lundi 6 février ==
* Renseignement sur le gestionnaire de paquets et les paquet Nix
 
* Familiarisation avec Nanvix
 
   
 
* Renseignement sur le fichier config de NixOS et modification du fichier
== Week 4 (January 29th - February 05th) ==
 
  +
* Installation de l'environnement KDE
  +
* Création d’un utilisateur invité sur NixOs pour utiliser KDE
  +
* Configuration de KDE
  +
* Renseignement sur les priorités utilisateur/root et leurs effets dans la suppression et la désinstallation de paquets
  +
* Observation des différences du package manager Nix avec celui d’Ubuntu
  +
* Ecriture d'un simple paquet
   
  +
== Semaine du Lundi 13 fevrier ==
  +
* Début de la création d’un paquet test
  +
* Continuation de familiarisation avec Nix/NixOS
   
  +
== Semaine du Lundi 27 fevrier ==
  +
* Suite de l'écriture du paquet
  +
* Assez compliqué aucune ressource avec des explications simples
   
== Week 5 (February 09th - February 15th) ==
+
== Semaine du Lundi 6 mars ==
  +
* Fin de prise en main de Nix : nix-env, nix-shell, nix-build, fichiers de configurations, all-packages.nix etc...
  +
* Fin de l'écriture d'un paquet de base --> prise de conscience des problématiques de conception de package
   
  +
== Semaine du Lundi 13 mars ==
  +
* Redirection du sujet initial --> nouveau sujet : outil de traduction de paquets Arch Linux en paquets Nix.
  +
* Étude de la problématique
  +
* Étude de la structure des paquets Arch
  +
* Recherche des outils de parsing et début du code
  +
  +
== Semaine du Lundi 20 mars ==
  +
* Continuation du parser
  +
* Objectif : avancer de façon incrémentale, nous commençons d'abord avec des packages simples
  +
* Mise en place de tableau comparatif ARCH/NIX pour cibler la traduction
  +
  +
== Lundi 27 mars ==
  +
* Continuation du parser
  +
* Début code de traduction (prend en paramètre les éléments parsés pour sortir un paquet Nix)
  +
* Début de ciblage de problématiques de traduction : récupération des éléments de build tels que les flags de make.
  +
  +
== Mardi 28 mars ==
  +
* Parser partiellement fini (à potentiellement compléter pour certaines structures)
  +
* Continuation des fonctions de traduction (peut gérer un paquet simple, et certaines structures plus complexes)
  +
  +
== Mercredi 29 mars ==
  +
* Début du code des fonctions de recherche des dépendances (recherche en éxecutant des fonctions Nix)
  +
* Mise en place des conditions de test du package créé
  +
  +
== Jeudi 30 mars ==
  +
* Fonctions de recherche interactive des dépendances (proposés dans une liste des potentielles dépendances + possiblité de préciser sa recherche --> à améliorer)
   
 
=Synthèse du projet=
 
=Synthèse du projet=
Line 49: Line 92:
   
 
==Logiciels (utilisés)==
 
==Logiciels (utilisés)==
 
 
=== Emploi du temps et NFC ===
 
   
 
* https://nixos.org/
 
* https://nixos.org/
 
 
   
 
=Ressources=
 
=Ressources=

Latest revision as of 10:00, 3 April 2017

Preambule

Ce projet a pour but final de porter la distribution Linux NixOS sur les cartes Nvidia Jetson TX1 qui contiennent un processeur Tegra X1. Il s'agit la d'un processeur multicœurs ARM 64 bits couplé à un GPU de 256 coeurs. Pour appréhender le sujet nous avous abordé le gestionnaire de paquet nix pour se familiariser avec les particularités de NixOS.

Project presentation

Team

  • Supervisors : Olivier Richard
  • Members : NASSIK Ahmed Amine, TURRIN Vincent

Progress of the project

The project started January 9th, 2017.

Semaine du Lundi 9 janvier

  • Choix du projet

Semaine du Lundi 16 janvier

  • Découverte du projet
  • Consultation des projet antérieur
  • Installation des outils Docker (sans succès) -> VM
  • Téléchargement de NixOS

Semaine du Lundi 23 janvier

  • Installation de NixOS sur la VM
  • Définition de l’objectif (paquet NixOS):
    • Renseignement sur les packages
    • Renseignement sur les gestionnaires de packages


Semaine du Lundi 6 février

  • Renseignement sur le fichier config de NixOS et modification du fichier
  • Installation de l'environnement KDE
  • Création d’un utilisateur invité sur NixOs pour utiliser KDE
  • Configuration de KDE
  • Renseignement sur les priorités utilisateur/root et leurs effets dans la suppression et la désinstallation de paquets
  • Observation des différences du package manager Nix avec celui d’Ubuntu
  • Ecriture d'un simple paquet

Semaine du Lundi 13 fevrier

  • Début de la création d’un paquet test
  • Continuation de familiarisation avec Nix/NixOS

Semaine du Lundi 27 fevrier

  • Suite de l'écriture du paquet
  • Assez compliqué aucune ressource avec des explications simples

Semaine du Lundi 6 mars

  • Fin de prise en main de Nix : nix-env, nix-shell, nix-build, fichiers de configurations, all-packages.nix etc...
  • Fin de l'écriture d'un paquet de base --> prise de conscience des problématiques de conception de package

Semaine du Lundi 13 mars

  • Redirection du sujet initial --> nouveau sujet : outil de traduction de paquets Arch Linux en paquets Nix.
  • Étude de la problématique
  • Étude de la structure des paquets Arch
  • Recherche des outils de parsing et début du code

Semaine du Lundi 20 mars

  • Continuation du parser
  • Objectif : avancer de façon incrémentale, nous commençons d'abord avec des packages simples
  • Mise en place de tableau comparatif ARCH/NIX pour cibler la traduction

Lundi 27 mars

  • Continuation du parser
  • Début code de traduction (prend en paramètre les éléments parsés pour sortir un paquet Nix)
  • Début de ciblage de problématiques de traduction : récupération des éléments de build tels que les flags de make.

Mardi 28 mars

  • Parser partiellement fini (à potentiellement compléter pour certaines structures)
  • Continuation des fonctions de traduction (peut gérer un paquet simple, et certaines structures plus complexes)

Mercredi 29 mars

  • Début du code des fonctions de recherche des dépendances (recherche en éxecutant des fonctions Nix)
  • Mise en place des conditions de test du package créé

Jeudi 30 mars

  • Fonctions de recherche interactive des dépendances (proposés dans une liste des potentielles dépendances + possiblité de préciser sa recherche --> à améliorer)

Synthèse du projet

Contexte

Matériel

Logiciels (utilisés)

Ressources