::franek::

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé : ubuntu

DELL Vostro 3500 - "critical temperature reached, shutting down" - Ubuntu

Il arrive que mon portable "DELL Vostro 3500" s'arrête de manière inopinée. En étudiant les logs (/var/log/kern.log), j'ai ce type de messages :

kern.log:Apr 23 14:56:04 franek-vostro-3500 kernel: [ 678.813696] thermal thermal_zone0: critical temperature reached(100 C),shutting down

Manifestement, le PC s'arrête car le processeur a atteint une température trop élevée. Le ventilateur (ce portable ne contient qu'un seul ventilateur) ne joue plus correctement son rôle.

Un nettoyage du ventilateur avec de l'air pulvérisé permet de lui redonner une petite jeunesse (Il est également possible de le démonter entièrement).

Néanmoins, il est avéré que ce modèle de portable chauffe énormément. Les réglages, par défaut, du démarrage du ventilateur selon la température du processeur ne semblent pas optimisés. Il est possible d'optimiser la gestion du ventilateur grâce au module i8k du noyau. Pour cela, il faut installer le paquet i8kutils :

sudo apt-get install i8kutils

Ce paquet installe les utilitaires suivants :

  • i8kctl : permettant de contrôler le ventilateur
  • i8kfan : idem
  • i8kmon : démon qui va contrôler la vitesse du ventilateur selon la température du processeur.

Il est possible de modifier la configuration de i8kmon en ajoutant/modifiant le fichier /etc/i8kmon.conf. Personnellement, le fichier contient :

# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
set config(0)   {{- 0}  -1  40  -1  45}
set config(1)   {{- 1}  30  55  35  60}
set config(2)   {{- 2}  45  80  50  80}
set config(3)   {{- 2}  70 128  70 128}

Après la modification du fichier de configuration, il convient de redémarrer le démon :

sudo service i8kmon restart

Personnellement, ces modifications ont résolu (pour un temps) mes problèmes. Le PC semble moins chauffer et l'ordinateur semble plus silencieux.

Pour aller plus loin :

Post-it : Synology partage d'un scanner sur le réseau

En branchant son imprimante 2-en-1 (dans mon cas HP PSC-1100 All-in-one) sur un synology (dans mon cas, DS-211+), Il est possible de facilement partager son imprimante sur le réseau.

Le partage du scanner est un peu moins documenté (à moins que votre imprimante all-in-one supporte le protocole MFP). Pour une liste d'imprimantes compatibles avec le Synology, vous pouvez référer à la liste disponible sur le site du constructeur.

Dans notre cas, nous allons devoir bidouiller ("Hackability is fun !"...)

Les tutoriaux suivants sont une bonne base :

On va utiliser sane pour partager le scanner. Par défaut, sane ne dispose pas des drivers HP. Il va donc falloir les installer et lui dire qu'ils ont été installés !

1- Installer, de mémoire, les paquets suivants via ipkg :

$ ipkg install hplip libusb libieee1284 sane-backends xinetd

2- L'astuce dans mon cas est d'ajouter le support des drivers HP à sane :

sudo echo "hpaio" >> /opt/etc/sane.d/dll.conf
sudo echo "hpaio" > /opt/etc/sane.d/dll.d/hplip

3- On vérifie que le scanner est bien reconnu :

sane-find-scanner

Cela doit retourner quelque chose comme :

found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x3011 [psc 1100 series]) at libusb:001:003

Si le scanner n'a pas été reconnu, passer votre chemin.

4- Si le scanner a été reconnu, on va vérifier la compatibilité avec sane :

scanimage -L

Cette ligne doit retourner quelque chose comme :

