Bonjour,

Comment installer Fedora 20 sur l'Acer chromebook C720P :
C'est un petit PC portable de 11,6 pouces avec écran tactile sur plateforme Intel Haswell vendu avec ChromeOS pour 300€ et qui donc devrait avoir un bon support pour Linux.
Ses principaux défauts sont ses 2Gb de RAM soudés, son écran qui bien qu'il ait une bonne définition a des angles de vu assez médiocres (dalle TN, mais mate ce qui est bien) et son clavier un peu mou.
J'aurai aussi aimé un port RJ45 intégré...
Ses atouts sont : probablement un bon support Linux dans les mois à venir, son poids assez léger, le format et l'autonomie si on veut pouvoir le transporter un peu partout et la puissance processeur pour son prix parmi les moins chers du marché.

http://www.acer.fr/ac/fr/FR/content/series/c720 (Page du constructeur sur la machine)

Une bonne référence pour installer une distribution GNU/Linux est cette page :
https://wiki.archlinux.org/index.php/Acer_C720_Chromebook

Procédure d'installation (Gnome) :

Télécharger l'iso Live CD Gnome x86_64 sur cette page.

Copier l'iso sur une clé USB d'au moins 1Gb avec cette commande :
(Remplacez le X de "sdX" par la lettre (sans chiffre !) du point de montage de la clé !
C'est TRES IMPORTANT DE NE PAS SE TROMPER, vous risquez d'effacer un disque de votre système !
Gparted ou l'utilitaire "Disques" permettent de vérifier le nom
)
# dd bs=8M if=Fedora-Live-Desktop-x86_64-20-1.iso of=/dev/sdX && sync
On passe en Dévelopeur mode et on active Seabios :

La machine est éteinte et branchée sur le secteur.

Passer en mode recovery :
"échap" + "F3(recharger)" (sans relacher), et on presse "power" en même temps.

Désactiver secure boot :
"ctrl" + "d"

Passer en mode développeur :
"ctrl" + "d" (on attend 30 secondes)
On patiente le temps du passage en mode développeur...

Le chromebook redémarre, on entre dans Chrome Os (sans se logger).
On passe directement sur la console :
"ctrl" + "alt" + "F2(->)"

On se logue avec:
localhost login: chronos
On passe superutilisateur (attention le clavier est en qwerty) :
sudo bash
On active seabios :
# crossystem dev_boot_usb=1 dev_boot_legacy=1
On reboot la machine en mettant sa clé USB sur le port de droite (USB 2.0)

On presse ctrl + L à l'écran blanc pour passer à seabios.

Une fois dans seabios (écran à dominante noire) on peut demander à booter sur la clé USB préparée pour installer Fedora 20 :
"échap"
On choisi le numéro correspondant à sa clé (le "2" qui est en accès direct)

Là on ne peut installer directement car on obtient alors un message d'erreur sur une mémoire insuffisante (j'ai le modèle avec 2Gb de mémoire vive).

L'astuce pour lancer le mode live est :
Sur le premier écran de l'installeur, on appuit sur [TAB] afin d'accéder aux options de boot et on ajoute "mem=1536m"
(attention le clavier est alors en US : le "m" est sur la touche "," et les chiffres sont en accès direct)

A partir de là on à accès à la procédure standard. Fedora s'installe normalement.

Toutefois il faut prévoir une souris USB car le touchpad ne marche pas, ni l'écran tactile.

Je rédige ceci depuis l'acer c720p avec fedora installé sur le disque dur 🙂 J'ai complètement viré chromeOS. Ma partition racine, qui inclus /home, fait 29Gb.

Ce qui ne fonctionne pas avec l'installation standard :
- [RESOLU] touchpad (mais il y a un patch : https://plus.google.com/+BensonLeung/posts/EJUSUudzHb3 et une second sur xorg pour avoir un meilleur comportement https://plus.google.com/+HughGreenberg/posts/LDVHbPceKUc ) Bug report : https://bugzilla.redhat.com/show_bug.cgi?id=1045821
- [RESOLU] l'écran tactile (il semble qu'on puisse le faire marcher cf. https://plus.google.com/114358706658341629084/posts/Q9B4DiqWZ5E )
- [RESOLU] veille/hibernation surtout quand on ferme l'écran ; on peut la désactiver avec le fichier de conf de systemd, cf. le wiki d'arch linux en lien au-dessus. J'ai bon espoir de pouvoir résoudre aussi ce soucis, cf. https://plus.google.com/+PedroLarroy/posts/6CgQypQukMa
- [BIDOUILLAGE] le micro intégré
- [RESOLU] la lecture vidéo avec accélération GPU : accélération matérielle (GPU) dans totem grâce à gstreamer1-vaapi.
- [MATÉRIEL SUPPORTÉ par le noyau] le détecteur automatique de luminosité (ALS en anglais) couplé avec la luminosité de l'écran. Il y a des référence à ce sujet dans le code source du noyau dans le module drivers/platform/x86/chromeos_laptop.c EDIT : le pilote est "linux-3.12.7-300.fc20.x86_64/drivers/staging/iio/light/isl29018.o", les sondes sont accessibles par "$ cat /sys/bus/iio/devices/iio:device0/in_*" Il y a 3 sondes : luminosité, proximité et infrarouge.

Ce qui fonctionne (testé) :
- l'écran en résolution native 1368x768 (16:9)
- le clavier (AZERTY) avec la touche super sur la touche [Recherche] (à gauche, à la place de [CAPS LOCK], bien pratique finalement pour Gnome). Note : pas de touche [CAPS LOCK], ni [SUPPR]. [RESOLU] On peut avoir accès aux touches "spéciales" du clavier (la première rangée) et avoir ce qui manque le plus : Caps Lock, Suppr, Début, Fin, Page up, Page Down
- le wifi
- le son
- les ports USB (testé avec du matériel 2.0)
- la webcam
- l'autonomie à l'air très bonne (c'est une des raisons de mon achat). Recharge complète de la batterie : 1h45. Estimation de la durée de vie de la batterie par le système après un cycle complet de charge à 100%/décharge complète 2%/recharge à 100% : oscille entre 5h30 et 6h30
- l'accélération matérielle de la carte graphique intel
- le lecteur de carte SD

A tester :
- le bluetooth (il semble que ça marche...)

Ce qui casse un peu les pieds :
- une fois passé en mode développeur pour pouvoir booter sans sécure boot on a droit à chaque démarrage à un écran blanc d'avertissement et il faut faire CTRL+L pour en sortir, mais vu que c'est déjà coreboot j'ai bon espoir de pouvoir réinstaller coreboot pour ne plus avoir cela. cf. http://johnlewis.ie/ qui demande des donations pour acheter l'acer C720 et y faire marcher coreboot...
- [RESOLU] dans l'interface Gnome, quand je passe la souris sur les icones logiciels, il y a des petits glitchs d'une fraction de seconde (mineur mais pas esthétique). UPDATE: les glitchs ont disparus (probablement grâce à une mise à jour logicielle).

Ce qu'on peut optimiser :
- [RESOLU] augmenter l'autonomie jusqu'à une estimation de 10h avec juste l'interface Gnome et la batterie pleine.
- [RESOLU] la fonction TRIM pour le SSD, un meilleur ordonnanceur d'I/O et réduire les écritures.
- [RESOLU] Augmenter la RAM disponible avec la compression d'une partie de celle-ci (ZRAM)

Ce qui fait plaisir :
- la pile logicielle libre \o/
- Gnome est rapide et fluide

Activer le pavé tactile, l'écran tactile et ZRAM :
ATTENTION : si le kernel est mis à jour, il faudra relancer ce script et rebooter.
Pensez à faire une mise à jour avant :
$ su -c 'yum update'
Lancez ce script (avec votre utilisateur courant ; pas en root ! Le script vous demandera votre mot de passe root plusieurs fois quand il en aura besoin.):

Nouvelle version du script (version 14, 20 août 2014) : règle un soucis d'URL qui rend la version 13 inopérante
Script version 14 pour Linux 3.15.x

Nouvelle version du script (version 13, 17 juillet 2014) : règle le soucis de veille pour la version KDE de fedora 20 (voire d'autres versions...)
https://bugzilla.redhat.com/attachment.cgi?id=918624

Version du script pour les noyaux >= 3.15.4 (12 juillet 2014)
https://bugzilla.redhat.com/attachment.cgi?id=917452

Version du script pour les noyaux >= 3.14.6 (12 juin 2014)
#!/bin/bash
# Modified for Arch Linux from ChrUbuntu's cros-haswell-modules.sh
# https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/cros-haswell-modules.sh
# + touchpad:
# original cros-haswell-modules.sh by Jay Lee http://goo.gl/kz917j 
# updated to support c720p touchscreen by motley.slate@gmail.com
# updated to support als system - Yannick@ekiga
# This script is designed for Fedora 20
# Changelog:
# Version 10
# - Remove the fix for suspend; kernel 3.14.6 has the fix.
# Version 9
# - fix suspend for 3.14.2 by reverting patch https://github.com/torvalds/linux/commit/1569a4c4ceba
# Version 8
# - updated for linux 3.14.x
# - Updated zram folder as it is now outside staging
# Version 7.1
# Apply since kernel 3.13.3-201.fc20.x86_64
# - Fix the atmel touchscreen module for kernel 3.13.x

set -e

# Determine kernel version
# e.g. 3.12.5-302.fc20.x86_64
archkernver=$(uname -r)
# e.g. 3.12.5
kernver=$(uname -r | cut -d'-' -f 1)
# e.g. 302.fc20
fnumversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 1,2)
# e.g. x86_64
arch=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 3)
# e.g. 3.12
kernvermaj=$(uname -r | cut -d'-' -f 1 | cut -d'.' -f 1,2)
# e.g. fc20
fversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 2)
# e.g. 302.fc20.x86_64
extraversion=$(uname -r | cut -d'-' -f 2)

# Install necessary deps to build a kernel
echo "Installing linux-headers..."
su -c 'yum install rpmdevtools yum-utils kernel-devel kernel-headers ncurses-devel pesign'

