LCD capricieux

2 février 2007

L’écran LCD d’une collègue (un dell E151FPb 15″) s’est dit un jour que le blanc, c’est mieux. Après un temps d’utilisation variable, il ne voulait plus afficher que du blanc jusqu’au redémarrage suivant. Enfin, le problème est finalement devenu permanent.

Mon attention s’est tout de suite portée sur une zone de la carte d’alimentation noircie d’une suie légère en surface. Cependant, les quelques tests n’ont rien donné.
La suie

Dans ma recherche de service manual, je suis tombé sur le forum du site du revendeur :

To fix the white screen prolbem, you just need to resolder one of the coils on the large yellow circuit board. The coil is a toroidal coil located on the upper right part of the yellow board(looking from behind the monitor). It is surrounded by white insulating paste so it is easy to find. Go to the back side of the board, find the two solder joints for the coil then resolder them.

Ci-dessous, la bobine en question au milieu à droite, et les soudures incriminées.
L'intérieur du LCD
Les soudures

Depuis, plus de problème !

Ressucitage de HDD

23 décembre 2006

Deux liens intéressants pour qui dispose d’un disque IBM du début du siècle :
http://tremornet.de/ic-cablefault.htm
http://www.soliton.net/content/comp/ibm/
Le second est trop vieux et les images ont malheureusement disparu.

J’avais deux disques qui avaient laché coup sur coup il y a plus d’un an. Les deux étant hors garantie, le support technique n’a rien voulu faire pour moi.

Le premier est un 120GXP de 80 gigas. En chauffant, des secteurs défectueux apparaissaient avaint que le lecteur devienne comme déconnecté et donc inaccessible et indétecté par le bios. Typiquement électronique. Une ventilation forcée de la carte réduisait le problème, et un fonctionnement au frigo avait de plutôt bons résultats, mais n’étais pas très pratique. En lisant le premier lien, j’ai essayé de nettoyer tous les contacts (vis, têtes et moteur) au “scotch brite” avant d’y mettre un peu de lubrifiant spécial contacts. Depuis, plus aucun souci, malgré les tests d’endurance et réinstallations des OS.

Le second est un 40 gigas de la fameuse série 60GXP. Je n’ai malheureusement pas vu et donc pas utilisé le patch du firmware proposé par le constructeur pour prolonger sa durée de vie (quelques liens ici). Le support technique n’a même pas voulu accepter le “vice caché” malgré que le problème soit reconnu sur cette série. Sur ce disque, seuls les 2000000 premiers blocs (sur 80000000) sont utilisables et les 4 têtes sont fonctionnelles ! Comment une si grande partie de la surface -et pas l’ensemble- a-t-elle pu devenir HS d’un coup ?

Le second lien a attiré mon attention par un résultat de bidouille plutôt intéressant :

So time for an expriment. I put the cover back on and used only the single screw that goes into the head assembly.
With the screw loosely put on, it would just scratch-clunk without working at all. I found that as I tightened it the drive would work better. When I tightened it down as much as I could without having the correct Torx bit, the drive would work normally!! I botted up a linux CD and proceded to ‘fdisk’ and mke2fs it!! BLAM! Worked fine.

J’avais de bons espoirs puisque l’hypothèse d’un jeu sur le bloc de têtes me semble crédible pour expliquer le problème. Malheureusement, toutes les vis sont déjà serrées à bloc, et une intervention interne semble nécessaire. On ne peut pas gagner à tous les coups.

Pour finir, j’ai récupéré au boulot un portable donné comme HS. En fait, c’était le disque qui était mort, et un bidouilleur précédent avait bricolé quelques switches de la carte mère, le rendant encore plus inutilisable. En inspectant le malade, un fusible d’alimentation semblait mal en point (le fusible N avait sur un côté une légère trace se surchauffe -merci à la macro de mon powershot A700- et avait une résistance un peu beaucoup importante pour un fusible !). N’ayant aucune possibilité de réparation si l’électronique était touchée, j’ai tenté le court circuit… Depuis, il se porte à merveille.
Le fusible grillé
Le fusible grillé en gros plan

