mardi, juin 14, 2016

Partitionner un gros disque sous NetBSD 7 avec GPT, dkctl, wedges

Introduction

Partitionner un gros disque, c.a.d. qui est au delà des 2To, nécessite d'utiliser "autre chose" que ce bon vieux fdisk, une table des partitions classique et son MBR...

Exit donc disklabel, fdisk, newfs.

Bienvenu GPT, dkctl, drvctl et les wedges

(a wedge = un coin, comme un coin pour fendre les bûches... bravo la métaphore, on fend donc les disques en slices partitions).

Note de précaution :
Actuellement (06.2016), ces différents outils ont un comportement inconsistant, certains traduisent les noms de device automatiquement vers le raw device correspondant, d'autres non. Gardez à l'esprit que NetBSD fait la différence entre un device type /dev/wd1 (représentation logique) et son raw device type /dev/rwd1 (père, ou représentation au format brut, direct).
De plus... une "partition" correspond au raw device, la 'd'. Donc /dev/wd1d c'est le raw device.
Difficile de faire plus flou, surtout en venant de Linux... des discutions sont en cours pour simplifier tout ça, espérons que ça aboutira rapidement.

Ce post est donc autant une "note à moi même" qu'un tutorial en français et sans prétention pour le bénéfice des utilisateurs de NetBSD - fr ;)

Bref.




Voilà un petit guide pour partitionner un gros disque, ici "wd1" (soit le second disque attaché en SATA sur une configuration type amd64).


  • Effacer le début du disque
# dd if=/dev/zero of=/dev/rwd1d bs=1m count=10
10+0 records in
10+0 records out
10485760 bytes transferred in 0.025 secs (419430400 bytes/sec)


On s'adresse au disque physique, le raw device, donc c'est rwd1d car "dd" est basique et suit à la lettre les arguments que vous lui précisez, sans faire de déduction ou de traduction...

  • Créer une table GPT
# gpt create wd1

