tag:linuxfr.org,2005:/users/corenLinuxFr.org : les contenus de Coren2021-05-01T18:57:20+02:00/favicon.pngtag:linuxfr.org,2005:Diary/397372021-04-30T16:11:40+02:002021-04-30T16:11:40+02:00Faire son propre JukeBox avec un Raspberry PiLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Cher journal,</p>
<p>Aujourd'hui, je te partage comment nous avons fabriqué un jukebox pour nos enfants avec un Raspberry Pi 3.</p>
<p>On est parti sur une base <a href="https://osmc.tv/">OSMC</a>, avec un écran tactile, une enceinte connectée en filaire et un abonnement spotify family. </p>
<p>Concernant les éléments matériels à se procurer:<br>
- Raspberry Pi<br>
- carte SD avec OSMC dessus (les images se copient facilement avec <a href="https://www.balena.io/etcher/">Etcher</a>)<br>
- écran touch (on a pris un <a href="https://github.com/pimoroni/hyperpixel4">HyperPixel4</a>, petit, fluide et bonne résolution)<br>
- enceinte filaire (bluetooth <a href="https://discourse.osmc.tv/t/osmc-rpi-3b-bluetooth-receiver/86075">est possible</a>, mais le son "saute" par moment sur un pi3)<br>
- boîtier imprimé en 3D pour le tout : <a href="https://www.thingiverse.com/thing:3153767">https://www.thingiverse.com/thing:3153767</a> </p>
<p>Pour l'installation, il faut également:<br>
- écran branché en HDMI<br>
- clavier<br>
- wifi ou ethernet</p>
<p>Une fois l'accès ssh fonctionnel, voici les étapes qu'on a suivi.</p>
<ul>
<li>Installation des paquets nécessaires à l'installeur d'HyperPixel4</li>
</ul>
<pre><code>apt-get install python-rpi.gpio device-tree-compiler
</code></pre>
<ul>
<li>Installation de l'écran à proprement parler</li>
</ul>
<pre><code>curl -sSL https://get.pimoroni.com/hyperpixel4 | bash
</code></pre>
<ul>
<li>Rotation de l’écran </li>
</ul>
<pre><code>hyperpixel4-rotate right
</code></pre>
<p>Concernant la partie tactile, le pilote (<em>goodix</em>) n'est pas activé actuellement. J'ai fait une <a href="https://github.com/osmc/osmc/issues/621">PR</a> pour qu'il soit intégré par défaut.</p>
<p>Une fois le boitier fonctionnel avec OSMC, il suffit d'installer le <a href="https://github.com/kodi-community-addons/plugin.audio.spotify">plugin Spotify</a>, de personnaliser le menu avec un thème adapté à l'usage tactile (<em>Estouchy</em> par exemple) et le tour est joué. </p>
<p>Au cas où, voici les instructions pour compiler soi-même le module noyau.</p>
<ul>
<li>Identifier la version du noyau </li>
</ul>
<pre><code>uname -a
# Dans ce cas, c'est 4.19.122-2-osmc
</code></pre>
<ul>
<li>Installer et extraire les sources de ce noyau </li>
</ul>
<pre><code>apt-get install rbp2-source-4.19.122-2-osmc rbp2-headers-4.19.122-2-osmc
cd /usr/src
tar xvjf rbp2-source-4.19.122-2-osmc.tar.bz2
</code></pre>
<ul>
<li>Recopier la configuration et les symboles du noyau en cours d’utilisation </li>
</ul>
<pre><code>cp /boot/config-4.19.122-2-osmc /usr/src/.config
cp ../rbp2-headers-4.19.122-2-osmc/Module.symvers .
# activer le module => CONFIG_TOUCHSCREEN_GOODIX=m
vim .config
</code></pre>
<ul>
<li>Installer les dépendances nécessaires à la compilation </li>
</ul>
<pre><code>apt-get install build-essential bison flex bc libssl-dev
</code></pre>
<ul>
<li>Lancer la compilation, en ciblant le module pour gagner du temps</li>
</ul>
<pre><code>make oldconfig
make prepare
make modules_prepare
make SUBDIRS=scripts/mod
make SUBDIRS=drivers/input/touchscreen modules
</code></pre>
<ul>
<li>Installer le module</li>
</ul>
<pre><code>cp drivers/input/touchscreen/goodix.ko /lib/modules/4.19.122-2-osmc/kernel/drivers/input/touchscreen/
</code></pre>
<ul>
<li>On peut vérifier le chargement du module, mais un reboot sera nécessaire pour que l'affichage bascule sur l'écran </li>
</ul>
<pre><code>depmod
modprobe goodix
reboot
</code></pre>
<div><a href="https://linuxfr.org/users/coren/journaux/faire-son-propre-jukebox-avec-un-raspberry-pi.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/124132/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/faire-son-propre-jukebox-avec-un-raspberry-pi#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/124132/comments.atomtag:linuxfr.org,2005:Diary/380552018-07-31T09:40:36+02:002018-08-01T07:35:08+02:00Debian 9, les backports et le noyau 4.16+Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Cher journal,</p>
<p>J'ai bien galéré hier sur des histoires de firmware de carte réseau.</p>
<p>Tout commence avec un serveur inaccessible autrement qu'en DRAC / Ilo, avec le beau message du noyau (de mémoire, ça faisait 4 lignes) :<br>
<code><br>
Failed to load firmware... no such file or directory ... /lib/firmware/qed/qed_init_values_zipped-8.33.1.0.bin<br>
</code>L'installation s'est pourtant déroulée en netboot, et donc la carte réseau fonctionnait bien.<br>
Ne compte pas trouver quel paquet contient ce fichier sur packages.debian.org, il n'est pas référencé:<br>
<a href="https://packages.debian.org/search?searchon=contents&keywords=qed_init_values_zipped-8.33.1.0.bin&mode=exactfilename&suite=unstable&arch=any">https://packages.debian.org/search?searchon=contents&keywords=qed_init_values_zipped-8.33.1.0.bin&mode=exactfilename&suite=unstable&arch=any</a> </p>
<p>En fait, ce qui s'est passé, c'est que l'installeur est en noyau backport 4.14. Avec ce noyau, tout va bien, la carte réseau QLogic 10G fonctionne bien.</p>
<p>En noyau 4.16 et supérieur des backports de stretch, il te faut <em>aussi</em> ce fichier de firmware, qui est sensé être dans le paquet firmware-qlogic. Mais celui backporté ne contient pas ton précieux firmware !<br>
<a href="https://packages.debian.org/stretch-backports/firmware-qlogic">https://packages.debian.org/stretch-backports/firmware-qlogic</a> </p>
<p>Pour résoudre simplement ton problème, tu peux donc prendre le paquet de sid:<br>
<a href="https://packages.debian.org/sid/firmware-qlogic">https://packages.debian.org/sid/firmware-qlogic</a> </p>
<p>Il n'a beau ne pas être référencé, il contient bien le précieux binaire permettant à ta carte réseau de fonctionner.</p>
<p>Et ce sera toujours mieux que de le copier à la main sur ton serveur…</p>
<p>Cheers,</p>
<div><a href="https://linuxfr.org/users/coren/journaux/debian-9-les-backports-et-le-noyau-4-16.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/115004/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/debian-9-les-backports-et-le-noyau-4-16#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/115004/comments.atomtag:linuxfr.org,2005:Diary/353142014-10-07T20:58:52+02:002014-10-07T20:58:52+02:00Scripter la génération de certificatLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Cher journal,</p>
<p>Internet ne m'a pas beaucoup aidé à trouver une réponse simple et complète à cette question, alors permets moi de te détailler la solution. </p>
<p>La mise en place d'une AC auto-signée est relativement aisée. Il existe plein de tutoriaux sur internet, <a href="http://jeyg.info/des-certificats-signes-par-votre-autorite-de-certification-avec-openssl/">celui-ci</a> étant par exemple très clair et didactique. </p>
<p>En lisant le man, tu noteras qu'il faut mettre l'AC dans <strong>/usr/local/share/ca-certificates</strong> sur les systèmes à base Debian afin qu'elle soit ajouté automatiquement en tant qu'AC dite de <em>confiance</em></p>
<p>Pour générer automatiquement un certificat, tu peux utiliser et adapter le script ci-dessous:</p>
<pre><code class="bash"> <span class="c">#!/bin/bash</span>
<span class="k">if</span> <span class="o">[</span> <span class="s2">"x$1"</span> <span class="o">=</span> <span class="s2">"x"</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
<span class="nb">printf</span> <span class="s2">"USAGE:\n $0 myserver.my-company.lan"</span> 1><span class="p">&</span>2
<span class="nb">exit </span>1
<span class="k">fi</span>
openssl req -new -nodes -batch -newkey rsa:4096 -keyout private/<span class="nv">$1</span>.key <span class="se">\</span>
-out csr/<span class="nv">$1</span>.csr -config my-ca-config <span class="se">\</span>
-subj <span class="s2">"/C=FR/ST=AQUITAINE/L=BORDEAUX/O=My Company/CN=$1/emailAddress=certificates@my-company.com"</span>
openssl ca -passin file:ca.pass -batch -config my-ca-config <span class="se">\</span>
-policy policy_anything -out certs/<span class="nv">$1</span>.crt -infiles csr/<span class="nv">$1</span>.csr
<span class="nb">echo</span> <span class="s2">"Your private key is here: private/$1.key"</span>
<span class="nb">echo</span> <span class="s2">"Your public key is here: certs/$1.crt"</span></code></pre>
<p>Pour qu'il fonctionne, tu dois créer (et sécuriser l'accès) à un fichier <strong>ca.pass</strong> contenant en première ligne la pass phrase de ton AC.</p>
<h4 id="notes">Notes</h4>
<ol>
<li>Un fichier de réponse ne marche pas sur la commande <code>openssl req</code>, seule l'option batch et la ligne complète du sujet fonctionnera</li>
<li>Même en 2014, l'option <code>-passin</code> ne fonctionne que si elle est la première option de l'appel à <code>openssl ca</code>.</li>
</ol><div><a href="https://linuxfr.org/users/coren/journaux/scripter-la-generation-de-certificat-b2a30cf6-7121-424c-b0ce-fdca39b86151.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103547/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/scripter-la-generation-de-certificat-b2a30cf6-7121-424c-b0ce-fdca39b86151#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/103547/comments.atomtag:linuxfr.org,2005:Diary/352852014-09-28T01:07:44+02:002014-09-28T01:07:44+02:00mdadm: No devices listed in conf file were foundLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Cher Journal,</p>
<p>Si comme moi tu utilises Proxmox et que tu as eu envie de passer du noyau 2.6 au noyau 3.10 fourni par Proxmox Server Solutions GmbH, souviens-toi que c'est en fait un noyau Red Hat qu'ils poussent sur une base Debian.</p>
<p>Ça assure certes une certaine stabilité, mais ça peut aussi mener à ce problème peu compréhensible: lors de ton switch de noyau, après redémarrage, tu te retrouves avec ce message</p>
<blockquote>
<p>mdadm: No devices listed in conf file were found</p>
</blockquote>
<p>Pour ensuite tomber dans les limbes de initramfs. Depuis la cli de initramfs, tu peux retrouver tes petits, il te suffit de faire:</p>
<blockquote>
<p>initramfs> mdamd --auto-detect<br>
initramfs> cat /proc/mdstats<br>
initramfs> return</p>
</blockquote>
<p>Pour que ton serveur veuille bien démarrer (et te confirmer que ton RAID logiciel est bien présent).</p>
<p>Pour résoudre le problème, Internet pourrait te faire croire qu'il faudrait ajouter des modules <em>raid1</em> ou <em>mdraid1x</em> au démarrage de grub ou d'initramfs, mais détrompe-toi. Ton RAID est bien présent et fonctionnel. </p>
<p>Il faut juste accepter le fait que le noyau linux 3.10 est bien plus lourd à démarrer. Il ne faut pas qu'il lance mdadm avant que les disques soient reconnus. Laisse lui un petit délai de 5 secondes, et ça devrait faire l'affaire pour qu'il retrouve ton raid. Ça se passe dans <strong>/etc/default/grub</strong>, où il faut ajouter <em>rootdelay=5</em>:</p>
<blockquote>
<p>[…]<br>
GRUB_CMDLINE_LINUX_DEFAULT="quiet rootdelay=5"<br>
[…]</p>
</blockquote>
<p>Un petit update-grub, et ça repart !</p><div><a href="https://linuxfr.org/users/coren/journaux/mdadm-no-devices-listed-in-conf-file-were-found.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103425/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/mdadm-no-devices-listed-in-conf-file-were-found#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/103425/comments.atomtag:linuxfr.org,2005:Diary/346712014-01-19T21:04:47+01:002014-01-19T21:04:47+01:00La signature de code en JavaLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Cher Journal,</p>
<p>Depuis quelques jours, Oracle a décidé d'interdire l'exécution des applets ne précisant pas leur nom d'application (Application-Name) dans le fichier de description MANIFEST.MF.</p>
<p>Bien entendu, un des sites qui est sous ta charge utilise des applets, l'éditeur de celle-ci a mis la clé sous la porte mais ça ne devrait pas t'arrêter: normalement, il suffit juste d'ajouter quelques lignes dans <s>un fichier zip</s> une archive jar.</p>
<p>Bien sûr, si tu pensais juste pouvoir modifier le fichier MANIFEST et que ça allait marcher, tu pouvais te mettre l'octet dans l'archive. Ton applet est <strong>signé</strong>. Toute modification que tu souhaites y apporter nécessite de pouvoir la re-signer. </p>
<p>Passons à la signature. Il va te falloir un certificat valide, et attention, pas n'importe quel certificat, un certificat pour signer du code (Java).</p>
<p>Une fois muni de la clé privée et publique de ton certificat, il te faudra aussi récupérer les certificats intermédiaire, root, etc, sinon ce serait trop simple.</p>
<p>Voici les étapes pour parvenir à re-publier cet applet avec de nouveaux paramètres</p>
<ol>
<li><p>Fabrication de la chaine de certification (nécessaire pour l'étape 3, qui n'accepte qu'un seul fichier)<br><code>cat codesigning.cer intermediate1.cer gscodesigng2.crt Root-R1.crt > cert-chain.txt</code></p></li>
<li><p>Vérification de la chaine<br><code>openssl verify -CAfile cert-chain.txt codesigning.cer</code></p></li>
<li><p>Export au format pkcs12, utilisable par les outils Java (NB: Il est OBLIGATOIRE de mettre un mdp et un alias)<br><code>openssl pkcs12 -export -inkey codesigning.key -in cert-chain.txt -out cert-chain.pkcs12 -name tomcat</code></p></li>
<li><p>Transformation du PKCS12 en KeyStore Java<br><code>keytool -importkeystore -srckeystore cert-chain.pkcs12 -srcstoretype PKCS12 --destkeystore codesigning.jks -srcalias tomcat</code></p></li>
<li><p>Vérification du keystore<br><code>keytool -list -v -keystore codesigning.jks</code></p></li>
<li>
<p>Création du fichier d'ajout au Manifest de l'applet des paramètres en question:<br><code>cat addToManifest.txt</code></p>
<blockquote>
<p>Permissions: all-permissions<br>
Codebase: *<br>
Application-Name: Hello World</p>
</blockquote>
</li>
<li><p>Amélioration du Manifest, qu'il faut faire sur l'ensemble des archives de code<br><code>for i in</code>ls /path/to/*.jar<code>; do jar ufm "$i" addToManifest.txt; done</code></p></li>
<li><p>Remplacement de la signature existante par la nouvelle<br><code>for i in</code>ls /path/to/*.jar<code>; do jarsigner -keystore /path/to/codesigning.jks "$i" tomcat; done</code></p></li>
</ol><p>NB: Le paramètre Permissions n'a que 2 valeur possibles: aucun droit (sandbox) ou tous les droits (all-permissions)</p><div><a href="https://linuxfr.org/users/coren/journaux/la-signature-de-code-en-java.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101006/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/la-signature-de-code-en-java#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/101006/comments.atomtag:linuxfr.org,2005:Diary/342262013-08-19T13:48:28+02:002013-08-19T13:48:28+02:00Créer un service sous systemdLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Cher journal,</p>
<p>Comme j'ai toujours du mal à retrouver comment faire cette action simple, voici une liste des démarches à faire: </p>
<ul>
<li>
<p>Créer un fichier <em>test.service</em>, à mettre dans <strong>/usr/lib/systemd/system/</strong></p>
<p>[Unit]<br>
Description=Service de test<br>
After=tlp-init.service</p>
<p>[Service]<br>
Type=oneshot<br>
RemainAfterExit=no<br>
ExecStart=/usr/local/bin/test.sh</p>
<p>[Install]<br>
WantedBy=multi-user.target</p>
</li>
<li>
<p>Démarrer le service test</p>
<p>sudo systemctl start test.service</p>
</li>
<li>
<p>Activer le service test au démarrage</p>
<p>sudo systemctl enable startup.service</p>
</li>
</ul><p>Librement <s>repompé</s> adapté de <a href="http://forum.manjaro.org/index.php?topic=1166.0">cette page</a></p><div><a href="https://linuxfr.org/users/coren/journaux/creer-un-service-sous-systemd.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/99396/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/creer-un-service-sous-systemd#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/99396/comments.atomtag:linuxfr.org,2005:Diary/342212013-08-17T17:08:00+02:002013-08-17T17:08:00+02:00Retrouver /dev/dsp sur un Linux récent (2013)Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Cher Journal,</p>
<p>N'oublie pas qu'en 2013, sur Linux Debian 7 wheezy, Ubuntu 12.04 Precise Pangolin & plus, si tu as envie de faire fonctionner le son d'une (ancienne) application nécessitant le périphérique <em>/dev/dsp</em>, tu as rencontré la terrible erreur: <br>
'/dev/dsp': no such file or directory.</p>
<p>Voici ce qu'il ne faut pas faire et que tu aurais pu trouver sur internet:<br>
1. Désinstaller PulseAudio et installer OSS 4<br>
2. Recompiler ton noyau linux avec les options OSS activées<br>
3. Prendre ton marteau afin d'apprendre la vie à ta carte <s>son</s> mère.</p>
<p>Il y a bien plus simple: installe et utilise le démon osspd, qui fera un proxy pour ton ancienne application entre <em>/dev/dsp</em> et tout <s>le bordel</s>, toute la magnifique architecture modulaire de Pulse Audio.</p>
<p>Un simple </p>
<blockquote>
<p>apt-get install osspd</p>
</blockquote>
<p>Et voilà, le périphérique /dev/oss est prêt à servir, comme en 1990. </p>
<p>Eh oui, ça nous rajeunit pas, <br>
cher journal…</p><div><a href="https://linuxfr.org/users/coren/journaux/retrouver-dev-dsp-sur-un-linux-recent-2013.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/99383/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/retrouver-dev-dsp-sur-un-linux-recent-2013#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/99383/comments.atomtag:linuxfr.org,2005:Diary/327742012-06-28T18:38:26+02:002012-07-02T15:29:02+02:00La sauvegarde MySQLLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Cher journal,</p>
<p>J'ai enfin trouvé une manière de sauvegarder et de restaurer une base MySQL de plusieurs Go qui soit efficace dans les <em>deux</em> sens. </p>
<p>Pour les bases
</p><ul><li><p>Sauvegarde:</p>
<p>mysqldump --single-transaction --quick -B $db | gzip > $db.sql.gz</p></li>
<li><p>Restauration</p>
<p>zcat $db.sql.gz </p></li>
</ul><p>Pour les bases > 1 Go, une approche innovante est préférable, surtout dans le cas d'innodb (où il ne faut pas oublier d'activer <a href="http://dev.mysql.com/doc/refman/5.0/en/innodb-multiple-tablespaces.html">innodb_file_per_table</a>)</p>
<ul><li>Sauvegarde (que vous pouvez éventuellement compresser par la suite):
mysqldump --quick --skip-extended-insert --tab=/tmp/$db -B $db</li>
</ul><p>Concernant la restauration, c'est là où on va rencontrer des problèmes. Les clés étrangères vont provoquer des <br />
ERROR 1005 (HY000) at line 23: Can't create table '$db.$table' (errno: 150)<br />
et des<br />
mysqlimport: Error: 1452, Cannot add or update a child row: a foreign key constraint fails (<code>$db</code>.<code>$table</code>, CONSTRAINT <code>FK444FE365DB877774</code> FOREIGN KEY (<code>fk_$table_id</code>) REFERENCES <code>$table</code> (<code>$field</code>) ON DELETE CASCADE), when using table: $table</p>
<p>Le plus simple est d'utiliser ce script, qui va désactiver les vérifications de clé durant l'import. Et non, malheureusement, la demande d'ajout de cette fonctionnalité directement dans la cli <a href="http://bugs.mysql.com/bug.php?id=19996">datant de 2006</a> n'a toujours pas été implémenté.</p>
<p>Il faut faire soi même son script, qui peut ressembler à ça:</p>
<pre>
<code class="">#!/bin/bash
echo "SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0;"
for f in `ls -1 *.sql`; do echo "source '`pwd`/$f;'" done;
echo "COMMIT;"
for f in `ls -1 *.txt`; do
table=${f/.txt/}
echo "load data infile '`pwd`/$f' INTO TABLE $table;"
done;
echo "SET FOREIGN_KEY_CHECKS = 1;"
echo "COMMIT;"
</code>
</pre>
<ul><li><p>La restauration passe alors sans erreur et attaque directement les performances brutes du stockage sous-jacent:</p>
<p>bash sql.sh | mysql</p></li>
</ul><p>Sur une base de 10 Go, on passe de 5h en restauration à environ 30 minutes, et de 5/10 Mo/s à 50/80 Mo/s, d'après iotop.</p>
<p>L'autre gros avantage de cette méthode est d'être en capacité de pouvoir restaurer seulement une table sans avoir à réinjecter tout le dump dans une base à côté. </p><div><a href="https://linuxfr.org/users/coren/journaux/la-sauvegarde-mysql.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/94686/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/la-sauvegarde-mysql#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/94686/comments.atomtag:linuxfr.org,2005:Diary/321182012-01-31T18:27:25+01:002012-01-31T18:27:25+01:00Les sites de question / réponseLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>On ne peut plus nier que l'humanité est prête à fabriquer de manière collaborative une encyclopédie regroupant le savoir de notre univers : <a href="http://fr.wikipedia.org/wiki/Wikipedia" title="Définition Wikipédia">Wikipedia</a>. Le mouvement du libre a dépassé l'univers des geeks et des gus dans leur garage depuis de nombreuses années. Les états et les grandes entreprises commencent à s'y mettre, notamment à travers leur démarche d'<a href="http://fr.wikipedia.org/wiki/Open Data" title="Définition Wikipédia">Open Data</a>.</p>
<p>Mais cette encyclopédie est loin de répondre à cette grande soif d'apprentissage et de connaissance qui se croise sur la toile. Il suffit de voir le nombre de posts sur les forums, de tickets sur les bugtrackers ou d'email dans les mailing listes pour s'en rendre compte.</p>
<p>On voit d'ailleurs assez vite les défauts des moyens actuels. Les questions se perdent, les fils de discussions deviennent assez vite fouillis ou sujet à digressions/trolls ou autre cascade de <em>merci</em> ou <em>moi aussi</em>. Sans compter qu'on ne comprend jamais trop ceux qui répondent à ces questions, et notamment les raisons qui les poussent à répondre. Les systèmes de commentaire qui sont actuellement disponible sur les sites de média sont de très bon représentants de ces défauts. On y trouve souvent une kyrielle de propos qui n'ont absolument rien à voir avec le sujet.</p>
<p>Ce que <a href="http://www.codinghorror.com/blog/">Jeff Atwood</a> et <a href="http://www.joelonsoftware.com/">Joel Spolsky</a> ont développé répond à cette problématique d'une manière qui me semble révolutionnaire. La technologie qu'ils ont développé, qu'on retrouve sur leur cascade de site <a href="http://stackexchange.com/">stackexchange.com</a>, vise très clairement à augmenter significativement le niveau des questions et des réponses que l'on est susceptible de trouver sur un domaine en particulier.</p>
<p>En complément à <a href="http://fr.wikipedia.org/wiki/Wikimedia" title="Définition Wikipédia">Wikimedia</a> qui a créé une communauté et des outils de publications de connaissance de haute qualité, leur site permet d'élever considérablement le niveau des discussions que l'on peut avoir sur un domaine de connaissance. Ils ont mis en place un système très élaboré de méritocratie et d'auto-contrôle par les utilisateurs, qui donnent la part belle à la <a href="http://fr.wikipedia.org/wiki/Engagement_%28psychologie_sociale%29">théorie de l'engagement</a>. Leur système inclut tout un procédé de reconnaissance de ceux qui posent les meilleures questions ou les meilleures réponses. <br />
Leur système fonctionne un peu comme un jeu vidéo. Il y a des <em>badges</em>, un indice de <em>réputation</em>, des <em>droits</em> d'action sur le site que l'ont peut obtenir après une certaine réputation, etc, etc. Ce sont les membres du sites qui indiquent s'ils pensent que cette question ou cette réponse est une <em>bonne</em> question ou une <em>bonne</em> réponse.</p>
<p>Il en résulte des sites extrêmement efficace, tant dans la pertinence des questions posées que dans la lisibilité et la qualité des réponses obtenues. Ils publient de manière ouverte leur statistiques sur <a href="http://stackexchange.com/sites">cette page</a>. On y voit un taux très élevé consultation (3 millions de visites / jour pour le site de programmation), un taux très élevé de réponse (entre 80 et 100% (!)) et un très bon rapport entre le nombre de visiteur et le nombre d'inscrit (1/3).</p>
<p>AMHA, Ils ont réussi à créer un nouveau moyen d'expression et de partage de la connaissance. Il y a plus d'un membre de ces communautés qui pense, que dans de quelques années, un score élevé de réputation sur l'un de ces sites aura autant de valeurs que 5 ans d'expériences dans le domaine de ce site. </p>
<p>Leur succès a inspiré David Cuadrado qui a créé une <a href="http://shapado.com/">alternative libre</a> en <a href="http://fr.wikipedia.org/wiki/AGPL" title="Définition Wikipédia">AGPL</a>. On peut l'installer chez soi et le spécialiser sur le domaine de son choix. Elle semble un peu moins élaborée, mais vu que les sources sont disponibles, rien n'empêche de l'adapter à ses besoins :).</p><div><a href="https://linuxfr.org/users/coren/journaux/les-sites-de-question-reponse.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/89265/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/les-sites-de-question-reponse#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/89265/comments.atomtag:linuxfr.org,2005:Diary/307692011-02-14T00:40:21+01:002011-02-14T00:40:21+01:00L'homme qui voulait scripter les fichiers de configuration
Au FOSDEM, je suis allé à la <a href="http://fosdem.org/2011/schedule/event/lua_bsd">conférence</a> de Marc Balmer sur la rencontre entre Lua et les systèmes BSD. <br />
<br />
Marc Balmer ne semble partager que le nom de famille avec Steve. Je ne saurais dire s'il est fou ou si c'est un génie. Il cherche actuellement à pouvoir scripter des éléments de configuration système. <br />
<br />
Il voudrait, par exemple, écrire dans un fichier de configuration que les paramètres se trouvent dans tel annuaire ou dans telle base de données, via quelques commandes. Au lieu d'écrire :<br />
<code>password = "secret"</code>on pourrait écrire :<br />
<code>password = MySecuredSQL.query("Select password from CMDB where software = 'MySoft';")</code><br />
Il semble avoir retenu le langage Lua avec soin. Il a souligné ses différents avantages dans ce cadre d'utilisation :<br />
<ul>
<li>Faible empreinte mémoire (< 128k)</li>
<li>Rapidité d'exécution</li>
<li>Syntaxe simple, facile à apprendre, tout en restant puissante</li>
<li>Facilité de liaison avec le langage C</li>
<li>Facilité d'isolation (sandboxing)</li>
</ul>
Le dernier point est important, étant donné que la majorité des logiciels concernés par sa proposition sont écrits en C.<br />
<br />
Ce projet ne date pas d'hier, la <a href="http://marc.info/?l=netbsd-tech-userlevel&m=125577239909997&w=2">première annonce</a> a été faite en octobre 2009. Il a été jugé suffisamment intéressant par Google pour qu'il puisse bénéficier d'<a href="http://netbsd-soc.sourceforge.net/projects/luakern/">un GSoC</a> sur l'intégration Noyau. <br />
<br />
Il y a quelques mois, il a <a href="http://blog.netbsd.org/tnf/entry/the_lua_scripting_language_in">intégré Lua</a> dans le cœur du système NetBSD. Il a présenté des exemples de code en C permettant d'exécuter du Lua ou d'exporter des fonctions en Lua. Il a également montré l'inverse, du Lua vers le C. Il faut bien reconnaître que la glue nécessaire est assez simple à mettre en œuvre. <br />
<br />
L'avenir nous dira si ce genre de système se démocratisera dans des systèmes bénéficiant d'une plus grande audience. Les possibilités offertes semblent aussi effrayantes qu'attirantes, tant elles sont nombreuses.<div><a href="https://linuxfr.org/users/coren/journaux/lhomme-qui-voulait-scripter-les-fichiers-de-configuration.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/57024/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/lhomme-qui-voulait-scripter-les-fichiers-de-configuration#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/57024/comments.atomtag:linuxfr.org,2005:Diary/294162010-02-24T18:45:54+01:002010-02-24T18:45:54+01:00Le million pour Calc
L'un des développeurs d'OpenOffice.org, Kohei Yoshida, signale sur <a href="http://kohei.us/2010/02/20/increasing-calcs-row-limit-to-1-million/">son blog</a> qu'il a intégré dans Go-OO une série de modifications permettant de s'affranchir de la limite actuelle de 65536 lignes du tableur libre. Avec ses modifications, le tableur est plus réactif sur les documents existants et permet d'utiliser des feuillets contenant 1 millions de ligne (1 048 576 exactement).<br />
<br />
Le développeur signale qu'il a réussi à faire ce tour de forces en tentant de ne pas dégrader l'utilisation de Calc dans la plupart des cas. Ce n'est pas l'avis de deux des développeurs employés par Oracle, qui estiment qu'il n'est pas encore temps d'intégrer cette modification. Ils ont noté que le calcul en chaine des cellules contenant des formules n'est pas assez optimisé pour tenir la charge. Ils ont également constaté que l'affichage des objets graphiques ou des notes est décalé. C'est un problème déjà connu sur la version actuelle, mais l'augmentation de la limite montre ce problème de façon trop flagrante.<br />
<br />
Il est clair que ces problèmes seront résolus un jour ou l'autre dans la suite bureautique libre. En attendant, il a décidé de l'intégrer dans la version stable de Go-00 en version 3.2. Il est donc possible depuis une Ubuntu Lucid Lynx ou dans la prochaine version d'openSuse d'utiliser un tableau affranchie de la limite de 65536 lignes.<div><a href="https://linuxfr.org/users/coren/journaux/le-million-pour-calc.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/55711/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/le-million-pour-calc#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/55711/comments.atomtag:linuxfr.org,2005:Diary/293982010-02-19T17:48:38+01:002010-02-19T17:48:38+01:00Un autre type de faille locale
En 2007, le développeur de <a href="http://grsecurity.net/">grsecurity</a>, <a href="http://fr.wikipedia.org/wiki/Brad_Spengler">Brad Spengler</a>, <a href="http://marc.info/?l=dailydave&m=117294179528847&w=2">a dévoilé un nouveau type de brèche dans les systèmes Linux</a>. À cette époque, la mise en avant de cette faille n'a pas fait grand bruit car comme pour la découvrir, il aurait fallu déployer de trésors d'inventivité pour pouvoir l'exploiter. Il ne s'est néanmoins pas découragé et a posté <a href="http://thread.gmane.org/gmane.comp.security.full-disclosure/68469">le 16 juillet 2009</a> un autre exploit du même genre.<br />
<br />
Le problème qu'il a soulevé a été assez vite corrigé, mais cette brèche a permis à de nombreuses personnes de rechercher un nouveau type de failles. Elles se succèdent depuis à un rythme soutenu, certaines permettant de contourner les systèmes de protection supplémentaire comme SE Linux ou un paramétrage censé interdire ce type de faille. La dernière en date a fait <a href="http://www.numerama.com/magazine/13653-Linux-a-lui-aussi-ses-failles-critiques.html">le</a> <a href="http://tempsreel.nouvelobs.com/depeches/medias/multimedia/20090818.ZDN0068/faille_critique_corrigee_dans_le_noyau_linux.html">tour</a> <a href="http://www.silicon.fr/fr/news/2009/08/17/securite___le_noyau_linux_victime_d_une_nouvelle_vulnerabilite">des</a> <a href="http://www.neteco.com/294054-faille-affecte-noyau-linux.html">médias</a>, car elle affecte toutes les versions du noyau depuis la version 2.4.4, sortie en 2001.<br />
<br />
Le développeur C est habitué à vivre dans un univers dangereux et à gérer un certain nombre d'éléments <em>à la main</em> : la mémoire, les entrées/sorties et les chaînes de caractères sont les plus fréquents. Il utilise pour gérer tout cela des <strong>pointeurs</strong> vers la mémoire virtuelle de la machine, la RAM. Dans la jungle de l'informatique bas-niveau, l'une des rares vérités sur lequel pouvait s'appuyer un développeur a disparu. On pouvait normalement s'attendre à ce que l'utilisation de l'adresse NULL (de valeur 0) provoque une exception du processeur puis un crash logiciel (ou un écran bleu devenu célèbre depuis 1995).<br />
<br />
En fait, sous Linux, il est possible de charger en mémoire en tant que simple utilisateur des instructions à cette adresse 0 (NULL) via l'appel système <em>mmap</em>. De ce fait, le déférencement d'un pointeur initialisé à NULL ne provoque pas d'exception de la part de la <a href="http://fr.wikipedia.org/wiki/Unit%C3%A9_de_gestion_m%C3%A9moire">MMU</a>, puisque l'adresse 0 (NULL) est une adresse valide (suite à l'utilisation de <em>mmap</em>). Ainsi, il est possible, en détournant une variable du noyau Linux initialisée à NULL, d'exécuter du code, précédemment installé par un utilisation via l'utilisation de <em>mmap</em>, en Ring 0 - les droits noyau.<br />
<p><a href="http://www.08000linux.com/blogs/files/2009/08/null_ptr_exploit_schema.png">Shéma explicatif</a></p><br />
Et c'est là où se situe le nœud du problème : NULL, étant considéré par le développeur C comme une adresse non valide, est utilisé comme élément neutre pour les pointeurs : initialisation les pointeurs, retour d'erreur de certaines fonctions (notamment <em>malloc</em>). Le compilateur GCC fait d'ailleurs de même, pour initialiser certaines variables statiques qui sont stockées dans le segment <a href="http://en.wikipedia.org/wiki/.bss">BSS</a>.<br />
<br />
Les pointeurs se voient assignés allègrement la valeur NULL, et les cas où la présence de cette valeur n'est pas vérifiée avant un déférencement sont nombreux. Les lignes de code du noyau sont trop nombreuses pour pouvoir raisonnablement espérer que les développeurs du noyau les corrigent toutes à travers les correctifs de sécurités.<br />
<br />
Une défense qui semblait efficace consistait à modifier le paramètre situé dans <em>/proc/sys/vm/mmap_min_addr</em>. Ce paramètre permet de spécifier l'adresse minimale utilisable par les programmes. En indiquant un nombre supérieur à zéro, toutes les failles potentielles sont corrigées, sauf si la machine utilise un système de protection supplémentaire, tel que SELinux, édité par Red Hat. Un défaut dans son système de règle (policy) rendait ce paramètre inefficient et le système vulnérable.<br />
<br />
Ce défaut a été corrigé sur Fedora mais n'a pas été corrigé via des paquets sur les RHEL 4 ou 5, afin de maintenir la compatibilité descendante. Ainsi, lwn.net a noté que des machines <a href="https://bugzilla.redhat.com/show_bug.cgi?id=516949#c27">se sont déjà fait</a> <em>rooter</em> par cet exploit, dont le code source est disponible et facilement utilisable. Red Hat a ouvert <a href="http://kbase.redhat.com/faq/docs/DOC-18065">une page sur le sujet</a>, décrivant les commandes nécessaires pour rendre l'attaque inopérante sur ses systèmes d'exploitation.<br />
<br />
Néanmoins, vu le potentiel derrière cette faille, il est probable que d'autres failles de la même catégorie soient dévoilées de temps à autres.<div><a href="https://linuxfr.org/users/coren/journaux/un-autre-type-de-faille-locale.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/55693/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/un-autre-type-de-faille-locale#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/55693/comments.atomtag:linuxfr.org,2005:News/245282008-09-25T12:55:43+02:002008-09-25T12:55:43+02:00Ouverture de Tosca<div>Après 2 ans de développement interne, le code de Tosca est rendu disponible sur un serveur public, sources incluses, en licence GPLv2+.
<br />
<br />
Tosca est un outil en ligne pour gérer les appels et les demandes de ses clients. Il est tout à fait indiqué dans le cadre d'une <a href="http://fr.wikipedia.org/wiki/Tierce_Maintenance">Tierce Maintenance</a>, d'un suivi personnalisé ou quand votre messagerie électronique déborde sur plusieurs niveaux.
<br />
<br />
Il est utilisé en production depuis sa naissance par l'Open Source Software Assurance, qui a guidé son développement. Il permet de gérer des tickets/demandes, des engagements, des temps de réponses, des logiciels, des périmètres, etc.
<br />
<br />
Il a été développé avec et pour des logiciels libres. Ce qui veut dire, entre autres, que l'on peut créer et suivre un reversement sur un logiciel libre. Tosca intègre une gestion complète de ce processus et permet ainsi de savoir quelles contributions ont été réalisées et dans quel contexte.</div><ul><li>lien nᵒ 1 : <a title="http://www.tosca-project.net" hreflang="en" href="https://linuxfr.org/redirect/58847">TOSCA</a></li><li>lien nᵒ 2 : <a title="http://demo.tosca-project.net" hreflang="fr" href="https://linuxfr.org/redirect/58848">Démonstration</a></li><li>lien nᵒ 3 : <a title="http://www.ohloh.net/projects/tosca" hreflang="en" href="https://linuxfr.org/redirect/58849">Statistiques du projet</a></li><li>lien nᵒ 4 : <a title="http://www.08000linux.com" hreflang="fr" href="https://linuxfr.org/redirect/58850">Open Source Software Assurance</a></li><li>lien nᵒ 5 : <a title="http://www.08000linux.com/lstm/contributions" hreflang="en" href="https://linuxfr.org/redirect/58851">Les reversements</a></li></ul><div>Depuis quelques mois, il est utilisé par plusieurs équipes réparties sur le territoire. L'outil s'est industrialisé en conséquence et dispose désormais de fonctionnalités facilitant tant le travail d'un membre d'une équipe que celui d'un responsable ou celui des commerciaux.
<br />
<br />
C'est un outil de 7.000 lignes de code réalisé en Ruby On Rails. Il intègre de nombreux effets <a href="http://fr.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML">AJAX</a>, mais la plupart restent très discrets. Il utilise de nombreux greffons connus de l'univers <a href="http://fr.wikipedia.org/wiki/Ruby_on_Rails">RoR</a> et dispose de son propre système de greffons. Certaines fonctionnalités ne sont ainsi accessibles qu'en les installant, ce qui a permis d'adapter les dépendances requises selon les besoins. Ce système de plugin est assez intéressant et peu commun dans les applications open source utilisant cette technologie.
<br />
<br />
La population cible de cet outil est constituée essentiellement de ceux qui ne font pas ou n'aiment pas l'informatique. Il a donc été adapté en conséquence, parfois en tranchant dans le vif des fonctionnalités, pour être d'une simplicité extrême.
<br />
<br />
Pour preuve, aucun de ses utilisateurs n'a jamais demandé comment s'en servir ! (<abbr title="Note des modérateurs">NdM</abbr> : traduire par "vous êtes invités à contribuer à la documentation utilisateur qui <a href="http://redmine.tosca-project.net/wiki/tosca">reste à rédiger sur le wiki</a> ?)</div><div><a href="https://linuxfr.org/news/ouverture-de-tosca.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/23635/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/ouverture-de-tosca#comments">ouvrir dans le navigateur</a>
</p>
Michel Loiseleurhttps://linuxfr.org/nodes/23635/comments.atomtag:linuxfr.org,2005:Diary/261452008-02-13T20:57:55+01:002008-02-13T20:57:55+01:00Livre blanc de l'OSSA concernant la virtualisation sur le 08000Linux
Un livre blanc, en français, sur la virtualisation vient d’être publié sur le site de l’OSSA : l'Open Source Software Assurance. <br />
<br />
Le premier livre blanc, daté de décembre 2007, et présente un tour d’horizon des outils libres permettant la virtualisation. Il est signé Benoît DONNETTE et David HANNEQUIN. Ce document, de 61 pages, peut être téléchargé sans enregistrement et sans frais au format PDF à cette adresse : <br />
<a href="https://www.08000linux.com/public/fr/contributions">https://www.08000linux.com/public/fr/contributions</a><div><a href="https://linuxfr.org/users/coren/journaux/livre-blanc-de-lossa-concernant-la-virtualisation-sur-le-08000l.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/52540/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/coren/journaux/livre-blanc-de-lossa-concernant-la-virtualisation-sur-le-08000l#comments">ouvrir dans le navigateur</a>
</p>
Corenhttps://linuxfr.org/nodes/52540/comments.atom