HP1920G, le switch pourris haut de gamme.

 Sans catégorie  Commentaires fermés sur HP1920G, le switch pourris haut de gamme.
Mar 052016
 

Le HP1810 n’étant plus aisément disponible, je me procure un HP1920. A priori nettement mieux. A priori il fait le routage statique, DHCP, 802.1X et surtout il a un vrai port console pour pousser la conf vite fait.

2H plus tard… Aie !

Alors la console, comment dire :

User view commands:
  initialize  Delete the startup configuration file and reboot system
  ipsetup     Assign an IP address to VLAN-interface 1
  password    Specify password of local user
  ping        Ping function
  quit        Exit from current command view
  reboot      Reboot system/board/card
  summary     Display summary information of the device.
  telnet      Establish one TELNET connection
  upgrade     Upgrade the system boot file or the Boot ROM program

C’est tout ? ou est-ce qu’on configure les interfaces ?
Ah!
Peut être qu’il y a une gestion de droit halacon et que le « manager » c’est moins que « configure »…
Ah bah non, y’en a encore moins.

Mode visiteur, juste pour rire ?

Username:ouioui
Password:
?
User view commands:
  ping    Ping function 
  quit    Exit from current command view
  telnet  Establish one TELNET connection 

Trololol!!!!

Bon ça sert à rien.

Accessoirement, le truc met 2 ans à booter, l’interface web est super peu réactive (chiant vu qu’on peut rien faire sans elle) et pour couronner le tout, coté design, l’ergonomie est largement plus mauvaise que celle de la majorité des switchs d’entrée de gamme !

J’ai l’impression qu’on s’est moqué de moi !
GRRRRRRRRRRRRRRR !

Ajout :

Trouvé au hasard du net, il existe un mode « developpeur »
qui s’active avec la commande

_cmdline-mode on

Le mot de passe est en dur dans le firmware et ne s’invente pas
Pour la version que j’ai actuellement (jg923a-cmw520-r1111.bin)
le mot des passe est

Jinhua1920unauthorized

après le mode developpeur, il est pas franchement sexy ni intuitif.
mais c’est mieux que rien

Segments de mémoire sur microcontroleur AVR

 Sans catégorie  Commentaires fermés sur Segments de mémoire sur microcontroleur AVR
Oct 072015
 

Je précise que ce qui suit est principalement valable pour les programmes compilés avec GCC pour microcontroleur AVR 8Bit, plus particulièrement le Atmega328

Un programme se découpe en différents segments de mémoire qui sont principalement

  • .text : Le programme lui-même
    • .text.startup : Le « startup-code »
    • .text.exit : Le « exit-code » theoriquement jamais appelé
  • .data : Les données statiques initialisées
  • .bss : Les données statiques non-initialisées

ainsi que de segments spécifiques qui sont

  • .rodata : Les données statiques constantes en ram
  • .progmem.data : Les données statiques constantes en rom
  • .user_heap_stack : Les données allouées dynamiquement ( malloc() )

.text contient le code du programme, les opcodes, les instructions. et finira gravée dans la flash du microcontroleur.
par exemple

void foo()
{   //do something
}

Une confusion courante viens du fait que « .text » est souvent assimilé à « flash » ce qui n’est pas complètement faux mais très réducteur.
Un affichage au format Berkley montrera dans la colonne .text une fusion de .progmem.data
Le format d’affichage le plus fiable est le format SysV

.bss Est le segment qui contient les variables globales ou statiques non initialisées.
par exemple

int32_t myGlobal;

ou

void foo(){
static int32_t myLocalStaticVar;
}

Il faut voir .bss comme le grand tableau d’allocation statique des variables.
A noter que généralement le segment .bss est rempli de zero par le startupcode mais ce n’est pas garanti que ce soit toujours le cas.

.data contient les données statiques INITIALISEES du programme,
Par exemple

int32_t myVar = 0x12345678;

ou

void foo(){
static int32_t myLocalStaticVar = 0x12345678;
}

