J’ai acheté il y a 4 mois le smartphone Google Nexus chez Rue du Commerce, mais depuis, et je ne sais pas pourquoi, à chaque annonce de mise à jour d’Android Ice Cream Sandwich, impossible que la détection des mises à jour me propose quoique ce soit…

Finalement ce matin j’ai décidé de réaliser manuellement cette mise à jour via les outils et fichiers officiels de Google (Pas besoin de rooter le téléphone).

La première chose à faire est d’installer le SDK Android via le lien suivant (pour les connaisseurs, uniquement le binaire fastboot est suffisant) : http://developer.android.com/sdk/installing.html.

Vérifier la configuration USB du Google Nexus sur la machine en vérifiant ou créant le fichier des droits udev (seules les lignes des Google Nexus sont nécessaires mais qui sait, j’aurai peut-être le bonheur de tester d’autres Google Android devices)

chris@tux:~/tmp/yakju-imm76i$ sudo emacs /etc/udev/rules.d/51-android.rules

Copier/coller les lignes suivantes dans le fichier /etc/udev/rules.d/51-android.rules

# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="##votre_nom_d_utilisateur##"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="##votre_nom_d_utilisateur##"

On relance le service udev

chris@tux:~/tmp/yakju-imm76i$ sudo service udev restart

Télécharger et décompresser la mise à jour Factory Images « yakju » for Galaxy Nexus « maguro » (GSM/HSPA+) (pas besoin de Google Wallet en France pour la majorité d’entre nous) depuis le site de Google : https://developers.google.com/android/nexus/images?hl=fr-FR#yakju

Démarrer le Google Nexus en mode fastboot en appuyant simultanément sur les boutons : Volume+ et Volume- et PowerOnOff

Se rendre dans le répertoire où l’image à été décompressé pour débloquer le mode fastboot

chris@tux:~/tmp/yakju-imm76i$ fastboot oem unlock
...
OKAY [ 25.900s]
finished. total time: 25.900s

Lancer la mise à complète d’ICS 4.0.4

chris@tux:~/tmp/yakju-imm76i$ ./flash-all.sh
sending 'bootloader' (2308 KB)...
OKAY [  0.318s]
writing 'bootloader'...
OKAY [  0.292s]
finished. total time: 0.610s
rebooting into bootloader...
OKAY [  0.006s]
finished. total time: 0.006s
sending 'radio' (12288 KB)...
OKAY [  1.736s]
writing 'radio'...
OKAY [  1.379s]
finished. total time: 3.116s
rebooting into bootloader...
OKAY [  0.006s]
finished. total time: 0.007s
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
--------------------------------------------
Bootloader Version...: PRIMELA03
Baseband Version.....: I9250XXLA2
Serial Number........: 0146B0000101601D
--------------------------------------------
checking product...
OKAY [  0.007s]
checking version-bootloader...
OKAY [  0.008s]
checking version-baseband...
OKAY [  0.008s]
sending 'boot' (4148 KB)...
OKAY [  0.577s]
writing 'boot'...
OKAY [  0.252s]
sending 'recovery' (4478 KB)...
OKAY [  0.638s]
writing 'recovery'...
OKAY [  0.310s]
sending 'system' (316111 KB)...
OKAY [ 44.125s]
writing 'system'...
OKAY [ 33.302s]
erasing 'userdata'...
OKAY [  0.315s]
erasing 'cache'...
OKAY [  0.013s]
rebooting...

finished. total time: 79.598s

Rebooter en mode fastboot pour remettre le lock par soucis de sécurité

chris@tux:~/tmp/yakju-imm76i$ fastboot oem lock
...
OKAY [  0.170s]
finished. total time: 0.170s

Je suis enfin à jour et je gagne en performance, c’est fluide !!!

J’ai récemment commencé à utiliser RVM, le gestionnaire des versions de ruby, sur mon compte mutualisé Dreamhost. En réinstallant mes gems j’ai été confronté à une erreur concernant la compilation d’ImageMagick nécessaire au gem rmagick. En effet la librairie RMagick2.so n’est trouvée car systématique recherchée dans /usr/local/lib.
Type d’erreur :

LoadError: libMagickCore.so.2: cannot open shared object file: No such file or directory - $HOME/.rvm/gems/ruby-1.8.7-head@monprojet/gems/rmagick-2.13.1/lib/RMagick2.so

L’astuce est de compiler ImageMagick en précisant au compilateur où trouver les librairies compilées et installées par mes soins.
Ci-dessous la ligende commande qui permet à la librarie de s’installer et rechercher où il faut les dépendances :

LDFLAGS="-L$HOME/opt/lib -Wl,-rpath,$HOME/opt/lib"
LD_LIBRARY_PATH=/home/congopro/opt/lib
./configure --prefix=/home/congopro/opt --with-gslib --with-gs-font-dir=/usr/share/fonts/type1/gsfonts/ --without-perl --without-magick-plus-plus

J’ai par la même occasion complétée la procédure de compilation disponible sur le wiki de Dreamhost : http://wiki.dreamhost.com/Image_Magick#Compiling_ImageMagick_on_your_DreamHost_account

J’ai dernièrement écris un billet sur le netbook Asus EeePC 1201HA dans lequel je critiquais le travail d’Intel (certes un rachat) sur l’architecture GMA 500 soit les drivers linux poulsbo, tout pas beau…

Architecture SCH

Actuellement on peut voir que dans les nouveautés du noyau linux 2.6.37 le driver poulsbo (Intel GMA 500) est présent grâce au travail de Lee Chun-Yi de Novell. Mais ça reste un début seulement car ce pilote ne semble gérer nativement que le rétro-éclairage de l’écran.