Au hasard de mes recherches, je suis tombé sur un outil intéressant : MHDD. Il a l’avantage d’être plutôt complémentaire aux DDD-SI, Fitness Test et Feature Tools de IBM/Hitachi.

Voilà, j’espère que ça pourra permettre à certains de réparer leur matériel ou même de récupérer leurs données. Attention quand même en cas de succès : il faudrait être fou pour stocker ses précieuses données dessus.

Appel au lecteur

12 juin 2006

Cher lecteur,

Si tu disposes d’une carte mémoire compactflash HS de 64 Mo, tu peux peut être m’aider. J’ai ici une carte de 128 Mo utilisant un contrôleur Lexar FC1410-TC-BM-0 utilisant 2 puces flash sur un PCB pouvant en accueillir 4. D’après les symptômes, il semblerait que l’une des 2 puces ait des problèmes d’écriture : certaines zones bloquent le contrôleur alors que d’autres ne “retiennent” que des bits de manière aléatoire.

les tripes de CF 128MO

L’idée étant que des cartes de 64 Mo ayant très probablement été produites basées sur le même contrôleur, le même PCB, mais avec une seule puce mémoire, il est sûrement possible d’en désactiver une sur ma carte (celle ayant des problèmes de préférence). Le problème, justement, c’est que je ne suis pas arrivé à trouver la datasheet du contrôleur. Mon appel consiste donc à trouver quels composants CMS (il y a quelques résistances et condensateurs sur la carte, et 2 transistors) faire sauter pour pouvoir obtenir une carte 64 Mo fonctionnelle.

C’est vrai que pour le prix (et l’utilité) d’une CF 64 Mo aujourd’hui c’est un peu con. Mais je n’aime pas perdre contre une CF.

PS : Si vous avez une carte 256 Mo similaire à la mienne qui a aussi des problèmes d’Alzeimer, vous pourrez essayer la même manip que moi. Sur la photo, on voit que R2,R6,C11,C13 et C14 sont absents du recto (”affichez l’image” pour y voir un peu mieux). Au verso, C7 et U3 sont un peu seuls.

PS2 : il n’est pas toujours facile de démonter une carte de façon non destructive, surtout quand les deux faces sont soudées. La mienne etait seulement clipsée/collée.

Maintenance de (votre ?) site

18 mai 2006

A la demande d’un collègue, voici deux petits scripts qui rendent bien service pour dépanner un serveur à distance.

Le premier, plus court, est pratique quand on doit le faire rentrer via un formulaire. On peut même facilement le rendre encore plus court en virant des balises html non indispensables. Je l’appelle cm.php :

<html><head><title>Exécution de commandes</title></head><body>
<pre><?php
system($command);
?></pre>
<form action="cm.php" method=get>
<textarea name=command><?php print($command); ?></textarea>
<input type="submit" value="GoGoGo..."/>
</form>
</body></html></code>

Le second est plus confortable à utiliser grâce à la conservation des commandes passées. Voici ajaxterm.php :
<?php
if($_GET['commande']) {
system($_GET['commande'] . ” 2>&1″);
} else {
?>
<html>
<head><title>Exécution de commandes</title>
<script type=”text/javascript”>

function makeAsyncRequest(url,callback,type) {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,…
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType(’text/xml’);
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject(”Msxml2.XMLHTTP”);
} catch (e) {
try {
http_request = new ActiveXObject(”Microsoft.XMLHTTP”);
} catch (e) {}
}
}

if (!http_request) {
alert(’Abandon :( Impossible de créer une instance XMLHTTP’);
return false;
}
http_request.onreadystatechange = function() { onReadyStateChange(http_request,callback,type); };
http_request.open(’GET’, url, true);
http_request.send(null);
}
function onReadyStateChange(http_request,callback,type) {

if (http_request.readyState == 4) {
if (http_request.status == 200) {
if(type==’xml’)
callback(http_request.responseXML);
else
callback(http_request.responseText);
} else {
alert(’Un problème est survenu avec la requête.’);
}
}
}

