2010
08.12

Si comme moi vous utilisez la librairie C++ Googletest, et que vous compilez vous-même cette librairie, sachez que sous linux (peut-être unix/posix aussi), il faut ajouter la librairie pthread (-lpthread).

J’utilisais la version 1.4.0 qui n’en avait pas besoin, mais depuis un svn update il y a quelques heures, j’ai du ajouter pthread.

Platform: Linux
scons: done reading SConscript files.
scons: Building targets ...
Copy("bin/test/README", "README")
g++ -o bin/test/fpm-test test/main.o src/ratp/fpmanager/fp_helper.o src/external/googletest/src/gtest.o src/external/googletest/src/gtest-death-test.o src/external/googletest/src/gtest-filepath.o src/external/googletest/src/gtest-port.o src/external/googletest/src/gtest-printers.o src/external/googletest/src/gtest-test-part.o src/external/googletest/src/gtest-typed-test.o
src/external/googletest/src/gtest.o: In function `testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::GetOrCreateValue() const':
/home/christian/workspace/fpmanager/src/external/googletest/include/gtest/internal/gtest-port.h:1300: undefined reference to `pthread_getspecific'
...

Avec Scons on peut ajouter quelquechose dans ce style :

if platform == 'linux':
	env.Append(LIBS = 'pthread')

Ça évite de chercher presqu’une heure, une anomalie dans son programme de test !!!

;-)

2010
08.11


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
2010
08.09
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….

2010
07.15
Logo Android

Logo Android

Pour ceux qui veulent se lancer dans la compilation d’Android sous Ubuntu Lucid Lynx, il faut savoir que cela nécessite de réaliser quelques manipulations supplémentaires.

Tous d’abord le lien du projet pour compiler les sources d’Android (très bien écrit) :

Mais pour notre Ubuntu le problème est java5, qui n’est plus dispo dans les dépôts. Si vous tenter de compiler les sources avec le java6 sous une Ubuntu 32bits, vous tomberez sur un bug indiquant que des entêtes de fichiers C 64bits non trouvés. Dans tous les cas, des parties du code java d’Android ne sont pas supportés par java 6.

Donc la première des choses à faire est de récupérer java5 depuis le site d’Oracle :

Installer manuellement le java5

chmod a+x jdk-1_5_0_22-linux-i586.bin
./jdk-1_5_0_22-linux-i586.bin
sudo mv jdk1.5.0_22 /usr/lib/jvm/java-5-sun-1.5.0.22
cd /usr/lib/jvm
sudo ln -s java-5-sun-1.5.0.22 java-5-sun

Je n’ai pas trouvé le moyen d’inclure mon install de java5 avec l’outil « update-java-alternatives » qui permet de switcher d’une jvm à l’autre en toute simplicité. Il est toujours possible de créer un fichier « .java-5-sun.jinfo » mais je manque de temps et il existe peut-être un outil pour le faire, n’hésitez pas à me faire signe.

Avant de lancer le make -j4 du tutoriel de google, faites la manip suivante dans le shell (non persistante) :

export JAVA_HOME=/usr/lib/jvm/java-5-sun
export ANDROID_JAVA_HOME=${JAVA_HOME}
export PATH=${JAVA_HOME}/bin:${PATH}

Tenter votre première compilation d’Android générique :

make -j4

Liens

2010
07.14
Samsung Spica I5700

Photo Samsung Spica I5700 avec son CPU S3C6410 cadencé à 800Mhz

Ça fait maintenant plus d’un mois que je tourne avec le Samsung Spica (I5700) sous Android 2.1 (Eclair). Un android-phone agréable à utiliser. Une prise en main confortable, mais une web expérience assez mitigée. Samsung semble avoir comblé le bide du Galaxy I7500, son premier mobile sous Android. Mais pour avoir eu des retours de personne ayant utilisés le premier modèle, je suis largement plus optimiste sur le Spica. La taille du téléphone est très bien adaptée pour une prise en main efficace. Il faut tout de même un petit temps d’adaptation pour palier l’absence du clavier physique ; le clavier virtuel, surtout en mode portrait, reste un peu délicat à manipuler ; deux ou trois jours d’utilisation intensive sont nécessaires avant de maîtriser la saisie clavier en toute circonstance. L’expérience phone/gsm est plutôt bonne, je pense que c’est le cas pour tous les smartphones ; un bilan plutôt positif sur ce point. La web expérience doit être partagée en deux partie. D’un côté la partie widget/game et de l’autre la partie navigation internet via le « Browser » d’Android.

Widget/Game expérience

La widget-expérience est très bonne. Après avoir testé une multitude d’applications, toutes m’ont donné une impression positive. De la plus simple à la plus complexe, on est toujours étonné qu’un appareil de cette taille soit si agréable. C’est aussi beaucoup du au travail de google de proposer des composants graphiques très bien élaborés et adaptés à ce genre d’utilisation. En terme de jeux, on peut être très satisfait des capacités 2D du Spica. La 3D (sous OpenGL ES) semble peu performante, mais quelques recherches en ligne laissent croire que Samsung doit fournir des drivers plus performants de sa puce S3C6410. Je vous conseille un bon jeu 2D très prenant Robo Defense de Lupis Labs Software. Il y a en fait beaucoup d’autres jeux mais Robo Defense est celui avec lequel je m’éclate le lus en ce moment… Robo Defense Screenshot

Internet expérience

Comme dit plus haut l’internet-expérience et un peu moins bonne. La taille de l’écran y est pour beaucoup et le peu de site internet optimisé pour les smartphones y contribue énormément à ne pas être à l’aise. On a plus envi de passer sur son portable ou son PC de bureau pour une navigation internet plus aisée. Je n’ai pas eu cette impression sur un Nexus One ou un Iphone 3GS donc je suppose que la gêne vient de la taille de l’écran. Le zoom est accessible grâce à un simple double-click pour avoir une vision adaptée du contenu, mais le scrolling est agaçant.

Conclusion

Quelques regrets…
Pas de version officielle d’Android 2.2 (Froyo), la taille de l’écran un peu petite et peut-être un manque de mémoire interne. Même si on peu installer pas mal d’applications on est tout de même limité. Je pense que l’android-phone de Samsung qui devrait cartonner est le Galaxy S qui est prévu pour septembre 2010 comme étant l’Iphone 4 killer ou concurrent du HTC Evo 4G.

Il faut dire que le Spica reste un très bon rapport qualité/prix dans la gamme moyenne des smartphones.