Très similaire à .bss mais pour les variables initialisées.
Ces variables globales ou statiques sont situées dans le segment .data (leur adresse statique) et la valeur d’initialisation 0x12345678; est une constante située dans la flash. Cette valeur d’initialisation sera copiée en RAM dans le startup code.
En bref cette variable prend 2 fois de la place : une fois en ram pour être utilisée et une fois en rom pour la valeur d’initialisation.
A noter que la valeur d’initialisation n’est généralement pas comptée dans .text (encore une fois ça dépends de l’outil) et que pour calculer la quantité de flash réellement utilisée il faut ajouter .text et .data

.bss et .data sont sensiblement identiques dans leur usage. Les deux contiennent des données globales statiques (peu importe leur visibilité globale ou locale).
Cependant elles sont séparées pour que le startup code puisse faire toutes les initialisations en une seule fois.
(en copiant tout le segment .data d’un coup et en couvrant de 0x00 tout le segment .bss d’un coup).

.rodata est une spécificité liée à l’architecture harvard des cpu AVR qui concerne les données constantes.
Par exemple

const char greeting[] = "Bonjour, Comment allez vous ?"

Normalement, cette chaine de caractères serait dans l’espace programme : la section .text
Sauf que .text est en rom et que les CPU AVR ne peuvent pas lire leur ROM de la même façon qu’ils lisent leur RAM. (Ce n’est pas un grand espace d’adresse unifié)
De ce fait, les données constantes doivent être copiées en ram de la même façon que les variables initialisées (une constante a forcément une valeur initiale) dans la section .data.
Sauf que comme ces données sont constantes on leur fait une section à elles nommée .rodata.

Cette section constitue un gaspillage de ram considérable sur des valeurs potentiellement volumineuses.
C’est pourquoi on essaie de stocker les valeurs constantes en ROM quitte a avoir une procédure d’accès un peu complexe et plus lourde, d’où la section suivante.

.progmem.data est une zone de flash que certains outils considèrent un sous section de .text, ce qui peut donner lieu à des confusions. Encore une fois, utiliser le format d’affichage sysV

avr-size -A fichier.o [...]

C’est moins beau que l’affichage en colonne Berkley mais c’est plus fiable.
Les données sont déclarées de la façon suivante

const char greeting[] __attribute__ ((progmem)) = "Bonjour, Comment allez vous ?"

ou plus simplement

const char greeting[] PROGMEM = "Bonjour, Comment allez vous ?"

De cette façon la constante sera stockée en flash sans aller dans l’infâme section .rodata
Attention : le (const char *) résultant est du même type que si la constante était dans .rodata mais on ne peut pas la lire directement

greeting[0] != 'B' // ou alors par hasard

la lecture se fait à l’aide d’une fonction de la librairie standard avr

pgm_read_byte(greeting)

Les opérations sur le pointeur telles que incrémentation/décrémentation restent valides.
on pourra par exemple faire

pgm_read_byte( &(greeting[10]) )

ou

pgm_read_byte( greeting+10 )

ça tient toujours compte automatiquement compte de sizeof()
par exemple

const uint16_t table[] PROGMEM = { 0x1234 , 0xBABE, 0xFACE, 0xDEAD, 0xBEEF, 0x5678 };

pgm_read_word( table + 2 ); //renvoie bien 0xFACE et non pas 0xBABE
pgm_read_word( &(table[2]) ); //pareil

Bien choisir ses condensateurs

 Sans catégorie  Commentaires fermés sur Bien choisir ses condensateurs
Mai 212015
 

Condensateurs électrolytiques :

Techniquement
– grande capacités de stockage mais avec forte tolérance.
– tension de claquage faible.
– Polarisé.
– grande résistance en série
– relativement faible résistance parallèle
– grande inductance série.
– Vieillissent mal à haute température.
En conclusion :
– quand une grande capacité de stockage est nécessaire ;
– lorsqu’un condensateur parfait n’est pas nécessaire ;
– une mauvaise réponse aux hautes fréquences, un grande tolérance.
Ils vieillissent mal surtout à haute température.

Condensateurs électrolytiques au tantale :
Techniquement
– résistance série (ESR) réduite ;
– faibles inductances série ;
– faibles résonances ;
– pas de dégradation dans le temps, en stockage ou en utilisation ;
– Polarisé.
– tension de claquage (très) faible.
– légère non-linéarité (distortion du signal)
– risque d’explosion en cas de dépassement du courant max.
En conclusion :
– Excellents pour le filtrage d’alimentations à découpage (HF) ou pour le découplage d’elements nécessitant de fortes capacités.
– Attention à la tenue en température. (Imax)