function execute() {
function affiche(data) {
var theData = document.createTextNode(data);
document.getElementById(’term’).appendChild(theData);
}
var theData = document.createTextNode(’$ ‘ + document.getElementById(’commande’).value + “\n”);
document.getElementById(’term’).appendChild(theData);
makeAsyncRequest(document.location + ‘?commande=’ + document.getElementById(’commande’).value,affiche,’text’);
}

</script>
</head>
<body>
<div id=”term” style=”font-family:-moz-fixed; white-space:pre;”></div>
<form onsubmit=”execute(); return false;”>
<input type=”text” size=”100″ maxlength=”255″ id=”commande” value=”" style=”font-family:-moz-fixed;”>
<input type=”submit” value=”GoGoGo…”/>
</form>
</body></html>
<?php
}
?>

Les critères de réalisation étaient une taille limitée, tout doit tenir en un seul fichier, et celui-ci doit être renommable. Pour sûr ils peuvent être améliorés, tant fonctionnellement que graphiquement, mais ce sont avant tout des outils perso, donc si ça ne vous plait pas, améliorez-les vous-même.

Comme vous l’aurez deviné, l’aspect sécurité n’est pas leur point fort ;) Evitez de les laisser trainer sur vos sites à vous sans restriction d’accès… De plus, il est illégal de profiter des boîtes qui ne protègent pas leurs formulaires ou leurs uploads de fichiers (les logs du serveur enregistrent votre IP et toutes les commandes tapées)…

Pour mémoire

29 avril 2006

Cake aux olives :
250g farine + levure
4 oeufs
1 verre huile
Poivre
180g d’olives en 3 morceaux
200g jambon en dés
Le tout au four pendant 1h dans un moule à cake

Tarte aux légumes :
Pate brisée (de préférence à précuire)
Concentré de tomates au fond
Couches de tomates, de cougettes et de poivrons
Sel, poivre, thym et pour finir huile d’olive
Le tout 30 à 45min au four

Comment ça ca a rien à voir ?

Le NTP sous Windows >2000

18 avril 2006

Comme certains se plaignent qu’il n’y a pas de nouveauté sur ce blog, depuis des lustres, voici un petit post rapide.

Pas besoin d’un logiciel supplémentaire pour faire marcher le NTP sous win 2000 :

  • Dans la base de registre HKEY_LOCAL_Machines / System / CurrentControlSet / Services / W32Time / Parameters, mettre type sur NTP
  • Tant qu’on y est, mettre le serveur dans ntpserver ou taper dans une console net time /setsntp:serveur
  • Redémarrer le service par net stop w32time puis net start w32time
  • Eventuellement, vérifier que le service Horloge Windows se lance automatiquement au démarrage

Et voilà. Sous XP, on peut le faire via les réglages “temps Internet”, mais il semblerait que le réglage de time sur NTP aide à faire marcher les choses. Mais bon, XP c’est beurk…

Un an déjà…

4 octobre 2005

… que j’avais commencé à chercher pour changer de voiture. Et comme il est dit que beaucoup d’informaticiens, habitués à manier du virtuel, son un peu écolo sur les bords, j’avais bien sûr lorgné vers les véhicules dits “propres”.

La Prius de Toyota, voiture du geek par excellence, ne correspondait pas à ma cible, malgré les quelques milliers d’euros d’économies promises par certains sites. L’hybride n’étant pas disponible sur les petits modèles, c’est tout naturellement que j’ai commencé à comparer les GPL “constructeur”. Pourquoi se limiter à ceux-ci, me direz-vous, alors que tout véhicule essence pas trop vieux est sensé pouvoir être équipé de bicarburation ? Pour plusieurs raisons :
- La transformation en GPL n’est qu’une bidouille, et je me vois mal faire bidouiller un véhicule neuf, qui n’a pas été conçu pour ça rappelons le. Surtout au prix que ça coûte :P
- Faire bidouiller un véhicule d’occasion n’est pas spécialement recommandé quand on ne sait pas ce qu’il a subi, surtout au delà de 30 000 bornes.
- Acheter un véhicule GPL dont on ne sait pas comment il a été installé ni entretenu, non merci.

