XBMC 9.11 Final – Ubuntu Karmic sur ION 330 ASRocK
31 décembre 2009 – 18:05Un petit article qui regroupe pas mal de petites choses pour faire tourner XBMC 9.11 correctement sous la plateforme ION330 de ASRocK dont j’ai eut besoin et que je pose ici comme pense-bête, en espérant que ça vous soit aussi utile ![]()
Testé à partir du XBMCLive CD d’install avec un kernel stock 2.6.31-16-generic.
Pour la clef Wifi Dlink DWA-140 :
lsusb
Bus 001 Device 005: ID 07d1:3c09 D-Link System DWA-140 802.11n Adapter [ralink rt2870]
Blacklister les modules ralink de base et ne laisser charger que le rt2870sta :
A ajouter dans /etc/modprobe/blacklist.conf
blacklist rt2800usb
blacklist rt2x00usb
blacklist rt2x00lib
Rajouter un répertoire dans /etc/ nommé « Wireless », puis « RT2870STA »
mkdir /etc/Wireless
mkdir /etc/Wireless/RT2870STA
nano RT2870STA.dat
Contenu du RT2870STA.dat a modifier selon votre installation (changer SSID, WPAPSK, Channel)
A noter que le réseau est fonctionel en 802.11n (270Mbit/s) grâce à l’option WirelessMode=7
Default
CountryRegion=5
CountryRegionABand=7
CountryCode=
SSID=VOTRE_SSID
NetworkType=Infra
WirelessMode=7
Channel=8
BasicRate=54
BeaconPeriod=100
TxPower=100
BGProtection=0
TxPreamble=0
RTSThreshold=2347
FragThreshold=2346
TxBurst=1
WmmCapable=0
AckPolicy=0;0;0;0
AuthMode=WPAPSK
EncrypType=TKIP
WPAPSK="VOTRE_CLEF_PSK"
DefaultKeyID=1
Key1Type=0
Key1Str=0123456789
Key2Type=0
Key2Str=0123456789
Key3Type=0
Key3Str=0123456789
Key4Type=0
Key4Str=0123456789
PSMode=CAM
FastRoaming=0
RoamThreshold=70
HT_RDG=1
HT_EXTCHA=0
HT_OpMode=1
HT_MpduDensity=4
HT_BW=1
HT_AutoBA=1
HT_BADecline=0
HT_AMSDU=0
HT_BAWinSize=64
HT_GI=1
HT_MCS=33
HT_MIMOPSMode=3
IEEE80211H=0
TGnWifiTest=0
WirelessEvent=0
Il faut installer wicd pour la gestion du reseau sans-fils et du profil wpa_supplicant.conf associé dans /etc.
Fichier wpa_supplicant.conf à créer dans /etc/wpa_supplicant.conf
network={
ssid="VOTRE_SSID"
psk="VOTRE_CLEF_PSK"
proto=WPA2
key_mgmt=WPA-PSK
pairwise=CCMP
}
A noter que je fais ici du WPA2 avec de l’AES en PSK (mode Personnel) et qu’au niveau du fichier rt2870sta il est definit en TKIP… il faut que je reteste cette partie. En tout cas les fichiers posés sur une install toute propre fonctionne du premier coup ! (Vu le temps perdu pour que ça marche, je garde ça sous la main
)
A ajouter dans /etc/network/interfaces, il a l’air nécessaire de commenter l’interface eth0.
auto ra0
iface ra0 inet static
address XX.XX.XX.XX
netmask 255.255.255.0
gateway XX.XX.XX.XX
wpa-conf managed
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid VOTRE_SSID
wpa-key-mgmt WPA-PSK
wpa-psk VOTRE_CLEF_PSK
Un coup de reboot histoire de valider l’interface ra0 et son fonctionnement et normalement tout roule ![]()
Point de montage NFS :
Pas de client NFS pour les points de montage, un petit coup de apt-get :
apt-get install nfs-client
Creation des points de montage dans /home/xbmc :
mkdir /home/xbmc/Videos
mkdir /home/xbmc/Series
mkdir /home/xbmc/Musique
Un passage par /etc/fstab pour ajouter les points de montage :
XX.XX.XX.XX:/HD /home/xbmc/Videos nfs rw,tcp,rsize=32768,wsize=32768,hard 0 0
XX.XX.XX.XX:/musique /home/xbmc/Musique nfs rw,tcp,rsize=32768,wsize=32768,hard 0 0
XX.XX.XX.XX:/series /home/xbmc/Series nfs rw,tcp,rsize=32768,wsize=32768,hard
On monte à la main ou au prochain reboot ![]()
mount /home/xbmc/Videos
mount /home/xbmc/Series
mount /home/xbmc/Musique
Télécommande MCE :
La remote HP MCE KIT REMOTE CONTROL/USB IR RECEIVER/EMITTER acheté sur ebay
lsusb
Bus 002 Device 002: ID 045e:006d Microsoft Corp. eHome Remote Control Keyboard keys
Elle est « Plug-n-play » sous XBMC 9.11 (attention le module est intégré dans le kernel en tant qu’extension support Ubuntu)… En gros si vous tentez comme moi de faire un Kernel optimisé pour votre Atom 330… Il ne faut pas prendre un Kernel vanilla (www.kernenl.org) ça ne marchera pas.
Il faut partir d’un kernel GIT d’ubuntu 2.6.32 ou attendre la release. N’installez pas non plus le dernier kernel 2.6.32 fournit par Debian (pas de support pour la MCE dans le kernel) sauf si vous voulez vous prendre la tête à installer le module pour la mce et l’intégrer au kernel… la flemme ![]()
Mise en place du suspend Mode
Le problème une fois sous XBMC c’est qu’on se rend compte que le media center ne fait pas le resume correctement une fois en veille… Problème lié à la fonction wakeup qui n’est pas activé sur les périphériques USB. En gros, si vous voulez en appuyant sur power relancer votre media center… dommage !
Pour activer cette fonction :
Ajouter dans /etc/rc.local « echo USB0 > /proc/acpi/wakeup » comme ceci :
# By default this script does nothing.
echo USB0 > /proc/acpi/wakeup
exit 0
Un petit test via l’interface, suspend mode hop… power via la télécommande et Pouf ! C’est reparti ![]()
Hum… c’est reparti mais on perd le reseau… le module wifi semble avoir un soucis lors du resume il n’est pas rechargé correctement.
Une technique qui marche mais qui n’est pas très propre, faute de trouver mieux pour le moment :
Nous allons ajouter un script pour la relance des modules et des services reseaux dans la partie /etc/pm/sleep.d/ que nous allons appeler 20_wifi par exemple :
20_wifi
nano /etc/pm/sleep.d/20_wifi
Il faut y ajouter tout celà, et ne pas oublier de rendre le script executable bien évidement via un petit chmod +x /etc/pm/sleep.d/20_wifi !
#!/bin/sh
case "$1" in
resume)
# arrêt du service reseau
/etc/init.d/networking stop
#suppression du module
modprobe -r -f rt2870sta
# On le recharge
modprobe rt2870sta
# On relance le service reseau et daemon wicd pour la gestion wifi
/etc/init.d/networking restart
/etc/init.d/wicd restart
/etc/init.d/networking restart
;;
esac
Normalement, au retour d’une mise en veille le reseau wifi devrait remonter sous un délai de 5 à 10 secondes.
Automatisation des mises à jour des médiatèques :
Si comme moi vous aimez bien avoir une mediatèque à jour, et surtout mise à jour régulièrement il faut activer le service HTTP dans xbmc et mettre en place cette crontab :
Cron n’est pas installé dans XBMCLive 9.11, un petit coup d’apt-get :
apt-get install cron
crontab -e
Ajouter ceci pour une mise à jour toutes les 5 minutes :
*/5 * * * * curl 'http://localhost:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn¶meter=XBMC.updatelibrary(video)'
Ajout des sensors CPU et GPU :
Il faut installer sensors et nvclock, c’est parti !
Pour lm-sensors :
apt-get lm-sensors
Le plus « dur » est à faire… le module coretemp ne supporte pas la plateforme ION dans le kernel fournit par ubuntu… il faut donc recompiler le module :
On installe le nécessaire à la compilation :
apt-get install linux-source build-essential
Et on attaque la compilation du module coretemp :
cd /usr/src
wget http://mabene.icomedias.com/coretemp.patch
apt-get install linux-source-$(uname -r | awk -F'-' '{print $1}')
tar jxvf linux-source-$(uname -r | awk -F'-' '{print $1}').tar.bz2
cd linux-source-$(uname -r | awk -F'-' '{print $1}')
patch -p1 < ../coretemp.patch
make -j 4 -C /lib/modules/2.6.31-16-generic/build M=/usr/src/linux-source-$(uname -r | awk -F'-' '{print $1}')/drivers/hwmon/ modules
Ajout du module coretemp dans le /lib/modules correspondant au kernel en cours d'execution et dans le /etc/modules pour un chargement automatique au démarrage :
cp drivers/hwmon/coretemp.ko /lib/modules/2.6.31-16-generic/kernel/drivers/hwmon/coretemp.ko
echo coretemp >> "/etc/modules"
Un petit coup de :
sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +16.0°C (crit = +95.0°C)
coretemp-isa-0001
Adapter: ISA adapter
Core 1: +17.0°C (crit = +95.0°C)
coretemp-isa-0002
Adapter: ISA adapter
Core 2: +16.0°C (crit = +95.0°C)
coretemp-isa-0003
Adapter: ISA adapter
Core 3: +17.0°C (crit = +95.0°C)
Et on a la température des CPU ![]()
Pour nvclock le support du chipset ION n'est pas présent dans les dépots officiels, il faut aller du côté de la branche SVN :
apt-get install cvs automake
On va ensuite récupérer le projet nvclock :
cd /usr/local/src
cvs -z3 -d:pserver:anonymous@nvclock.cvs.sourceforge.net:/cvsroot/nvclock co -P nvclock
cd nvclock
sh autogen.sh
./configure --disable-nvcontrol
make
make install
Un petit coup de "nvclock -i" vous donnera les informations sur votre carte graphique et notamment la temperature du GPU ![]()
-- Sensor info --
Sensor: GPU Internal Sensor
GPU temperature: 77C
Ajout du support temperature dans XBMC :
Il faut ajouter dans le repertoire home de votre profil xbmc (chez moi c'est /home/xbmc/.xbmc/userdata) le fichier advancedsettings.xml :
Contenu du fichier advancedsettings.xml :
<advancedsettings>
<cputempcommand>echo "$(sensors -u | tail -n4 | grep temp1_input | awk '{print $2 }' |awk '{printf("%d\n",$1 + 0.5);}') C"</cputempcommand>
<gputempcommand>echo "$(nvclock -T | sed -ne "s/=> GPU temp.*: \([0-9]\+\).*/\1/p") C"</gputempcommand>
</advancedsettings>
Affichage du menu de boot en FullHD
Pour profiter du logo de boot de XBMC en FullHD sur votre télévision ou projecteur (hihi
)), il faut editer ce fichier :
nano /etc/usplash.conf
J'ai modifié les valeurs par celle-ci afin d'avoir un affichage en FullHD au démarrage ![]()
xres=1920
yres=1080
Pour valider les modifications pour le boot :
update-initramfs -u
And voilà ! On a quelque chose de pas trop mal ![]()
Je tiens à remercier les différentes communautés XBMC et Ubuntu pour leur super support, tout ce ticket est un résumé des différentes informations que j'ai pu récupérer à travers leurs forums.
NOTE : NE SURTOUT PAS METTRE A JOUR LES PILOTES NVIDIA VERS LA BRANCHE 195.X SOUS PEINE DE PERTE D'ACCELERATION VDAPU
Vous êtes prévenus !
Vive XBMC ![]()