Céramique
Techniquement
– capacités faibles.
– très grande résistance parallèle
– inductance série extrêmement faible
– capacité très sensible à la température
Conclusion
haute fréquence
haute tension
Les X7R (les plus courants) sont généralistes.
Les C0G ou NP0 on une meilleurs stabilité de capa selon la température mais sont plus chers et plus volumineux.
Les Y4T et Z5U ont de meilleures capacités mais fluctuent encore plus avec la température. Ils ont bien adaptés au découplage de circuits numériques.

Polyester
– vieillissent bien
– faible bruit
– plutot BF

Polystyrène
– très stables
– pas de bruit.
– précis
– volumineux est chers

Polypropylène
résistance série très faible et admettent donc des courants efficaces importants
volumineux pour leur capacité
très utilisés en audio et dans les applications impulsionnelles (alimentations à découpage, circuits d’aide à la commutation, etc.)

Pour les détails : voir wikipedia/Condensateur

Raspberry Pi Boot sequence

 Sans catégorie  Commentaires fermés sur Raspberry Pi Boot sequence
Mai 162015
 

De façon contre-intuitive, le CPU ARM1176JZF-S 700 MHz du SoC (system on a chip) Broadcom BCM2835 de la Raspberry Pi ne démarre pas immédiatement à l’allumage.
Le processeur est en réalité tenu à RESET.

C’est le GPU (VideoCore IV) contennu dans ce même SoC qui va se charger de la sequence de boot.

Le « first stage bootloader » est donc chargé depuis une ROM du SoC.
A ma connaissance cette ROM n’est pas « flashable » ou alors la procédure qui le permet n’est pas publiques.
Ce « first stage bootloader » est capable de charger et executer le « second stage bootloader » qui doit impérativement être le fichier nommé « bootcode.bin » situé sur la permière partition de la SD-Card, (ou de la eMMC embarquée sur le computemodule) laquelle doit être un système de fichier FAT32 ou FAT16.

Le « second stage bootloader » (bootcode.bin) est toujours executé par le GPU VideoCore. La seule différence avec le first-stage est qu’on est plus sur quelque chose de complètement figé (rom). Il charge le « third stage bootloader » « start.elf. »

C’est là que ça commence a devenir intéressant.
Le « third stage bootloader » (start.elf) commence par lire le fichier config.txt.
Ce fichier contient les paramètres de fonfiguration pour le GPU ( modes HDMI, mapping mémoire, load addresses, device tree, uart/console baud rates etc).

Ensuite, le « third stage bootloader » va charger « kernel.img » dans la mémoire du processeur ARM et lui passer en paramètres le contennu de cmdline.txt.

C’est alors et seulement alors que le RESET du CPU est relaché.

A ce moment le kernel doit démarrer…

A noter que le système ne permet pas de charger des noyaux avec initialramdisk.
Tous les elements nécessaires au boot (et en particulier au montage du filesystem) doivent être compilés « en dur » dans le noyau.

Note : Il existe plusieurs déclinaisons du « third stage bootloader » selon la configuration et en particulier selon le split mémoire. (par exemple la version « cut-down » si on a configuré seulement 16Mo pour le GPU.)

liste des fichier de /boot

bcm2708-rpi-b.dtb Hardware definition file used by bootloader (Device Tree Binary)
bcm2708-rpi-b-plus.dtb Hardware definition file used by bootloader (Device Tree Binary)
bcm2709-rpi-2-b.dtb Hardware definition file used by bootloader (Device Tree Binary)
bootcode.bin Seccond stage bootloader
cmdline.txt Arguments passed to the kernel
config.txt Configuration of third stage bootloader
COPYING.linux Legal / no technical use
fixup_cd.dat bugfixes used by bootloader (need more info)
fixup.dat bugfixes used by bootloader (need more info)
fixup_db.dat bugfixes used by bootloader (need more info)
fixup_x.dat bugfixes used by bootloader (need more info)
issue.txt Legal / no technical use ( to be confirmed)
kernel7.img Linux image for ARM7 (raspiB+)
kernel.img Linux image for ARM6 (normal)
LICENCE.broadcom Legal / no technical use
overlays subdir with Hardware definition files (Device Tree Binary)
start_cd.elf cut-down version of third stage bootloader (for low memory configs)
start_db.elf special version of third stage bootloader (need more info)
start.elf Third stage bootloader
start_x.elf special version of third stage bootloader (need more info)

