Ça a l'air pas mâle je vais surement tester 😛
L'applet dans gnome-panel fait déjà se que tu veux faire non ? On peut choisir la cadense du processeur.
Oui mais en faite ça change rien tu reste a 630MHz :mad:
Pour ceux que ça intéresse voila un ptit tuto pour le UXA (le lien donner plus haut par fred)
Alors on commence par modifier le xorg
On fait une copie au cas ou
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.old
Puis on l'édite
$ sudo gedit /etc/X11/xorg.conf
Vous devais suprimer les section "Device" "Monitor" "Screen" et les remplacer par
Section "Device"
	Identifier		"Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
	Driver			"intel"
	BusID			"PCI:0:2:0"
	Option		"AccelMethod"			"uxa"
	Option		"EXAOptimizeMigration"		"true"
	Option		"MigrationHeuristic"		"greedy"
	Option		"Tiling"				"true"
EndSection

Section "Monitor"
	Identifier		"Generic Monitor"
	Option		"DPMS"
	HorizSync		30-70
	VertRefresh		50-160
EndSection

Section "Screen"
	Identifier		"Default Screen"
	Device		"Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
	Monitor		"Generic Monitor"
	DefaultDepth	24
EndSection
les partit concernant UXA sont les 4 options de la section "Device" les autre modification sont une personnalisation que j'ai faite a partir du xorg de xandros