Comme vous l’aviez compris, je préférais donc trouver quelque chose de tout fait sorti d’usine, et surtout conçu pour ça !

Un tour sur le site du CFBP donne le ton : blanc ou jaune ;). Quand on ne veut pas d’un utilitaire, le choix est plutôt limité !

A ma droite, Renault
Les mêmes véhicules, que l’on voit partout dans la rue. A la différence près que quand on va dans une concession, le vendeur ne veut même pas vous les vendre. En en plus, malgré les primes d’état, il faut y mettre le prix, ou s’orienter vers une twingo sans équipement, et devoir se taper une bonbonne supertoppratique dans le coffre.

A ma gauche, Daewoo - maintenant Chevrolet (ça pète mieux ?)
Tout équipé et moins chères que leur concurrentes, et GPL au prix de l’essence, sans même compter la prime d’état. Mais avec la tare “voiture asiatique pas chère” en plus.

Moment d’hésitation, elle a l’air pas mal, en vrai à la concession. L’avis d’un garagiste du coin finit par me dégouter des garagistes du coin : une asiatique ? que d’la merde ! GPL ? soyons sérieux, j’en avais vu une en 84… Un super avis qui m’a conforté dans mon choix, nourri par des essais pas décevants et des centaines de témoignages d’internautes souvent très contents de leurs véhicules.

Vendeur sympa, essai d’un modèle essence OK. Au final, Daewoo Kalos commandée fin octobre au salon de l’auto de St Etienne et livrée mi décembre. Le délai n’est pas court mais je n’étais pas pressé.

La suite au prochain numéro !

Faut pas gâcher

2 octobre 2005

Les vieilles disquettes des vieux sasfépu ne comportaient que 40 pistes. Aujourd’hui, il est plus que courant de trouver des machines équipées de lecteurs 3″1/2 capables de gérer 80 pistes, et en haute densité (500kb/s), donc utilisés au quart de leurs possiblités.

Vouloir profiter de la haute densité est un peu utopique avec un montage simple. Par contre, vouloir profiter des 40 dernières pistes est plus que réalisable. C’est donc l’idée de mon premier projet PIC.

Plusieurs signaux du bus floppy nous intéressent ici :

  • Drive Select, commandé par l’ordinateur pour choisir le lecteur à adresser. Sur CPC, un signal permet de choisir l’un ou l’autre des deux lecteurs possibles
  • TK0, commandé par le lecteur, qui passe à 0 quand on est sur la piste 0
  • Dir, qui permet de choisir le sens de déplacement de la tete de lecture
  • Stp, qui déclenche le déplacement de la tête de lecture, apparamment sur son front montant

Tous ces signaux sont actifs en logique négative.

Lorsque l’on souhaite adresser la fin du disque, il devrait suffire en théorie de déplacer la tête de lecture sur la piste 40 (la première partie du disque allant de la piste 0 à la piste 39) et de déclencher le signal Tk0 à chaque fois que l’on revient sur cette piste.

Il est bien sûr nécessaire d’isoler le lecteur, qui sera amené à fonctionner de manière autonome, du bus qui peut être connecté à plusieurs périphériques. Je vous laisse imaginer les conséquences d’un lecteur 3″ qui recevrait l’ordre de se déplacer sur la piste 80… Dans ce cas là, le montage devient relativement complexe

Dans la pratique, dans le cas où le lecteur est seul sur le bus, les 6 entrées/sorties reconfigurables d’un pic de base devraient suffire pour arriver à mes fins et émuler au passage les signaux disparus comme le “ready”.

Une autre idée qui devient possible grâce à la montée en puissance des microcontrôleurs : émuler un (ou plusieurs) lecteur disquette avec un disque dur. Mais là, ce sera pour plus tard…

