Fanless Aspire One

Discussion in 'Modding and Customization' started by obarriel, Jul 22, 2008.

  1. obarriel

    esaym

    Joined:
    Aug 7, 2008
    Messages:
    60
    Likes Received:
    0
    It came from buy.com. It is white with intel SSDPAMM0008G1EA ssd, 2200mah battery, and 3109 bios
     
    esaym, Aug 15, 2008
  2. obarriel

    casainho

    Joined:
    Jul 21, 2008
    Messages:
    88
    Likes Received:
    0
    I am using Ubuntu ;-) and I did put on /etc/rc.local but It isn't working :-(

    I am using the cpufreq since beginning, it's nice but I don't like the fact that it's just goes down to 50%... on Eee pc it was going to 12% :) - well, but 50% should help on battery run time and temperature :)
     
    casainho, Aug 15, 2008
  3. obarriel

    Spire

    Joined:
    Jul 21, 2008
    Messages:
    37
    Likes Received:
    0
    Yes,

    Units with Samsung SSD = Noisy fan
    with Intel SSD = Silence fan

    http://www.aspireoneuser.com/forum/viewtopic.php?f=24&t=239&st=0&sk=t&sd=a&start=40
     
    Spire, Aug 16, 2008
  4. obarriel

    Frojd

    Joined:
    Aug 7, 2008
    Messages:
    95
    Likes Received:
    0
    Mine is a Samsung SSD and it's quiet....most of the time. Sometimes the fan spins up without reason and I can understand what some of you have experienced with your One's, but most of the time it's very quiet (I'm not very tolerant to noise and compared to my stationary PC, which everyone who's heard it experience as extremely quiet, the One is just a bit more noisy).
     
    Frojd, Aug 16, 2008
  5. obarriel

    Guest Guest

    I would not characterize my fan as loud by any means, but it is not whisper quiet. Something that I've done that has helped a lot with the sound (and with the cooling) is to add some larger stick-on rubber feet to the bottom of the battery. They are about 1/2" square and close to 1/3" tall. This gives more air space under the AA1 which helps dampen the resonating sound the fan makes. This also helps with air circulation under the AA1. A secondary benefit is it angles the keyboard a little forward making it easier to type. With the larger back feet my AA1 still fits in the soft sleeve that came with it.

    I know some will frown at doing something like this, but it's worked out for me.

    VVarwick
     
    Guest, Aug 16, 2008
  6. obarriel

    qball

    Joined:
    Aug 14, 2008
    Messages:
    42
    Likes Received:
    0
    Why would we?
     
    qball, Aug 16, 2008
  7. obarriel

    Guest Guest

    OK, maybe you wouldn't. :lol:

    I figured some will frown on adding extra thickness to a netbook since being so small is part of it's beauty.
     
    Guest, Aug 16, 2008
  8. obarriel

    rachel

    Joined:
    Aug 10, 2008
    Messages:
    80
    Likes Received:
    0
    I've written a simple daemon to automatically control the fan according to temperature.

    It's on the wiki page (http://wiki.aspireone.net/index.php/How_to_hack_the_noisy_fan) now, and is called acerfand.

    Try it out, guys. :) And someone fill in the bit about putting it into the local boot script on Linpus.
     
    rachel, Aug 16, 2008
  9. obarriel

    Martini-man

    Joined:
    Jul 20, 2008
    Messages:
    25
    Likes Received:
    0
    Is it possible to make this for windows?
     
    Martini-man, Aug 16, 2008
  10. obarriel

    casainho

    Joined:
    Jul 21, 2008
    Messages:
    88
    Likes Received:
    0
    GREAT Rachel!!

    I did put it in /etc/rc.local (Ubuntu) but is not taking effect at boot time :-( -- however If I run that script it starts running and I can see it If I do:
    Code:
    pstree | grep acer
         |-acerfand---sleep
    I didn't create the conf file for the script as I think that default values are ok :)

    I am very happy to see that our problem were resolved with our efforts :) -- now the wiki page is a bit disorganized, Rachel, If you can, you can go ahead to clean it - just put as principal this daemon!!!

    Eee pc have a great community (I have one) because we discuss on forums and finally we resume on wiki, but for AA1 is really bad because info is all disorganized :-( - principal links on main site is for forum messages which are a pain to read and conclude something :-(

    My rc.local file is:
    Code:
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    # Economize the SSD
    sysctl -w vm.swappiness=1               # Strongly discourage swapping
    sysctl -w vm.vfs_cache_pressure=50      # Don't shrink the inode cache aggressively
    
    # As in the rc.last.ctrl of Linpus
    echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
    echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
    
    echo 3000 > /proc/sys/vm/dirty_writeback_centisecs
    echo 20 > /proc/sys/vm/dirty_ratio
    echo 10 > /proc/sys/vm/dirty_background_ratio
    
    echo 1 > /sys/devices/system/cpu/sched_smt_power_savings
    echo 10 > /sys/module/snd_hda_intel/parameters/power_save
    echo 5 > /proc/sys/vm/laptop_mode
    
    #Decrease power usage of USB while idle
    [ -L /sys/bus/usb/devices/1-5/power/level ] && echo auto > /sys/bus/usb/devices/1-5/power/level
    [ -L /sys/bus/usb/devices/5-5/power/level ] && echo auto > /sys/bus/usb/devices/5-5/power/level
    
    #Automatic contro of the noisy fan
    /usr/local/bin/acerfand
    
    exit 0
     
    casainho, Aug 16, 2008
  11. obarriel

    casainho

    Joined:
    Jul 21, 2008
    Messages:
    88
    Likes Received:
    0
    You know, we get all this working because someone other did share that other script to read/write the registers of EC controller, for GNU/Linux - IMO, people on MS Windows don't know by nature what his sharing... :-(

    Martini-man, why don't you join GNU/Linux?? (the dark side of the force :) eheh ;-) )
     
    casainho, Aug 16, 2008
  12. obarriel

    rachel

    Joined:
    Aug 10, 2008
    Messages:
    80
    Likes Received:
    0
    hmm.
    Code:
    grep acerfand /var/log/daemon.log
    see if there's a: anything at all and b: anything meaningful. Also go to vc-8 to see if anything failed during rc.local.

    I just see:

    Code:
     rachel@nereid ~ $ grep acerfand /var/log/daemon.log 
     Aug 16 18:47:32 nereid acerfand: Starting to govern acer fan speed. Interval: 5, fan-off: 60, fan-auto: 70
     Aug 16 18:47:32 nereid acerfand: Set fan Off
    rachel@nereid ~ $ 
    
    It might (shouldn't, but might) be intolerant of the missing /etc/acerfand.conf file. I have one, although all lines are commented out, just as a leftover from testing.

    (Not rebooting any more now; going to have dinner...)

    I imagine it's been around longer for such things to get bedded down.

    curiously similar to mine; I omitted the cpufreq stuff though as I configured that instead through gnome-power-manager (after enabling the option to do so in gconf editor)
     
    rachel, Aug 16, 2008
  13. obarriel

    qball

    Joined:
    Aug 14, 2008
    Messages:
    42
    Likes Received:
    0
    Gonna give the script a try. to monitor it do:

    Code:
    tail -f /var/log/daemon.log | greap acerfand 
    p.s. it seems even with the fan "unmodified" you can drive the cpu temperature up to above 70 degrees, just put it under some cpu-stress.
     
    qball, Aug 16, 2008
  14. obarriel

    macles

    Joined:
    Jul 22, 2008
    Messages:
    198
    Likes Received:
    0
    Excellent work!

    I converted the relevant parts of the perl script into a perl one liner. Not necessary to download the perl script anymore if the command is simply implemented into the bash file.

    Code:
    sudo perl -we 'use POSIX; sysopen (IOPORTS, "/dev/port", O_RDWR); binmode IOPORTS; sub inb {my ($res,$nrchars); sysseek IOPORTS, $_[0], 0 or return -1;$nrchars = sysread IOPORTS, $res, 1; $res = unpack "C",$res ;return $res;} sub outb {my $towrite = pack "C", $_[0]; sysseek IOPORTS, $_[1], 0 or return -1; my $nrchars = syswrite IOPORTS, $towrite, 1; return 0;} sub wait_write {my $i = 0; while ((inb($_[0]) & 0x02) && ($i < 10000)) {sleep(0.01);$i++;} return -($i == 10000);} sub wait_write_ec {wait_write(0x66);} sub write_ec { if (!wait_write_ec()) { outb(0x81, 0x66 ); } if (!wait_write_ec()) { outb($_[0], 0x62); } if (!wait_write_ec()) { outb($_[1], 0x62); } } write_ec(0x55, 0x20); close(IOPORTS);'
    The only thing that needs to be changed are the two values at the end, 0x55 and 0x20 in this case.
     
    macles, Aug 16, 2008
  15. obarriel

    casainho

    Joined:
    Jul 21, 2008
    Messages:
    88
    Likes Received:
    0
    /var/log/daemon.log don't have any reference to acerfand after reboot, just after I execute it manually.

    I don't know what is vc-8, nor I don't know how to see if all in rc.local were executed... - can you help me on that?

    Another question: that log file is in RAM memory? - my /etc/fstab file:
    Code:
    tmpfs      /var/log        tmpfs        defaults           0    0
    - this means that /var/log directory is on RAM instead on any SSD partition?

    I will reboot again to see if acerfand runs at boot...

    -- great to simplify, more straight ;-) :)
     
    casainho, Aug 16, 2008
  16. obarriel

    qball

    Joined:
    Aug 14, 2008
    Messages:
    42
    Likes Received:
    0
    I prefer the large version. Can it be fruitfull to rewrite it in C?
     
    qball, Aug 16, 2008
  17. obarriel

    casainho

    Joined:
    Jul 21, 2008
    Messages:
    88
    Likes Received:
    0
    Well, I just want to mean that is simplify to some download just one script and not 2. For sure that code is not more readable like that...

    I am very happy now, I just need to have it working on boot time -- if some one have energies to write it on C or something else, at least let's try to simplify the life of first ones that buy the AA1 and will need to do this hack.

    I still don't have it working on boot time :-(
     
    casainho, Aug 16, 2008
  18. obarriel

    Guest Guest

    i'm currently working on a kernel module.. found something that looks like the rpm of the fan, searching for a formula right now..

    also i think it is possible to control the fan with more steps than just 3..

    greetz
     
    Guest, Aug 16, 2008
  19. obarriel

    qball

    Joined:
    Aug 14, 2008
    Messages:
    42
    Likes Received:
    0
    best solution would be to write a small init script.
     
    qball, Aug 16, 2008
  20. obarriel

    macles

    Joined:
    Jul 22, 2008
    Messages:
    198
    Likes Received:
    0
    I've shortened it a bit more.
    Code:
    sudo perl -we 'use POSIX; sysopen (IOPORTS, "/dev/port", O_RDWR); binmode IOPORTS; sub inb {my $res; sysseek IOPORTS, $_[0], 1; sysread IOPORTS, $res, 1; return unpack("C",$res);} sub outb {sysseek IOPORTS, $_[1], 0; syswrite IOPORTS, pack("C",$_[0]), 1;} sub wait_write {my $i = 0; while ((inb($_[0]) & 0x02) && ($i < 10000)) {sleep(0.01);$i++;} return -($i == 10000);} sub wait_write_ec {wait_write(0x66);} sub write_ec {if (!wait_write_ec()) {outb(0x81, 0x66);} if (!wait_write_ec()) {outb($_[0], 0x62);} if (!wait_write_ec()) {outb($_[1], 0x62);}} write_ec(0x55, 0x20); close(IOPORTS);'
     
    macles, Aug 16, 2008
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.