# Grab kernel source
rpmdev-setuptree
yumdownloader --source kernel
su -c "yum-builddep kernel-$kernver-$fnumversion.src.rpm"
rpm -Uvh kernel-$kernver-$fnumversion.src.rpm
cd $HOME/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec

cd $HOME/rpmbuild/BUILD/kernel-$kernvermaj.$fversion/linux-$archkernver

# Use Benson Leung's post-Pixel Chromebook patches:
# https://patchwork.kernel.org/bundle/bleung/chromeos-laptop-deferring-and-haswell/
echo "Applying Chromebook Haswell Patches..."
for patch in 3078491 3078481; do
  wget -O - https://patchwork.kernel.org/patch/$patch/raw/ | patch -p1
done

# fetch the chromeos_laptop and atmel maxtouch source code
# Copy made from chromium.googlesource.com chromeos-3.8 branch
# https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/refs/heads/chromeos-3.8
wget https://googledrive.com/host/0BxMvXgjEztvAbEdYM1o0ck5rOVE --output-document=patch_atmel_mxt_ts.c
# Fix for kernel >=3.13
sed -i -e "s/INIT_COMPLETION(/reinit_completion(\&/g" patch_atmel_mxt_ts.c
wget https://googledrive.com/host/0BxMvXgjEztvAdVBjQUljYWtiR2c --output-document=patch_chromeos_laptop.c

# copy source files into kernel tree replacing existing Ubuntu source
cp ./patch_atmel_mxt_ts.c drivers/input/touchscreen/atmel_mxt_ts.c
cp ./patch_chromeos_laptop.c drivers/platform/chrome/chromeos_laptop.c

echo "Building relevant modules..."
# Touchpad
cd drivers/platform/chrome/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := chromeos_laptop.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

cd drivers/i2c/busses/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-core.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-pci.o
i2c-designware-pci-objs := i2c-designware-pcidrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-platform.o
i2c-designware-platform-objs := i2c-designware-platdrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# Touchscreen
cd drivers/input/touchscreen/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := atmel_mxt_ts.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# ALS: /drivers/staging/iio/light/isl29018.o
cd drivers/staging/iio/light/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := isl29018.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../../..


# ZRAM
cd mm/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zsmalloc.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ..

cd drivers/block/zram
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zram.o
zram-y	:=	zram_drv.o

obj-$(CONFIG_ZRAM)	+=	zram.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

echo "Installing relevant modules and driver..."
# Touchpad, TouchScreen and Zram 
su -c "cp drivers/platform/chrome/chromeos_laptop.ko /lib/modules/$archkernver/kernel/drivers/platform/chrome/ && cp drivers/i2c/busses/i2c-designware-*.ko /lib/modules/$archkernver/kernel/drivers/i2c/busses/ && cp drivers/input/touchscreen/atmel_mxt_ts.ko /lib/modules/$archkernver/kernel/drivers/input/touchscreen/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/iio/light && cp drivers/staging/iio/light/isl29018.ko /lib/modules/$archkernver/kernel/drivers/staging/iio/light/ && mkdir -p /lib/modules/$archkernver/kernel/mm && cp mm/zsmalloc.ko /lib/modules/$archkernver/kernel/mm/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/block/zram && cp drivers/block/zram/zram.ko /lib/modules/$archkernver/kernel/drivers/block/zram/ && depmod -a $archkernver && yum install xorg-x11-drv-synaptics"


echo "Les modules pour le pavé, l'écran tactiles, l'ALS et ZRAM sont prêts."
Version du script pour les noyaux >= 3.14 (2 mai 2014)
#!/bin/bash
# Modified for Arch Linux from ChrUbuntu's cros-haswell-modules.sh
# https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/cros-haswell-modules.sh
# + touchpad:
# original cros-haswell-modules.sh by Jay Lee http://goo.gl/kz917j 
# updated to support c720p touchscreen by motley.slate@gmail.com
# updated to support als system - Yannick@ekiga
# This script is designed for Fedora 20
# Changelog:
# Version 9
# - fix suspend for 3.14.2 by reverting patch https://github.com/torvalds/linux/commit/1569a4c4ceba
# Version 8
# - updated for linux 3.14.x
# - Updated zram folder as it is now outside staging
# Version 7.1
# Apply since kernel 3.13.3-201.fc20.x86_64
# - Fix the atmel touchscreen module for kernel 3.13.x

set -e

# Determine kernel version
# e.g. 3.12.5-302.fc20.x86_64
archkernver=$(uname -r)
# e.g. 3.12.5
kernver=$(uname -r | cut -d'-' -f 1)
# e.g. 302.fc20
fnumversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 1,2)
# e.g. x86_64
arch=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 3)
# e.g. 3.12
kernvermaj=$(uname -r | cut -d'-' -f 1 | cut -d'.' -f 1,2)
# e.g. fc20
fversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 2)
# e.g. 302.fc20.x86_64
extraversion=$(uname -r | cut -d'-' -f 2)

# Install necessary deps to build a kernel
echo "Installing linux-headers..."
su -c 'yum install rpmdevtools yum-utils kernel-devel kernel-headers ncurses-devel pesign'

# Grab kernel source
rpmdev-setuptree
yumdownloader --source kernel
su -c "yum-builddep kernel-$kernver-$fnumversion.src.rpm"
rpm -Uvh kernel-$kernver-$fnumversion.src.rpm
cd $HOME/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec

cd $HOME/rpmbuild/BUILD/kernel-$kernvermaj.$fversion/linux-$archkernver

# Use Benson Leung's post-Pixel Chromebook patches:
# https://patchwork.kernel.org/bundle/bleung/chromeos-laptop-deferring-and-haswell/
echo "Applying Chromebook Haswell Patches..."
for patch in 3078491 3078481; do
  wget -O - https://patchwork.kernel.org/patch/$patch/raw/ | patch -p1
done

# fetch the chromeos_laptop and atmel maxtouch source code
# Copy made from chromium.googlesource.com chromeos-3.8 branch
# https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/refs/heads/chromeos-3.8
wget https://googledrive.com/host/0BxMvXgjEztvAbEdYM1o0ck5rOVE --output-document=patch_atmel_mxt_ts.c
# Fix for kernel >=3.13
sed -i -e "s/INIT_COMPLETION(/reinit_completion(\&/g" patch_atmel_mxt_ts.c
wget https://googledrive.com/host/0BxMvXgjEztvAdVBjQUljYWtiR2c --output-document=patch_chromeos_laptop.c

# copy source files into kernel tree replacing existing Ubuntu source
cp ./patch_atmel_mxt_ts.c drivers/input/touchscreen/atmel_mxt_ts.c
cp ./patch_chromeos_laptop.c drivers/platform/chrome/chromeos_laptop.c

# Fix suspend by reverting drivers/char/tpm/tpm_ppi.c to kernel 3.13 behavior
wget -O - https://github.com/torvalds/linux/commit/1569a4c4ceba.patch | patch -p1 -R


echo "Building relevant modules..."
# Touchpad
cd drivers/platform/chrome/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := chromeos_laptop.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

cd drivers/i2c/busses/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-core.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-pci.o
i2c-designware-pci-objs := i2c-designware-pcidrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-platform.o
i2c-designware-platform-objs := i2c-designware-platdrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# Touchscreen
cd drivers/input/touchscreen/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := atmel_mxt_ts.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# ALS: /drivers/staging/iio/light/isl29018.o
cd drivers/staging/iio/light/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := isl29018.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../../..


# ZRAM
cd mm/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zsmalloc.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ..

cd drivers/block/zram
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zram.o
zram-y	:=	zram_drv.o

obj-$(CONFIG_ZRAM)	+=	zram.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# Suspend
cd drivers/char/tpm/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m += tpm.o
tpm-y := tpm-interface.o tpm-dev.o tpm-sysfs.o
tpm-y += tpm_ppi.o
tpm-y += tpm_eventlog.o tpm_acpi.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..


echo "Installing relevant modules and driver..."
# Touchpad, TouchScreen and Zram 
su -c "cp drivers/platform/chrome/chromeos_laptop.ko /lib/modules/$archkernver/kernel/drivers/platform/chrome/ && cp drivers/i2c/busses/i2c-designware-*.ko /lib/modules/$archkernver/kernel/drivers/i2c/busses/ && cp drivers/input/touchscreen/atmel_mxt_ts.ko /lib/modules/$archkernver/kernel/drivers/input/touchscreen/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/iio/light && cp drivers/staging/iio/light/isl29018.ko /lib/modules/$archkernver/kernel/drivers/staging/iio/light/ && mkdir -p /lib/modules/$archkernver/kernel/mm && cp mm/zsmalloc.ko /lib/modules/$archkernver/kernel/mm/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/block/zram && cp drivers/block/zram/zram.ko /lib/modules/$archkernver/kernel/drivers/block/zram/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/char/tpm/ && cp drivers/char/tpm/tpm.ko /lib/modules/$archkernver/kernel/drivers/char/tpm/ && depmod -a $archkernver && yum install xorg-x11-drv-synaptics"


echo "Les modules pour le pavé, l'écran tactiles, l'ALS et ZRAM sont prêts."
Version du script pour le kernel 3.13.x (depuis le 18/02/2014)
#!/bin/bash
# Modified for Arch Linux from ChrUbuntu's cros-haswell-modules.sh
# https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/cros-haswell-modules.sh
# + touchpad:
# original cros-haswell-modules.sh by Jay Lee http://goo.gl/kz917j 
# updated to support c720p touchscreen by motley.slate@gmail.com
# updated to support als system - Yannick@ekiga
# This script is designed for Fedora 20
# Version 7.1
# Apply since kernel 3.13.3-201.fc20.x86_64
# Changelog :
# - Fix the atmel touchscreen module for kernel 3.13.x

set -e

# Determine kernel version
# e.g. 3.12.5-302.fc20.x86_64
archkernver=$(uname -r)
# e.g. 3.12.5
kernver=$(uname -r | cut -d'-' -f 1)
# e.g. 302.fc20
fnumversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 1,2)
# e.g. x86_64
arch=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 3)
# e.g. 3.12
kernvermaj=$(uname -r | cut -d'-' -f 1 | cut -d'.' -f 1,2)
# e.g. fc20
fversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 2)
# e.g. 302.fc20.x86_64
extraversion=$(uname -r | cut -d'-' -f 2)