device `hpaio:/usb/psc_1100_series?serial=MY369160GQB0' is a Hewlett-Packard psc_1100_series all-in-one

Si elle ne retourne pas ce type d'information, vérifier la configuration de sane et notamment les fichiers dll.conf et hplip.

Votre scanner devrait fonctionner sur le réseau. Pour qu'il fonctionne sur le réseau, il faut s'assurer de 2-3 petites choses.

Vérifier que dans le fichier /opt/etc/xinetd.conf votre sous-réseau est bien présent :

    only_from = localhost 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

ainsi que dans le fichier /opt/etc/sane.d/saned.conf :

192.168.0.0/16

Configurer sane

vi /opt/etc/xinetd.d/sane-port

Ajouter :

service sane-port
{
    port = 6566
    socket_type = stream
    wait = no
    user = root
    group = root
    server = /opt/sbin/saned
}

Vérifier que le fichier /etc/services contient bien :

  sane-port         6566/tcp        # SANE network scanner daemon

Vous pouvez ensuite démarrer sane :

/opt/etc/init.d/S10xinetd

Sur le poste client, une seule modification :

sudo vi /etc/sane.d/net.conf

Remplacer # localhost par l'ip de votre serveur.

Depuis votre poste client, scanimage -L devrait renvoyer quelque chose comme :

device `net:<votre ip>:hpaio:/usb/psc_1100_series?serial=MY369160GQB0' is a Hewlett-Packard psc_1100_series all-in-one

Voilà, ce sont quelques notes rapides qui seront peut-être utiles à d'autres.

EDIT Bon, parfois, le scanner n'est pas accessible depuis le client. J'ai résolu ce problème en supprimant le fichier de PID de dbus et en relançant le process dbus :

$ rm /opt/var/run/dbus/pid
$ /opt/etc/init.d/S20dbus start