Router n’importe où un bloc d’IP dedibox.

 Sans catégorie  Commentaires fermés sur Router n’importe où un bloc d’IP dedibox.
Juin 302014
 

Online.net permet depuis peu de réserver des « IP failover » consécutives sous forme d’un bloc /27.

Avec l’arrivée de l’internet à 100 ou 200Mbits chez le particulier via FTTH, il peut parfois être intéressant d’avoir un serveur chez soi où on peut faire des trucs exotiques qui ne seraient pas faisables ou en tout cas très couteux à faire en datacenter. Mais le problème, c’est qu’avec ce type de connexion, on est systématiquement derrière une box et donc sans IP publique.
Pire, certains opérateurs portant le nom d’un agrume vous forcent à changer d’IP toutes les 24H, ce qui est juste intolérable pour un usage sérieux. (mais j’imagine que c’est fait exprès histoire de vendre les contrats « pro ».)

Voici donc un tuto pour avoir son bloc /27 sur son petit switch à la maison.

1°) Routage ou bridge ?

La question a une certaine importance et, après étude, la réponse est qu’il faut clairement faire du routage même si l’infrastructure est plus compliquée à mettre en place.
Le bridge aurait certainement été la méthode la plus simple pour démarrer mais elle pose des tas de limitations que je vais énumérer tout de suite histoire de bien vous convaincre qu’il faut faire du routage. Tout d’abord, avec un ethernet bridge, on va faire passer dans le tunnel tout le traffic de merde des voisin (dont les broadcast et les requetes ARP, mDNS, NDP, DHCP et toutes ces choses qui font du traffic inutile) Il suffit qu’il y ait quelques machines « sales » dans le réseau de online.net (et y’en a) pour se faire polluer le tunnel avec tout un tas de paquets qui sont à minima inutiles sinon potentiellement néfastes. C’est vrai que si on dispose de 100 ou 200Mbps et c’est confort, mais c’est finalement peu vis à vis du réseau qu’il y a à l’autre bout.
Ensuite, avec un ethernet bridge, il va falloir montrer patte blanche en prenant bien garde à ne diffuser QUE les couples ip/mac autorisées. Ca signifie en particulier que si on et qu’on est pas hyper rigoureux sur le segment réseau ou tout simplement qu’on omet de maquiller la mac des machines physiques en mac « virtuelles », il y a moyen de se faire accuser de spoofing et de se faire désactiver son port réseau. C’est moche! Très moche! Mais l’hébergeur aura raison de le faire.
Enfin, coté performances, en encapsulant dans le tunnel des paquets ethernet plutot que des paquets IP on ajoute à chaque paquet un header de 18 octets, ce qui revient à réduire la MTU d’autant. En pratique, ça signifie un peu d’overhead (+2%) mais surtout une augmentation de la fragmentation et du nombre de paquets donc une dégradation des performances en particulier en ce qui concerne les latences.
Vous voyez bien qu’il faut faire du routage !

2°) Le lien VPN

Comme on va s’interconnecter à l’aide d’une liaison grand public et probablement via une box d’opérateur qui fait du NAT (et certainement un peu de magie noire genre Qos), il y a de fortes chances pour que les protocoles de tunelling « simples » comme GRE ou éventuellement IPSEC ne passent pas ou très mal. Par ailleurs l’IP publique ce cette connexion est susceptible de changer, ce qui signifie qu’on sera contraint d’adopter un fonctionnement en mode client-serveur et non d’égal à égal.
L’idéal est donc de travailler avec une couche transport client-serveur réputée pour bien traverser le nat à savoir les incontournables TCP et UDP. Si l’opérateur respecte le principe de neutralité de l’internet (gare au troll velu) il faut préférer UDP qui a l’avantage d’être un protocole non-connecté qui laisse aux connexions transportées le soin de gérer elle-mêmes la perte de paquets de la façon qui leur est le plus appropriée. Par contre, si il y a des « protections » halacon du genre limitation du nombre de paquets UDP, alors on peut être amené à utiliser TCP, qui, quoique théoriquement moins adapté, peut dans certains cas se révéler plus performant.