# Install necessary deps to build a kernel
echo "Installing linux-headers..."
su -c 'yum install rpmdevtools yum-utils kernel-devel kernel-headers ncurses-devel pesign'

# Grab kernel source
rpmdev-setuptree
yumdownloader --source kernel
su -c "yum-builddep kernel-$kernver-$fnumversion.src.rpm"
rpm -Uvh kernel-$kernver-$fnumversion.src.rpm
cd $HOME/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec

cd $HOME/rpmbuild/BUILD/kernel-$kernvermaj.$fversion/linux-$archkernver

# Use Benson Leung's post-Pixel Chromebook patches:
# https://patchwork.kernel.org/bundle/bleung/chromeos-laptop-deferring-and-haswell/
echo "Applying Chromebook Haswell Patches..."
for patch in 3078491 3078481; do
  wget -O - https://patchwork.kernel.org/patch/$patch/raw/ | patch -p1
done

# fetch the chromeos_laptop and atmel maxtouch source code
# Copy made from chromium.googlesource.com chromeos-3.8 branch
# https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/refs/heads/chromeos-3.8
wget https://googledrive.com/host/0BxMvXgjEztvAbEdYM1o0ck5rOVE --output-document=patch_atmel_mxt_ts.c
# Fix for kernel >=3.13
sed -i -e "s/INIT_COMPLETION(/reinit_completion(\&/g" patch_atmel_mxt_ts.c
wget https://googledrive.com/host/0BxMvXgjEztvAdVBjQUljYWtiR2c --output-document=patch_chromeos_laptop.c

# copy source files into kernel tree replacing existing Ubuntu source
cp ./patch_atmel_mxt_ts.c drivers/input/touchscreen/atmel_mxt_ts.c
cp ./patch_chromeos_laptop.c drivers/platform/chrome/chromeos_laptop.c

echo "Building relevant modules..."
# Touchpad
cd drivers/platform/chrome/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := chromeos_laptop.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

cd drivers/i2c/busses/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-core.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-pci.o
i2c-designware-pci-objs := i2c-designware-pcidrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-platform.o
i2c-designware-platform-objs := i2c-designware-platdrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# Touchscreen
cd drivers/input/touchscreen/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := atmel_mxt_ts.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# ALS: /drivers/staging/iio/light/isl29018.o
cd drivers/staging/iio/light/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := isl29018.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../../..


# ZRAM
cd drivers/staging/zsmalloc/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zsmalloc.o
zsmalloc-y 		:= zsmalloc-main.o

obj-$(CONFIG_ZSMALLOC)	+= zsmalloc.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

cd drivers/staging/zram/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zram.o
zram-y	:=	zram_drv.o

obj-$(CONFIG_ZRAM)	+=	zram.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

echo "Installing relevant modules and driver..."
# Touchpad, TouchScreen and Zram 
su -c "cp drivers/platform/chrome/chromeos_laptop.ko /lib/modules/$archkernver/kernel/drivers/platform/chrome/ && cp drivers/i2c/busses/i2c-designware-*.ko /lib/modules/$archkernver/kernel/drivers/i2c/busses/ && cp drivers/input/touchscreen/atmel_mxt_ts.ko /lib/modules/$archkernver/kernel/drivers/input/touchscreen/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/iio/light && cp drivers/staging/iio/light/isl29018.ko /lib/modules/$archkernver/kernel/drivers/staging/iio/light/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/zsmalloc && cp drivers/staging/zsmalloc/zsmalloc.ko /lib/modules/$archkernver/kernel/drivers/staging/zsmalloc/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/zram && cp drivers/staging/zram/zram.ko /lib/modules/$archkernver/kernel/drivers/staging/zram/ && depmod -a $archkernver && yum install xorg-x11-drv-synaptics"

echo "Les modules pour le pavé, l'écran tactiles, l'ALS et ZRAM sont prêts."
Version du script pour les kernel 3.11.x et 3.12.x
#!/bin/bash
# Modified for Arch Linux from ChrUbuntu's cros-haswell-modules.sh
# https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/cros-haswell-modules.sh
# + touchpad:
# original cros-haswell-modules.sh by Jay Lee http://goo.gl/kz917j 
# updated to support c720p touchscreen by motley.slate@gmail.com
# updated to support als system - Yannick@ekiga
# This script is designed for Fedora 20

set -e

# Determine kernel version
# e.g. 3.12.5-302.fc20.x86_64
archkernver=$(uname -r)
# e.g. 3.12.5
kernver=$(uname -r | cut -d'-' -f 1)
# e.g. 302.fc20
fnumversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 1,2)
# e.g. x86_64
arch=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 3)
# e.g. 3.12
kernvermaj=$(uname -r | cut -d'-' -f 1 | cut -d'.' -f 1,2)
# e.g. fc20
fversion=$(uname -r | cut -d'-' -f 2 | cut -d'.' -f 2)
# e.g. 302.fc20.x86_64
extraversion=$(uname -r | cut -d'-' -f 2)

# Install necessary deps to build a kernel
echo "Installing linux-headers..."
su -c 'yum install rpmdevtools yum-utils kernel-devel kernel-headers ncurses-devel pesign'

# Grab kernel source
rpmdev-setuptree
yumdownloader --source kernel
su -c "yum-builddep kernel-$kernver-$fnumversion.src.rpm"
rpm -Uvh kernel-$kernver-$fnumversion.src.rpm
cd $HOME/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec

cd $HOME/rpmbuild/BUILD/kernel-$kernvermaj.$fversion/linux-$archkernver

# Use Benson Leung's post-Pixel Chromebook patches:
# https://patchwork.kernel.org/bundle/bleung/chromeos-laptop-deferring-and-haswell/
echo "Applying Chromebook Haswell Patches..."
for patch in 3078491 3078481 3074391 3074441 3074421 3074401 3074431 3074411; do
  wget -O - https://patchwork.kernel.org/patch/$patch/raw/ | patch -p1
done

# fetch the chromeos_laptop and atmel maxtouch source code
# Copy made from chromium.googlesource.com chromeos-3.8 branch
# https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/refs/heads/chromeos-3.8
wget https://googledrive.com/host/0BxMvXgjEztvAbEdYM1o0ck5rOVE --output-document=patch_atmel_mxt_ts.c
wget https://googledrive.com/host/0BxMvXgjEztvAdVBjQUljYWtiR2c --output-document=patch_chromeos_laptop.c

# copy source files into kernel tree replacing existing Ubuntu source
cp ./patch_atmel_mxt_ts.c drivers/input/touchscreen/atmel_mxt_ts.c
cp ./patch_chromeos_laptop.c drivers/platform/x86/chromeos_laptop.c

echo "Building relevant modules..."
# Touchpad
cd drivers/platform/x86/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := chromeos_laptop.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

cd drivers/i2c/busses/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-core.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-pci.o
i2c-designware-pci-objs := i2c-designware-pcidrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile

echo 'KERNELVERSION = '$archkernver'
obj-m := i2c-designware-platform.o
i2c-designware-platform-objs := i2c-designware-platdrv.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# Touchscreen
cd drivers/input/touchscreen/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := atmel_mxt_ts.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

# ALS: /drivers/staging/iio/light/isl29018.o
cd drivers/staging/iio/light/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := isl29018.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../../..


# ZRAM
cd drivers/staging/zsmalloc/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zsmalloc.o
zsmalloc-y 		:= zsmalloc-main.o

obj-$(CONFIG_ZSMALLOC)	+= zsmalloc.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

cd drivers/staging/zram/
mv Makefile Makefile.orig
echo 'KERNELVERSION = '$archkernver'
obj-m := zram.o
zram-y	:=	zram_drv.o

obj-$(CONFIG_ZRAM)	+=	zram.o

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) M=$(PWD) modules' > Makefile
make -C /lib/modules/$archkernver/build M=$PWD modules
rm Makefile
mv Makefile.orig Makefile
cd ../../..

echo "Installing relevant modules and driver..."
# Touchpad, TouchScreen and Zram 
# preserve old as .orig
su -c "cp drivers/platform/x86/chromeos_laptop.ko /lib/modules/$archkernver/kernel/drivers/platform/x86/ && cp drivers/i2c/busses/i2c-designware-*.ko /lib/modules/$archkernver/kernel/drivers/i2c/busses/ && cp drivers/input/touchscreen/atmel_mxt_ts.ko /lib/modules/$archkernver/kernel/drivers/input/touchscreen/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/iio/light && cp drivers/staging/iio/light/isl29018.ko /lib/modules/$archkernver/kernel/drivers/staging/iio/light/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/zsmalloc && cp drivers/staging/zsmalloc/zsmalloc.ko /lib/modules/$archkernver/kernel/drivers/staging/zsmalloc/ && mkdir -p /lib/modules/$archkernver/kernel/drivers/staging/zram && cp drivers/staging/zram/zram.ko /lib/modules/$archkernver/kernel/drivers/staging/zram/ && depmod -a $archkernver && yum install xorg-x11-drv-synaptics"

echo "Les modules pour le pavé, l'écran tactiles, l'ALS et ZRAM sont prêts."
Si tout se passe bien, les modules pour le pavé tactile, l'écran tactile et ZRAM sont installés.

Vous pouvez supprimer le dossier "rpmbuild" dans votre home qui a servi à compiler les modules du noyau.

Ensuite il faut configurer le pavé/l'écran tactile :
Créez le fichier "touchpad-acer-c720.modules" dans /etc/sysconfig/modules/
#!/bin/sh

exec /sbin/modprobe chromeos_laptop >/dev/null 2>&1
exec /sbin/modprobe i2c-designware-core >/dev/null 2>&1
exec /sbin/modprobe i2c-designware-pci >/dev/null 2>&1
exec /sbin/modprobe i2c-designware-platform >/dev/null 2>&1
exec /sbin/modprobe atmel_mxt_ts >/dev/null 2>&1
On le rend exécutable :
$ su -c 'chmod +x /etc/sysconfig/modules/touchpad-acer-c720.modules'
Et créez le fichier /etc/X11/xorg.conf.d/50-cros-touchpad.conf
Section "InputClass" 
    Identifier      "touchpad peppy cyapa" 
    MatchIsTouchpad "on" 
    MatchDevicePath "/dev/input/event*" 
    MatchProduct    "cyapa" 
    Option          "FingerLow" "10" 
    Option          "FingerHigh" "10" 