(source : http://forum.synology.com/enu/viewtopic.php?f=27&t=14801)

Ubuntu, subversion et éditeur par défaut

Par défaut, l'éditeur utilisé par subversion sous Ubuntu est nano.

Si vous souhaitez un autre éditeur, par exemple, vi, vous pouvez utiliser la commande suivante :

sudo update-alternatives --config editor

Vous pourrez ensuite choisir votre éditeur préféré.

source : http://ubuntuforums.org/showthread.php?t=134890

Utiliser plusieurs versions de PHP et switcher facilement d'une version à l'autre sous Ubuntu

EDIT du 09/04/2010 : En fait, cette technique est obsolète. Je viens de découvrir PHPFarm qui semble faire plus ou moins ce que je souhaite faire. A tester donc.

--

Sur mon environnement de développement, je souhaite pouvoir switcher facilement d'une version de PHP à l'autre. Mes pré-requis sont de disposer de versions compilées de PHP (avec les extensions APC et Xdebug) ainsi que d'une version de PHP packagée avec Zend Server.

Je souhaite conserver la même version d'Apache. Sous windows, j'aurai avantageusement pu utiliser Wampserver, EasyPHP, ... Sous Linux, à ma connaissance, il n'existe pas de mécanisme de ce type.

J'ai donc développé un petit script Bash qui permet d'installer rapidement l'ensemble des versions PHP nécessaires avec les mêmes options de compilation.

J'utilise une version de Ubuntu mais cela devrait fonctionner avec une autre distribution.

A l'issue de l'installation, je pourrais switcher d'une version de PHP en une seule commande. Le PHP installé contiendra les mêmes extensions.

Le script va installer les différentes versions de PHP en utilisant la ligne de compilation suivante (qui correspond à mes besoins - support Oracle, mysql, gettext - , il est bien entendu possible de l'adapter à votre besoin) :

./configure --prefix=$installdir/$version \
        --with-config-file-path=$installdir/$version/etc \
        --with-apxs2=/usr/bin/apxs2 \
        --with-oci8=instantclient,/usr/local/oracle/instantclient \
        --enable-pdo \
        --with-pdo-oci=instantclient,/usr/local/oracle/instantclient,10.2.0.3 \
        --with-libxml-dir=/usr/lib/libxml2 \
        --with-xsl \
        --enable-ftp \
        --with-gettext \
        --enable-mbstring \
        --enable-soap \
        --enable-calendar \
        --with-openssl \
        --with-zlib \
        --with-mysql \
        --with-gd \
        --with-freetype-dir=/usr \
        --with-jpeg-dir=/usr \
        --enable-gd-native-ttf \
        --with-ttf \
        --with-t1lib \
	--enable-cli

Préparation de l'environnement

  1. Installer Zend Server. Vous pouvez suivre la procédure habituelle.
  2. Installer les paquets manquants afin de pouvoir compiler PHP (si vous souhaitez d'autres modules PHP, vous devrez ajouter d'autres paquets) :
sudo apt-get install apache2-prefork-dev libxml2-dev libxslt-dev openssl bison flex gcc automake libt1-dev libjpeg62-dev libfreetype6-dev freetype1-tools libgd-dev libmysqlclient15-dev
  1. Créer un fichier compil-php.sh contenant :
#!/bin/bash
# ---------------------------------------------------------------
# Script d'installation de plusieurs versions PHP sous Ubuntu
# Auteur : franek (franek at chicour dot net)
# ---------------------------------------------------------------

# répertoire où seront stockées les sources compilées de PHP
compildir=/opt/compil-php

# répertoire où seront installées les différentes versions de PHP
installdir=/usr/local

# Liste des versions de PHP à installer. Respecter la syntaxe php-X.Y.Z (sauf pour zend-ce)
versioninstall="zend-ce php-5.2.5 php-5.2.13";

# Nom du programme
progname=$(basename $0)

# Usage de ce script
# ---
function Usage()
{
	echo ""
    echo " Objet :"
    echo "   Ce programme permet d'installer plusieurs version de PHP sur un même serveur et de switcher d'une version de PHP à l'autre"
    echo ""
    echo " Usage : "
    echo "   $progname <action>"
	echo " Les <action> possibles sont : "
	echo "   - list : liste les versions de php installées"
	echo "   - install : installe toutes les versions PHP"
	echo "   - switch : permet de switcher de version"
    echo "   exemple : "
    echo "   $progname list"
}

# Création de l'environnement
# ---
function CreateEnv
{
	echo " - Création de l'environnement de compilation"
	if [ ! -d $compildir ]; then
		echo " - Création du répertoire $compildir"
		sudo mkdir -p $compildir
		sudo chmod 777 $compildir
	fi
}

# Téléchargement des sources de PHP à installer
# ---
function Download
{
	version=$1
	echo " - Téléchargement de $version"
	cd $compildir
	# Pour la version 5.2.5, il faut la récupérer sur museum.php.net
	# @todo : gérer les versions inférieures à 5.2.5
	if [ $version = "php-5.2.5" ]; then
		url=http://museum.php.net/php5/php-5.2.5.tar.gz
	else
		url=http://fr.php.net/get/$version.tar.gz/from/this/mirror
	fi
	wget $url
}

# Décompression des sources de PHP
# ---
function Unzip
{
	version=$1
	cd $compildir
	tar xvfz $version.tar.gz
	rm $version.tar.gz
}

# Compilation de PHP
# ---
function Compil
{
	version=$1
	phpcompildir="$compildir/$version"
	echo $phpcompildir
	cd $phpcompildir
	
	export OPTIM=-02
	make clean

	# compilation de PHP avec support Oracle, Gettext, ...
	# cette configuration peut être modifiée.
	./configure --prefix=$installdir/$version \
        --with-config-file-path=$installdir/$version/etc \
        --with-apxs2=/usr/bin/apxs2 \
        --with-oci8=instantclient,/usr/local/oracle/instantclient \
        --enable-pdo \
        --with-pdo-oci=instantclient,/usr/local/oracle/instantclient,10.2.0.3 \
        --with-libxml-dir=/usr/lib/libxml2 \
        --with-xsl \
        --enable-ftp \
        --with-gettext \
        --enable-mbstring \
        --enable-soap \
        --enable-calendar \
        --with-openssl \
        --with-zlib \
        --with-mysql \
        --with-gd \
        --with-freetype-dir=/usr \
        --with-jpeg-dir=/usr \
        --enable-gd-native-ttf \
        --with-ttf \
        --with-t1lib \
		--enable-cli
	
	make -j 10
}

# Affiche la liste des versions de PHP disponibles
# ---
function List
{
	echo "Versions disponibles : "
	# pour chaque version, on installe
	for version in $versioninstall
	do
		echo " - PHP version $version";
	done
	echo "Si vous souhaitez ajouter des versions, vous devez simplement éditer la variable versioninstall"
}

# Fonction qui permet de switcher de version de PHP
# ---
function Switch
{
	i=1
	echo "Versions disponibles : "
	for version in $versioninstall
	do
		tab[$i]="$version"
		echo " $i/ PHP version $version";
		i=$(($i + 1))
	done
	echo " - Quelle version de PHP souhaitez-vous utiliser ?"
	read item
	echo " - vous avez choisi d'utilsier : ${tab[$item]}";
	
	version=${tab[$item]}
	cd /usr/lib/apache2/modules
	if [ "$version" = "zend-ce" ]; then
		# PHP version Zend
		sudo rm libphp5.so && sudo ln -s ../../../local/zend/lib/php/libphp5.so libphp5.so
	else
		# PHP version compilé 5.2.5
		sudo rm libphp5.so && sudo ln -s $compildir/$version/libs/libphp5.so
	fi
	sudo apache2ctl restart
}

# Procédure d'installation de PHP
# ---
function InstallPhp
{
	while :
	do
		version=$1
		echo " - voulez-vous installer PHP (version : $version) ? (0/N)"
		read OK
		case $OK in
			"O") 	sudo make install-cli
					sudo make install-pear
					sudo make install-programs
					sudo make install-programs
					sudo make install-build
					sudo make install-headers
					#installation de apc et xdebug
					cd "$installdir/$version/bin"
					sudo ./pear update-channels
					sudo ./pear upgrade-all
					sudo ./pecl install pecl/apc
					sudo ./pecl install pecl/xdebug
					#création du fichier php.ini par défaut
					sudo touch $installdir/$version/etc/php.ini
					sudo chmod 777 $installdir/$version/etc/php.ini
					sudo echo -e "extension=apc.so\nextension=xdebug.so" > $installdir/$version/etc/php.ini
					break;;
			"N") echo "Cette version ne sera pas installée."; break;;
			*) echo " /!\ Veuillez répondre par O ou N !";;
		esac
	done
}