Intel, quant à lui, semble au courant du problème mais ne priorise pas sa résolution. C’est dommage pour ceux qui ont hérité de ce GMA 500.



Logo Asus EeePC 1201HA

Netbook Asus EeePC 1201HA

Installer une Ubuntu sur un Netbook est maintenant très aisé avec les solutions basées sur une installation à partir d’une clé USB. De très bon tutoriaux sont présent sur le Net : http://doc.ubuntu-fr.org/ubuntu_netbook_edition#installation

Après une installation facile, rapide et efficace on s’aperçoit que l’interface graphique est très lente ; que se passe t-il ? Pas de pilotes graphiques pour l’Intel GMA 500 (PowerVR) sous linux ? En fait les drivers existent mais sont propriétaires (pour la partie 3D). Ils tournent bien mais ne sont pas tout à fait au point.

Ce qu’on gagne :

  • Des performances 2D correctes.
  • La lecture vidéo n’est pas top sur la HD et sur certains formats SD, c’est déjà ça.
  • Pour la 3D, c’est Néant pour le moment ;-(

Voici les lignes de commandes qui vont faire en sorte de prendre plaisir à utiliser son netbook sous linux.

sudo add-apt-repository ppa:gma500/ppa && sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install poulsbo-driver-2d poulsbo-driver-3d poulsbo-config \
psb-kernel-source

Lors de mise à jour du kernel linux, il peut arriver que dkms ne trouve pas les sources du kernel poulsbo, voilà ce qu’il faut faire :

sudo aptitude download psb-kernel-source
sudo dpkg -i psb-kernel-source_4.42.0-0ubuntu2~1004um3.1_all.deb

Si une erreur survient lors de l’installation du fichier deb, réessayé une seconde fois le :

sudo dpkg -i psb-kernel-source_4.42.0-0ubuntu2~1004um3.1_all.deb

La suppression de la version du module précédent pose parfois des soucis à la nouvelle installation.

Et voilà il ne reste plus qu’à rebooter… Il faut noter qu’Asus a corriger le tire en choisissant d’autres puces graphiques sur d’autres modèles de ces netbooks et c’est un bon choix ;  car Intel n’assure pas du tout avec ce GMA500, il est vraiment Naze (espérons que ce soit temporaire). Même pour un netbook il y a un minimum tout de même. Je n’ai plus qu’à économiser pour m’acheter un vrai netbook ou attendre un peu des vrais pilotes !!!

Liens :

Mon xorg.conf :

# Fichier /etc/X11/xorg.conf

Section "Files"
	ModulePath   "/usr/lib/xorg/modules"
	FontPath     "/usr/share/fonts/X11/misc"
	FontPath     "/usr/share/fonts/X11/cyrillic"
	FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
	FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
	FontPath     "/usr/share/fonts/X11/Type1"
	FontPath     "/usr/share/fonts/X11/100dpi"
	FontPath     "/usr/share/fonts/X11/75dpi"
	FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "Module"
	Load  "glx"
	Load  "record"
	Load  "extmod"
	Load  "xtrap"
	Load  "dbe"
	Load  "dri"
EndSection

Section "DRI"
	Mode	0666
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Device"
	Option      "IgnoreACPI"         	"true"
	Identifier  "Card0"
	VendorName  "Intel Corporation"
	BoardName   "System Controller Hub (SCH Poulsbo) Graphics Controller"
	BusID       "PCI:0:2:0"
	Driver	"psb"
	### Available Driver options are:-
	### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
	### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
	### [arg]: arg optional
	#Option     "ShadowFB"           	# [<bool>]
	#Option     "NoAccel"            	# [<bool>]
	#Option     "SWcursor"           	# [<bool>]
	#Option     "ExaMem"             	# <i>
	#Option     "ExaScratch"         	# <i>
	#Option      "NoPanel"            	"true"
	#Option     "LidTimer"           	# [<bool>]
	#Option     "NoFitting"          	# [<bool>]
	#Option     "DownScale"          	# [<bool>]
EndSection

Logo Arista
Arista, the eaiest way to convert your media

Arista est une application qui permet de transcoder une vidéo pour plusieurs types d’appareils grâce à un système de presets (réglage automatique) pour ces différents appareils.

On peut l’installer facilement :

sudo aptitude install arista

Mon premier test d’encodage d’une de mes vidéos de vacances pour mon beau téléphone Android échoue.

ERROR: Caught a segmentation fault while loading plugin file:
/usr/lib/gstreamer-0.10/libgstffmpeg.so
Please either:
- remove it and restart.
- run with --gst-disable-segtrap and debug.

Après plusieurs tests, voici les étapes qui m’ont permis d’arriver à mes fins :

sudo aptitude install ubuntu-restricted-extras
sudo aptitude install gstreamer-tools
sudo dpkg --purge --force-depends  gstreamer0.10-ffmpeg
rm -rf ~/.gstreamer-0.10
sudo aptitude reinstall ffmpeg
sudo aptitude install gstreamer0.10-ffmpeg
gst-inspect-0.10

Faites attention de bien avoir ces plugins d’installés sur votre machine :

i A gstreamer0.10-plugins-bad
i   gstreamer0.10-plugins-bad-multiverse
i   gstreamer0.10-plugins-base
i   gstreamer0.10-plugins-base-apps
i   gstreamer0.10-plugins-good
i A gstreamer0.10-plugins-ugly
i   gstreamer0.10-plugins-ugly-multiverse

Voilà le travail….