EndSection
Rebooter pour avoir le pavé tactile et l'écran tactile.

Dans Gnome, appuyer sur la touche "Recherche" et rechercher "Souris & pavé tactile" :
Cocher la case en bas à droite "Taper pour cliquer". Ainsi pour cliquer il suffit de taper sur le pavé, plus besoin d'utiliser les boutons mécaniques qui ont le défaut de faire bouger le pointeur.

Usage du pavé tactile : Documentation de Gnome pour le pavé tactile
bouton gauche : taper avec un doigt (double-clic possible)
bouton droit : taper avec 2 doigts
bouton du milieu : taper avec 3 droigts
Défilement : faire glisser avec 2 doigts.
Sélection : double tape avec 1 doigt, mais on laisse le doigt appuyé la second fois, puis on le déplace pour sélectionner.

Maintenant on ajoute cette extension à Firefox pour faire défiler l'écran avec les doigts :
Grab and Drag

Enfin on suit la configuration manuelle (l'automatique ne marche pas pour f20) de cette doc pour ZRAM :

Configuration manuelle de zram

Son
UPDATE :
Comme le son semble être bien géré par Fedora, voici une configuration pour que les logiciels qui utilisent Alsa coopèrent avec PulseAudio (en particulier flash ne bloque plus le son)

Installer le plugin d'Alsa pour puleaudio :
$ su -c 'yum install alsa-plugins-pulseaudio'
Créer le fichier ~/.asoundrc :
pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
Autonomie
Ressource : Documentation officielle sur l'autonomie

On va activer le profile "powersave" de tuned :
$ su -c 'yum install tuned'
$ su -c 'systemctl enable tuned'
$ su -c 'systemctl start tuned'
$ tuned-adm profile powersave
Mettre la luminosité de l'écran à 50% aide aussi, mais si on le fait à partir du bouton "énergie" de la configuration du système, la configuration saute au reboot...

Dans cette configuration, Gnome oscille entre une estimation de 8h et 9h, ce qui est bien mieux que le 5h30/6h30 de base d'une installation toute fraiche. Ce n'est bien sûr qu'une estimation, mais cela montre un gain réel important.

On va mainenant utiliser l'utilitaire "powertop" et suivre ses conseils (onglet "tunables") :
touch /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
Et on met ce script dans le fichier /etc/rc.d/rc.local:
#!/bin/bash
# Saving power according to powertop:
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save'
echo 'auto' > '/sys/bus/usb/devices/2-4/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:15.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:03.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:02.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1b.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.6/power/control'
# WIFI: we don't want power saving there to get the most of it!
echo 'on' > '/sys/bus/pci/devices/0000:01:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control'
# Luminosité ~50% (max=937)
echo 450 > /sys/class/backlight/intel_backlight/brightness
Puis on lance ce service au démarrage :
# systemctl start rc-local
On peut vérifier que le service est lancé avec :
# systemctl status rc-local
Gnome estime maintenant l'autonomie entre 9h30 et 10h (idle).

Régler l'hibernation/mise en veille
Créer le fichier /etc/tmpfiles.d/cros-acpi-wakeup.conf
# /etc/tmpfiles.d/cros-acpi-wakeup.conf
w /proc/acpi/wakeup - - - - EHCI
w /proc/acpi/wakeup - - - - HDEF
w /proc/acpi/wakeup - - - - XHCI
w /proc/acpi/wakeup - - - - LID0
w /proc/acpi/wakeup - - - - TPAD
w /proc/acpi/wakeup - - - - TSCR
On crée le fichier /usr/lib/systemd/system-sleep/cros-sound-suspend.sh
#!/bin/bash

case $1/$2 in
  pre/*)
    # Kill flash plugin as it prevent suspend
    pgrep -f flashplayer | xargs kill >/dev/null 2>&1
    # Unbind ehci for preventing error 
    echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/unbind
    # Unbind snd_hda_intel for sound
    echo -n "0000:00:1b.0" | tee /sys/bus/pci/drivers/snd_hda_intel/unbind
    echo -n "0000:00:03.0" | tee /sys/bus/pci/drivers/snd_hda_intel/unbind
    ;;
  post/*)
    # Bind ehci for preventing error 
    echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/bind
    # bind snd_hda_intel for sound
    echo -n "0000:00:1b.0" | tee /sys/bus/pci/drivers/snd_hda_intel/bind
    echo -n "0000:00:03.0" | tee /sys/bus/pci/drivers/snd_hda_intel/bind
    ;;
esac
On le rend exécutable :
# chmod +x /usr/lib/systemd/system-sleep/cros-sound-suspend.sh
On edit GRUB /etc/default/grub :
On ajoute cette ligne à la fin :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash tpm_tis.force=1 tpm_tis.interrupts=0"
On update grub :
# grub2-mkconfig -o /boot/grub2/grub.cfg
Rebooter.

Ca devrait fonctionner : Fermer l'écran, ou appuyer sur le bouton power en haut à droite du clavier met le PC en hibernation.

Utiliser les touches multimédias
Référence : Clavier des Chromebooks

La touche [Recherche] est déjà assignée par Gnome à la recherche.

Pour les autres touches spéciales :
Installer le logiciel xbindkeys, xbacklight, xdotool et xvkbd :
$ su -c 'yum install xbindkeys'
$ su -c 'yum install xbacklight'
$ su -c 'yum install xvkbd'
$ su -c 'yum install xdotool'
Créer le fichier de configuration :
# ~/.xbindkeysrc
# ACER C720 hotkeys

"xbacklight -dec 10"
    F6

"xbacklight -inc 10"
    F7

#"amixer -D pulse set Master toggle"
"pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle"
    F8

#"amixer set Master 10- unmute"
"pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo -- -5%"
    F9

#"amixer set Master 10+ unmute"
"pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo -- +5%"
    F10

"xdotool key Caps_Lock"
    Alt + Super_L

# Ce qui suit marche parfois... selon les logiciels.
# Mod5=alt gr

#"xvkbd -xsendevent -text '\[Delete]'"
#    Alt + BackSpace
"xdotool keyup Alt+BackSpace; xdotool key Delete; xdotool keydown Alt"
    Alt+BackSpace

#"xvkbd -xsendevent -text '\[Home]'"
#    Alt + Left
"xdotool keyup Alt+Left; xdotool key Home; xdotool keydown Alt"
    Alt+Left

#"xvkbd -xsendevent -text '\[End]'"
#    Alt + Right
"xdotool keyup Alt+Right; xdotool key End; xdotool keydown Alt"
    Alt+Right

#"xvkbd -xsendevent -text '\[Page_Down]'"
#    Alt + Down
"xdotool keyup Alt+Down; xdotool key Page_Down; xdotool keydown Alt"
    Alt+Down

#"xvkbd -xsendevent -text '\[Page_Up]'"
#    Alt + Up
"xdotool keyup Alt+Up; xdotool key Page_Up; xdotool keydown Alt"
    Alt+Up

"xvkbd -xsendevent -text '\[F6]'"
    Mod5 + F6
#"xdotool keyup Mod5+F6; xdotool key F6; xdotool keydown Mod5"
#    Mod5+F6

"xvkbd -xsendevent -text '\[F7]'"
    Mod5 + F7
#"xdotool keyup Mod5+F7; xdotool key F7; xdotool keydown Mod5"
#    Mod5+F7

"xvkbd -xsendevent -text '\[F8]'"
    Mod5 + F8
#"xdotool keyup Mod5+F8; xdotool key F8; xdotool keydown Mod5"
#    Mod5+F8

"xvkbd -xsendevent -text '\[F9]'"
    Mod5 + F9
#"xdotool keyup Mod5+F9; xdotool key F9; xdotool keydown Mod5"
#    Mod5+F9

"xvkbd -xsendevent -text '\[F10]'"
    Mod5 + Escape
#"xdotool keyup Mod5+F1; xdotool key F10; xdotool keydown Mod5"
#    Mod5+Escape

"xvkbd -xsendevent -text '\[F11]'"
    Mod5 + F1
#"xdotool keyup Mod5+F1; xdotool key F11; xdotool keydown Mod5"
#    Mod5+F1

"xvkbd -xsendevent -text '\[F12]'"
    Mod5 + F2
#"xdotool keyup Mod5+F2; xdotool key F12; xdotool keydown Mod5"
#    Mod5+F2
Créer le fichier ~/.startup/start.sh :
#!/bin/bash
# ~/.startup/start.sh
# Start xbindkeys
xbindkeys
On le rend exécutable :
chmod +x ~/.startup/start.sh
On le place dans les choses à lancer au début de la session :
$ gnome-session-properties
Ajouter une entrée "Script de démarrage" (modifiez le "NOM_D_UTILISATEUR") :

Nom : Script de démarrage
Commande : sh -c /home/NOM_D_UTILISATEUR/.startup/start.sh

Pour avoir les 4 premières touches de navigation (Retour, Avancer, Recharger, Plein écran) dans Firefox, essayer cette extension :
Customizable Shortcuts for Firefox
Puis on va dans Edition -> Préférences -> Shorcuts, et on assigne :
Back : F1 (en appuyant sur la touche)
Forward : F2
key_reload : F3
Plein écran : F4 (plus bas dans la page)

Pour la 5e touche, Gnome peut la remplacer par Alt+Tab.

Caps Lock = alt + Recherche
Cette extensions de Gnome Shell permet d'avoir une icone affichant l'état de Cap Lock.

On a aussi, avec certains logiciels (Firefox, LibreOffice...) :
Suppr = alt + Backspace
Début = alt + ←
Fin = alt + →
Page up = alt + ↑
Page down = alt + ↓
F6...F9 = alt gr + F6...F9
F10 = alt gr + échap
F11 = alt gr + F1
F12 = alt gr + F2

Améliorer la réception du WIFI
Déterminer le périphérique :
$ lspci -nn
../..
01:00.0 Network controller [0280]: Qualcomm Atheros AR9462 Wireless Network Adapter [168c:0034] (rev 01)
L'ID est donc 168c:0034
Références :
http://wikidevi.com/wiki/Atheros_AR5B22 (détails sur la puce)
http://wireless.kernel.org/en/users/Drivers/ath9k (détails sur le pilote)

Lors de streaming vidéo, j'ai pu observer de nombreuses petites micro-coupures.
Cette configuration améliore les choses :

Créer le fichier /etc/modprobe.d/ath9k.conf :
options ath9k nohwcrypt=1 btcoex_enable=1
(ces options, respectivement : désactive le chiffrement matériel, active la coexistence avec bluetooth)
Rebooter

Visualisation en temps réel de la force du signal wifi :
su -c 'yum install wavemon'
On passe en console : ctrl + alr +F2(->)
On se logue et on tape "wavemon"

Désactiver le pavé tactile lorsqu'on écrit
Lorsqu'on utilise le clavier, il peut arriver qu'on appuie sur le pavé tactile ce qui a pour effet de déplacer le curseur et l'écriture se poursuit à un endroit inattendu.
On peut désactiver le pavé tactile lors de la frappe au clavier
Paramètres (Gnome) -> Souris et pavé tactile -> Désactiver lors de la frappe

Luminosité automatique de l'écran (expérimental)
Lancer ce script au démarrage de la session :
#!/bin/bash
# Screen auto-brightness for Acer C720P
# (C) 2006 by Ortwin Glück
# Adapted 2014 Yannick
#
# Screen no lower than this, in %
MIN_BRIGHT=30

# minimum value to get auto-dimming, if lower it default to 10% (we don't want black screen!)
LIGHT_LEVEL=$(($MIN_BRIGHT * 10))

# devices
# reads the max ambient light from the sensor
ambient_light() {
# Raw values from 0 (dark) to 999 (bright)
        light=$(cat /sys/bus/iio/devices/iio\:device0/in_illuminance0_input)
}

# calculates the target brightness level (with cutoff)
calc_bright() {
        if [ $light -gt $LIGHT_LEVEL ]; then
                bright=$(($light / 10))
        else
                bright=$MIN_BRIGHT
        fi
}

# adjusts brightness
adj_bright() {
	# echo $bright
        xbacklight =$bright
}


renice 19 -p $$ >/dev/null 2>&1
# adjustment loop
while [ 1 ]; do
        ambient_light
        calc_bright
        adj_bright
        sleep 1
done
Trucs et astuces pour l'Acer C720P :

Accélérer yum (gestionnaire de paquets)
$ su -c 'yum install yum-plugin-fastestmirror'
Fedy
Fedy (anciennement Fedora Utils) est un logiciel qui permet d'installer des logiciels assez basiques (codecs, fonts, etc.) et de modifier facilement le système.

Ressource : http://satya164.github.io/fedy/

Installation :
su -c "curl http://satya164.github.io/fedy/fedy-installer -o fedy-installer && chmod +x fedy-installer && ./fedy-installer"
Je conseille :
Essential tweaks & tasks ->
* Add colors to Terminal (des couleurs pour le terminal)
* Install Microsoft fonts (les fonts de base de microsoft car on les rencontre souvent)
* Set up SSD I/O scheduler (améliore les performances du SSD)
* Improve font rendering (meilleur affichage des polices à l'écran)
* Install multimedia codecs (prise en charge de la plus part des codecs multimédia)
* Install Adobe flash plugin (pour les sites web avec flash comme youtube etc.)
* Configure RPM Fusion repositories (offre plus de logiciels à installer)

Améliorer les polices
Ressource : http://evotux.com/how-to-improve-font-rendering-in-fedora-20/

Assurez vous d'avoir coché les deux options :
* Install Microsoft fonts (les fonts de base de microsoft car on les rencontre souvent)
* Improve font rendering (meilleur affichage des polices à l'écran)
Dans Fedy ci-dessus.

Téléchargez la police Liberation version 2 (ttf) :
https://fedorahosted.org/liberation-fonts/
Extraire tous les fichiers *.ttf de l'archive dans ~/.fonts

Installez gnome-tweak-tool :
$ su -c 'yum install gnome-tweak-tool'
Dans l'onglet "Polices" :
Window Titles : Cantarell Bold | 11
Interface : Cantarell | 11
Documents : Liberation Sans | 11
Monospace : Liberation Mono | 11
Hinting : Slight
Antialiasing : Rgba

Créer le fichier ~/.Xresources :
Xft.lcdfilter: lcddefault
Rebooter.

Pour vérifier la configuration :
$ xrdb -query
Xft.antialias:	1
Xft.autohint:	0
Xft.dpi:	96
Xft.hinting:	1
Xft.hintstyle:	hintfull
Xft.lcdfilter:	lcddefault
Xft.rgba:	rgb
Agrandir les polices (vraiment plus gros...)
Si vous trouvez que la taille de ce qui est écrit à l'écran est trop petit voici une recette pour rendre le texte plus lisible :
Notre écran a 1366x768 pixels pour une diagonale de 29,46cm, soit 135,09 PPI.
Or le réglage par défaut est pour 96PPI. Corrigeons cela en agrandissant d'un facteur 1,4.

Pour Gnome :
Installer dconf-editor afin de modifier finement Gnome
$ su -c 'yum install dconf-editor'
Puis on lance ce logiciel :
$ dconf-editor
On édite cette clé :
org.gnome.desktop.interface -> text-scaling-factor : 1.4

Pour Firefox :
On ouvre l'onglet about:config et on cherche "layout.css.devPixelsPerPx", on met 1.4.

Mettre l'interface de LibreOffice en français
$ su -c 'yum install libreoffice-langpack-fr'
Configurer le SSD (avec le système de fichier ext4)
Ressource : http://doc.fedora-fr.org/wiki/Les_SSD_sous_fedora

Vu le peu de place sur ce SSD de base (bien qu'on puisse le remplacer par un plus gros), je n'ai mis qu'une seule partition root.

Ce SSD inclut le support de TRIM :
$ su -c 'hdparm -I /dev/sda | grep TRIM'
Mot de passe : 
	   *	Data Set Management TRIM supported (limit 8 blocks)
On va donc ajouter la commande TRIM pour effacer réellement les blocs mémoires supprimés sur le SSD (avec l'option "discard") et supprimer le marquage de la date de lecture du système de fichier ext4 (grâce à l'option noatim, attention toutefois, noatime peut avoir des conséquences sur certains logiciels...)

On édite, en root, le fichier /etc/fstab et on ajoute "noatime,discard," après l'option defaults. Et on ajoute "discard à /boot. Sur mon système ça donne :
/dev/mapper/fedora_xxxxx-root /                       ext4    defaults,noatime,discard,x-systemd.device-timeout=0 1 1
UUID=xxxx-xxxx-xxxx-xxxx-xxxx /boot                   ext4    defaults,discard        1 2
On ne le fait pas pour swap qui gère tout seul TRIM par défaut.

Comme j'ai encrypté la totalité du disque avec l'installeur anaconda, mon système utilise lvm et luks. Il convient de propager TRIM dans ces deux systèmes. ATTENTION : cela affaibli la sécurité du chiffrement (probablement car la partie "trimée" n'apparait plus comme faisant partie du système chiffré).

On configure lvm aussi (je crois qu'il est utilisé par l'installeur anaconda de fedora 20, mais ça ne fera pas de mal de toute façon) :
On edite, en root, le fichier /etc/lvm/lvm.conf :
ligne 218
    issue_discards = 1
On édite le fichier /etc/crypttab, et on y ajoute l'option "discard" :
luks-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx UUID=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx none discard
Comme tout le disque est encrypté sur le portable (toute la partition root, donc aussi /etc), il faut propager la configuration au système de démmarage :
su -c 'dracut -f'
On peut vérifier que la propagation a été faite avec :
$ su -c 'lsinitrd | grep crypttab'
Mot de passe : 
-rw-rw-r--   1 root     root          110 Dec 30 10:00 etc/crypttab
On reboot.

On lance TRIM à la main :
$ su -c 'fstrim -v /'
/ : 20,3 GiB (21781516288 octets) taillés
Pour aller plus loin :
On peut déterminer quels sont les logiciels qui utilisent le plus le SSD avec cette commande (root) (on sort les résultats pas ecriture sur le disque)
# iotop -oPa
Dans mon cas "systemd-journald" (le journal système de systemd) écrit fréquemment sur le SSD. Provoque un conflit avec SELinuc, cf. Bugzilla #1035421
On va donc lui demander d'écrire en RAM et le limiter à 10M :
/etc/systemd/journald.conf
[Journal]
Storage=volatile
#Compress=yes
#Seal=yes
#SplitMode=login
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
RuntimeMaxUse=10M
Augmenter la performance perçue au détriment de la performance réelle (swappiness)
Référence : Expication sur la performance perçue en relation avec swappiness

Nous allons demander au système deux choses : éviter au maximum d'utiliser le cache du swap et s'il en a besoin de donner la priorité aux logiciels sur les données. Ainsi, en cas de surcharge de la mémoire, le système devrait être plus réactif même si son traitement des données sera parfois plus lent.

Pour connaitre la valeur actuelle de swappiness et de vfs_cache_pressure :
$ cat /proc/sys/vm/swappiness 
60
$ cat /proc/sys/vm/vfs_cache_pressure 
100
Editer en root /etc/sysctl.d/99-sysctl.conf et y ajouter :
vm.swappiness=1
vm.vfs_cache_pressure=50
Rendre l'apparence de Firefox en accord avec celle de Gnome et bloquer les publicités
C'est peut-être fait par défaut, je ne sais plus...

Installer ces extensions/thèemes :
Thème Gnome pour Firefox
Cache la barre de titre quand Firefox est maximisé

AdBlockEdge : bloque les publicités, trackers des réseaux sociaux etc. Configurable.

Memory Restrat : Contrôle la RAM utilisée par Firefox et permet un redémmarrage par un bouton quand la limité est dépassée (500 Mo par défaut)

Adapter les couleurs de l'écran au cycle jour/nuit
La nuit en particulier, l'écran peut "piquer" un peu les yeux. Le logiciel Redshift change la couleur de l'écran en suivant le cycle jour/nuit.
$ su -c 'yum install redshift'
Adaptez ce fichier avec vos coordonées GPS (la tour Eiffel est en exemple) et copiez ce fichier de config dans ~/.config/redshift.conf :
; Global settings
[redshift]
temp-day=6500K
temp-night=5000
transition=1
;gamma=0.8:0.7:0.8
gamma=1.000:1.000:1.000
;location-provider=geoclue
location-provider=manual
adjustment-method=vidmode
;brightness=1.0:0.5
 
; The location provider and adjustment method settings
; are in their own sections.
; This is an example lat long for Eiffel tower, Paris, France
[manual]
lat=48.858844
lon=2.294351
 
; In this example screen 1 is adjusted by vidmode. Note
; that the numbering starts from 0, so this is actually
; the second screen.
;[vidmode]
;screen=1
On le place dans les choses à lancer au début de la session :
$ gnome-session-properties
Ajouter une entrée "Redshift" :

Nom : Redshift
Commande : /usr/bin/redshift
Commentaire: Adapte la couleur de l'écran au cycle jour/nuit.

Mettre le profile/cache du navigateur internet en RAM (Firefox, Chromium...) Provoque un conflit avec SELinux cf. Bugzilla #1047275
Ressource : https://wiki.archlinux.org/index.php/Profile-sync-daemon

Il y a deux avantages à cette opération :
* Moins d'accès au SSD
* Le navigateur sera plus rapide

Désavantage : utilise plus de RAM
su -c 'yum install profile-sync-daemon'
On edite le fichier /etc/psd.conf (en root) et on ajoute le nom de l'utilisateur.
# List users separated by spaces whose browser(s) profile(s) will get symlinked 
# and sync'ed to tmpfs.
# Do NOT list a user twice!
USERS="nom_d_utilisateur"
On ferme le navigateur et on lance le service :
su -c 'systemctl enable psd.service psd-resync.service'
su -c 'systemctl start psd.service psd-resync.service'
Pour voir si le service est lancé et ce qu'il fait :
$ profile-sync-daemon parse
Profile-sync-daemon v5.44 on Fedora release 20 (Heisenbug).

 Systemd service is currently active.
 Systemd resync service is currently active.

Psd will manage the following per /etc/psd.conf settings:

 browser/psname:  firefox/firefox
 owner/group id:  UTILISATEUR/1000
 sync target:     /home/UTILISATEUR/.mozilla/firefox/pov6ob9m.default
 tmpfs dir:       /tmp/UTILISATEUR-firefox-pov6ob9m.default
 profile size:    31M
Tuer Tracker
Ressource : https://bugzilla.redhat.com/show_bug.cgi?id=747689#c24
Tracker utilise beaucoup de ressource CPU et beaucoup de place sur le cache du home (1Gb sur le portable!)
Le supprimer est compliqué car il est en dépendance sur des logiciels comme documents et totem...

On va donc le tuer à chaque démarrage :
Dans ~/.startup/start.sh, on ajoute à la fin :
# Kill Tracker
sleep 10
[ -e /usr/bin/tracker-control ] && [ -x /usr/bin/tracker-control ] && /usr/bin/tracker-control -r > /dev/null
Malheureusement, Tracker revient quand on écrit un fichier sur le SSD (et peut-être pour d'autres choses). Au moins, en le tuant à chaque session, on évite qu'il mange la place libre du SSD.

On va le configurer pour qu'il ne fasse rien :
$ su -c 'yum install tracker-ui-tools'
../..
$ tracker-preferences
On désactive tout ce qu'on peut... J'ai aussi mis "*" dans les motifs de fichiers à ne pas indexer !

Les extensions de Gnome Shell
On peut modifier l'interface de Gnome facilement grâce au site web :
https://extensions.gnome.org/
A vous de voir ce qui vous interesse... Tout se fait dans le navigateur web.

Lecture vidéo avec décodage GPU

Pour totem :
Installer le plugin gstreamer pour vaapi :
$ su -c 'yum install gstreamer1-vaapi'
Sur un flux vidéo HD, l'utilisation du CPU est divisée par au moins 2, presque par 3.

Autres configurations d'accélérations matérielles qui n'ont pas encore fonctionnées :


Pour Flash (youtube...), avec le dépôt rpmfusion-free :
$ su -c 'yum install libvdpau-va-gl'
[/s]

Créer le fichier ~/.local/share/applications/firefox.desktop
[Desktop Entry]
Name=Firefox-VAAPI
GenericName=Web Browser
Exec=env VDPAU_DRIVER=va_gl firefox %u
Icon=firefox
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
[/s]

Pour tester : aller sur youtube, faire un clic droit sur une vidéo -> Statistiques Avancées : Vérifier qu'il y a "accelerated video".

Avec VLC, il n'y a pas d'accélération matérielle. Pour l'avoir il faut installer cette librairie :
$ su -c 'yum install libva-intel-driver' (dépot RPMfusion) -> VLC CRASH SOUVENT... A ne pas faire !

Eviter le "tearing"
Le tearing s'observe lors de mouvement verticaux dans une vidéo : l'image est comme coupée.

Pour éviter le tearing, passer la méthode d'accélération du pilote intel en sna :
Pour cela, créer le fichier "/etc/X11/xorg.conf.d/20-intel.conf"
Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "AccelMethod"  "sna"
    Option      "TearFree"    "true"
EndSection
Ceci permet aussi à Totem de parfois détecter l'entrelacement et de le corriger dans les vidéos.

Pour vérifier quelle méthode d'accélération est utilisée (uxa ou sna) :
$ cat /var/log/Xorg.0.log | grep -ie uxa -ie sna
Cependant, une fois dans cette configuration, c'est Gnome qui saccade. Afin d'améliorer un peu les choses, on peut mettre ceci dans le fichier "/etc/environment" :
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
CLUTTER_VBLANK=True
Conky (diminue l'autonomie !)

Surveille le CPU/la RAM/le SSD/le WIFI. Francisé.
Mise à jour d'une seconde quand le portable est sur le secteur et toutes les 10 secondes quand il est sur batterie.

Dérivé de seamod

Créer le dossier ~/.conky
A l'intérieur, mettre :

Le fichier "conkyrc_seamod"
#==============================================================================
#                               conkyrc_seamod
# Date    : 05/02/2012
# Author  : SeaJey
# Version : v0.1
# License : Distributed under the terms of GNU GPL version 2 or later
# 
# This version is a modification of conkyrc_lunatico wich is modification of conkyrc_orange
# 
# conkyrc_orange:    http://gnome-look.org/content/show.php?content=137503&forumpage=0
# conkyrc_lunatico:  http://gnome-look.org/content/show.php?content=142884
#==============================================================================

background yes
update_interval 1
update_interval_on_battery 10

cpu_avg_samples 1
net_avg_samples 1
temperature_unit celsius

double_buffer yes
no_buffers yes
text_buffer_size 2048

gap_x 30
gap_y 70
minimum_size 300 900
maximum_width 350
own_window yes
own_window_type override
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_class conky-semi
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
alignment tr


draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

override_utf8_locale yes
use_xft yes
xftfont caviar dreams:size=10
xftalpha 0.5
uppercase no

# Defining colors
default_color FFFFFF
# Shades of Gray
color1 DDDDDD
color2 AAAAAA
color3 888888
# Orange
# color4 EF5A29
color4 FD00FF
# Green
color5 77B753

# Loading lua script for drawning rings
lua_load ~/.conky/seamod_rings.lua
lua_draw_hook_post main

## System information using conky capabilities

# Header with base system info
TEXT
${font Ubuntu:size=10,weight:bold}${color4}SYSTÈME ${hr 2}
${offset 15}${font Ubuntu:size=10,weight:normal}${color1}$sysname $kernel
${offset 15}${font Ubuntu:size=10,weight:normal}${color1}$nodename
${offset 15}${font Ubuntu:size=10,weight:normal}${color1}Durée de fonctionnement : $uptime

# Showing CPU Graph
${voffset 20}
${offset 120}${cpugraph 40,183 666666 666666}${voffset -25}
${offset 90}${font Ubuntu:size=10,weight:bold}${color5}CPU
# Showing TOP 5 CPU-consumers
${offset 105}${font Ubuntu:size=10,weight:normal}${color4}${top name 1}${alignr}${top cpu 1}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color1}${top name 2}${alignr}${top cpu 2}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color2}${top name 3}${alignr}${top cpu 3}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color3}${top name 4}${alignr}${top cpu 4}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color3}${top name 5}${alignr}${top cpu 5}%

#Showing memory part with TOP 5
${voffset 40}
${offset 90}${font Ubuntu:size=10,weight:bold}${color5}RAM
${offset 105}${font Ubuntu:size=10,weight:normal}${color4}${top_mem name 1}${alignr}${top_mem mem 1}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color1}${top_mem name 2}${alignr}${top_mem mem 2}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color2}${top_mem name 3}${alignr}${top_mem mem 3}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color3}${top_mem name 4}${alignr}${top_mem mem 4}%
${offset 105}${font Ubuntu:size=10,weight:normal}${color3}${top_mem name 4}${alignr}${top_mem mem 5}%

# Showing disk partitions: root, home and Data
${voffset 28}
${offset 90}${font Ubuntu:size=10,weight:bold}${color5}SSD
${offset 120}${diskiograph 33,183 666666 666666}${voffset -30}
${voffset 20}
${offset 15}${font Ubuntu:size=9,weight:bold}${color1}Libre : ${font Ubuntu:size=9,weight:normal}${fs_free /}${alignr}${font Ubuntu:size=9,weight:bold}Utilisé : ${font Ubuntu:size=9,weight:normal}${fs_used /}
#${offset 15}${font Ubuntu:size=9,weight:bold}${color1}Free: ${font Ubuntu:size=9,weight:normal}${fs_free /home}${alignr}${font #Ubuntu:size=9,weight:bold}Used: ${font Ubuntu:size=9,weight:normal}${fs_used /home}
#${offset 15}${font Ubuntu:size=9,weight:bold}${color1}Free: ${font Ubuntu:size=9,weight:normal}${fs_free /media/Data}${alignr}${font #Ubuntu:size=9,weight:bold}Used: ${font Ubuntu:size=9,weight:normal}${fs_used /media/Data}

# Network data (my desktop have only LAN). ETHERNET ring is mostly useless but looks pretty, main info is in the graphs
#${voffset 43}
${offset 90}${font Ubuntu:size=10,weight:bold}${color5}WIFI
#${voffset 40}             
${offset 15}${color1}${font Ubuntu:size=9,weight:bold}Montant : ${alignr}${font Ubuntu:size=9,weight:normal}$color2${upspeed wlp1s0} / ${totalup}
${offset 15}${upspeedgraph wlp1s0 40,285 4B1B0C FF5C2B 100 -l}
${offset 15}${color1}${font Ubuntu:size=9,weight:bold}Descendant : ${alignr}${font Ubuntu:size=9,weight:normal}$color2${downspeed wlp1s0} / ${totaldown}
${offset 15}${downspeedgraph wlp1s0 40,285 324D23 77B753 100 -l}

${color4}${hr 2}
Le fichier "seamod_rings.lua" :
--==============================================================================
--                            seamod_rings.lua
--
--  Date    : 05/02/2012
--  Author  : SeaJey
--  Version : v0.1
--  License : Distributed under the terms of GNU GPL version 2 or later
--
--  This version is a modification of lunatico_rings.lua wich is modification of conky_orange.lua 
--
--  conky_orange.lua:    http://gnome-look.org/content/show.php?content=137503&forumpage=0
--  lunatico_rings.lua:  http://gnome-look.org/content/show.php?content=142884
--==============================================================================

require 'cairo'


--------------------------------------------------------------------------------
--                                                                    gauge DATA
gauge = {
{
    name='cpu',                    arg='cpu0',                  max_value=100,
    x=70,                          y=130,
    graph_radius=54,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
    hand_fg_colour=0xFD00FF,       hand_fg_alpha=1.0,
    txt_radius=64,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0xFD00FF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=9.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='cpu',                    arg='cpu1',                  max_value=100,
    x=70,                          y=130,
    graph_radius=48,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
    hand_fg_colour=0xFD00FF,       hand_fg_alpha=1.0,
    txt_radius=40,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0xFD00FF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=9.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='memperc',                arg='',                      max_value=100,
    x=70,                          y=280,
    graph_radius=54,
    graph_thickness=10,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
    hand_fg_colour=0xFD00FF,       hand_fg_alpha=1.0,
    txt_radius=42,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0xFD00FF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
    caption='',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='fs_used_perc',           arg='/',                     max_value=100,
    x=70,                          y=420,
    graph_radius=30,
    graph_thickness=7,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
    hand_fg_colour=0xFD00FF,       hand_fg_alpha=1.0,
    txt_radius=22,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0xFD00FF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='Root',
    caption_weight=1,              caption_size=12.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
}

-------------------------------------------------------------------------------
--                                                                 rgb_to_r_g_b
-- converts color in hexa to decimal
--
function rgb_to_r_g_b(colour, alpha)
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

-------------------------------------------------------------------------------
--                                                            angle_to_position
-- convert degree to rad and rotate (0 degree is top/north)
--
function angle_to_position(start_angle, current_angle)
    local pos = current_angle + start_angle
    return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
end


-------------------------------------------------------------------------------
--                                                              draw_gauge_ring
-- displays gauges
--
function draw_gauge_ring(display, data, value)
    local max_value = data['max_value']
    local x, y = data['x'], data['y']
    local graph_radius = data['graph_radius']
    local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
    local graph_start_angle = data['graph_start_angle']
    local graph_unit_angle = data['graph_unit_angle']
    local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
    local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
    local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
    local graph_end_angle = (max_value * graph_unit_angle) % 360

    -- background ring
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
    cairo_set_line_width(display, graph_thickness)
    cairo_stroke(display)

    -- arc of value
    local val = value % (max_value + 1)
    local start_arc = 0
    local stop_arc = 0
    local i = 1
    while i <= val do
        start_arc = (graph_unit_angle * i) - graph_unit_thickness
        stop_arc = (graph_unit_angle * i)
        cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
        cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
        cairo_stroke(display)
        i = i + 1
    end
    local angle = start_arc

    -- hand
    start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
    stop_arc = (graph_unit_angle * val)
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
    cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
    cairo_stroke(display)

    -- graduations marks
    local graduation_radius = data['graduation_radius']
    local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
    local graduation_unit_angle = data['graduation_unit_angle']
    local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
    if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
        local nb_graduation = graph_end_angle / graduation_unit_angle
        local i = 0
        while i < nb_graduation do
            cairo_set_line_width(display, graduation_thickness)
            start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
            stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
            cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
            cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
            cairo_stroke(display)
            cairo_set_line_width(display, graph_thickness)
            i = i + 1
        end
    end

    -- text
    local txt_radius = data['txt_radius']
    local txt_weight, txt_size = data['txt_weight'], data['txt_size']
    local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
    local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
    local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
    cairo_set_font_size (display, txt_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
    cairo_show_text (display, value)
    cairo_stroke (display)

    -- caption
    local caption = data['caption']
    local caption_weight, caption_size = data['caption_weight'], data['caption_size']
    local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
    local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
    cairo_set_font_size (display, caption_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
    cairo_move_to (display, x + tox + 5, y + toy + 1)
    -- bad hack but not enough time !
    if graph_start_angle < 105 then
        cairo_move_to (display, x + tox - 30, y + toy + 1)
    end
    cairo_show_text (display, caption)
    cairo_stroke (display)
end


-------------------------------------------------------------------------------
--                                                               go_gauge_rings
-- loads data and displays gauges
--
function go_gauge_rings(display)
    local function load_gauge_rings(display, data)
        local str, value = '', 0
        str = string.format('${%s %s}',data['name'], data['arg'])
        str = conky_parse(str)
        value = tonumber(str)
        draw_gauge_ring(display, data, value)
    end
    
    for i in pairs(gauge) do
        load_gauge_rings(display, gauge[i])
    end
end

-------------------------------------------------------------------------------
--                                                                         MAIN
function conky_main()
    if conky_window == nil then 
        return
    end

    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
    local display = cairo_create(cs)
    
    local updates = conky_parse('${updates}')
    update_num = tonumber(updates)
    
    if update_num > 5 then
        go_gauge_rings(display)
    end

    cairo_surface_destroy(cs)
    cairo_destroy(display)

end
Le fichier "start.sh" (modifiez le "NOM_D_UTILISATEUR" et le rendre exécutable) :
#!/bin/bash
# Startup script for conky
# Glenn A. Johnson - October 16, 2011
sleep 5
conky -c "/home/NOM_D_UTILISATEUR/.conky/conkyrc_seamod" &
Pour lancer conky à chaque démarrage du portable, dans un terminal :
$ gnome-session-properties
Ajouter une entrée "Conky" (modifiez le "NOM_D_UTILISATEUR") :
Nom : Conky
Commande : sh -c /home/NOM_D_UTILISATEUR/.conky/start.sh
Faire des sauvegardes régulières de vos données
Le logiciel Deja-dup, que Gnome connaît aussi sous le nom de "Sauvegarde", est très simple d'emploi et permet de faire des sauvegardes quotidiennes et chiffrées sur un support amovible (clé USB, carte SD). Pour l'installer :
$ su -c 'yum install deja-dup'
Faire des vidéos de son bureau/ ses logiciels/ ses jeux
Voir ce tutoriel pour installer SimpleScreenRecorder : http://forums.fedora-fr.org/viewtopic.php?id=61583

Regarder la TV avec la freebox (multiposte)
Dans firewall-config (nommé "Pare-feu" dans Gnome) :

Configuration : Permanent

Zone -> Public -> Règles riches
Entrer ces 2 règles.

Règle 1 :
Famille : ipv4
v Element : protocol | udp
v Action accept
Destination : 212.27.38.253

Règle 2 :
Famille : ipv4
v Element : protocol | udp
v Action accept
Source : 212.27.38.253

Et enfin dans le menu :
Options -> Recharger FirewallD

Enfin lancez totem comme cela :
totem 'http://mafreebox.freebox.fr/freeboxtv/playlist.m3u'
Il y a un bug dans gstreamer, donc dans totem : le désentrelacement automatique ne marche pas toujours. Rapport de bug : https://bugzilla.gnome.org/show_bug.cgi?id=724714

Pour avoir un lanceur dans Gome Shell, on place ce fichier "tv-freebox.desktop" dans "~/.local/share/applications". Vous pouvez changer la dernière ligne pour une image dans votre machine (p.e. /home/xxx/logo.jpg).
[Desktop Entry]
Comment=TV freebox
Terminal=false
Name=TV freebox
Exec=totem 'http://mafreebox.freebox.fr/freeboxtv/playlist.m3u'
Type=Application
Icon=gnome-panel-launcher
Si besoin, voici comment débuger totem (de 1 à 9) :
$ GST_DEBUG=*:1 totem
Comme il est difficile de changer de chaine (il faut semble-t-il attendre que le flux se termine pour pouvoir en changer), voici comment lancer directement une chaine :
On télécharge la playlist :
$ wget http://mafreebox.freebox.fr/freeboxtv/playlist.m3u
On regarde le flux qui nous intéresse, par exemple Nolife HD et on crée un lanceur avec l'URL rtps :
[Desktop Entry]
Comment=TV Nolife HD
Terminal=false
Name=TV Nolife HD
Exec=totem 'rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=658&flavour=hd'
Type=Application
Icon=/home/xxx/Images/nolife.png
Ecouter une webradio
On peut passer par firefox et flash ce qui est très lourd, utiliser rhythmbox ou totem mais c'est un peu lourd. On peut aussi utiliser gstreamer directement en terminal ce qui est plus léger (mais on perd les controles de volumes etc.)
Exemple avec Radio Nova :
Rhythmbox
$ rhythmbox http://broadcast.infomaniak.net/radionova-high.mp3
Totem
$ totem http://broadcast.infomaniak.net/radionova-high.mp3
Gstreamer
$ gst-launch-1.0 playbin uri=http://broadcast.infomaniak.net/radionova-high.mp3
Launcher à mettre dans ~/.local/share/applications, nommez le "Radio Nova.desktop" et changez la dernière ligne pour une icone sur votre machine.
[Desktop Entry]
Comment=Radio Nova
Terminal=true
Name=Radio Nova
Exec=gst-launch-1.0 playbin uri=http://broadcast.infomaniak.net/radionova-high.mp3
Type=Application
Icon=/home/xxxxxx/Images/logo-radio-nova.jpg
Récupérer de la mémoire vive indumment prise par Gnome Shell
Il semble que Gnome Shell grignote de la mémoire au fur et à mesure de son utilisation. Il est aussi parmi les processus qui utilisent le plus de mémoire vive.
Une astuce pour récupérer cette mémoire est de le relancer :
alt + F2(->)
On entre "r", puis on presse Entrée.

Freebox : utiliser le disque dur
un petit tips pour les utilisateurs de freebox qui veulent monter leur disque à l'allumage :

Créer un dossier pour monter la freebox :
su -c 'mkdir /mnt/freebox'
ajouter le code suivante à la fin du fichier /etc/rc.d/rc.local :
# On monte le disque si on est à la maison
sleep 60
iwconfig wlp1s0 > /tmp/testscript.txt
grep -i ESSID /tmp/testscript.txt
if [ "$?" = "0" ]; then #On agit que si l'on est à la maison
    mount -t cifs //mafreebox.freebox.fr/Disque\ dur  /mnt/freebox/ -o user=freebox,password=password,uid=1000,gid=1000,rw > /tmp/logdesavaut.txt
fi
où vous remplacez ESSID par l'essid de votre réseau WIFI.
Pour le connaitre vous pouvez lancer la commande
$ iwconfig
Je peux ainsi avec un petit cron sur la commande rsync enregistrer les modifications d'une journée de travail au bureau sans avoir rien d'autre à faire que d'allumer l'ordinateur à la maison.
Contribué par : fedboreve
Benchmark

Benchmark fait avec phoronix test suite, compare le C720 sous Ubuntu 13.10, le C720P sous Fedora 20 et quelques autres machines :
http://openbenchmarking.org/result/1402159-SO-1312061SO90
En gros, Ubuntu 13.10 ou Fedora 20, ça revient au même.

Pour comparer une machine avec ces benchmarks faire :
$ phoronix-test-suite benchmark 1312061-SO-CHROMEBOO30
Jeux

Afin de tirer le meilleur parti des ressources offertes par la machine, j'ai créé une nouvelle session juste pour Steam et les jeux, qui tourne avec Fluxbox (gestion des fenêtres) et pcmanfm (bureau avec fond d'écran et icones). Cette session utilise moins de 300 Mo de mémoire et l'usage CPU est sous les 1%.
Pou économiser la place sur le disque, j'ai configuré Steam afin qu'il installe les jeux sur une clé USB 2.0.

Voici une liste de jeux qui fonctionnent correctement avec l'acer chromebook C720P (installés à partir de Steam) :

* Bastion
* FEZ
* SteamWorld Dig
* Trine 2
* World of Goo
Ajout d'un début de configuration pour améliorer l'autonomie dans le premier post du fil.
6 jours plus tard
Ajout d'une meilleure configuration de l'autonomie (10h si idle), configuration du SSD et divers trucs et astuces pour faciliter la vie.
Ajout d'un pilote pour faire marcher l'écran tactile \o/
D'une extention pour Firefox pour faire défiler les pages avec l'écran (un peu lent, on doit pouvoir améliorer les choses...). Bizarrement, Evolution marche très bien avec l'écran tactile...
Correction de l'usage de TRIM pour le SSD (ne marchait pas avant à cause de lvm+luks (encryption complète du SSD)

Ca avance.
Microphone interne

Bidouille pour le faire marcher en attendant une solution plus pratique :

~/.asoundrc
# Standard Analog
pcm.!default {
  type hw
  card 1
  device 0
}

ctl.!default {
  type hw
  card 1 
}
Lancer
$ alsamixer
Et le configurer comme ceci :


Configuration du microphone avec alsamixer

On met tous les boost à 0, le mic à 100%, on l'active avec la touche "m" (OO en dessous) et on met "Capture" en mono avec la touche ";"

Le volume est faible 🙁

Une meilleure solution ?
Avec pavucontrol :
sélectionner dans port : "Microphone (unplugged)" à la place de "Microphone interne", mettre le volume à 100%.
Un cri de victoire car maintenant l'hibernation fonctionne !
7 jours plus tard
Problème avec la sortie vidéo HDMI :
L'écran du portable devient noir quand on le branche sur un vidéo projecteur en HDMI. Sur le vidéo projecteur il y a un écran étendu de gnome tout vide sur lequel il ne semble pas possible de faire autre chose que de promener le pointeur du pavé tactile.

Bidouillage pour faire fonctionner cela :
1- On passe en tty avec ctrl+alt+F2 (la touche "->"). On attends quelques secondes : sur les deux écran on doit voir le terminal.
2- on repasse en mode graphique avec ctrl+alt+F1 (la touche "<-"). Cette fois-ci on a bien gnome sur le portable et l'écran étendu sur le vidéo projecteur (en full HD 1080P).

Reste à voir pourquoi et comment se passer de cette manipulation ? Des idées ?
Salut Yannick,

J'ai suivi les instructions mais le script sort avec l'erreur:
mv: cannot stat ‘/lib/modules/3.12.7-300.fc20.i686/kernel/drivers/platform/x86/chromeos_laptop.ko’: No such file or directory
Je ne suis pas sûr de ce que je fais mal et j'espère que vous pourrez m'aider.

Désolé si mon français est mauvais, je suis un anglophone et j'ai utilisé "Google Translate" pour être capable de lire vos messages et d'être en mesure de répondre
We can speak english if you prefer.

Seems to me there is something wrong with the compilation of that module. Can you past the full output of the script from the terminal?
Hey Yannick

Here is a link to a paste of my terminal output during the entire process

http://pastebin.com/Au7XSi03

I am using the 2GB variant of the chromebook, no touchscreen, if that helps at all. Also I have installed x86_64 Fedora.

Thanks.
This will hopefully work:
(issue was the script tries to save the original modules, but in your case there is none and it fails... I've not enough bash skills to build a test case... Thus I just removed this step: there is no more saving of the original modules)

EDIT: updated the 1st post with this script.
Thank you Yannick@ekiga, my touchpad now works, I hope zram too
Merci pour ce gros tuto 🙂
Qu'est ce que ça donne niveau fluidité ?
La fluidité ? C'est fluide. J'ai parfois un peu de ralentissement, comme quand je lance le shell au début de session, mais comme j'ai chiffré tout le disque, je pense que ça ralenti pas mal les démarrages d'applications. Je trouve Gnome très bien là-dessus.

Les pages webs surchargées de flash ont tendance à ralentir la machine aussi le temps que tout soit bien chargé. Sinon, c'est fluide. Bien sûr ça dépend des logiciels que tu vas utiliser...

Niveau benchmark, tu peux regarder ça pour te faire une idée plus précise :
http://www.phoronix.com/scan.php?page=article&item=acer_c720_linux&num=1

À mon avis le rapport qualité/prix est très bon.
Pour ma part ça a bien fonctionné !

J'ai de fonctionnels :

- la mise en veille
- le touchpad
- l'écran tactile
- le son (je n'ai rien eu à faire, mais je n'ai pas encore essayé la sortie HDMI)

Avant de lancer le script de yannick, il faut bien penser à :

- mettre le status de selinux en permissif :
$ sudo setenforce 0
- mettre à jour les paquets et redémarrer l'ordinateur :
$ sudo setenforce 0
Ensuite il n'y a plus qu'à suivre les infos du tuto ci-dessus !

Je suis vraiment étonné de la rapidité de cet ordinateur ... Pour 300€ on a un ultrabook tout à fait fonctionnel et utilisable ! (j'ai même installé Kali Linux dans VMware Player !)

J'attends avec impatience un BIOS modifié pour ne plus avoir à faire la manipulation Ctrl + L au démarrage ....

En tout cas merci Yannick pour ce superbe tuto !!
Je constate un petit souci par contre : hier soir j'utilise quelque minutes l'ordinateur sur batterie, quand le mets en veille (en fermant l'écran) la batterie était à 90%. J'ai bien vérifié que la lumière était en orange clignotant : il était bien en veille.

Ce matin au réveil : lumière bleue fixe !
J'ouvre l'écra : la batterie est à 35% ...

Il s'est réveillé avant moi le bougre !!
Etrange en effet.

Remplace le fichier /usr/lib/systemd/system-sleep/cros-sound-suspend.sh par celui-ci
#!/bin/bash

case $1/$2 in
  pre/*)
    # Log time for suspend
    touch /tmp/suspend-test.log
    echo -e "$(date); \c" >> /tmp/suspend-test.log
    echo "OFF" >> /tmp/suspend-test.log
    # Kill flash plugin as it prevent suspend
    pgrep -f flashplayer | xargs kill >/dev/null 2>&1
    # Unbind ehci for preventing error 
    echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/unbind
    # Unbind snd_hda_intel for sound
    echo -n "0000:00:1b.0" | tee /sys/bus/pci/drivers/snd_hda_intel/unbind
    echo -n "0000:00:03.0" | tee /sys/bus/pci/drivers/snd_hda_intel/unbind
    ;;
  post/*)
    # Bind ehci for preventing error 
    echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci-pci/bind
    # bind snd_hda_intel for sound
    echo -n "0000:00:1b.0" | tee /sys/bus/pci/drivers/snd_hda_intel/bind
    echo -n "0000:00:03.0" | tee /sys/bus/pci/drivers/snd_hda_intel/bind
    # Log time for suspend
    touch /tmp/suspend-test.log
    echo -e "$(date); \c" >> /tmp/suspend-test.log
    echo "ON" >> /tmp/suspend-test.log
    ;;
esac
Ca permet d'avoir un horodatage quand le système fait un suspend/réveil dans le fichier : /tmp/suspend-test.log
Ca nous permettra peut-être d'en savoir un peu plus.