Hello (new) world!

12 septembre 2005

Aujourd’hui, passage de Spip à Wordpress.

Spip était bien, mais ne correspondait pas à l’utilisation que je voulais faire de ce site : principalement un recueil des informations que je découvre autour de mes centres d’intérêts, soit sur internet, soit en mettant les mains dans le cambouis. La lourdeur du système de publication, indispensable sur un site comme celui du boulot, était plutôt gênante dans mon cas.

J’espère que ce site va pouvoir être un peu plus vivant que le précédent !

Un script simple de sauvegarde sur bande

2 août 2005

Ayant passé le serveur du boulot sur linux + samba + plein d’autres services, j’ai eu le besoin d’automatiser un peu la sauvegarde du système.

J’ai trouvé plein de solutions différentes sur le web : cpio, dump, amanda, flexbackup and co, mais aucun suffisamment simple et souple pour la bête sauvegarde d’un serveur sur lequel tout est centralisé.

Retour aux sources : tar, mt et cron étaient déjà des amis de longue date, pourquoi s’en passer ?

Basé sur un petit script trouvé sur le net, voici maintenant /usr/sbin/backup.sh :

#!/bin/sh
# full and incremental backup script
# created 13 July 2005
# Based on a script by Daniel O'Callaghan
# modified by Gerhard Mourani
# adapted to tape backup by François Lacombe

#Change the 5 variables below to fit your computer/backup

DOFB=”6″ # day of the week of full backup
DIRECTORIES=”/bin /boot /etc /home /initrd /lib /root /sbin /usr /var” # directories to backup
BACKUPTAPE=/dev/nst0 # backup device or file
TAR=/bin/tar # name and locaction of tar
MT=/bin/mt
LOG=/var/log/backup # where to save log

#You should not have to change anything below here

#PATH=/usr/local/bin:/usr/bin:/bin
NOW=`date “+%F %H:%M:%S”`
DOW=`date +%u` # Day of the week e.g. 1 for Mon
DOM=`date +%d` # Date of the Month e.g. 27
DM=`date +%d%b` # Date and Month e.g. 27Sep

# Monthly full backup
#if [ $DOM = "01" ]; then
# NEWER=”"
# $TAR $NEWER -cf $BACKUPTAPE $DIRECTORIES
#fi

# Weekly full backup on saturday
if [ $DOW = $DOFB ]; then
echo “Full backup started on $NOW” >>$LOG
# If tape is to be deleted if it has not been changed
# Leave it commented if you dont want to lose backups from the previous week
# Uncomment it if 2 weews of backup should exceed tape capacity
#$MT -f $BACKUPTAPE rewind
LABEL=”–label=Weekly_backup_for_`date +%Y-%m-%d`”
NEWER=”"
$TAR $NEWER -cf $BACKUPTAPE $LABEL $DIRECTORIES 2>>$LOG

# Make incremental backup the other days
else

# Get date of last full backup
DFFB=`expr \( $DOW - $DOFB + 6 \) % 7 + 1` # Number of days from last full backup
LFULL=`date +%F -d +%m-+%d-+%y –date “$DFFB days ago”` # Date of last full backup
LABEL=”–label=Daily_backup_for_`date +%Y-%m-%d`”
NEWER=”–newer-mtime $LFULL”
echo “Incremental backup started on $NOW” >>$LOG
$TAR $NEWER -cf $BACKUPTAPE $LABEL $DIRECTORIES 2>>$LOG
fi

NOW=`date “+%F %H:%M:%S”`
$MT -f $BACKUPTAPE status >>$LOG
echo “Backup finished on $NOW” >>$LOG

Reste l’automatisation. Il suffit de créer /etc/cron.d/backup
# backup
0 2 * * * root /usr/sbin/backup.sh

N’oubliez pas de donner les bonnes permissions aux 2 fichiers, et ça devrait marcher.

Le script a été réalisé et testé sur une mandrake 10.1 avec locales en français (important pour les formats de dates).