L’outil libre adapté pour ça est OPENVPN

3°) le réseau /27

L’idéal pour être tranquille est de créer un réseau « standard » où il n’y a pas de choses exotiques, même si ça bouffe 3IP.
Ca veut dire qu’on réserve à minima 1 IP de « réseau », 1 IP de « broadcast » et une IP « gateway » pour chaque segment exporté. Comme les IPv4 sont une denrée de plus en plus rare, on aura donc sérieusement intéret à ne pas multiplier inutilement les segments.
( un /27 ou deux /28 mais c’est très discuttable pour les /29 et au dela il faut revenir au bridging.)
Je choisis de respecter les conventions en affectant systématiquement pour passerelle la dernière IP du réseau.
Par exemple, pour le réseau

X.Y.Z.T/27

L’ip de réseau est

X.Y.Z.T

L’ip de broadcast est

X.Y.Z.T+31

L’ip de passerelle est

X.Y.Z.T+30

Par la suite j’emploierai

X.Y.Z.N

pour désigner une machine quelconque du réseau

X.Y.Z.T/27

c’est à dire avec N tel que

T+1 <= N <= T+29

4°) Configuration de la passerelle.

J’utilise une machine x86 sous debian7 avec 2 cartes réseau.

  • eth0

    sera l’interface dite « internet » c’est à dire celle qui permet se connecter au net via un lien ADSL ou FTTH.

    eth0

    sera laissée en mode dhcp (ou une configuration statique de votre choix, pourvu qu’elle permette d’accéder au net, directement ou via du NAT).

  • eth1

    sera l’interface dite « prod » c’est à dire celle où sera présent votre réseau public en /27.

    eth1

    sera configurée en static avec les valeurs suivantes dans /etc/network/interfaces :

  • auto eth1
    iface eth1 inet static
    network X.Y.Z.T
    address X.Y.Z.T+30
    netmask 255.255.255.224
    broadcast X.Y.Z.T+31

    on pourra éventuellement configurer un DHCP sur ce réseau mais ça ne me semble pas une excellente chose que de configurer ainsi un réseau public.
    Le risque d’y connecter accidentellement une machine insuffisamment firewallée me semble trop important.

Configurer OPENVPN en mode client pour qu’il établisse un tunnel IP avec le serveur.
On choisira pour ce tunnel une plage d’adresses IP privées « improbable » comme par exemple

10.234.147.176/29

Soyez inventif, plus c’est bâtard et moins il y a de risque de tomber plus tard sur un cas à la con du style plage employée ailleurs dans votre réseau ou ses ramifications.

Une fois que les 2 machines se ping l’une l’autre sur le réseau privé

10.234.147.176/29

, il va falloir expliquer à votre passerelle que son ip principale est X.Y.Z.T+30 et que sa route par défaut n’est plus de passer par votre FAI-box mais est par le serveur qui est à l’autre bout du VPN (sauf évidemment lorsqu’il s’agit de communiquer avec le dit serveur $IPGATEWAYVPN pour établir le dit VPN).

pour cela on commence par repérer la passerelle par défaut que le dhcp nous a donné

ip route list | grep default

ce qui dans mon cas retourne

default via 192.168.20.253 dev eth0

On duplique alors cette route en la rendant spécifique au serveur.

ip route add $IPGATEWAYVPN via 192.168.20.253 dev eth0

et on supprime la route par defaut

ip route del default via 192.168.20.253 dev eth0

que l’on recrée pour passer via le tunnel.
ip route add default via 10.234.147.178 dev tun0 src X.Y.Z.T+30

Tada !
désormais tout le trafic passe par le tunnel sauf ce qui sert à l’établir.
J’attire l’attention sur l’option src de la dernière ligne qui permet de communiquer avec l’extérieur en utilisant l’IP (publique) qui sert normalement à eth1. Sinon, les connexions seraient établies en utilisant par défaut l’ip de tun0 qui se trouve ne pas être globalement routable.

