Username: Password: Remember me
Search Criteria Advanced
Package Details

eeepc-linux 0.39a1-2
http://code.google.com/p/eeepc-linux/
Eeepc-linux is a kernel module that allows control of the fan and fsb speeds.

unsupported :: modules
Maintainer: andreas_baumann
Votes: 26

License: GPL

Last Updated: Sat, 02 Jan 2010 17:02:41 +0000
First Submitted: Tue, 22 Jan 2008 04:05:37 +0000

Tarball :: Files :: PKGBUILD

Sources
asus_eee-0.39a1.tar.gz
Comment by: andreas_baumann on Sat, 28 Nov 2009 10:26:29 +0000
I still see the FSB errors from before.. fan control works fine.
Comment by: andreas_baumann on Sat, 28 Nov 2009 10:14:41 +0000
Ok, I decided to package the following version (after some testing): http://code.google.com/p/eeepc-linux/issues/detail?id=22

The module is called 'asus_eee' now and not just 'eee' anymore.

The source code I had to put into the package (not really nice, I now), but from the
issue system I can't really donwload it (suggestions how to solve this are welcome).
Comment by: andreas_baumann on Sun, 15 Nov 2009 11:12:23 +0000
original SVN not updated, people update different patches in the issue tracking system. Not sure, which is the current working version..
Comment by: andreas_baumann on Sun, 15 Nov 2009 10:59:20 +0000
Kernel 2.6.31.5: no /proc/eee anymore and a nice kernel panic in dmesg:

BUG: unable to handle kernel NULL pointer dereference at 0000000c
IP: [<e03c8870>] i2c_smbus_xfer+0x50/0x5e0 [i2c_core]
*pde = 00000000
Oops: 0000 [#1] PREEMPT SMP
last sysfs file: /sys/module/i2c_core/initstate
Modules linked in: eee(+) ipv6 snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device ath_pci wlan ath_hal(P) arc4 ecb snd_pcm_oss snd_mixer_oss snd_hda_codec_realtek snd_hda_intel joydev snd_hda_codec fan ath5k snd_hwdep snd_pcm mac80211 iTCO_wdt snd_timer led_class ath video output iTCO_vendor_support thermal cfg80211 button processor snd battery i2c_i801 soundcore snd_page_alloc intel_agp rfkill i2c_core evdev psmouse sg pcspkr ac agpgart serio_raw atl2 asus_acpi p4_clockmod freq_table speedstep_lib rtc_cmos rtc_core rtc_lib ext2 mbcache sd_mod ahci usb_storage ata_piix ata_generic pata_acpi libata uhci_hcd scsi_mod ehci_hcd usbcore

Pid: 2793, comm: modprobe Tainted: P (2.6.31-ARCH #1) 701
EIP: 0060:[<e03c8870>] EFLAGS: 00010246 CPU: 0
EIP is at i2c_smbus_xfer+0x50/0x5e0 [i2c_core]
EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000069
ESI: 00000000 EDI: 00000000 EBP: de9cbf12 ESP: de9cbe5c
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process modprobe (pid: 2793, ti=de9ca000 task=de960840 task.ti=de9ca000)
Stack:
1c4828f5 de8345d0 1c4828f5 c1402070 00000069 1c480000 deb4e301 00000005
<0> de8345d0 c11510c1 de834570 de9cbeb4 00000002 1c4828f5 c1945000 00000000
<0> 40000000 00000000 00000286 00000292 00000000 1c4828f5 00000246 c1306e44
Call Trace:
[<c11510c1>] ? sysfs_addrm_finish+0x21/0x230
[<c1306e44>] ? __mutex_lock_slowpath+0x1f4/0x2e0
[<c1306f48>] ? mutex_lock+0x18/0x40
[<e0410230>] ? init_module+0x0/0x80 [eee]
[<e03c9060>] ? i2c_smbus_read_block_data+0x50/0xa0 [i2c_core]
[<e0410269>] ? init_module+0x39/0x80 [eee]
[<c100115b>] ? do_one_initcall+0x3b/0x1b0
[<c107e675>] ? sys_init_module+0xe5/0x230
[<c1003cb3>] ? sysenter_do_call+0x12/0x28
Code: 24 14 8b ac 24 b0 00 00 00 89 5c 24 1c 0f b6 9c 24 a4 00 00 00 89 c7 88 5c 24 18 65 8b 1d 14 00 00 00 89 9c 24 8c 00 00 00 31 db <8b> 4e 0c 8b 49 04 85 c9 0f 84 c2 00 00 00 8d 46 18 89 44 24 28
EIP: [<e03c8870>] i2c_smbus_xfer+0x50/0x5e0 [i2c_core] SS:ESP 0068:de9cbe5c
CR2: 000000000000000c
---[ end trace 28ddf9238843ceb1 ]---
Comment by: andreas_baumann on Wed, 26 Aug 2009 08:46:35 +0000
No problems. Glad to hear it worked.. :-)
Comment by: Hazor on Tue, 25 Aug 2009 01:27:51 +0000
Hm. scripts/basic/fixdep is executable by everyone. I have the kernel source on an sdhc card in my Eee 701. I've executed stuff from the device before, I'm fairly certain, but I decided to explicitly state the exec mount option in the fstab, and it has now compiled successfully. Thank you for the help!
Comment by: andreas_baumann on Mon, 24 Aug 2009 06:25:07 +0000
Can't reproduce this on my machine, but it looks like you should check the permissions of

/usr/src/linux-2.6.30-ARCH/scripts/basic/fixdep or

whether the partition containing the linux kernel sources is accidentally mounted with 'noexec'..

Comment by: Hazor on Sun, 23 Aug 2009 21:53:50 +0000
Build is failing with:

==> Starting build()...
patching file eee.c
patching file eee.c
make -C /lib/modules/2.6.30.5-eee/build M=/tmp/yaourt-tmp-benjamin/aur-eeepc-linux/eeepc-linux/src/eeepc-linux/module modules
make[1]: Entering directory `/media/SDHC/source/kernel/linux-2.6.30.5'
CC [M] /tmp/yaourt-tmp-benjamin/aur-eeepc-linux/eeepc-linux/src/eeepc-linux/module/eee.o
/bin/sh: scripts/basic/fixdep: Permission denied
make[2]: *** [/tmp/yaourt-tmp-benjamin/aur-eeepc-linux/eeepc-linux/src/eeepc-linux/module/eee.o] Error 1
make[1]: *** [_module_/tmp/yaourt-tmp-benjamin/aur-eeepc-linux/eeepc-linux/src/eeepc-linux/module] Error 2
make[1]: Leaving directory `/media/SDHC/source/kernel/linux-2.6.30.5'
make: *** [all] Error 2
==> ERROR: Build Failed.
Aborting...
Error: Makepkg was unable to build eeepc-linux package.

This stuff is beyond my skill, can anyone help?
Comment by: andreas_baumann on Wed, 24 Jun 2009 17:09:57 +0000
kernel 2.6.30 update, apply the following patch:

diff -rauN eeepc-linux/module/eee.c eeepc-linux-proc-owner-patch/module/eee.c
--- eeepc-linux/module/eee.c 2008-01-15 05:47:24.000000000 +0100
+++ eeepc-linux-proc-owner-patch/module/eee.c 2009-06-24 18:56:13.000000000 +0200
@@ -30,6 +30,7 @@

#include <linux/module.h>
#include <linux/kernel.h>
+#include <linux/version.h>
#include <linux/proc_fs.h>
#include <asm/uaccess.h>
#include <asm/io.h> // For inb() and outb()
@@ -401,7 +402,9 @@
printk(KERN_ERR "eee: Unable to create /proc/eee\n");
return false;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
eee_proc_rootdir->owner = THIS_MODULE;
+#endif

/* Create the individual proc files. */
for (i=0; eee_proc_files[i].name; i++) {
@@ -418,7 +421,9 @@
proc_file->write_proc = &eee_proc_writefunc;
}
proc_file->data = f;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
proc_file->owner = THIS_MODULE;
+#endif
proc_file->mode = S_IFREG | f->mode;
proc_file->uid = 0;
proc_file->gid = 0;

My PKGBUILD looks currently like:

# Maintainer: Kitty Luckshot <secacat@gmail.com>

pkgname=eeepc-linux
pkgver=0.2
pkgrel=2
pkgdesc="Eeepc-linux is a kernel module that allows control of the fan and fsb speeds."
arch=('i686')
url="http://code.google.com/p/eeepc-linux/"
license=('GPL')
makedepends=('pkgconfig')
install=(eeepc-linux.install)
source=(http://eeepc-linux.googlecode.com/files/$pkgname-$pkgver.tar.gz
proc_rootdir.patch
proc_owner.patch)
md5sums=('7d13ee1f5f0a533ef4b7694823dda06f'
'3c3db882c09cbde4cbde94dd50d45c09'
'0679ae9c9d5f2a4b0ceec9a743567cfd')

build() {
cd $startdir/src/$pkgname/module
patch -p2 < $srcdir/proc_rootdir.patch
patch -p2 < $srcdir/proc_owner.patch
make || return 1
install -Dm644 $startdir/src/$pkgname/module/eee.ko $startdir/pkg/lib/modules/$(uname -r)/kernel/acpi/eee.ko
}
Comment by: andreas_baumann on Fri, 09 Jan 2009 09:59:11 +0000
Compiles and works with the patch on my EEPC 701.

It would be nice of the current maintainer to
either integrate the patch or otherwise orphane
the package.

A note on problems when loading the module:

Doing so in /etc/rc.conf in the MODULES section
resulted in:

BUG: unable to handle kernel NULL pointer dereference at 0000000c
IP: [<e01c95c8>] :i2c_core:i2c_smbus_xfer+0x48/0x5c0
*pde = 00000000
Oops: 0000 [#1] PREEMPT SMP
Modules linked in: eee(+) i2c_core p4_clockmod speedstep_lib freq_table kqemu asus_acpi snd_hda_intel snd_hwdep snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore atl2 rtc_cmos rtc_core rtc_lib ext2 mbcache usb_storage uhci_hcd ehci_hcd sd_mod usbcore ata_piix ahci ata_generic pata_acpi libata scsi_mod dock

Pid: 807, comm: modprobe Not tainted (2.6.27-ARCH #1)
EIP: 0060:[<e01c95c8>] EFLAGS: 00010246 CPU: 0
EIP is at i2c_smbus_xfer+0x48/0x5c0 [i2c_core]
EAX: 00000001 EBX: 00000000 ECX: 00000000 EDX: 00000069
ESI: 00000069 EDI: 00000000 EBP: 00000069 ESP: df12be44
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 807, ti=df12a000 task=de93dc00 task.ti=df12a000)
Stack: 011ebfca 00000000 38bf5e54 0000388c 01000001 00000000 c13fa500 00000003
00000000 c03e3a84 000000a1 c04d5280 c031a595 c013605e 679e561f 00000003
676b8f16 00000003 00000001 00000000 c043b500 c13fa500 c0438160 c031a665
Call Trace:
[<c031a595>] _spin_unlock_irq+0x5/0x30
[<c013605e>] run_timer_softirq+0x16e/0x1f0
[<c031a665>] _spin_unlock+0x5/0x20
[<c015f8f3>] __rcu_process_callbacks+0xf3/0x230
[<c0131d2a>] __do_softirq+0x8a/0x110
[<e01c9d30>] i2c_smbus_read_block_data+0x40/0x80 [i2c_core]
[<e01c11b0>] init_module+0x0/0x60 [eee]
[<e01c11b0>] init_module+0x0/0x60 [eee]
[<e01c11df>] init_module+0x2f/0x60 [eee]
[<c01010f3>] do_one_initcall+0x3/0x160
[<c010111a>] do_one_initcall+0x2a/0x160
[<c01548cb>] sys_init_module+0x8b/0x1b0
[<c0103ef3>] sysenter_do_call+0x12/0x33
=======================
Code: 00 00 00 89 bc 24 88 00 00 00 89 cf 8b 4c 24 14 89 ac 24 8c 00 00 00 83 e7 14 89 d5 89 b4 24 84 00 00 00 88 44 24 13 88 5c 24 12 <8b> 41 0c 8b 40 04 85 c0 74 76 89 cb 83 c3 20 89 d8 e8 72 fa 14
EIP: [<e01c95c8>] i2c_smbus_xfer+0x48/0x5c0 [i2c_core] SS:ESP 0068:df12be44
---[ end trace 75411532214fd646 ]---

The module is apparently loaded, but /proc/eee
has not been mounted. Somehow the module misses
a prerequisite, no clue what.

A workaround seems to be to add

modprobe eee

to /etc/rc.local

Then the module loads and works fine.
Comment by: imrehg on Fri, 26 Dec 2008 10:35:33 +0000
Hi,
Since the module was last updated the kernel changed and the &proc_root used by the module is not working anymore, preventing the build...

Should apply a patch to the source replacing the references to &proc_root with NULL.
Good otherwise. :)


--- b/eee.c 2008-01-15 12:47:24.000000000 +0800
+++ a/eee.c 2008-12-26 18:19:14.000000000 +0800
@@ -396,7 +396,7 @@
int i;

/* Create the /proc/eee directory. */
- eee_proc_rootdir = proc_mkdir("eee", &proc_root);
+ eee_proc_rootdir = proc_mkdir("eee", NULL);
if (!eee_proc_rootdir) {
printk(KERN_ERR "eee: Unable to create /proc/eee\n");
return false;
@@ -430,7 +430,7 @@
for (; i >= 0; i--) {
remove_proc_entry(eee_proc_files[i].name, eee_proc_rootdir);
}
- remove_proc_entry("eee", &proc_root);
+ remove_proc_entry("eee", NULL);
return false;
}

@@ -439,7 +439,7 @@
for (i = 0; eee_proc_files[i].name; i++) {
remove_proc_entry(eee_proc_files[i].name, eee_proc_rootdir);
}
- remove_proc_entry("eee", &proc_root);
+ remove_proc_entry("eee", NULL);
}
Comment by: bostonvaulter on Sun, 31 Aug 2008 10:36:23 +0000
This should have a dependency on make/some type of build tools.
Comment by: Kitty on Tue, 22 Jan 2008 04:05:37 +0000
Initial upload.

Kernel module for fan & fsb speed control for the Asus Eee PC. Source: http://code.google.com/p/eeepc-linux/

More info: http://wiki.eeeuser.com/howto:overclockfsb

v1.6.0