Téléchargement du script fixmtrr.sh qui fixe un bug du MTRR pour Intel
$ sudo wget http://launchpadlibrarian.net/26193373/fixmtrr.sh -O /usr/local/bin/fixmtrr.sh
Le rendre exécutable
$ sudo chmod +x /usr/local/bin/fixmtrr.sh
Création d'un lien symbolique pour qu'il se lance tout seul au démarage (ne marche que pour gnome pour les autre faudra le lancer manuellement ou l'inclure dans les application au démarrage)
$ sudo ln -s /usr/local/bin/fixmtrr.sh /etc/gdm/PostLogin/Default
Maintenant faut modifier le sources.list
$ sudo gedit /etc/apt/sources.list
Rajouter a la fin de votre fichier
deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main #X-Updates PPA
deb-src http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main #X-Updates PPA
On rajoute la clée
$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AF1CDFA9
On recharge les paquet
$ sudo apt-get update
Maintenant on met à jour (on ne doit pas vous proposez de supprimer de paquet seulement des mise a jour)
$ sudo apt-get dist-upgrade
Et c'est fini 😛 dans le lien il existe un mode Optimal et Bleeding-Edge mais il impose d'installer un des dernier kernel non officiel mais je n'est pas pu compiler eee.ko avec ou sans les lignes modifier de plus il indique que glxgears n'est pas fiable (je suis passer de 570 a 250 FPS mais j'ai l' impression que c'est plus fluide)
salut ça fesait un moment que j'étais pas venu....🙂

Donc si j'ai bien compris mon pauvre proceee est obsolete pour la 9.10??🙁
Ben oui, pas moyen de compiler eee.ko ... dommage...
C'est eee.ko qui commence a ce faire vieux, il se compile encore sur le kernel 2.6.28-16 mais je craint que d'ici quelque mise a jour kernel il ne passe même plus sur la 9.04 🙁
arfffff...tout se démode!! 🙂

Par contre y a un truc que je pige pas...avec ma vieille xubuntu avec proceee à fond 990,j'arrivais à plus de 700 fps..pourquoi cette baisse de frame?

@motard13500
tu as 1035Mhz avec eeeccontrol ou proceee tu as modifié le script?

PS :tu es des bouches du rhone?🙂
Salut,

Pour la baisse de perf, c'est du aux nouveaux drivers intel et à leur intégration dans le nouveaux noyau, c'est depuis la 9.04..

Par contre, le système sous karmic est bien plus réactif, même si glxgears n'est pas d'accord... mais je pense que c'est du à l'augmentation des perf d'accès disque dur.

Fred
tu es passé en ext4?

As tu éssayé d'installer openarena....un jeux 3D juste pour voir la fluidité?...moi il était trés fluide en 990Mhz.
Oui, je suis de Martigues, pour le script je me suis pas pris la tête j'ai fait un script de monté, un de décente (au cas ou) et un de notification
montée
#!/bin/bash

#Ventilateur en mode manuel - Fan manual
sudo sh -c 'echo 1 > /proc/eee/fan_manual'
#Paramétrage du ventilateur a 100 par pas de 10 - Setting the fan to 100 by +10 step
sudo sh -c 'echo 10 > /proc/eee/fan_speed'
sudo sh -c 'echo 20 > /proc/eee/fan_speed'
sudo sh -c 'echo 30 > /proc/eee/fan_speed'
sudo sh -c 'echo 40 > /proc/eee/fan_speed'
sudo sh -c 'echo 50 > /proc/eee/fan_speed'
sudo sh -c 'echo 60 > /proc/eee/fan_speed'
sudo sh -c 'echo 70 > /proc/eee/fan_speed'
sudo sh -c 'echo 80 > /proc/eee/fan_speed'
sudo sh -c 'echo 90 > /proc/eee/fan_speed'
sudo sh -c 'echo 100 > /proc/eee/fan_speed'
#Paramétrage du fsb par pas de +1MHz - Setting up the fsb by +1MHz step
sudo sh -c 'echo 71 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 72 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 73 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 74 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 75 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 76 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 77 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 78 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 79 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 80 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 81 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 82 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 83 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 84 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 85 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 86 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 87 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 88 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 89 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 90 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 91 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 92 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 93 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 94 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 95 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 96 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 97 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 98 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 99 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 100 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 101 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 102 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 103 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 104 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 105 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 106 25 1 > /proc/eee/fsb'
sudo sh -c 'echo 107 26 1 > /proc/eee/fsb'
sudo sh -c 'echo 108 27 1 > /proc/eee/fsb'
sudo sh -c 'echo 109 28 1 > /proc/eee/fsb'
sudo sh -c 'echo 110 29 1 > /proc/eee/fsb'
sudo sh -c 'echo 111 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 112 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 113 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 114 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 115 30 1 > /proc/eee/fsb'
echo "overclocker"

exit
décente
#!/bin/bash

#Paramétrage du fsb par pas de -1MHz - Setting up the fsb by -1MHz step
sudo sh -c 'echo 114 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 113 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 112 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 111 30 1 > /proc/eee/fsb'
sudo sh -c 'echo 110 29 1 > /proc/eee/fsb'
sudo sh -c 'echo 109 28 1 > /proc/eee/fsb'
sudo sh -c 'echo 108 27 1 > /proc/eee/fsb'
sudo sh -c 'echo 107 26 1 > /proc/eee/fsb'
sudo sh -c 'echo 106 25 1 > /proc/eee/fsb'
sudo sh -c 'echo 105 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 104 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 103 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 102 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 101 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 100 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 99 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 98 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 97 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 96 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 95 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 94 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 93 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 92 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 91 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 90 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 89 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 88 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 87 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 86 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 85 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 84 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 83 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 82 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 81 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 80 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 79 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 78 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 77 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 76 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 75 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 74 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 73 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 72 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 71 24 1 > /proc/eee/fsb'
sudo sh -c 'echo 70 24 0 > /proc/eee/fsb'
#Paramétrage du ventilateur a 0 par pas de 10 - Setting the fan to 0 by -10 step
sudo sh -c 'echo 90 > /proc/eee/fan_speed'
sudo sh -c 'echo 80 > /proc/eee/fan_speed'
sudo sh -c 'echo 70 > /proc/eee/fan_speed'
sudo sh -c 'echo 60 > /proc/eee/fan_speed'
sudo sh -c 'echo 50 > /proc/eee/fan_speed'
sudo sh -c 'echo 40 > /proc/eee/fan_speed'
#Ventilateur en mode automatique - Automatic fan mode
sudo sh -c 'echo 0 > /proc/eee/fan_manual'
echo "Origine"

exit
et voila mon script de notification il faut instaler le paquet [apt]libnotify-bin[/apt] et mètre l'icône dans votre home "~/.NotifyEee.png"
ICI
Bonjour à tous,

J'ai réussi à recompiler eee.ko avec un noyau 2.6.31:

Comme précédement remplacer les &proc_root par NULL
Commenter les lignes 404 et 421.

Le code modifié:
/*
 *  eee.c - Asus eeePC extras
 *
 *  Copyright (C) 2007 Andrew Tipton
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  Ths program is distributed in the hope that it will be useful,
 *  but WITOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTAILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Template Place, Suite 330, Boston, MA  02111-1307 USA
 *  
 *  ---------
 *
 *  WARNING:  This is an extremely *experimental* module!  This code has been
 *  developed through trial-and-error, which means I don't really understand
 *  100% what's going on here...  That means there's a chance that there could
 *  be unintended side-effects which might cause data loss or even physical
 *  damage!
 *
 *  Again, this code comes WITHOUT ANY WARRANTY whatsoever.
 */

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/proc_fs.h>
#include <asm/uaccess.h>
#include <asm/io.h>             // For inb() and outb()
#include <linux/i2c.h>
#include <linux/mutex.h>


/* Module info */
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Andrew Tipton");
MODULE_DESCRIPTION("Support for eeePC-specific functionality.");
#define EEE_VERSION "0.2"


/* PLL access functions.
 *
 * Note that this isn't really the "proper" way to use the I2C API... :)
 * I2C_SMBUS_BLOCK_MAX is 32, the maximum size of a block read/write.
 */
static void eee_pll_init(void);
static void eee_pll_read(void);
static void eee_pll_write(void);
static void eee_pll_cleanup(void);


static struct i2c_client eee_pll_smbus_client = {
    .adapter = NULL,
    .addr = 0x69,
    .flags = 0,
};
static char eee_pll_data[I2C_SMBUS_BLOCK_MAX];
static int eee_pll_datalen = 0;

static void eee_pll_init(void) {
    eee_pll_smbus_client.adapter = i2c_get_adapter(0);

    // Fill the eee_pll_data buffer.
    eee_pll_read();
}

// Takes approx 150ms to execute.
static void eee_pll_read(void) {
    memset(eee_pll_data, 0, I2C_SMBUS_BLOCK_MAX);
    eee_pll_datalen = i2c_smbus_read_block_data(&eee_pll_smbus_client, 0, eee_pll_data);
}

// Takes approx 150ms to execute ???
static void eee_pll_write(void) {
    i2c_smbus_write_block_data(&eee_pll_smbus_client, 0, eee_pll_datalen, eee_pll_data);
}

static void eee_pll_cleanup(void) {
    i2c_put_adapter(eee_pll_smbus_client.adapter);
}

/* Embedded controller access functions.
 *
 * The ENE KB3310 embedded controller has a feature known as "Index IO"
 * which allows the entire 64KB address space of the controller to be
 * accessed via a set of ISA I/O ports at 0x380-0x384.  This allows us
 * direct access to all of the controller's ROM, RAM, SFRs, and peripheral
 * registers;  this access bypasses the EC firmware entirely.
 *
 * This is much faster than using ec_transaction(), and it also allows us to
 * do things which are not possible through the EC's official interface.
 *
 * An Indexed IO write to an EC register takes approx. 90us, while an EC
 * transaction takes approx. 2500ms.
 */
#define EC_IDX_ADDRH 0x381
#define EC_IDX_ADDRL 0x382
#define EC_IDX_DATA 0x383
#define HIGH_BYTE(x) ((x & 0xff00) >> 8)
#define LOW_BYTE(x) (x & 0x00ff)
static DEFINE_MUTEX(eee_ec_mutex);

static unsigned char eee_ec_read(unsigned short addr) {
    unsigned char data;

    mutex_lock(&eee_ec_mutex);
    outb(HIGH_BYTE(addr), EC_IDX_ADDRH);
    outb(LOW_BYTE(addr), EC_IDX_ADDRL);
    data = inb(EC_IDX_DATA);
    mutex_unlock(&eee_ec_mutex);

    return data;
}

static void eee_ec_write(unsigned short addr, unsigned char data) {
    mutex_lock(&eee_ec_mutex);
    outb(HIGH_BYTE(addr), EC_IDX_ADDRH);
    outb(LOW_BYTE(addr), EC_IDX_ADDRL);
    outb(data, EC_IDX_DATA);
    mutex_unlock(&eee_ec_mutex);
}

static void eee_ec_gpio_set(int pin, int value) {
    unsigned short port;
    unsigned char mask;

    port = 0xFC20 + ((pin >> 3) & 0x1f);
    mask = 1 << (pin & 0x07);
    if (value) {
        eee_ec_write(port, eee_ec_read(port) | mask);
    } else {
        eee_ec_write(port, eee_ec_read(port) & ~mask);
    }
}

static int eee_ec_gpio_get(int pin) {
    unsigned short port;
    unsigned char mask;
    unsigned char status;

    port = 0xfc20 + ((pin >> 3) & 0x1f);
    mask = 1 << (pin & 0x07);
    status = eee_ec_read(port) & mask;

    return (status) ? 1 : 0;
}

/*** Fan and temperature functions ***/
#define EC_ST00 0xF451          // Temperature of CPU (C)
#define EC_SC02 0xF463          // Fan PWM duty cycle (%)
#define EC_SC05 0xF466          // High byte of fan speed (RPM)
#define EC_SC06 0xF467          // Low byte of fan speed (RPM)
#define EC_SFB3 0xF4D3          // Flag byte containing SF25 (FANctrl)

static unsigned int eee_get_temperature(void) {
    return eee_ec_read(EC_ST00);
}

static unsigned int eee_fan_get_rpm(void) {
    return (eee_ec_read(EC_SC05) << 8) | eee_ec_read(EC_SC06);
}

// 1 if fan is in manual mode, 0 if controlled by the EC
static int eee_fan_get_manual(void) {
    return (eee_ec_read(EC_SFB3) & 0x02) ? 1 : 0;
}

static void eee_fan_set_manual(int manual) {
    if (manual) {
        // SF25=1: Prevent the EC from controlling the fan.
        eee_ec_write(EC_SFB3, eee_ec_read(EC_SFB3) | 0x02);
    } else {
        // SF25=0: Allow the EC to control the fan.
        eee_ec_write(EC_SFB3, eee_ec_read(EC_SFB3) & ~0x02);
    }
}

static void eee_fan_set_speed(unsigned int speed) {
    eee_ec_write(EC_SC02, (speed > 100) ? 100 : speed);
}

static unsigned int eee_fan_get_speed(void) {
    return eee_ec_read(EC_SC02);
}


/*** Voltage functions ***/
#define EC_VOLTAGE_PIN 0x66
enum eee_voltage { Low=0, High=1 };
static enum eee_voltage eee_get_voltage(void) {
    return eee_ec_gpio_get(EC_VOLTAGE_PIN);
}
static void eee_set_voltage(enum eee_voltage voltage) {
    eee_ec_gpio_set(EC_VOLTAGE_PIN, voltage);
}

/*** FSB functions ***/
static void eee_get_freq(int *n, int *m) {
    *m = eee_pll_data[11] & 0x3F;
    *n = eee_pll_data[12];
}

static void eee_set_freq(int n, int m) {
    int current_n = 0, current_m = 0;
    eee_get_freq(&current_n, &current_m);
    if (current_n != n || current_m != m) {
        eee_pll_data[11] = m & 0x3F;
        eee_pll_data[12] = n & 0xFF;
        eee_pll_write();
    }
}

/*** /proc file functions ***/

static struct proc_dir_entry *eee_proc_rootdir;
#define EEE_PROC_READFUNC(NAME) \
    void eee_proc_readfunc_##NAME (char *buf, int buflen, int *bufpos)
#define EEE_PROC_WRITEFUNC(NAME) \
    void eee_proc_writefunc_##NAME (const char *buf, int buflen, int *bufpos)
#define EEE_PROC_PRINTF(FMT, ARGS...) \
    *bufpos += snprintf(buf + *bufpos, buflen - *bufpos, FMT, ##ARGS)
#define EEE_PROC_SCANF(COUNT, FMT, ARGS...) \
    do { \
        int len = 0; \
        int cnt = sscanf(buf + *bufpos, FMT "%n", ##ARGS, &len); \
        if (cnt < COUNT) { \
            printk(KERN_DEBUG "eee:  scanf(\"%s\") wanted %d args, but got %d.\n", FMT, COUNT, cnt); \
            return; \
        } \
        *bufpos += len; \
    } while (0)
#define EEE_PROC_MEMCPY(SRC, SRCLEN) \
    do { \
        int len = SRCLEN; \
        if (len > (buflen - *bufpos)) \
            len = buflen - *bufpos; \
        memcpy(buf + *bufpos, SRC, (SRCLEN > (buflen - *bufpos)) ? (buflen - *bufpos) : SRCLEN); \
        *bufpos += len; \
    } while (0)
#define EEE_PROC_FILES_BEGIN \
    static struct eee_proc_file eee_proc_files[] = {
#define EEE_PROC_RW(NAME, MODE) \
    { #NAME, MODE, &eee_proc_readfunc_##NAME, &eee_proc_writefunc_##NAME }
#define EEE_PROC_RO(NAME, MODE) \
    { #NAME, MODE, &eee_proc_readfunc_##NAME, NULL }
#define EEE_PROC_FILES_END \
    { NULL, 0, NULL, NULL } };

struct eee_proc_file {
    char *name;
    int mode;
    void (*readfunc)(char *buf, int buflen, int *bufpos);
    void (*writefunc)(const char *buf, int buflen, int *bufpos);
};


EEE_PROC_READFUNC(fsb) {
    int n = 0;
    int m = 0;
    int voltage = 0;
    eee_get_freq(&n, &m);
    voltage = (int)eee_get_voltage();
    EEE_PROC_PRINTF("%d %d %d\n", n, m, voltage);
}

EEE_PROC_WRITEFUNC(fsb) {
    int n = 70;     // sensible defaults
    int m = 24;
    int voltage = 0;
    EEE_PROC_SCANF(3, "%i %i %i", &n, &m, &voltage);
    eee_set_freq(n, m);
    eee_set_voltage(voltage);
}

EEE_PROC_READFUNC(pll) {
    eee_pll_read();
    EEE_PROC_MEMCPY(eee_pll_data, eee_pll_datalen);
}

EEE_PROC_READFUNC(fan_speed) {
    int speed = eee_fan_get_speed();
    EEE_PROC_PRINTF("%d\n", speed);
}

EEE_PROC_WRITEFUNC(fan_speed) {
    unsigned int speed = 0;
    EEE_PROC_SCANF(1, "%u", &speed);
    eee_fan_set_speed(speed);
}

EEE_PROC_READFUNC(fan_rpm) {
    int rpm = eee_fan_get_rpm();
    EEE_PROC_PRINTF("%d\n", rpm);
}

EEE_PROC_READFUNC(fan_manual) {
    EEE_PROC_PRINTF("%d\n", eee_fan_get_manual());
}

EEE_PROC_WRITEFUNC(fan_manual) {
    int manual = 0;
    EEE_PROC_SCANF(1, "%i", &manual);
    eee_fan_set_manual(manual);
}

#if 0
EEE_PROC_READFUNC(fan_mode) {
    enum eee_fan_mode mode = eee_fan_get_mode();
    switch (mode) {
        case Manual:    EEE_PROC_PRINTF("manual\n");
                        break;
        case Automatic: EEE_PROC_PRINTF("auto\n");
                        break;
        case Embedded:  EEE_PROC_PRINTF("embedded\n");
                        break;
    }
}

EEE_PROC_WRITEFUNC(fan_mode) {
    enum eee_fan_mode mode = Automatic;
    char inputstr[16];
    EEE_PROC_SCANF(1, "%15s", inputstr);
    if (strcmp(inputstr, "manual") == 0) {
        mode = Manual;
    } else if (strcmp(inputstr, "auto") == 0) {
        mode = Automatic;
    } else if (strcmp(inputstr, "embedded") == 0) {
        mode = Embedded;
    }
    eee_fan_set_mode(mode);
}
#endif

EEE_PROC_READFUNC(temperature) {
    unsigned int t = eee_get_temperature();
    EEE_PROC_PRINTF("%d\n", t);
}

EEE_PROC_FILES_BEGIN
    EEE_PROC_RW(fsb,            0644),
    EEE_PROC_RO(pll,            0400),
    EEE_PROC_RW(fan_speed,      0644),
    EEE_PROC_RO(fan_rpm,        0444),
    EEE_PROC_RW(fan_manual,     0644),
    EEE_PROC_RO(temperature,    0444),
EEE_PROC_FILES_END
    

int eee_proc_readfunc(char *buffer, char **buffer_location, off_t offset,
                      int buffer_length, int *eof, void *data)
{
    struct eee_proc_file *procfile = (struct eee_proc_file *)data;
    int bufpos = 0;

    if (!procfile || !procfile->readfunc) {
        return -EIO;
    }

    *eof = 1;
    if (offset > 0) {
        return 0;
    }

    (*procfile->readfunc)(buffer, buffer_length, &bufpos);
    return bufpos;
}

int eee_proc_writefunc(struct file *file, const char *buffer,
                       unsigned long count, void *data)
{
    char userdata[129];
    int bufpos = 0;
    struct eee_proc_file *procfile = (struct eee_proc_file *)data;

    if (!procfile || !procfile->writefunc) {
        return -EIO;
    }

    if (copy_from_user(userdata, buffer, (count > 128) ? 128 : count)) {
        printk(KERN_DEBUG "eee: copy_from_user() failed\n");
        return -EIO;
    }
    userdata[128] = 0;      // So that sscanf() doesn't overflow...

    (*procfile->writefunc)(userdata, count, &bufpos);
    return count;
}

int eee_proc_init(void) {
    int i;

    /* Create the /proc/eee directory. */
    eee_proc_rootdir = proc_mkdir("eee", NULL);
    if (!eee_proc_rootdir) {
        printk(KERN_ERR "eee: Unable to create /proc/eee\n");
        return false;
    }
    //eee_proc_rootdir->owner = THIS_MODULE;

    /* Create the individual proc files. */
    for (i=0; eee_proc_files[i].name; i++) {
        struct proc_dir_entry *proc_file;
        struct eee_proc_file *f = &eee_proc_files[i];

        proc_file = create_proc_entry(f->name, f->mode, eee_proc_rootdir);
        if (!proc_file) {
            printk(KERN_ERR "eee: Unable to create /proc/eee/%s", f->name);
            goto proc_init_cleanup;
        }
        proc_file->read_proc = &eee_proc_readfunc;
        if (f->writefunc) {
            proc_file->write_proc = &eee_proc_writefunc;
        }
        proc_file->data = f;
        /*proc_file->owner = THIS_MODULE;*/
        proc_file->mode = S_IFREG | f->mode;
        proc_file->uid = 0;
        proc_file->gid = 0;
    }
    return true;

    /* We had an error, so cleanup all of the proc files... */
proc_init_cleanup:
    for (; i >= 0; i--) {
        remove_proc_entry(eee_proc_files[i].name, eee_proc_rootdir);
    }
    remove_proc_entry("eee", NULL);
    return false;
}

void eee_proc_cleanup(void) {
    int i;
    for (i = 0; eee_proc_files[i].name; i++) {
        remove_proc_entry(eee_proc_files[i].name, eee_proc_rootdir);
    }
    remove_proc_entry("eee", NULL);
}



/*** Module initialization ***/

int init_module(void) {
    eee_pll_init();
    eee_proc_init();
    printk(KERN_NOTICE "Asus eeePC extras, version %s\n", EEE_VERSION);
    return 0;
}

void cleanup_module(void) {
    eee_pll_cleanup();
    eee_proc_cleanup();
}
Je vais tester faites moi par des retours.

Fred

Edit: pour le ventilateurs, cela fonctionne sans problème mais pour le processeur je ne vois pas de variations entre 630 et 900. Peut-être est ce du à ce driver intel tout p****i

Fred
Essay de lancer mon scripte de monter (1035 MHz, ventilo a 100%, ...)
Si il y a une différence avec 630 MHz tu devrai la voir
Non, aucune différence de perf entre 630 et 900... Le fsb ne semble pas fonctionner.

Pour régler le ventilo OK.

Fred
Ben les 701 son condamné a rester sur la 9.04 🙁 dommage
7 jours plus tard
bonjour,
J'ai laché ma vieille 7.04 que j'avais installé sur mon 701.J'ai craqué pour eeebuntu 3(9.04)

J'ai téléchargé le eeepc-linux-2 pour 9.04,mais quand je veux compiler avec make :
/lib/modules/2.6.28-11-generic/build: No such file or directory

Effectivement le repertoire build n'existe pas...une idée?

Merci
Tu n'as sans doute pas installé le paquet linux-header

Fred
salut fredr,

exact qué beta!! j'avais pas installé le headers generic!!
merci

Effectivement à 990 mhz j'arrive à environ 300fps avec glxgears alors qu'avant j'obtenais 700..

Depuis quand est apparu ce probleme de drivers?(quelle version)

Il ya une manip pour revenir au drivers intel,tu l'as testé?
Salut,

Je n'ai pas réussis à revenir en arrière pour les drivers.

Je pense que le soucis est apparu avec les noyaux 2.28 soit jaunty et karmic

Fred
13 jours plus tard
Bonjour,

Je voudrais que mes "hotkeys" fonctionnent et notament fn+f2 pour activer/couper le wifi.

Il semble que eee-control soit la solution pour les eeepc.Par contre il semble qu'il y ai un soucis..conflit avec asus_eee alors que le module n'est pas chargé...la solution rmmod asus_eee donnée sur les forums ne fonctionne donc pas pour le 701. (je suis sous 9.04 et j'ai téléchargé le .deb de eee-control correspondant)

Peut on appliquer la méthode appliquée à l'époque pour la eeexubuntu 7.10 pour faire fonctionner les hotkeys?

Les autres options de eee-control m'importent peu et notament la var du FSB..et oui je tiens à utiliser mon vieux proceee pour la gloire!🙂

merci de vos retours