5°) La ruse.

Mais pourquoi ça ne marche toujours pas ?
Parce que les routeurs de online.net s’attendent à ce que vous fassiez des machines virtuelles ou des alias et donc que les machines du réseau X.Y.Z.T/27 soient directement bridgées sur l’interface de votre serveur. Soit avec une mac virtuelle soit avec la mac de la dedibox elle-même.
Sauf que justement, la dedibox ne considère pas que ces IP lui soient locales puisqu’elle n’est qu’une passerelle pour les atteindre. Du coup lorsque le routeur demande en ARP quelle est la mac de X.Y.Z.N, il ne reçoit aucune réponse et drop le trafic.
L’astuce consiste donc à dire au routeur que la mac de notre dedibox porte bien ces ip (même si c’est pas vrai) et qu’il peut nous envoyer leur traffic. En pratique ces paquets seront routés via le tunnel mais ça, le routeur de online n’a pas à le savoir, c’est notre problème… De sont point de vue, ces paquets vont bien à notre dedibox et c’est tout ce qui compte.

Pour cela, nous avons 2 possibilités :

  • tenter de répondre aux requetes ARP du routeur (dur dur)
  • ou prendre les devant et le lui dire avant qu’il n’éprouve le besoin de demander.

Je choisis la seconde solution. L’outil nécessaire pour faire les réponses ARP gratuites est arping (Attention, celui founi par le paquet iputils-arping)
Le cache arp du routeur est de 30 minutes.
Du coup, en renouvelant toutes le 5 minutes, on est tranquiles.

(Article en chantier, la suite plus tard…)

Tuning MagLite LED 10W

 Sans catégorie  Commentaires fermés sur Tuning MagLite LED 10W
Juin 272014
 

L’idée est de modifier une MagLite « 3 Cell D » (c’est à dire avec 3 grosses piles) pour employer une LED de 10W. Le but de la manipulation n’est pas d’alonger la durée d’éclairage mais au contraire d’augmenter la luminiosité.

Voici le genre de LED utilisée (Dispo sur ebay) Je vous conseille les led 10W en 1 seul die de la marque CREE.
LT-1734-1296118011

La led Absorbe 10W électrique (avec des piles alcalines sans électronique de régulation, ça s’équilibre tout seul à 2.4A sous 4.1V).
C’est un courant fort, même pour des piles taille D. La puissance des vouée à diminuer assez fortement avec l’usure de piles mais un éclairage minimum devrait de maintenir jusqu’à un stade de décharge assez avancé.
NOTE : Ne pas utiliser d’accumulateurs qui ont à la fois un voltage un peu bas et un risque de courant potentiellement dévastateur.

Considérant que la led doit avoir une rendement d’environ 30%, ça signifie 7W de chaleur à évacuer.
la aussi, sans être dément, c’est pas négligeable. Si on ne fait rien on est sur de détruire la led.
Le tube en alu qui constitue le corps de la torche fait 1.5mm d’épaisseur et est donc tout à fait suffisant pour évacuer les 7W.
Je ne m’inquiète pas sur ce point.
Reste le problème du pont thermique entre le module led et le tube.

Mon idée est d’usiner un cylindre en alu dont le diamètre corresponde à peu près au diamètre intérieur du tube (33.5mm), de fixer la led sur la base du cylindre et de bourrer les quelques dixièmes de mm à la pâte thermique.

Capture-5

Capture-3

Je part d’un morceau plat de 80x10x1000
Je perce dedans avec un scie cloche de 40mm sans le but de récupérer la carotte
Le trait de scie fait environ 2.5mm donc je devrais obtennir une pièce de 35mm +/- 1mm
Il y aura un trou de 6mm au centre à cause du foret de guidage mais c’est pas grave et c’est même mieux, ça permettra de faire passer les fils.
J’obtiens donc un cylindre de 36mm de diamètre sur 10mm de haut avec un trou de 6 mm selon l’axe de symétrie.
Je renouvelle l’opération pour en avoir 2.

