tag:linuxfr.org,2005:/tags/rpi/publicLinuxFr.org : les contenus étiquetés avec « rpi »2016-06-15T22:27:22+02:00/favicon.pngtag:linuxfr.org,2005:Diary/366142016-05-26T12:26:06+02:002016-05-26T13:54:23+02:00MoodleBox : un petit projet pour du BYOD en classeLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Bonjour,</p>
<p>petite autopromotion pour mon premier projet libre un peu sérieux : la MoodleBox</p>
<p>L'ensemble du projet est hébergé chez tuxfamily : <a href="http://moodlebox.tuxfamily.org">http://moodlebox.tuxfamily.org</a></p>
<p>Précision préalable : je ne suis absolument pas informaticien, tout au plus bricoleur. Mon vrai métier c'est prof et mes connaissances informatiques sont autodidactes. La suite est peut-être pleine de conneries, mais je compte bien sur les commentaires pour en discuter.</p>
<h2 id="cest-quoi-ce-truc">C'est quoi ce truc ?</h2>
<p>À l'image de la <a href="https://fr.wikipedia.org/wiki/PirateBox">piratebox</a>, la MoodleBox est serveur web portable, embarquant une installation de <a href="https://moodle.org/">moodle</a> et un point d'accès wifi.</p>
<p>L'idée derrière ce projet est de pallier le manque de matériel (tablettes notamment) dans les établissement scolaires en utilisant les téléphones portables des élèves. C'est le BYOD (ou AVEC en français).</p>
<p>Ce projet à plusieurs origines :</p>
<ul>
<li>j'utilise moodle avec mes élèves de collège depuis quelques années, mais surtout en travail à la maison</li>
<li>mon collège ne dispose pas de tablettes, donc l'utilisation de moodle en classe, c'est une heure complète en salle info ou rien… Pas moyen de prévoir une utilisation ponctuelle au milieu d'autres activités</li>
<li>de fréquentes discussions avec des collègues sur les tablettes et autres équipements mobiles</li>
<li>un <a href="https://moodle.org/mod/forum/discuss.php?d=330291">fil de discussion sur moodle.org</a> que j'ai squatté, un peu par hasard.</li>
</ul><p>Daniel Méthot, formateur moodle et grand contributeur des forums, y voit plutôt une solution pour ce qu'il appelle les « naufragés du web » : écoles des pays en voie de développement entre autres. </p>
<h2 id="technique">Technique</h2>
<p>Pour le hardware, la MoodleBox est basée sur un RaspberryPi 3 ce qui en fait un dispositif très bon marché.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f436839694e6b4157304141666348752e6a7067/Ch9iNkAW0AAfcHu.jpg" alt="moodlebox" title="Source : https://pbs.twimg.com/media/Ch9iNkAW0AAfcHu.jpg"></p>
<p>Une powerbank de 2200 mAh rend le tout totalement autonome.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f43683969675f6a577741414f6975512e6a7067/Ch9ig_jWwAAOiuQ.jpg" alt="powerbank" title="Source : https://pbs.twimg.com/media/Ch9ig_jWwAAOiuQ.jpg"></p>
<p>Pour la partie logicielle : </p>
<ul>
<li>raspbian jessie pour le système d'exploitation</li>
<li>hostapd et dnsmasq pour la partie wifi</li>
<li>nginx, postgresql et php5 pour le serveur web</li>
<li>moodle 3 enfin</li>
</ul><p>Je me suis principalement inspiré de quelques essais trouvés sur le web notamment <a href="https://moopi.uk/">https://moopi.uk/</a> Malheureusement, je n'y ai pas trouvé de retour d'expérience sur une utilisation réelle, avec un vrai cours et de vrais élèves.</p>
<p>Nicolas Martignoni, contributeur actif aux forums moodle, propose quant à lui une image construite un peu différemment. Par manque de temps je n'ai hélas pas eu le temps de comparer le fonctionnement des deux installations.</p>
<h2 id="et-ça-marche-ce-truc">Et ça marche ce truc ?</h2>
<p>C'est là où j'en suis le premier surpris… non seulement cela fonctionne, mais en plus ça fonctionne plutôt bien. Après avoir fait une installation (un peu dans l'urgence en plus) j'ai profité d'une formation regroupant une poignée de profs geeks pour faire un essai. Essai qui s'est révélé concluant. À la surprise de tous, ce petit machin bricolé était plutôt réactif et tout à fait utilisable.</p>
<p>J'ai dernièrement fait un essai grandeur nature, avec de vrais élèves et un vrai cours : avec 29 élèves et leurs ordiphones ça fonctionne convenablement.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f436a4e726e7a63584941414f4f77502e6a7067/CjNrnzcXIAAOOwP.jpg" alt="BYOD" title="Source : https://pbs.twimg.com/media/CjNrnzcXIAAOOwP.jpg"></p>
<p>Il faut néanmoins concevoir les cours moodle en prenant en compte les spécificités des terminaux : écran minuscule, glissé-déposé quasiment inutilisable mais cet essai m'a convaincu de poursuivre à la fois le développement et l'utilisation en classe de cet objet pédagogique encore mal identifié.</p>
<h2 id="pour-la-suite">Pour la suite</h2>
<p>Dans les travaux en cours, je suis en train de réaliser une IHM web pour permettre la configuration de la MoodleBox (arrêt-redémarrage, paramètres réseau et wifi notamment), l'idée étant de rester le plus possible dans une utilisation ultra-simple.</p>
<p>Enfin, au-delà de la partie technique, j'espère que ce premier exemplaire de MoodleBox fera des petits et que ce sont ensuite des cours adaptés qui seront échangés, distribués, sous licence libre évidement !</p>
<p>Voilà quelques lignes pour partager ma dernière petite folie. Merci à ceux qui se sont déjà intéressés à ce projet et à mes élèves qui ont accepté de travailler ;-) pour me permettre de tester leur prochain instrument de torture.</p><div><a href="https://linuxfr.org/users/cevhe/journaux/moodlebox-un-petit-projet-pour-du-byod-en-classe.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109091/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/cevhe/journaux/moodlebox-un-petit-projet-pour-du-byod-en-classe#comments">ouvrir dans le navigateur</a>
</p>
cévhéhttps://linuxfr.org/nodes/109091/comments.atomtag:linuxfr.org,2005:Diary/365972016-05-23T15:50:36+02:002016-05-24T23:16:15+02:00Monter un cluster mémoire avec un raspberry piLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p><strong><em>Avant-Propos :</em></strong><br>
Il est fortement conseillé d'utiliser un raspberry pi 2 au minimum (privilégiez le modèle 3). JBOD via mddfs n'est pas totalement stable, mais <a href="https://fr.wikipedia.org/wiki/ZFS">ZFS</a> semble actuellement non utilisable sur Raspberry Pi. Si vous suivez ce tuto sur une machine dotée d'autre chose qu'un processeur ARM, privilégiez l'utilisation de <a href="https://fr.wikipedia.org/wiki/ZFS">ZFS</a>.<br>
Gluster vous permet en fonction du nombre de peers/nodes et du nombre de réplication de faire :</p>
<ul>
<li>un JBOD réseau (addition de l'espace de toute vos machines Peer1 + Peer2 + etc)</li>
<li>de la réplication raid1 ( Peer1 = Peer2)</li>
<li>de la "réplication distribuée" sorte de raid10 (Peer 1 + Peer 2 = Peer 3 + Peer 4)</li>
</ul><p><strong>Sommaire :</strong></p>
<ol>
<li>Montage des disques dur</li>
<li>Création d'une "super partition" <a href="https://fr.wikipedia.org/wiki/JBOD">JBOD</a> (concaténation des disques dur)</li>
<li>Mise en place de glusterfs</li>
<li>Création d'un répertoire/volume distribué répliqué</li>
<li>Montage sur un client Ubuntu</li>
</ol><p><strong>Montage des disques dur</strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=287">[Tuto/HowTo] Raspberry Pi monter automatique disque dur externe</a></p>
<ol>
<li><p>Récupérez l'<a href="https://fr.wikipedia.org/wiki/User_identifier">UID</a> du disque dur<br><code>sudo blkid</code></p></li>
<li>
<p>Éditez le fichier <a href="https://fr.wikipedia.org/wiki/Fstab">/etc/fstab</a><br><code>sudo nano /etc/fstab</code></p>
<ul>
<li>(CTRL+X pour sauver&quitter)</li>
</ul>
</li>
<li>
<p>Adaptez la ligne suivante puis ajoutez la<br><code>UUID="16846dfa-a74d-7a5d-a8r7-f7c5z4fnd4sjz" /media/Disque1 ext4 defaults,nofail 0 2</code></p>
<ul>
<li>UUID=xxxxx => l'UID récupéré précédemment</li>
<li>/media/Disque1 => où monter votre disque dur</li>
<li>ext4 => le formatage de la partition (si votre disque dur est formaté en ntfs, indiquez "ntfs-3g" et installez le paquet "ntfs-3g")</li>
</ul>
</li>
<li>
<p>Accordez les droits sur le montage<br><code>sudo chown pi:root -R /media/Disque1<br>
sudo chmod 0774 -R /media/Disque1/</code></p>
<ul>
<li>/media/Disque1 => le point de montage de votre disque</li>
</ul>
</li>
<li><p>Répétez les actions précédentes pour chaque unité de stockage</p></li>
</ol><p><strong>Création d'une "super partition" <a href="https://fr.wikipedia.org/wiki/JBOD">JBOD</a></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=289#p748">[Tuto/HowTo] Mise en place d'un système JBOD avec mhddfs sur Raspberry Pi</a></p>
<ol>
<li><p>Installez <a href="https://romanrm.net/mhddfs">mhddfs</a><br><code>sudo apt-get install mddfs</code></p></li>
<li><p>Créez le point de montage de votre "super partition JBOD" et attribuez lui les bons droits<br><code>sudo mkdir /media/monNouveauMontage</code><br><code>sudo chown pi:root -R /media/monNouveauMontage</code><br><code>sudo chmod 774 -R /media/monNouveauMontage</code></p></li>
<li><p>Listez les disques ainsi que leur point de montage respectif<br><code>df -h</code></p></li>
<li>
<p>Éditez le fichier <a href="https://www.raspberrypi.org/documentation/linux/usage/rc-local.md">/etc/rc.local</a><br><code>sudo nano /etc/rc.local</code></p>
<ul>
<li>(CTRL+X pour sauver&quitter)</li>
</ul>
</li>
<li>
<p>Ajoutez la ligne suivante juste avant la ligne contenant <em>exit 0</em> en l'adaptant à vos besoins<br><code>mhddfs /media/Disque1,/media/Disque2,/media/Disque3 /media/monNouveauMontage -o allow_other</code></p>
<ul>
<li>/media/Disque1,/media/Disque2,/media/Disque3 => les path où sont monté vos disques, séparé par une virgule à chaque fois.</li>
<li>/media/monNouveauMontage => le point de montage de votre partition JBOD</li>
<li>-o allow_other => autorise les autres utilisateurs à monter la partition (n'est pas obligatoire mais conseillé)</li>
</ul>
</li>
<li><p>Ouvrez le fichier de configuration de <a href="https://fr.wikipedia.org/wiki/Filesystem_in_Userspace">fuse</a><br><code>sudo nano /etc/fuse.conf</code><br>
Décommentez <em>user_allow_other</em> puis sauvez et quittez (CTRL+X).</p></li>
<li><p>Redémarrez la machine<br><code>sudo reboot</code></p></li>
</ol><p><strong><em>Mise en place de glusterfs</em></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298">[Tuto/HowTo] [Debian] [cluster] GlusterFS Server</a></p>
<ol>
<li><p>Installez glusterfs-server<br><code>sudo apt-get install glusterfs-server</code></p></li>
<li><p>Donnez le droits d'accès (rw) au fichiers log<br><code>sudo chmod 777 /var/log/glusterfs/*.log</code></p></li>
<li><p>Lancez le démon<br><code>sudo service glusterfs-server restart</code></p></li>
<li>
<p>Répétez éventuellement la manipulation sur une seconde machine puis ajoutez la à votre grille via <br><code>sudo gluster peer probe HOSTNAME</code></p>
<ul>
<li>Note : Une fois que le pool est établi, seuls les membres de confiance (trust) peuvent ajouter de nouveaux servers au pool. Un nouveau server ne peut PAS s'ajouter au pool, il doit être ajouté par le pool. (<a href="http://www.gluster.org/community/documentation/index.php/QuickStart#Step_5_-_Configure_the_trusted_pool">source</a>)</li>
</ul>
</li>
</ol><p><strong><em>Création d'un répertoire/volume distribué répliqué</em></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298">[Tuto/HowTo] [Debian] [cluster] GlusterFS Server</a></p>
<ol>
<li>
<p>Adaptez la commande suivante puis entrez la dans un terminal sur n'importe lequel de vos Node/server Gluster (elle s'appliquera à l'ensemble de votre grille)<br><code>sudo gluster volume create NomVolume replica 2 transport tcp HOSTNAME_server1:/media/superPartition HOSTNAME_server2:/media/superPartition force</code></p>
<ul>
<li>NomVolume => le nom du volume dans dans la grille GlusterFS (peut aussi être sous cette forme /papa/fiston/NomVolume)</li>
<li>HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster <sup id="fnref1"><a href="#fn1">1</a></sup>
</li>
<li>/media/superPartition => le path sur la machine où ranger les données du volume</li>
<li>replica 2 => le nombre de fois que les fichiers doivent être dupliqué. Supprimez cette valeur pour faire un JBOD réseau sans duplication de données.</li>
<li>transport tcp => on utilise TCP/IP</li>
<li>force => ne se met qu'à la fin de la commande, permet d'utiliser le mode root
(vous pouvez modifier par après la plus part des options ;) )</li>
</ul>
</li>
<li><p>Démarrez votre volume/répertoire<br><code>sudo gluster volume start NomVolume</code></p></li>
</ol><p><strong><em>Montage sur un client Ubuntu</em></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=288#p749">Monter un volume/répertoire GlusterFS</a></p>
<ol>
<li><p>Installez <a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Gluster_Native_Client">glusterfs-client</a><br><code>sudo apt-get install glusterfs-client</code></p></li>
<li><p>Création du point de montage local<br><code>sudo mkdir /media/monNouveauMontage</code><br><code>sudo chown pi:root -R /media/monNouveauMontage</code><br><code>sudo chmod 774 -R /media/monNouveauMontage</code></p></li>
<li>
<p>Testez votre montage<br><code>sudo mount -t glusterfs HOSTNAME:PORT:/NomVolume /media/monNouveauMontage</code></p>
<ul>
<li>HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable</li>
<li>:PORT => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)</li>
<li>:/NomVolume => le nom du volume dans dans la grille GlusterFS</li>
<li>/media/monNouveauMontage => mon point de montage local</li>
</ul>
</li>
<li>
<p>On va ajouter le montage au boot, éditez le fichier <a href="https://fr.wikipedia.org/wiki/Fstab">/etc/fstab</a><br><code>sudo nano /etc/fstab</code></p>
<ul>
<li>(CTRL+X pour sauver&quitter)</li>
</ul>
</li>
<li>
<p>Adaptez la ligne suivante puis ajoutez-la<br><code>HOSTNAME:PORT:/NomVolume /media/monNouveauMontage glusterfs defaults,_netdev,nofail 0 0</code></p>
<ul>
<li>HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster</li>
<li>:PORT => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)</li>
<li>:/NomVolume => le nom du volume dans dans la grille GlusterFS</li>
<li>/media/monNouveauMontage => mon point de montage local</li>
<li>_netdev => attend que le réseau soit prêt pour tenter le montage</li>
<li>nofail => empêche le boot de crasher si le montage échoue</li>
</ul>
</li>
</ol><p>PS : c'est mon premier journal, si quelqu'un sait comment virer la ligne d'espace vide entre les lignes de code, qu'il n'hésite pas à partager ;)</p>
<div class="footnotes">
<hr>
<ol>
<li id="fn1">
<p>il peut s'avérer nécessaire d'utiliser le fichier /etc/hosts pour fixer les HOSTNAME de vos machines (gluster ne supportant pas le changement d'hostname pour un peer), un tuto détails la procédure ici : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298#p761">GlusterFS et fichier hosts</a> <a href="#fnref1">↩</a></p>
</li>
</ol>
</div><div><a href="https://linuxfr.org/users/eaufroide/journaux/monter-un-cluster-memoire-avec-un-raspberry-pi.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109056/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/eaufroide/journaux/monter-un-cluster-memoire-avec-un-raspberry-pi#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/109056/comments.atomtag:linuxfr.org,2005:Post/343152014-08-20T09:18:59+02:002014-08-20T09:18:59+02:00Diffusion média salle d'attente show room<p>Bonjour,</p>
<p>Je cherche une solution de Diffusion média - vidéo, photo, texte pour animer un show room sur un écran de TV full HD.<br>
Je pense partir sur un raspberry pi car il offre les bonnes connectiques pour un faible encombrement et consommation. <br>
Je voudrai que la solution puisse être configurée par une interface web et puisse proposer du pavage et/ou de la superposition (texte défilant par dessus la vidéo ou le diaporama d'images).<br>
Des idées ? <br>
Merci</p><div><a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/diffusion-media-salle-d-attente-show-room.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103069/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/diffusion-media-salle-d-attente-show-room#comments">ouvrir dans le navigateur</a>
</p>
steph1978https://linuxfr.org/nodes/103069/comments.atom