# Fonction générale de lancement de l'installation de PHP
function Install
{
	# création de l'environnement
	CreateEnv

	# pour chaque version, on installe
	for version in $versioninstall
	do
		# on installe pas zend-ce
		if [ $version = "zend-ce" ]; then
			continue;
		fi
		Download $version
		Unzip $version
		Compil $version
		InstallPhp $version
	done;
}

# -------------------------------------------------------------------------------
# ---- début du script ----------------------------------------------------------
# -------------------------------------------------------------------------------

if [ ! $# -eq 1 ]
then
        Usage
        exit 0;
else
	action=$1
	case $action in
        "list") List;;
        "install") Install;;
		"switch") Switch;;
        *) echo " /!\ Mauvaise utilisation"; Usage; exit 1; ;;
    esac	
fi
  1. Editer le script avec les versions de PHP que vous souhaitez installer. La variable à modifier est versioninstall. Chaque version doit être séparée par un espace. Le nom de la version doit respecter la syntaxe php-X.Y.Z.
  2. Exécuter ce script.

./compil-php.sh

Par défaut, ce script va vous afficher les commandes disponibles. Vous avez 3 options :

  • install : va installer les versions de PHP dans /usr/local/php-X.Y.Z
  • list : afficher la liste des versions de PHP configurées dans le script
  • switch : lorsque les versions de PHP ont été installées, permet de switcher d'une version de PHP à l'autre.

Par défaut, ce script va compiler les PHP dans le répertoire /opt/compil-php. Cette variable peut être modifiée dans le script.

Les binaires seront installés dans /usr/local/php-X.Y.Z. Le fichier de configuration php.ini se trouvera dans /usr/local/php-X.Y.Z/etc/php.ini (il est donc possible d'avoir un fichier php.ini par installation de PHP).

C'est un script brut. Des modifications pourraient être apportéees :

  • mise en oeuvre des contrôles d'erreurs
  • installation automatique de Zend Server
  • installation de HipHop
  • ...

- page 1 de 2

à propos :: Mots-clés :: archives :: RSS :: Mail