(on aurait pu faire aussi gpt create wd1d pour désigner le raw device, mais gpt fait partie des outils qui déduit tout seul le raw device d'après le nom court du device).




  • Afficher la table GPT
Juste pour vérifier, gpt show wd1 montre quelque chose comme ceci:

# gpt show wd1
  start   size  index  contents
      0      1         PMBR
      1      1         Pri GPT header
      2     32         Pri GPT table
     34  20413         <================= ici l'espace vide
  20447     32         Sec GPT table
  20479      1         Sec GPT header




  • Créer une partition avec GPT 
Une partition à au minimum un nom (ex: celui qu'on utilisera pour son point de montage), et un type de système de fichier (ffs, raid).

Ici on crée une seule partition nomée WDC3T sur tout l'espace libre:
 
# gpt add -l WDC3T -t ffs wd1

et GPT répond:

Partition 1 added, use:
        dkctl wd1 addwedge 64 20352
to create a wedge for it



Note:
Actuellement, les utilitaires de gestion de disque tels que GPT et dkctl ont on fonctionnement assez basique. Une modification de partition faite avec GPT n'est visible par dkctl qu'après un redémarrage (reboot) ou un rechargement de la table des partitions par le système (soit un on/off du device).


Donc la solution la plus simple est de redémarrer maintenant, avant de passer à la suite.
Ou logiciellement de  détacher et le ré-attacher le device wd1 (avec le gestionnaire de devices et de contrôle de bus système "drvctl"):

# drvctl -d wd1

Vous pouvez vérifier en affichant le journal "dmesg" pour voir si le disque est bien détaché, exemple:
# dmesg
<...>
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
balloon0 at xenbus0 id 0: Xen Balloon driver
balloon0: current reservation: 524288 KiB
wd1: detached <==== le disque est hors ligne


et de le ré-attacher :

# drvctl -a ata_hl -r atabus3   <==== atabus4, ou atabus3, atabus2...1 selon l'emplacement du device sur les ports SATA de votre contrôleur.


Vous pouvez afficher le journal "dmesg" pour voir ré-apparaître le device wd1, exemple:
# dmesg
ahcisata0 port 1: device present, speed: 3.0Gb/s
wd1 at atabus3 drive 0
<==== re-voilà le disque
wd1:
wd1: drive supports 16-sector PIO transfers, LBA48 addressing
wd1: 2794 GB, 5814021 cyl, 16 head, 63 sec, 512 bytes/sect x 5860533168 sectors
wd1: GPT GUID: 84068778-760f-469d-b225-994610be801f




  • Découper l'espace disque avec un coin et un grand coup de marteau (créer les wedges)
On utilise l'utilitaire de gestion des disques dkctl  (DisK ConTroL) pour créer un wedge sur la partition que nous venons de créer (WDC3T).

# dkctl wd1 makewedges

Afficher la liste des wedges, pour vérifier ce que vous venez de créer:

# dkctl wd1 listwedges
/dev/rwd1d: 1 wedge:
dk0: WDC3T, 5860533101 blocks at 34, type: ffs
 

Au passage, notez que j'ai appellé la commande avec "wd1" comme nom de device, et que dkctl en a déduit le raw device "rwd1d".
Le nom du wedge est WDC3T, cf. le nom de la partition GPT.
Le nom du device qui porte le wedge est dk0.

Heureusement, les noms de devices, de raw devices, de wedge et acronymes barbares c'est fini, à partir de maintenant vous pouvez manipuler le nom symbolique de la partition... ouf!
Ca sera donc "WDC3T" pour la suite des opérations.


  • Formater un wedge
En utilisant la commande newfs, avec les arguments habituels pour choisir un format de système de fichiers (ici fast file system v2, avec journalisation):

# newfs -O 2 NAME=WDC3T
/dev/rdk0: 2861588.5MB (5860533096 sectors) block size 32768, fragment size 4096
        using 3855 cylinder groups of 742.31MB, 23754 blks, 46848 inodes.
super-block backups (for fsck_ffs -b #) at:
192, 1520448, 3040704, 4560960, 6081216, 7601472, 9121728, 10641984, 12162240, 13682496, 15202752, 16723008, 18243264, 19763520, 21283776, 22804032, 24324288, 25844544, 27364800, 28885056,
...........
newfs répond avec le comptage habituel pour le formatage d'une partition, et en déduisant le nom du raw device crée à l'instant avec dkctl : /dev/rdk0.
On aurai donc pu utiliser le nom du device dkctl, soit newfs -O 2 /dev/dk0
  •  Monter le wedge sur un point de montage, créer une entrée dans fstab, etc...

A partir de maintenant vous pouvez manipuler le wedge (WDC3T) comme d'habitude, donc pour monter ce wedge dans /mnt/WDC3T :

# mount -o log NAME=WDC3T /mnt/WDC3T/
ou
# mount -o log /dev/dk0 /mnt/WDC3T/

# mount
/dev/wd0a on / type ffs (log, local)
kernfs on /kern type kernfs (local)
ptyfs on /dev/pts type ptyfs (local)
procfs on /proc type procfs (local)
tmpfs on /var/shm type tmpfs (local)
/dev/dk0 on /mnt/WDC3T type ffs (log, local)
<==== une petite dernière pour la route, c'est le nom du device dkctl qui s'affiche, alors qu'on pourrait préférer y voir "WDC3T"...

samedi, mai 30, 2015

Carte micro sd Kingston défectueuse et contrefaite

Voilà un petit rappel à ceux qui achètent sur de célèbres places de marché direct en Chine


Un carte Kingston 64GB Class 10 Micro SD SDHC Card with SD Adapter moins cher que chez Amazon, LDLC, Matériel.net et compagnie, port compris, ça vous dit ?



Et bien réfléchissez-y à deux fois avant d'importer ça vous mêmes pour gagner quelques % de remise sur le prix... voilà ce qui arrive:






Le message complet:

Warning: Only 59783 of 59784 MByte tested.
The media is likely to be defective.
     <== oui il l'est, ce sont quelques fichiers de photos illisibles qui m'ont mis à puce à l'oreille.
58.3 GByte OK (122435580 sectors)
2 KByte DATA LOST (4 sectors)
Details:0 KByte overwritten (0 sectors)
0 KByte slightly changed (< 8 bit/sector, 0 sectors)
2 KByte corrupted (4 sectors)
0 KByte aliased memory (0 sectors)
First error at offset: 0x0000000e27825800
Expected: 0x0000000e27825800
Found: 0x0000000e27824800

H2testw version 1.3
Writing speed: 10.9 MByte/s
Reading speed: 18.4 MByte/s

L'utilitaire H2testw (ok sous Windows 8) disponible ici http://www.heise.de/download/h2testw.html vous permettra de faire un test complet en écriture, puis vérification en lecture d'une carte mémoire comme celle-ci.

Soit l'équivalent sous linux d'un  
dd if=/dev/urandom of=/dev/le_nom_du_device_memoire_ici ; dd if=/dev/le_nom_du_device_memoire_ici of=/dev/null 
en surveillant les messages d'erreurs.
 
Un erreur que je ne referait pas deux fois...

Au fait, le site marchand en question, entièrement automatisé bien entendu, permet de faire des demandes de retours (RMA), mais plante à la dernière étape avant la validation du dossier.
Patient de nature, j'attends une réponse de leur part avant d'ajouter à cet article les photos d'écrans....

dimanche, janvier 25, 2015

PC Portable ASUS N751JK-T4199H sous Linux Xubuntu 14 LTS : epic WIN

Voilà quelques notes pour affiner un peu la configuration de Ubuntu (XUbuntu 14.04LTS) sur un portable Asus N751JK.




Tout d'abord, notez que ce portable est très bien supporté out of the box.
C.a.d. qu'il marche du premier coup pour toutes les fonctions critiques: vidéo, son, wifi et autres périphériques sont supportés de base, ici avec un noyau linux en v3.18 et les prépartions d'ubunbu 14.04lts.

Mais les perfectionnistes auront remarqué que le contrôle de la luminosité de l'écran et du rétro-éclairage du clavier ne sont pas configurés: l'appui sur Fn-clavier-petit-soleil Fn-clavier-grand-soleil, Fn-Ecran-petit-soleil et Fn-Ecran-grand soleil ne donne aucun résultat. 

Voilà comment y remédier: le principe est de lancer quelques petites commandes associées à ces raccourcis-clavier.
Dons nous allons définir dans la configuration du clavier de nouveaux raccourcis d'applications.


Dans la capture d'écran ci dessous (les paramètres systèmes d'xfce) lancer l'outil "Clavier":


Dans l'outil de configuration du clavier, puis dans l'onglet "Raccourcis d'applications":
Nous allons ajouter ceci...

  • Luminosité de l'écran: 
Ajouter la commande "/usr/bin/xbacklight -inc 10" correspondant au raccourci clavier Fn-Ecran-grand-soleil que vous presserez quand l'utilitaire de configuration vous le demandera.
Ajouter la commande "/usr/bin/xbacklight -dec 10" correspondant au raccourci clavier Fn-Ecran-petit-soleil...


  • Luminosité du rétro-éclairage du clavier:
Ajouter la commande "sudo /usr/local/bin/XF86KbdBrightnessUp.sh" correspondant au raccourci clavier Fn-clavier-grand-soleil que vous presserez quand l'utilitaire de configuration vous le demandera.
Ajouter la commande "sudo /usr/local/bin/XF86KbdBrightnessDown.sh" correspondant au raccourci clavier Fn-clavier-petit-soleil...



Maintenant, un peu de script et d'astuce pour que ça fonctionne de façon transparente...



Créez les scripts suivants pour contrôler le rétro-éclairage du clavier:

/usr/local/bin/XF86KbdBrightnessUp.sh:
#!/bin/bash
val=`cat /sys/devices/platform/asus-nb-wmi/leds/asus::kbd_backlight/brightness`
newval=`expr $val + 1`
echo $newval > /sys/devices/platform/asus-nb-wmi/leds/asus::kbd_backlight/brightness
exit 0


/usr/local/bin/XF86KbdBrightnessDown.sh:
#!/bin/bash
val=`cat /sys/devices/platform/asus-nb-wmi/leds/asus::kbd_backlight/brightness`
newval=`expr $val - 1`
echo $newval > /sys/devices/platform/asus-nb-wmi/leds/asus::kbd_backlight/brightness
exit 0




Permettez leur exécution: 
chmod +x /usr/local/bin/XF86KbdBrightnessDown.sh 
chmod +x /usr/local/bin/XF86KbdBrightnessUp.sh 



Installez l'utilitaire xbacklight pour contrôler la luminosité de l'écran:
apt-get install xbacklight (ou installez le depuis l'app store ubuntu).

Permettez l'exécution de commandes en mode super utilisateur sans resaisie de votre mot de passe (accrochez vous un petit peu, j'avais gardé le meilleur pour la fin ;)

Dans un terminal lancez visudo pour éditer le fichier de configuration de sudo, puis remplacez la ligne

# Allow members of group sudo to execute any command
%sudo    ALL=(ALL:ALL) ALL


par

 # Allow members of group sudo to execute any command
%sudo    ALL=(ALL:ALL) NOPASSWD:ALL



Ce que vous avez d'ailleurs peut-être déjà fait pour éviter de re-saisir 200 fois par jour votre mot de passe à chaque commande sudo... (au détriment de la sécurité).

Ajout d'un disque dur SSD dans un PC Portable ASUS N751JK-T4199H

Ajouter un disque SSD ou M2, ou de la RAM dans un PC Portable ASUS N751JK

Et bien en fait c'est très facile, tout se fait avec un tournevis cruciforme, au dos du portable...





Le slot de gauche est vide, et n'attend que votre nouveau disque SSD (à fixer sur le charriot métallique avec les vis fournies dans la boite du portable... et oui merci Asus, c'est à ça que servent les 4 petites vis courtes dans un sachez, qui ont l'air d'être oubliées là ;)

Notez au passage les deux banques de mémoire vive, et le slot au centre pour le disque SSD M.2 ... qui va rejoindre les glorieux produits style betamax, les souris PS/2 et autres cartes MCA aux oubliettes (message subliminal : n'achetez pas, contentez vous des disques SSD au format 2"5).

Dominer le boot d'un PC Portable ASUS N751JK-T4199H ("bios" UEFI)

Paramétrage du boot & UEFI sur un portable ASUS


Soyons clair, votre portable livré sous Windows avec son "bios" UEFI,  est un parfait produit... alliance de grands groupes Américains, Coréens, de lobbys de l'édition et autres acteurs de l'informatique moderne... pour vous enfermer dans le rôle de con$omateur qu'on attend de vous.


En deux lignes:

  1. Libérez le démarrage pour les systèmes d'exploitations alternatifs (désactivez le secure boot UEFI).
  2. Permettez à l'UEFI d'amorcer des systèmes en mode compatibilité avec le bon vieux BIOS... (CSM) et choisissez l'ordre de démarrage.

Voilà quelques notes pour vous y aider:

1. Libérez le démarrage pour les systèmes d'exploitations alternatifs.

Portable éteint, allumez le et très rapidement restez appuyé sur la touche F2.
Vous allez entrer dans l'écran bleu de configuration du bios (enfin maintenant il faut dire le "Aptio Setup Utility").


Dans le menu Security, puis Secure Boot Menu choisissez Secure Boot Control = Disabled:






2. Permettez à l'UEFI d'amorcer des systèmes sur différents disques et clés USB:

Dans le menu Boot choisissez Launch CSM = Enabled pour pouvoir booter sur une image ISO, un DVD ou une clé USB contenant Linux par exemple :

Note au passage, si l'image d'installation de linux que vous avez est très récente elle contiens peut-être de quoi booter sur un système UEFI.

Prenez soin ensuite de classer les disques par ordre de préférence pour le démarrage.
Par exemple Boot Option #1 = clé usb, #2 = DVD, #3 = disque dur/ssd ... selon que vous soyez en phase d'installation, ou de fonctionnement normal vous pouvez changer ces priorités et gagner du temps au démarrage.

dimanche, janvier 12, 2014

Economisez les écritures sur la SDCard de votre Raspberri Pi (sous NetBSD)

Voilà en pratique, ce que j'utilise pour économiser les écritures, et éviter de dégrader trop vite la SDCard (ou la clé USB) de mon RPI.

  • Montage de /tmp, /var/run et /var/log en mémoire plutôt que direct sur disque:

1. Editer le fichier /etc/fstab comme suit (ne touchez pas aux lignes en italique, elles peuvent être différentes sur votre RPI, regardez les lignes en bleu):

# NetBSD /targetroot/etc/fstab
# See /usr/share/examples/fstab/ for more examples.
/dev/ld0a        /        ffs      rw,noatime,nodevmtime    1 1

/dev/ld0b        none     swap     sw,dp                    0 0
/dev/ld0e        /boot    msdos    rw                       0 0
kernfs           /kern    kernfs   rw
ptyfs            /dev/pts ptyfs    rw
procfs           /proc    procfs   rw
/dev/cd0a        /cdrom   cd9660   ro,noauto

#M# Un TMPFS pour /var/run /var/log
tmpfs            /var/shm    tmpfs    rw,-m1777,-sram%5
tmpfs            /var/log    tmpfs    rw,-sram%10
tmpfs            /var/run    tmpfs    rw,-sram%


2. Créer un script de peuplement de /var/log et le lancer au démarrage:

Le répertoire /var/log étant désormais (enfin, au prochain reboot) en mémoire vive, il sera effacé à chaque redémarrage. Donc un script de peuplement doit être créé, et lancé à chaque démarrage avant le lancement des différents démons. Ce qui implique que vous n'utiliserez pas rc.conf pour contrôler les démons, mais que vous séquencerez le démarrage dans /etc/rc.local (le pilote de lancement des programmes, démons, et paramètres locaux).

Donc dans /etc/rc/conf, paramétrez "syslogd=NO" (si ce n'est pas déjà fait), et chassez les démons (services) que vous avez ajouté et qui sont à YES pour les passer à NO. Vous les lancerez plus tard via rc.local.

Dans /etc/rc.local (voir les lignes en bleu):
#    $NetBSD: rc.local,v 1.32 2008/06/11 17:14:52 perry Exp $
#    originally from: @(#)rc.local    8.3 (Berkeley) 4/28/94
#
# This file is (nearly) the last thing invoked by /etc/rc during a
# normal boot, via /etc/rc.d/local.
#
# It is intended to be edited locally to add site-specific boot-time
# actions, such as starting locally installed daemons.
#
# An alternative option is to create site-specific /etc/rc.d scripts.
#

echo -n 'Starting local daemons:'

# Add your local daemons here, eg:
#
#if [ -x /path/to/daemon ]; then
#    /path/to/daemon args
#fi

echo '.'

#M# Peupler /var/log et lancer à la main

/usr/local/bin/pop_var_tmpfs.sh 
/etc/rc.d/syslogd onestart



Et voilà le contenu du script pop_var_tmpfs.sh à placer dans /usr/local/bin/ (il vous faudra créer ces répertoires: mkdir /usr/local ; mkdir /usr/local/bin): Cliquez ici pour le télécharger.

#!/bin/sh
ROOT_DIR=/var
wheel_files="authlog cron lpd-errs maillog messages rdist secure xferlog"
utmp_files="lastlog lastlogx wtmp wtmpx"
run_dirs="dovecot lvm"
vartmp_dirs="vi.recover"
wheel_dirs="rdist"

echo -n "Mking tmp root dirs..."
mkdir $ROOT_DIR/log/tmp
chmod 777 $ROOT_DIR/log/tmp
chmod +t  $ROOT_DIR/log/tmp
echo "done."

echo -n "Mking symlinks..."
[ -e /tmp ] || ln -s /var/log/tmp /tmp
[ -e /var/tmp ] || ln -s /var/log/tmp /var/tmp
echo "done"

if [ ! -d $ROOT_DIR ]; then
  echo "$ROOT_DIR not found"
  exit 1
fi

echo -n "Populating $ROOT_DIR..."

for dir in $wheel_dirs; do
  mkdir $ROOT_DIR/log/$dir
  chown root:wheel $ROOT_DIR/log/$dir
  echo -n "[d]$dir..."
done

for file in $wheel_files; do
  touch $ROOT_DIR/log/$file
  chown root:wheel $ROOT_DIR/log/$file
  chmod 600        $ROOT_DIR/log/$file
  echo -n "[f]$file..."
done

for file in $utmp_files; do
  touch $ROOT_DIR/log/$file
  chown root:utmp $ROOT_DIR/log/$file
  chmod 600       $ROOT_DIR/log/$file
  echo -n "[f]$file..."
done

for dir in $run_dirs; do
  mkdir $ROOT_DIR/run/$dir
  chown root:wheel $ROOT_DIR/run/$dir
  echo -n "[d]$dir..."
done

for dir in $vartmp_dirs; do
  mkdir $ROOT_DIR/tmp/$dir
  chown root:wheel $ROOT_DIR/tmp/$dir
  chmod 777 $ROOT_DIR/tmp/$dir
  echo -n "[d]$dir..."
done

echo "done."


Puis chmod +x /usr/local/bin/pop_var_tmpfs.sh pour qu'il soit eXécutable bien sur...

  • Lister les fichiers ouverts en écriture ou lecture/écriture sous NetBSD:

Le script showDiskWrites.sh (cliquez ici pour le télécharger) fait un peu de tri dans la sortie de la conmmande fstat pour ne montrer que les fichiers ouverts intéressants:

#!/bin/sh
#
# Show files open on "write" ou "read/write" mode on a NetBSD system.
#
# Mathieu Lubrano
# (BSD licence, 2013).
#
fstat | grep -v "/dev" | grep -v null | grep -v console | grep -v pipe > /tmp/fstat.tmp
cat /tmp/fstat.tmp | grep ".*w$"
cat /tmp/fstat.tmp | grep " w "
rm -f /tmp/fstat.tmp


Et oui, ce script écrit dans un fichier temporaire dans /tmp... donc dans un monde idéal, vous avez un /tmp en tmpfs ;-)

dimanche, mai 12, 2013

Installation de NetBSD (evbarm) sur un Raspberry Pi


Voilà une recette de cuisine pour installer NetBSD sur un Raspberry Pi modèle B (v2, 512Mo), en Français.



Tout ceci est largement inspiré de ce post de la mailing list port-arm NetBSD et cet article sur le wiki de NetBSD.org mais illustré de quelques photos d'écrans, et poussé un peu plus loin qu'un simple boot, l'idée étant d'arriver à un système utilisable en mode texte (avec le "userland").

Tout ce déroulé suppose que vous utilisez votre RPI sans clavier/écran, donc simplement branché au réseau. 
C'est la "méthode dure"... qui vous rappellera l'Informatique des années 80. 
La "méthode douce" consiste à brancher un clavier/écran (via la sortie RCA, pour donner une seconde vie à votre téléviseur cathodique si branché à un adaptateur RCA-Péritel ou direct RCA, ou via la sortie HDMI sur votre écran LED 16/9ème 24 pouces...).

  • Pré-requis:
    • Un accès internet,
    • Un serveur DHCP (votre Livebox, Freebox ou autre le fait très bien),
    • Un logiciel pour flasher l'image d'installation sur une carte mémoire SDCard (ex: USBWriter
    • Une image d'installation de NetBSD pour Raspberry (ex: allez sur http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/ puis choisissez le répertoire le plus récent, par exemple au moment de l'écriture de ce billet c'est 201305102100Z puis continuez pour aller dans evbarm/binary/gzimg/ pour télécharger le fichier rpi_inst.img.gz Soit au final un lien de téléchargement qui ressemble à ça : http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201305102100Z/evbarm/binary/gzimg/rpi_inst.img.gz )
    • Un client ssh pour se connecter en mode texte à NetBSD/Raspberry (ex: putty).

  • Liste de matériel: Exemple ICI sur Amazon.fr
    • 1 carte mère Raspberry Pi modèle B
    • 1 carte mémoire SDCard (ou micro sd avec son adaptateur)
    • 1 boitier pour un peu de sécurité vs les chocs électriques

  • Flash de l'image d'installation sur la SDCard 
    • Dézipper rp_inst.img.gz (ex : avec winrar sous windows).
    • Flasher rp_inst.img sur la SDCard (attention à ne pas confondre les noms de lecteurs ou d'unités où vous allez déposer l'image, visez bien la SDCard !)

  • Boot sur l'image d'installation
    • Connecter la SDCard sur le Raspberry
    • Connecter le Raspberry au réseau, et éventuellement à un écran ou télé en HDMI si vous voulez voir ce qui se passe
    • Allumer le Raspberry et retrouver l'adresse IP que votre serveur DHCP (box) lui a attribué
    • Se connecter en ssh à cette adresse avec l'utilisateur "sysinst" mot de passe "netbsd"
Voilà, arrivé ici normalement vous êtes sur l'écran d’accueil de l'installeur NetBSD. 
Vous avez fait ce qui diffère le plus d'une installation sur un PC ou serveur "classique", le reste devrait paraître assez facile.
  • Etapes d'installation 
    • Voilà quelques copies d'écran intéressantes pendant la phase d'installation
La table des partitions, à la mode BSD ça donne ceci, une partition dos (/boot) suite au flashage de l'image d'installation sur votre SDCard, et le reste dédié à NetBSD:



La carte SDCard est le device "ld0", si comme moi vous avez en plus mis une clé USB (Kingston) vous verrez un autre device "sd0" mais ne le choisisez pas, le firmware du Raspberry amorse le système d'exploitation depuis la SDCard...

Installation type "b", en mode texte uniquement (choix personnel)

Géométrie: garder les valeurs par défaut


Etape intéressante: le partitionnement.
Ici un gros / un petit swap et un /tmp en mémoire.
En fait il faudrait se passer de la partition de swap, pour éviter de trop écrire et donc d'user la carte mémoire (chaque écriture endommage petit à petit les mémoires flash/ssd/usb etc... c'est comme ça :-(
Et /tmp sera de type mfs (Memory File System, donc prendra un peu de votre précieuse RAM pour y créer une partition éphémère). 
Pour éviter de faire trop d'accès en écriture sur la carte mémoire, monter les volumes avec les options suivantes: noatime, nodevmtime (sur le /).
Notez qu'il faut laisser la partition /boot tel quel, au format msdos, qui est nécessaire pour que le firmware du Raspberry puisse ammorcer le système.

Il vous faudra indiquer où sont les paquets d'installation en cohérence avec la version que vous installez, soit dans cet exemple:



Après un petit moment (téléchargement, install, etc...), lorsque l'installeur est terminé vous rebootez et si tout s'est bien passé vous pouvez vous connecter au système:

  • Etapes supplémentaires
Définir la variable PKG_PATH qui permet de faire pointer le gestionnaire de paquets vers un dépot adéquat, ex pour la version 6.1 actuelle:
export PKG_PATH="ftp://ftp.fr.netbsd.org/pub/pkgsrc/packages/NetBSD/evbarm/6.1/All/

Gagner un peu de mémoire vive (RAM) si vous n'utilisez votre Raspberry qu'a distance, en déplaçant la limite du partage CPU/GPU de la mémoire, qui par défaut est à 64Mb (64Mb pour le GPU -carte graphique- et 512-64=448Mb pour le CPU et donc l'OS, NetBSD...).
Cette petite quantité de mémoire n'est pas forcément cruciale, tant NetBSD est resté économique face à une installation Linux classique aujourd'hui (là je regarde vers CentOS et consort, et je ne pense même pas, non, à Windows Serveur 2012 ;-). Mais, rappelez-vous que vous devez éviter à tout prix d'utiliser la partition de swap (cf. la SDCard). 
Donc voilà :
    echo "gpu_mem=16" >> /boot/config.txt

Le "Userland" : Commencer à télécharger les paquets qui vous sont utiles. La commande est "pkg_add ", qui par analogie avec les dépôts (repository) sous Linux, se base sur pkgsrc. Pour  vous faciliter la vie installez en premier le programme "pkgin" qui est un gestionnaire un peu moins rustique que les commandes de base de gestion des paquets, soit "pkg_add pkgin" puis un petit "pkgin --help" vous montrera quoi faire (ex: "pkgin avail" liste tous les paquets disponibles et pré-compilés pour votre Raspberry, soit 4366 actuellement).
Je recommande "pkgin install wget nano free vim lynx irssi screen bash curl sudo" pour que vous retrouviez un environnement familier à la Linux. Après ça lancez /usr/pkg/bin/bash et vous comprendrez ;-)

Eviter de trop écrire sur la SDCard: Déplacer /var/log dans un mfs (tmpfs) donc en mémoire, ou comme moi pour aller au plus simple en attendant, arrêter quelques démons et tâches automatisées (cronées):
  syslogd: echo "syslogd=NO" >> /etc/rc.conf 
  la mise à jour des manpages: echo "manpagedb=NO" >> /etc/rc.conf 
  la création des core dump : echo "savecore=NO" >> /etc/rc.conf 
  la création de fichier de récupération sous VI : echo "virecover=NO" >> /etc/rc.conf

Forcer la réparation (si nécessaire) du système de fichier au démarrage, pour améliorer la résilience du système, car dans la le cas où votre RPI est utilisé sans clavier/écran, il restera figé au démarrage dans l'attente de votre action manuelle pour réparer le système de fichier. Alors qu'en paramétrant dans rc.conf la variable fsck_flags comme ceci, vous répondez "yes" aux questions posées par l'fsck lancé au démarrage :
  echo "fsck_flags="-P -p -y" >> /etc/rc.conf

Amusez vous bien, et ne restez pas bloqué à la première difficulté : NetBSD est un projet très bien documenté, un système très concis donc à la fois simple d'accès mais peu "assisté". 
Les manpages remplaceront avantageusement les wizards et autres assistants, qui font tout et souvent n'importe quoi.

dimanche, février 05, 2012

Photos du montage MiniMax

 Voilà quelques photos en cours de montage...


Quand vous déballez, ne faites pas ça ! Ne mélanges pas les transistors destinés aux tubes et ceux destinés à l'étage de sortie... Ici "heureusement" je les ai déballés en les posant les uns après les autres, donc retour chacun dans son sachet d'origine.

Imprimer un peu de doc, et un schéma en grand format ça aide... d'autant qu'on peut facilement confondre les petites résistances (pas de code de couleur, une échelle logarithmique à la place...). A souder impérativement face vers le haut pour pouvoir se relire "au cas où". 
En fait, une fois les petits composants posés, ça va assez vite. Prenez garde à ne pas trop accélérer quand même...




Un survol en vidéo....
 


Et si vous vous demandez encore si les tubes rougissent (sans leds montées dessous ;-). Le verre reste tiède.




Voilà... le mien est fini. Il est en cours de rodage (tubes NOS ;) mais sonne très, très bien. Un rapport qualité/prix exceptionnel à mon humble avis.

Plutôt que de poursuivre des chimères, en allant sur ebay acheter un unbelivable tube haedphone amplfier, port gratuit, dans la boutique de DragonVViner4000, faites le vous même!




Donc merci à trois personnalités de l'audio et du DIY
  •  Pete Millett, Colin Toole  et Thomas Blanchar pour le kit du MiniMax Hybrid Tube Amplifier.

Alimenter le MiniMax en France (Europe)


S'il semble facile de trouver des transformateurs 110VAC - 24VAC, c'est moins évident en France et visiblement ailleurs en Europe, où vous trouverez 15 à la douzaine de transfos chinois 220VAC - 24VDC... mais pas de 24VAC en sortie.

24VDC = 24Volts en continu, 24VAC = 24Vots en alternatif. Pourquoi cette particularité ? et bien tout simplement parce qu'une alimentation de mauvaise qualité peut engendrer du bruit, des défauts nuisibles à la qualité d'écoute fournie par un appareil audio(phile).

Chez Farnell, Electronique-diffusion & cie c'est un peu la famine... à moins de vouloir faire l'alimentation vous mêmes en utilisant un bloc transformateur (mais attention à l'isolation, aux protections que vous devez ajouter etc.).

Cherchez du côté des kits pour installations par panneaux solaires, dans la boutique d'électronique de votre ville si vous avez la chance (!) qu'il en reste une, chez les boutiques qui vendent des solutions de vidéo surveillance (les caméra boules, les caméras de vidéo-surveillance aiment bien le 24VAC).

Planette-Domotique.com propose un modèle compatible ref. ADP2420, mais apparemment pas protégé contre les courts-circuits & cie, mais donné pour 2000mA ! Vous trouverez cette référence (OEM Chinois) chez d'autres vendeurs s'il venait à disparaître ici.



Mon conseil:
Prenez ce modèle PS2410AC de Velleman chez wigi.fr qui fait déjà 1000mA et qui est protégé contres les "problèmes" électriques courants (double isolation, anti CC...). 
Bonus: il n'est pas cher, et la prise moulée rentre impeccablement dans la prise d'alimentation fournie par Beezard.

A l'utilisation, à l'écoute, le silence est d'or avec ce bloc alim, qui reste à peine tiède après quelques heures.

mercredi, février 01, 2012

Construction du MiniMax de P.Millett

L'ampli à tubes "MiniMax" est un hybride: préamplificateur à tubes, et transistors en classe A.

Le design original est l’œuvre de Pete Millett, déjà l'auteur de nombre de montages audiophiles (entre autres les très connu Starving Student Amplifier).

Toujours dans une recherche de "son typé tubes" avec un minimum de risque, cette fois j’attends beaucoup en qualité de ce petit ampli... Commandé en kit chez Beezar.com, où Thomas Blanchard fait un travail incroyable pour la préparation du kit, et dans la plus grande simplicité. Colin Toole à quand à lui réalisé le PCB (en bleu ci-dessous).

Quelques photos, auto-explicatives...
 Le kit vu de dessus, avec une pièce de 1Euro pour l'échelle. Commencez par peupler les composants les plus petits bien sur...

 L'ensemble des éléments, quelques minutes après le déballage du colis (particulièrement bien préparé) reçu par la Poste. Notez les petits sachets, ils sont étiquetés avec la zone où ils vont se monter, et la nomenclature. Le tableau excel de l'inventaire et les consignes spécifiques aux composants actuellement livrés sont un vrai plus pour comprendre ce que vous faites.

Ca, ce sont deux tubes... Bendix 12FK6 pour les applications radio/télévision fait aux USA, probablement plus vieux que votre maison (ou que votre Maitresse ;=)