Projets-2016-2017-NixosTegraX1

=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


 * Departement : RICM 4, Polytech Grenoble

= 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=

Logiciels (utilisés)

 * https://nixos.org/

=Ressources=


 * https://nixos.org/
 * https://nixos.org/wiki/Bootstrapping_NixOS_on_ARM
 * https://nixos.org/wiki/NixOS_on_ARM/multi_v7_defconfig