illustation1

J’assemble les 2 avec un morceau de tige filetée dans le trou central.
Je serre la tige filetée dans le mandrin de la perceuse à colonne, met en vitesse lente et « mange » les 2 dernier mlillimètres avec une lime.
En faisant des essais d’insertion fréquents dans le tube de la mag-lite je devrais arriver à ajuster à quelques dixièmes près.

Sans défaire l’assemblage, je perce 3 trous de 2mm destinés à recevoir 3 vis destinées à la fois à maintenir les 2 disques ensembles et à fixer le module led dessus.

Je démonte les 2 disques et avec un coup de meule j’ajoute une rainure destinée à laisser passer les fils.

illustration2

Finalement, au montage, la rainure n’était pas pratique et j’ai fait un trou à coté.
Je n’avais pas prévu non plus que le têtes de vis seraient si grosses et j’ai du découper un peu le reflecteur pour que ça rentre.

maglite3

maglite2

Finalement, Gros gros succès.
Le rendement est excellent.
Celle de droite, avec l’ampoule originale « haute liminiosité » semble juste ridicule à coté…. (et pourtant les piles sont neuves)
maglite

virer « proprement » ipv6 sous Windows

 Sans catégorie  Commentaires fermés sur virer « proprement » ipv6 sous Windows
Juin 152014
 

C’est pas que je n’aime pas ipv6, c’est juste que j’aime pas la magie noire faite dans mon dos sans que je sois au courant.
Si ipv6 il y a, ça sera ce que j’aurais mis sur ma carte réseau, pas une interface virtuel/tunel à la con qui fait on ne sait pas quoi ni comment ni avec qui ni surtout pourquoi.

En console ( admin ) , péter les interfaces :

netsh interface teredo set state disabled
netsh interface ipv6 6to4 set state state=disabled undoonstop=disabled
netsh interface ipv6 isatap set state state=disabled

Désactiver le service associé :

sc stop "iphlpsvc"
sc config "iphlpsvc" start= disabled

Vala Vala ! C’est propre !

Mesure de consommation electrique d’un switch HP 1810-24G (J9803A)

 Sans catégorie  Commentaires fermés sur Mesure de consommation electrique d’un switch HP 1810-24G (J9803A)
Fév 272014
 

La carte principale du switch est alimenté en 12V et consomme

environ 5W à vide
environ 0.1W par port 100M up (sans trafic)
environ 0.36W par port 1G up (sans trafic)
et pas de ventilation.

Je n’ai pas pu effectuer de réels tests en charge sur tous les ports mais l’impact du trafic semble très faible sur la consommation totale.
A noter aussi que le switch présente des fonctionnalités d’économie d’énergie.
La réduction de luminosité des LED était activée. En revanche les fonction d’économie liées aux longueurs de câbles sont restées désactivées pour effectuer ces tests. Une mise à jour de cet article fera des tests plus approfondis.

Quoiqu’il en soit, pour 24ports gigabit ça fait une consommation totale d’environ 15W
A noter que l’alimentation porte une mention 12V, 1.83A ce qui implique de fournir 22W au maximum.

En prenant en compte le rendement de l’alimentation, on peut tabler sur une consommation réelle allant de 7 à 20W.

Mesure de consommation electrique d’un switch Netgear GS724T v2

 Sans catégorie  Commentaires fermés sur Mesure de consommation electrique d’un switch Netgear GS724T v2
Fév 272014
 

La carte principale du switch est alimenté en 5V et consomme

environ 11W à vide
environ 0.2W par port 100M up (sans trafic)
environ 1.1W par port 1G up (sans trafic)
environ 1W de ventilation

Je n’ai pas pu effectuer de réels tests en charge sur tous les ports mais l’impact du trafic semble très faible sur la consommation totale.

Quoiqu’il en soit, pour 24ports gigabit ça fait une consommation totale d’environ 38.5W
A noter que l’alimentation porte une mention 5V,8A ce qui implique de fournir 40W au maximum.
On a donc une alimentation dont les spécifications permettent tout juste d’atteindre la consommation maximale du switch.

En prenant en compte le rendement de l’alimentation, on peut tabler sur une consommation réelle allant de 15 à 45W.