четверг, 31 декабря 2009 г.

С наступающим 2010 годом.

От всей души поздравляю тебя с наструпающим 2010 годом.

Я желаю чтобы старый год, уходя, забрал с собой все неприятности, скуку и однообразную плесень. Чтобы то, что ты увидишь на этом видео осталось в старом году.



Одновременно хочу напомнить, что положительные эмоции возникают только на контрасте. Следующее видео объясняет смысл моих слов. Присутствует так называемая ненормативная лексика, но на мой взгляд в данном контексте она оправдана.



И если с тобой где то и случились неприятности, знай - это только для того, чтобы вкус жизни был приятнее! Слаще...

Поэтому! Желаю!

В Новом Году на заднице не сидеть! Вперед к новым приключениям!

Чтобы рядом был человек, которому не безразличны твои начинания и с которым будет интересно разделить твои эмоции!

Если ты не достиг еще материального благополучия, то достичь его в Новом Году. Деньги сами по себе ничего не значут, но дают некоторую свободу.

Желаю, чтобы здоровье твое было. А для этого спортом занимайся. Чтоб получалось не хуже, чем у этого парня.



Помни! Что самый главный Дед Мороз для тебя и твоих близких - это ты сам. Что захочешь подарить себе и твоим любимым - то и будет.

А потому желаю тебе, чтобы у тебя желания были. Желания что нибудь делать, что нибудь менять.

Желаю тебе, чтобы Новый Год был интереснее на эмоции, чем старый!

С Новым Годом! Ура!

суббота, 26 декабря 2009 г.

Как сохранить видео из YouTube

В старых версиях firefox флэш видео сохранялось в каталоге /tmp и было доступно для простого копирования. Но начиная с версии firefox с 3.6 до 9 c adobe flash player 11.1.102.55 файл видео помечается как удаленный.

Чтобы сохранить его я пользуюсь вот этим скриптом для nautilus:

#!/bin/bash

############################################################################
# File: cp-ffox-video.sh
# Description: script for copy flash video from firefox to current directory
#
# Copyleft http://axa-ru.blogspot.com/2009/12/how-to-save-video-from-youtube.html

lsof | grep Flash | while read psLine 
do 
  PID=$(echo $psLine | awk '{print $2}')
  FD=$(echo $psLine | awk '{print $4}' | tr -d 'u')
  FILE=$(echo $psLine | awk '{print $9}' | tr -d '/tmp/')
  cp /proc/$PID/fd/$FD $FILE.flv
done

exit 0

Скрипт нужно сохранить в каталоге ~/.gnome2/nautilus-scripts под именем cp-ffox-video.sh

Как им пользоваться:
  1. Посмотреть видео.
  2. Свернуть (но не закрывать) firefox.
  3. Открыть в nautilus папку куда мы желаем сохранить видео.
    Нажимаем правую клавишу мыши и выбираем скрипт cp-ffox-video.sh




Полезные ссылки:


Upd. 09.05.2011
Upd. 30.10.2011 - Изменил скрипт для совместимости с Firefox 7.0.1 и adobe flash player 11.0.1.152
Upd. 03.11.2011 - Проверил на совместимость с Firefox 8.0
Upd. 22.11.2012 - Проверил на совместимость с Firefox 16.0.1 и Shockwave Flash 11.2 r202.

четверг, 17 декабря 2009 г.

Как сохранить на диск фотографии из photofile.name, picasa, flickr за два клика

Случилось так, что у меня сгорел диск с архивами фоток. И понадобилось мне скачать обратно на диск мои фотографии из photofile

Кликать мышкой на каждой из пары сотен? Это не наш метод.

Прошерстил я гугл и нашел, что был плагин к Total Commander, выполняющий такую операцию. Но оказалось, что автор год назад прекратил его поддержку и заботливо поудалял все исходники и архивы с ним.

Не знаю уж что с ним делали: били-ли, паяльником паяли-ли или бабла заплатили. Но факт налицо.

Я таки нашел этот плагин в польских закоулках, поковырялся с ним минут 10 и написал небольшой скрипт на bash, с похожей функциональностью.

Вот он:
Для http://photofile.name
#!/bin/sh
# gpf.sh - simple script for save photo from http://photofile.name
wget $1all -O- | grep '#mainImageLink' | sed -e 's/<img src=.*//' -e 's/\/#mainImageLink">/.jpg/' -e 's/^ *//' | awk -F/ '{printf "http://%s.%s.photofile.ru/photo/%s/%s/%s\n", $3,  $2, $3, $4, $5 }' | wget -i-

Сохраняем скрипт на диск в каталог куда будим фотки даунлоадить. Даем ему права на исполнение.

chmod 755 gpf.sh

Как им пользоваться? Проще простого:

  1. Открываем phtotfile.ru на нужном нам альбоме





  2. Копируем в буфер обмена URL.
  3. В терминале вводим команду :
    ./gpf.sh <URL>

    В данном примере:
    ./gpf.sh http://photofile.name/users/axa_ru/3218616/

  4. Все. Фотографии скачиваются в текущий каталог.
    Пьем пиво.
Скрипт позволяет копировать фотки из любых открытых альбомов в свойствах которых не установлена отметка "Защита оригиналов фотографий"

Пытливые и любознательные могут упростить/усложнить скрипт для скачивания фоток из закрытых альбомов и/или других ресурсов.

Вот аналогичный скрипт для http://picasaweb.google.com(ru)

#!/bin/sh
# gpcs.sh - simple script for save photo from http://picasaweb.google.com(ru)
wget $1 -O- | grep '<div><img src="' | sed -e :a -e 's/<\/div>/\x0A/' -e 's/<div><img src=\"//' -e ta | sed -e 's/".*//' -e 's/s160\///' | wget -i-

Для http://www.flickr.com

Есть отдельное комьюнити посвященное управлению фотографиями для http://code.flickr.com/

Flickr - наверное один из самых навороченных сервисов, по хранению фотоконтента. Его парадигма близка к идеологии мака. Нет папок, есть сеты и теги.

Под сетом обычно подразумевается коллекция фотографий, объединенная по какому либо признаку, по времени, месту или жанру.


#!/bin/sh
# gflk.sh - simple script for save photo from http://www.flickr.com/photos
wget $1 -O- | grep 'title=' | grep 'photo_container pc_m' | sed -e 's/.*http/http/' -e 's/m.jpg.*/b_d.jpg/' | wget -i-

Скрипт скачивает 18 фотографий за раз (столько выдает flickr на одну страницу)

Скачивание аналогично, как и для photofile.name.



PS.
  • Скрипты написаны в стиле unix, но легко могут быть переделаны для WinDos.

  • Никаких гарантий ни за что не несу.
    Если кто спросит где все файлы - отмазка "сбой произошел"
    Если придет управление "К" - бегите в M$. Там помогут.

  • Не понимаю, нахрен было городить какой то плагин к total commader?


Вот похожая тема на форуме про Asus WL500gP: http://wl500g.info/showthread.php?t=19035&highlight=midnight+commander
Если нет подходящей темы, открывайте новую.

четверг, 10 декабря 2009 г.

UNetBootIn - Хватит прожигать диски


Нашел вот очень простую и необычайно полезную утилиту создания загрузочных флешек.

Не знаю как Вы, но я напрожигал уймы дисков с "последней версией" чего нибудь.


Собственно говоря и раньше существовала возможность создавать загрузочные флешки, но как то лень было искать заветные командные строки.


UNetBootIn может грузить образ из интернета, из файла на диске

В общем лучше посмотреть на скриншоты и установить программу.

Если нет подходящей темы, открывайте новую.

суббота, 5 декабря 2009 г.

Ubuntu 9.10 и выше. ThinkPad x200s/x220. Power Saving.

(Продолжение. Начало статьи)


От laptop-mode, который я использовал для 9.04 я отказался, поскольку муторно и непрозрачно. Проще для осмысления pm-utils.

  1. Устраним баг, не дающий включить режим сохранения энергии для Wi-Fi
  2. Установим apmd, pm-utils и expect $ sudo apt-get install apmd pm-utils expect hdparm libnotify-bin Мне expect нужен для управления роутером NBG460N EE из командной строки.

  3. Cоздадим скрипт /usr/lib/pm-utils/power.d/99-savings.sh
    $ sudo gedit /usr/lib/pm-utils/power.d/99-savings.sh
    Копируем листинг к окно редактора и сохраняем.
    ######################################################################################
    # A script to agressively toggle power management between high 
    # performance and very low power usage.
    # For more information on each of these options, see http://www.lesswatts.org
    ################# Ghanges history ###################################################
    #VERSION=0.12   # 31.08.2010 Testing Ubuntu 10.04. Small changes for Wi-Fi control
    #VERSION=0.13   # 21.09.2010 Adding services control: 
                    #   evolution-alarm-notify, 
                    #   postfix, 
                    #   rsyslog
    #VERSION=0.2    # 23.07.2011 Modified for Ubintu 11.04 for Thinkpad x220 4290rw1
    VERSION=0.23    # 27.07.2011 Added store value (Brithness, user, etc ) to /tmp/powersave.ini
                    #   Fix notify-send message
                    #   Added CPU core disabling. Disable cores not affected for power saving
                    #     
    
    #
    # To install:
    #
    # sudo apt-get install apmd pm-utils expect hdparm libnotify-bin
    #
    # Save this file to /usr/lib/pm-utils/power.d/99-savings.sh
    # cd /usr/lib/pm-utils/power.d
    # sudo install 99-savings.sh /etc/pm/sleep.d
    # sudo install 99-savings.sh /etc/pm/power.d
    #
    
    INI=/tmp/powersave.ini
    
    aUsb()
    {
      #################################################
      ## USB Subsystem
      ##
      # 0.7-0.8 W
      case "$1" in
        false)  #ac_power
          for i in /sys/bus/usb/devices/*/power/control
          do
            echo "on" > $i
          done
          ;;
    
        true)  #batt_power
          for i in /sys/bus/usb/devices/*/power/control
          do
            echo "auto" > $i
          done
    
          for i in /sys/bus/usb/devices/*/power/autosuspend
          do
            echo 1 > $i
          done
    
          echo 1 > /sys/module/usbcore/parameters/autosuspend
          ;;
      esac
    }
    
    aSata()
    {
    
      case "$1" in
        false)  #ac_power
          # Set the SATA to max performance
          for i in /sys/class/scsi_host/host*/link_power_management_policy
          do
            echo max_performance > $i
          done
          ;;
    
        true)  #batt_power
          # Set SATA to minimum power
          # 0.7 W
          for i in /sys/class/scsi_host/host*/link_power_management_policy
          do
            echo min_power > $i
          done
          ;;
      esac
    }
    
    aPci()
    {
      case "$1" in
        false)  #ac_power
          for i in /sys/bus/pci/devices/*/power/control
          do
            echo on > $i
          done
          ;;
    
        true)  #batt_power
          for i in /sys/bus/pci/devices/*/power/control
          do
            echo auto > $i
          done
          ;;
      esac
    }
    
    aI2c()
    {
      case "$1" in
        false)  #ac_power
          for i in /sys/bus/i2c/devices/i2c-*/power/control
          do
            echo on > $i
          done
          ;;
    
        true)  #batt_power
          for i in /sys/bus/i2c/devices/i2c-*/power/control
          do
            echo auto > $i
          done
          ;;
      esac
    }
    
    aHdd()
    {
      case "$1" in
        false)  #ac_power
          # Set the drive to mostly stay awake.  Some may want to change -B 200
          # to -B 255 to avoid accumulating Load_Cycle_Counts
          # -S 240 => put in standby after 20 minutes idle
          # -B 200 => do not permit spindown
          # -M => not supported by my drive
          hdparm -B 200 -S 240 -M 254 /dev/sda
    
          # Remount ext3/4 filesystems so the journal commit only happens every 60
          # seconds.  By default this is 5 but, I prefer to reduce the disk
          # activity a bit.
          mount -o remount,commit=60,atime /
          ;;
    
        true)  #batt_power
          hdparm -B 1 -S 4 -M 128 /dev/sda
          mount -o remount,noatime,commit=600 /
    
          ;;
      esac
    }
    
    aSsd()
    {
    
    # add these commands in the /etc/rc.local
    #  echo deadline > /sys/block/sda/queue/scheduler
    #  echo 1 > /sys/block/sda/queue/iosched/fifo_batch
    #  sysctl -w vm.swappiness=1            # Strongly discourage swapping
    #  sysctl -w vm.vfs_cache_pressure=50   # Don't shrink the inode cache aggressively
      case "$1" in
        false)  #ac_power
          ;;
    
        true)  #batt_power
          ;;
      esac
    }
    
    aI915()
    {
      case "$1" in
        false)  #ac_power
          echo 0 > /sys/module/i915/parameters/powersave
          ;;
    
        true)  #batt_power
          echo 1 > /sys/module/i915/parameters/powersave
          ;;
      esac
    }
    
    aWlan()
    {
          # WiFi power savings.
      case "$1" in
        false)  #ac_power
          /sbin/iwconfig wlan0 power off txpower 14
          ;;
    
        true)  #batt_power
          /sbin/iwconfig wlan0 power on txpower 4
          ;;
      esac
    }
    
    aLan()
    {
      case "$1" in
        false)  #ac_power
          # set the ethernet max speed.
          ethtool -s eth0 wol d
          ethtool -s eth0 autoneg off speed 1000
          ;;
    
        true)  #batt_power
          # set the ethernet power savings.
          # ~ 0.4 W
          ethtool -s eth0 wol d
          ethtool -s eth0 autoneg off speed 100
          ;;
      esac
    }
    
    aCpu()
    {
      #################################################
      ## CPU
      ##
    
      case "$1" in
        false)  #ac_power
          for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
          do
            echo performance > $i
          done
    
          # Enable All Core CPU
          for i in /sys/devices/system/cpu/cpu*/online
          do
            echo 1 > $i
          done
    
          # Shedule Multitreading
          echo 0 > /sys/devices/system/cpu/sched_mc_power_savings
          ;;
    
        true)  #batt_power
          for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
          do
            echo powersave > $i
          done
    
    #      Disable cores not affected for power saving
    #      for i in /sys/devices/system/cpu/cpu*/online
    #      do
    #        echo 0 > $i
    #      done
    
          echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
          ;;
      esac
    }
    
    aSnd()
    {
      case "$1" in
        false)  #ac_power
          echo 0 > /sys/module/snd_hda_intel/parameters/power_save
          ;;
    
        true)  #batt_power
          # Turn off sound card power savings
          # < 0.1 W
          echo 10 > /sys/module/snd_hda_intel/parameters/power_save
          ;;
      esac
    }
    
    aBt()
    {
      case "$1" in
        false)  #ac_power
          # Enable the bluetooth driver
          rfkill unblock bluetooth
          ;;
    
        true)  #batt_power
          # Remove the bluetooth driver
          # 0.3-0.4 W
          rfkill block bluetooth
          ;;
      esac
    }
    
    aDaemons()
    {
      #################################################
      ## demons, services
      ##
    
      case "$1" in
        false)  #ac_power
          # 1. Evolution alarm and integrations
          /usr/lib/evolution/2.32/evolution-alarm-notify &
          #/usr/lib/evolution/e-calendar-factory &
          #/usr/lib/evolution/e-addressbook-factory &
    
          # 2. Starting Sendmail server 
          #postfix start 
    
          # 3. Starting CouchDB & desktopcouch
          dbus-send --session --dest=org.desktopcouch.CouchDB --print-reply --type=method_call / org.desktopcouch.CouchDB.getPort
          ;;
    
        true)  #batt_power
          # 1. Evolution alarm
          killall evolution-alarm-notify
          #killall e-calendar-factory
          #killall e-addressbook-factory
    
          # 2. Stopping Sendmail server 
          #postfix stop
    
          # 3. Stoping CouchDB & desktopcouch
          killall beam.smp
          killall desktopcouch-service
          ;;
      esac
    }
    
    # < 0.1 W
    aWebcam()
    {
      case "$1" in
        false)  #ac_power
          # Enable the webcam driver
          modprobe uvcvideo
          ;;
    
        true)  #batt_power
          # Remove the webcam driver
          modprobe -r uvcvideo
          ;;
      esac
    }
    
    aMemory()
    {
      case "$1" in
        false)  #ac_power
          # Set kernel dirty page value back to default
          echo 10 > /proc/sys/vm/dirty_ratio
          echo 5 > /proc/sys/vm/dirty_background_ratio
    
          # Only wakeup every 60 seconds to see if we need to write dirty pages
          # By default this is every 5 seconds but, I prefer 60 to reduce disk
          # activity.
          echo 6000 > /proc/sys/vm/dirty_writeback_centisecs
          ;;
    
        true)  #batt_power
          # Reduce disk activity by waiting up to 10 minutes before doing writes
          echo 90 > /proc/sys/vm/dirty_ratio
          echo 1 > /proc/sys/vm/dirty_background_ratio
          echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
          ;;
      esac
    }
    
    aBrightness()
    {
      case "$1" in
        false)  #ac_power
          # Setup maximum brigthness
          # Thinkpad x220, Ubuntu 11.04
          vBAT_BRI=$(cat /sys/devices/virtual/backlight/acpi_video0/brightness)
          echo $vAC_BRI > /sys/devices/virtual/backlight/acpi_video0/brightness
          ;;
    
        true)  #batt_power
          # Setup brigthness 30%
          vAC_BRI=$(cat /sys/devices/virtual/backlight/acpi_video0/brightness)
          echo $vBAT_BRI > /sys/devices/virtual/backlight/acpi_video0/brightness
          ;;
      esac
    
    }
    
    aMisk()
    {
      case "$1" in
        false)  #ac_power
          # Turn off the laptop mode disk optimization
          echo 0 > /proc/sys/vm/laptop_mode
          echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource
    
          # enable logging
          service rsyslog start
    
          # ZiXEL nbg460n. Set maximum wifi speed
          if [ -f /etc/pm/802.11.bgn ]; then /etc/pm/802.11.bgn 1; fi
    
          # enable winbindd
          if [ -f /etc/init.d/winbind ]; then  /etc/init.d/winbind start; fi
    
          # Powersave pci express
          echo performance > /sys/module/pcie_aspm/parameters/policy
          ;;
    
        true)  #batt_power
          # Set laptop disk write mode
          echo 5 > /proc/sys/vm/laptop_mode
          echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource
          # disable logging
          service rsyslog stop
    
          # ZiXEL nbg460n. Set standard wifi speed
          if [ -f /etc/pm/802.11.bgn ]; then /etc/pm/802.11.bgn 0; fi
    
          # disable winbind
          if [ -f /etc/init.d/winbind ]; then  /etc/init.d/winbind stop ; fi
    
          echo powersave > /sys/module/pcie_aspm/parameters/policy
          ;;
      esac
    }
    
    aNotify()
    {
      case "$1" in
        false) #ac_power
          MSGH="AC" 
          MSGT="Maximum Performance Mode"
          MSGI="ac-adapter"
          ;;
        true)  #battery_power 
          MSGH="BATT" 
          MSGT="Battery Power Saving"
          MSGI="battery"
        ;;
      esac
    
      vUSER=`ps -C gnome-session -o user=` #find UID user who start gnome-session
      vPIDS=`pgrep -u $vUSER gnome-session` #find PID
      for PID in $vPIDS; do
        vDBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ \
        | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//')
        DBUS_SESSION_BUS_ADDRESS=$vDBUS_SESSION_BUS_ADDRESS DISPLAY=:0.0 sudo -u $vUSER notify-send "$MSGH" "$MSGT" -i "$MSGI"
      done
    }
    
    aLoadini()
    {
      if [ -e $INI ]; 
        then 
          echo "Restore Value"
          while read LINE
          do
            PARM=$(echo "$LINE" | awk '{print $1}')
            KEY=$(echo "$LINE" | awk '{print $2}')
            case $PARM in
              "AC_BRI")
                vAC_BRI=$KEY
                ;;
              "BAT_BRI")
                vBAT_BRI=$KEY
                ;;
              "USER")
                vUSER=$KEY
                ;;
              "PIDS")
                vPIDS=$KEY
                ;;
              "DBUS_SESSION_BUS_ADDRESS")
                vDBUS_SESSION_BUS_ADDRESS=$KEY
                ;;
            esac
            echo "$PARM $KEY"
          done < $INI
        else
          echo "Reset Value"
          vAC_BRI=15
          vBAT_BRI=8
          vUSER=""
          vPIDS=""
          vDBUS_SESSION_BUS_ADDRESS=""
      fi
    }
    
    aSaveini()
    {
      echo "AC_BRI $vAC_BRI" > $INI
      echo "BAT_BRI $vBAT_BRI" >> $INI
      echo "USER $vUSER" >> $INI
      echo "PIDS $vPIDS" >> $INI
      echo "DBUS_SESSION_BUS_ADDRESS $vDBUS_SESSION_BUS_ADDRESS" >> $INI
    }
    
    
    ##########################################################
    ## Apply settings
    ##
    aLoadini
    
    aCpu $1
    aUsb $1
    aI2c $1
    aSata $1
    aPci $1
    if [ $(hdparm -i /dev/sda | grep Model | awk '{print substr($2,1,3)}') = "SSD" ]; 
      then 
        aSsd $1
      else
        aHdd $1
    fi
    aI915 $1
    aWlan $1
    aLan $1
    aSnd $1
    aBt $1
    aWebcam $1
    aMemory $1
    aDaemons $1
    aBrightness $1
    aMisk $1
    aNotify $1
    
    aSaveini
    

  4. Для управления роутером NBG460N EE из командной строки создадим скрипт: sudo gedit /etc/pm/802.11.bgn Копируем листинг к окно редактора и сохраняем.
    #!/usr/bin/expect
    
    ############################################
    # Set 802.11 /b/g mode for ZiXEL nbg460n ee
    # Need to install expect
    
    spawn "telnet" "192.168.1.1"
    
    expect "Password:"
    send "myPassword\r"
    expect "NBG460NEE>"
    send "wlan radio [lindex $argv 0]\r"
    expect "NBG460NEE>"
    send "exit\r"
    interact
    
    Справедливости ради скажу, что этот скрипт не является надежным.
    Если возникают проблемы с соединением при переходе в режим сохранения энергии лучше от него отказаться и не включать режим 802.11n.

  5. Установка:
    $ cd /usr/lib/pm-utils/power.d $ sudo chmod 755 99-savings.sh $ sudo install 99-savings.sh /etc/pm/sleep.d $ sudo install 99-savings.sh /etc/pm/power.d
  6. Проверка:
    Запускаем powertop
    $ sudo powertop
    и проверяем, что при питании от батареи он не дает никаких рекомендаций.


Полезные ссылки:
Update:
31/08/2010. Проверил работу на версии 10.04. Поправил команды управления Wi-Fi адаптером.
12/12/2010. С роутером ZiXEL NBG460N EE в режиме, когда на роутере включен протокол 802.11 n/b/g и сохранение энергии на карточке ноута, происходило нарушение работы выражающееся в задержках ping до 6 секунд.
Для восстановления работоспособности роутер переводится в режим 802.11 n/b скриптом 802.11.bgn (требуется expect).
23/07/2011. Переработал структуру скрипта. Обеспечил работу для Ubuntu 11.04 на Thinkpad x220 4290RW1.
10/12/2011. Протестировал на Ubuntu 11.10.

вторник, 1 декабря 2009 г.

Ubuntu Karmic. Устранение бага wifi power management.

Статья не актуальна. В ядре 2.6.32.7 (2.6.32-02063207-generic) устранено много багов. В том числе включена поддержка powersave для iwlagn (intel 5100). После установки нового ядра нужно проверить фунционпльность, как указано в конце статьи.

Ждал я пока исправят wifi драйвер в Ubuntu 9.10, ждал, но так и не дождался.

Не знаю как для других карт, но для intel Link 5100 на ядре 2.6.31-15-generic power management отключен. Это связано с нестабилностью реализации.

К слову, включение power management для wifi позволяет сэкономить до 4 Вт, что актуально для ноутбуков.

Я попробовал последнюю версию драйверов отсюда: http://linuxwireless.org/en/users/Download/stable/#Stable_compat-wireless_releases. Пока нареканий нет.


  • Версия драйверов должна соответствовать версии ядра.
  • Инструкция дана для ядра 2.6.32.2
Итак:

  1. Создадим каталог для выполнения операций
    $ mkdir ~/staff $ cd ~/staff
  2. Сначала, если необходимо, устанавливаем новое ядро.
    $ wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.2/linux-headers-2.6.32-02063202-generic_2.6.32-02063202_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.2/linux-headers-2.6.32-02063202_2.6.32-02063202_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.2/linux-image-2.6.32-02063202-generic_2.6.32-02063202_i386.deb $ sudo dpkg -i linux-headers-2.6.32-02063202_2.6.32-02063202_all.deb linux-headers-2.6.32-02063202-generic_2.6.32-02063202_i386.deb linux-image-2.6.32-02063202-generic_2.6.32-02063202_i386.deb
  3. Перегружаемся в то ядро, в которое будем ставить драйвер.
  4. Скачиваем драйвер
    $ cd ~/staff $ wget http://www.orbit-lab.org/kernel/compat-wireless-2.6-stable/v2.6.32/compat-wireless-2.6.32-rc7.tar.bz2 $ tar xjf compat-wireless-2.6.32.2.tar.bz2 $ cd compat-wireless-2.6.32.2
  5. Выбираем тип wifi карты
    Пакет, который мы скачали содержит около десятка драйверов. Нам столько не нужно.
    Для моего x200s - используется iwlwifi.
    $ ./scripts/driver-select iwlwifi
  6. Компилируем и устанавливаем драйвер:
    $ make $ sudo make install $ sudo shutdown -r now

После перезагрузки можно управлять потреблением карты с помощью следующей команды

$ sudo iwconfig wlan0 power on

Посмотреть текущие установки можно с помощью следующей команды:

$ iwconfig wlan0 wlan0 IEEE 802.11abgn ESSID:"AXA_home" Mode:Managed Frequency:2.422 GHz Access Point: 00:1E:8C:6C:91:99 Bit Rate=54 Mb/s Tx-Power=15 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:on Link Quality=57/70 Signal level=-53 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Если текст, выделенный жирным присутствует, то цель достигнута. Если нет - где то была допущена ошибка.
Все. Остальные баги Кармической Коалы меня не так сильно трогают.

Если нет подходящей темы, открывайте новую.

суббота, 14 ноября 2009 г.

В репозитории Ubuntu вышло новое стабильное ядро с номером v2.6.31.6.

Устанавливается как обычно.
$ wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.31.6/linux-headers-2.6.31-02063106_2.6.31-02063106_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.31.6/linux-headers-2.6.31-02063106-generic_2.6.31-02063106_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.31.6/linux-image-2.6.31-02063106-generic_2.6.31-02063106_i386.deb $ sudo dpkg -i linux-headers-2.6.31-02063106_2.6.31-02063106_all.deb linux-headers-2.6.31-02063106-generic_2.6.31-02063106_i386.deb linux-image-2.6.31-02063106-generic_2.6.31-02063106_i386.deb

Улучшены скорость загрузки и остановки, которые составляют сейчас 30 и 16 секунд (на моей машинке).

Из минусов перестает работать управление яркостью по горячим клавишам.

Если нет подходящей темы, открывайте новую.

понедельник, 9 ноября 2009 г.

Установил 9.10. Пока только вопросы.

В целом работоспособна.
Много чего поменялось.

Вроде как улучшены (или включены по умолчанию) механизмы ядра по сохранению энергии.

Из минусов:

Не разобрался пока с включением laptop mode.
Не работает из коробки power saving для карты intel 5100.
Система стала более тормознутой.
Общее впечатление скорее отрицательное.

Разбираться времени пока нет. Откачусь на 9.04

суббота, 10 октября 2009 г.

Уехал в египет на кайт-сафари.

Писать мне сейчас пока нечего. Я уехал в египет на кайт-сафари.

Надеюсь скоро помещу отчет на главную страницу.

четверг, 24 сентября 2009 г.

Brother MFC-7840W для дома

Оказалось, что ранее выбранный Samsung не продается пока.

Поэтому по наводке продавца из магазина был выбран Brother MFC-7840W.
Цена для этого аппарата оказалась вполне приемлима: 11000 рублей с доставкой.

После включения он нашел точку доступа и, запросив пароль, подключился к ней. Все драйверы и детальные инструкции для установки под Linux есть на сайте производителя. Все установилось достаточно просто и без бубнов. Но написано очень путано. Странно, что товарищи из Brother не сделали скрипт для установки. Видимо это заговор для распугивания пользователей Windows.


Как говориться, чтоб два раза не ходить выжимка команд установки для Ubuntu

Установка драйвера принтера

$ sudo -i # apt-get install -y apparmor-utils ia32-libs # aa-complain cupsd # mkdir /usr/share/cups/model # mkdir /var/spool/lpd # apt-get install sane-utils # cd /tmp # wget http://pub.brother.com/pub/com/bsc/linux/dlf/brmfc7840wlpr-2.0.2-1.i386.deb http://pub.brother.com/pub/com/bsc/linux/dlf/cupswrapperMFC7840W-2.0.2-1.i386.deb http://www.brother.com/pub/bsc/linux/dlf/BR7840_2_GPL.ppd.gz # gzip -d BR7840_2_GPL.ppd.gz # dpkg -i --force-all brmfc7840wlpr-2.0.2-1.i386.deb # dpkg -i --force-all cupswrapperMFC7840W-2.0.2-1.i386.deb # cp BR7840_2_GPL.ppd /usr/share/cups/model # chmod 644 /usr/share/cups/model/BR7840_2_GPL.ppd # chown root:root /usr/share/cups/model/BR7840_2_GPL.ppd # /etc/init.d/cups restart После чего в адресной строке браузера набрать http://localhost:631/printers/ и установить для принтера ip адрес.


Установка драйвера сканера

Ubuntu 32 bit.
$ sudo -i # wget http://pub.brother.com/pub/com/bsc/linux/dlf/brscan3-0.2.11-3.i386.deb # dpkg -i --force-all brscan3-0.2.11-3.i386.deb # brsaneconfig3 -a name=SCANNER model=MFC-7840W ip=192.168.1.70
Ubuntu 64 bit.
$ sudo -i # cd /tmp # wget http://pub.brother.com/pub/com/bsc/linux/dlf/brscan3-0.2.11-4.amd64.deb # dpkg -i --force-all brscan3-0.2.11-4.amd64.deb # wget http://pub.brother.com/pub/com/bsc/linux/dlf/brscan-skey-0.2.1-3.amd64.deb # dpkg -i brscan-skey-0.2.1-3.amd64.deb # ln -sf /usr/lib64/libbrscandec3.so* /usr/lib # ln -sf /usr/lib64/sane/libsane-brother3.so* /usr/lib/sane # brsaneconfig3 -a name=SCANNER model=MFC-7840W ip=192.168.1.70

Впечатления

Все функции работают как заявлено. Точнее, я проверил сетевую печать и сетевое сканирование. Чертовски удобно.

Что не понравилось.
Аппарат может сканировать на ftp, но сделано это по уродски. Вводить адрес ftp сервера, login и password с маленькой клавиатуры и в маленьком экранчике - настоящее извращение.
К счастью разработчики сделали пресеты, которые можно установить через встроенный в MFU web сервер.
С использованием пресетов сканирование на ftp производится за 3 нажатия на клавиатуре MFU.





Что очень плохо.
Я не нашел ни одной программы под Linux для распознавания русского текста. Какая то безнадёга.


На сайте Linux по-русски есть статья Системы оптического распознавания текста в Linux - обзор и сравнительное тестирование.
В общем, не все так плохо.

В целом я покупкой доволен.


Китайщина


Закончился у меня в очередной раз картридж.
Оригинальный, который я покупал ранее стоит около 2300 рублей.
Я решил поэксперементировать и купил китайщину за 700 рублей.
Напечатал листов тридцать уже. Качество хорошее.







Стоимость отпечатка в зависимости от цены на устройство и расходные материалы


Примечание. Параметр "ресурс устройства" мне найти не удалось. Я взял значение аналогичных устройств равное 200 000 копиям.
С другой стороны, за год я дома отпечатал около 3000 листов. Таким образом, в домашнем применении 200 000 листов я отпечатаю только через 70 лет. Поэтому еще на втором листе я расчитал стоимость отпечатка при 4-х летней эксплуатации устройства.

Полезные ссылки:


Upd 18/12/2011

вторник, 22 сентября 2009 г.

x200s. Powersave. Настройка точки доступа WiFi

(Продолжение. Начало статьи)

Если есть возможность изменить настройки точки доступа, то можно и здесь попытаться сэкономить немного электроэнергии увеличив Beacon Interval.

В Asus wl500gP это делается на вкладке Wireless -> Advanced


Для D-Link DSM-G600:



Это позволяет реже будить Wi-Fi карту ноутбука и уменьшить общее количество Wakeups

Если нет подходящей темы, открывайте новую.

понедельник, 21 сентября 2009 г.

x200s. Powersave. DeBug Gnome.

(Продолжение. Начало статьи)

Статья в процессе...

В Gnome присутствует программистская ошибка, связанная с неверным размещением временных данных. Разработчики почему то хранят их на жестком диске в домашнем каталоге пользователя, хотя естественней их хранить в /tmp.

Некоторые пользователи пытались обратить внимание разработчиков Gnome на эти проблемы, но не были услышаны:

Решить эту проблему можно переместив в /tmp эти файлы и сделав на них ссылку

$ ln -fs /tmp/profile-42T4647-56160-___75-discharging.csv /home/akhromov/.gnome2/gnome-power-manager/profile-42T4647-56160-___75-discharging.csv $ ln -fs /tmp/profile-42T4647-56160-___75-charging.csv /home/akhromov/.gnome2/gnome-power-manager/profile-42T4647-56160-___75-charging.csv $ ln -fs /tmp/saved_state /home/akhromov/.gconfd/saved_state

Или, переместить в /tmp полностью их родительские каталоги.

Если нет подходящей темы, открывайте новую.

четверг, 17 сентября 2009 г.

x200s. Powersave. Файловая система.

(Продолжение. Начало статьи)

За последние года 2 linux активно развивается. В нем появилось много новшевств. Не стали исключением новые файловые системы, предлагаемые разработчиками. Появилось несколько разновидностей журналируемых файловых систем.

Я поначалу устанавливал при инталляции Ubuntu на ext3. Но обсуждение на forum.ubuntu.ru заставило меня задуматься о целесообразности установки ext3.

Как работает ext3?
  1. Пользователь дает команду записи данных на диск
  2. Метаданные записываются в журнал и помечаются флагом "не завершено"
  3. Данные пользователя записываются на диск
  4. Метаданным выставляется флаг "выполнено"
Как неприятное следствие - вместо одного обращения к диску - целых три.

Какая область применения журналируемых файловых систем?
По моему мнению область применения журналируемых файловых систем при обработке критически важных данных. Это серверы баз данных, сетевые и коммункационные системы и т.п.

Но стоит ли гнаться за этими новшевствами?
За ext3:
    Якобы, более надежная, чем ext2
Против ext3:
  • Я использую ноутбук для web серфинга, ведения проектов, почтовой переписки и как хобби. Я не обрабатываю на нем данные стоимостью в миллионы долларов. Зачастую, мне важнее продолжительность работы, чем беспрецендентная надежность.
  • Обеспечивая более долгое время работы от батареи, мы всячески откладываем запись на диск, собирая в буфере памяти наши данные. В данном случае использование ext3 (и далее) представляется нелогичным.
  • В три раза увеличивая количество обращений к диску, ext3 увеличивает его время нахождения диска в состоянии active. Повышается потребляемая мощность.
Я считаю, что ext2 в настоящее время - лучший выбор для ноутбука.

Что делать?

Умный был Чернышевский. Правильные вопросы задавал.
  • При установке OS на ноутбук выбирать ext2
  • Если система уже установлена - конвертировать в ext2
    Для этого:
    1. Отредактировать fstab, заменив тип раздела, где установлена система и который будем конвертировать с ext3 на ext2
    2. загружаемся с LiveCD или с системы установленной на другой раздел и вводим следующие команды
      $ sudo tune2fs -O ^has_journal /dev/sdaX $ sudo fsck.ext2 -f /dev/sdaX
      , где Х - номер раздела, который будем конвертировать
    3. Перезагружаемся


Если нет подходящей темы, открывайте новую.

среда, 16 сентября 2009 г.

x200s. 2 бага после установки ядра 2.6.30

После установки нового ядра возникло 2 бага
  1. Яркость дисплея регулируется с очень мелким шагом
    Вроде как, причина здесь в установке параметров xrand BACKLIGHT_CONTROL.
    После загрузки он принимает значение combination

    Чтобы исправить это, нужно выполнить следующую команду:
    $ xrandr --output LVDS --set BACKLIGHT_CONTROL legacy
  2. При работе от батареи яркость дисплея уменьшается через 30 секунд
    Здесь причина - gnome-screensaver
    HOWTO: Replace gnome-screensaver with xscreensaver

понедельник, 14 сентября 2009 г.

Project for Linux

Удивительно, стоит только поискать и все найдется.

Вот обнаружил для linux OpenProj - очень близкий аналог MS Project. Похож на настоящий по внешнему виду, функциям идеологии и терминам. Мало того - он еще и совместим: может читать файлы .mpp, а сохранять в своем формате и в XML.

Веду в нем один небольшой проект. Серьезных глюков пока не заметил.

воскресенье, 13 сентября 2009 г.

Безопасность домашних сетей.

Мою домашнюю сеть пока еще никто не ломал, бог миловал.

Но я немного озадачился этой проблемой и поисследовал домашние сети, расположенные в моей подсети класса "C"

Я поставил себе задачу найти сетку, в которую я смогу войти и проверить на взломостойкость мою сеть.

Благо linux дает много инструментов для поиска и анализа сетевых устройств. Да в общем много мне не понадибилось. Оказалось достаточно старой-доброй nmap.

Сам процесс и механизм описывать не буду. Те, кто достиг "просветления", наверняка уже наигрались. А кто еще не знает - тому пока рано.

Результаты:
  • Оказалось около 5 % роутеров в сети имеют пароль по "умолчанию" или вовсе его не имеют.
    Почему? Мое мнение такое. Часть народа не знает, что такое "роутер" и для этого народа сеть настраивают нечистоплотные инсталляторы, которые на будущее оставляют для себя вход.

  • Очень много роутеров, которые позволяют себя сканировать.
    Как будет действовать обычный "искатель сокровищ"? Он просто просканирует сетку и составит список откликнувшихся устройств. Не давайте такой возможности. Кого не нашли, того не побьют.

Выводы:
  • Если ставите роутер - настройте. Не будьте беспечны.

  • Для маньяков.
    Если Вам есть что скрывать, но Вы используете transmission (осел - более безопасный) и, к тому же Вы закрыты одним только роутером - Вас наверняка взломают. Задачи и способы их решения везде одинаковы, что в Банке, что дома. Разный только ущерб.
    Но, принимая во внимание маниакальную борьбу нашего государства со своим народом, не исключаю возможности, что по заданию управления "К" будет создана система по поиску пиратских копий.
    Возможно, стоит задуматься о создании ДМЗ.


x200s. Powersave. Обновился BIOS.

(Продолжение. Начало статьи)

7 сентября обновился BIOS для x200 и x200s.

Я не следил за исменениями в BIOS, поэтому не знаю на каком этапе китайцы что поправили.

После установки нового BIOS произошли исправлена ошибка из-за которой SCSI1 не переводился в режим powersave.

Режим работы вентилятора опять с какими-то глюками. При включении он вроде как не крутится. При достижении процессором 45 градусов - заводится и больше не останавливается. Поэтому от tpfun отказываться рано.

Вентилятор включается при 45 градусах, останавливается при достижении порога выключения (температуру отключения я не зафиксировал).

На странице загрузки доступны версии для установки из Windows и с загрузочного диска.

Там же есть новая микропрограмма для жесткого диска. Что она исправляет - не ясно.

x200s. Powersave. Настроить режимы видеокарты.

(Продолжение. Начало статьи)

  • Установить частоту обновления экрана 50 Гц
    System -> Preference -> Display



  • Отключить Visual Effects
    System -> Preference -> Appearance -> Visual Effects



четверг, 10 сентября 2009 г.

x200s. Power Saving. Kernel 2.6.30.5

Указанное ядро в отношении сохранения энергии работает куда лучше предыдущих, опробованных мной. Налицо явный прогресс. Если раньше флуктуации возле нижней границы потребляемой мощности были значительны, то в этом ядре, после соответствующей настройки стабильно стоит 6,7 Вт в режиме idle (Wi-Fi, Brightness = 30%).
Вообще, заметно, что ментейнеры Canonical озадачились проблемой сохранения энергии.
По этому показателю Ubuntu начинает обгонять Windows.

x200s. HowTo

Как включить trackpoint scroll в Ubuntu 8.10,9.04 и 9.10

http://psung.blogspot.com/2008/09/scrolling-with-thinkpads-trackpoint-in.html

вторник, 8 сентября 2009 г.

Выбор МФУ для дома

Потрбовался домой МФУ.

Требования:
Поддержка Linux
Низкая стоимость отпечатка
Срок службы 3 года (потом будет выброшен)
Работа в сети желательна

Страница со списком совместимых:
  1. сканеров доступна по адресу http://www.sane-project.org/
  2. принтеров http://www.linuxfoundation.org/collaborate/workgroups/openprinting

Там много моделей устаревших и снятых с производства.

Поиск закончился быстро.

Я выбрал Samsung SCX-4500W.

Симпатичное МФУ, имеющее сеть Wi-Fi и фирменную поддержку Linux.
Цена тоже не пугает. 10-13 тыс. р.

четверг, 3 сентября 2009 г.

Кем перлюстрируется mail.ru?

Получаю вчера от Мой Мир@Mail.Ru вот такую шнягу. Я их и раньше получал и автоматом они в спам летели, но здесь вдруг глаз задержался.
> Здравствуйте, имярек!
> 
> В Моём Мире зарегистрированы миллионы людей, и среди них наверняка
> есть ваши друзья.
> Чтобы вам было легче найти друг друга, мы составили список людей,
> которые могут быть вам знакомы.
> Добавить человека к себе в друзья можно, нажав на ссылку «подружиться»
> под его фото.
> . . . . . . .

  Далее список из моих контактов, взятых из почтовой пересылки

  И в конце подпись
> С уважением,
> администрация проекта
> Мой Мир@Mail.Ru
> 
Этом меня очень разозлило. Эти товарищи предложили мне даже завести дружбу с моей женой. Я не мальчик и понимаю, что если есть централизованный сервис, то он на полную катушку используется органами власти, структурами подавления и принуждения, бандитами и шустрыми комерсантами. Но это выходит за рамки приличий. Какие-то козлы «Intrepid Ibex» могут иметь доступ к моей переписке. Написал я вот такое письмо в ООО "Мэйл.Ру".
Прошу Вас прояснить следующие вопросы, 

1. Кому, каким организациям передается информация о моей переписке?
2. Кто, какие организации имеют штатную техническую возможность 
доступа к моей почтовой переписке?
3. Является ли лицо "Мой Мир@Mail.Ru" сотрудником или подразделением 
ООО «Мэйл.Ру», или каким либо офелированным с ООО «Мэйл.Ру» 
физическим или юридическим лицом?

Если да, то:

1. Являются ли действия сотрудников правомерными?

Если нет, то:

1. Прошу выяснить и сообщить мне при каких обстоятельствах моя личная 
информация попала к третьим лицам.

2. Прошу принять меры по прекращению передачи моей личной информации 
третьим лицам?


С уважением,
Получил ответ от mail.ru:
1. Никому
2. Никто
3. Мой мир является нашим сервисом,привязанным к почтовым ящикам на 
мэйл ру и входит в группу проектов компании Мэйл ру.
Рассылку делают не сотрудники, а роботы - программы. Никто ничего 
не читает - роботы лишь пишут и рассылают письма.
Вот такая вот петрушка. Раз роботы что-то там не так делают - с них, мол, и спрашиваете. Решил веселиться дальше:
Здравствуйте, служба поддержки социальных проектов Mail.ru.
Спасибо за исчерпывающий ответ.
   . . . 
Я перефразирую вопрос в соответствии с Вашим ответом:
3. Являются ли действия роботов, запускаемых сотрудниками правомерными?
Всё. На этом переписка закончилась. На неудобные вопросы неохота отвечать. Хоть сообщение не по теме, но почему то меня сильно возбудило. Ставлю ему традиционный тег pizdec

суббота, 29 августа 2009 г.

Установка aMule на HDX-1000

Не смотря на то, что протокол Kademlia не пользуется высокой популярностью, клиентов в нем еще достаточно много. И, зачастую, в KAD сети можно разыскать то, что не всегда есть в торрентах.

HDX-1000, как и все совместимые клоны, может с успехом работать в сети KAD.

Справедливости ради нужно отметить, что процессор на HDX-1000 слабоватый. А демон amuled требует достаточно много ресурсов. И, если есть возможность, лучше поставить его на другую машину. Ну, а если нет...

Установка демона.


  1. Скачать архив http://www.uar.jazztel.es/aMule4PCH/amule_223-2.zip в любой каталог и распаковать.
    Вы увидите два файла: amulebin.tar и installer.cgi

  2. Скопировать amulebin.tar и installer.cgi на NMT в каталог /opt/sybhttpd/localhost.drives/HARD_DISK

  3. В терминале установить права на файл installer.cgi следующей командой и запустить его:
    #chmod 755 installer.cgi #installer.cgi


    После его выполнения должны установиться следующие файлы:

    /opt/sybhttpd/localhost.drives/HARD_DISK/.aMule/webserver/* <= webserver, файлы концигурации и т.п. /mnt/syb8634/bin/amuled <= демон amule /mnt/syb8634/bin/amulecmd <= amule external connection command line /mnt/syb8634/bin/amuleweb <= демон webserver


  4. Перегрузить HDX командой:
    #reboot



Установка GUI

Установить amule-adunanza-utils-gui Пароль для входа: 1234

Настройка

Для получения HighID необходимо осуществить переброску портов на роутере. На ASUS WL500gP Это можно сделать либо из web интерфейса, либо вставив в файл /tmp/local/sbin/post-firewall следующие команды:
## aMule on HDX-1000
iptables -D INPUT -j DROP -p ALL
iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
iptables -A INPUT -p udp --dport 4665 -j ACCEPT
iptables -A INPUT -p udp --dport 4672 -j ACCEPT
iptables -A INPUT -p ALL -j REJECT
Если во время работы amuled переходит в режим firewalled, значит ресурсов для работы демона не хватает. В этом случае может помочь остановка других демонов (transmission и т.п.) и уменьшение количества файлов поставленных на закачку. В общем работает, но хреново.

вторник, 25 августа 2009 г.

Powersaving. WattOS

Обнаружил проект, основанный на дистрибутиве Ubuntu: wattOS Light-Fast-Now. По моему шняга какая то. Люди взяли обычный ubuntu, с generic ядром, добавили в него свою программку и назвали новым проектом. Хотя может я ошибаюсь. Если кто пробовал - какие мнения? Стоит ли использовать?

суббота, 22 августа 2009 г.

x200s. Powersave. Final thoughts.

(Продолжение. Начало статьи)

В завершение всего этого безобразия - скрипт для показа в реальном времени основных системных параметров, влияющих на потребление энергии.

Он показывает практически все параметры, которые управляются с помощью сервиса laptop-mode и удобен для его настройки.




Не без недочетов, но функцию свою выполняет.

Запускается от root.
Исходник здесь


пятница, 21 августа 2009 г.

x200s. Powersave. xorg.conf

(Продолжение. Начало статьи)

Наилучшие результаты у меня получились про акселерации "по умолчанию".
Section "Monitor"
Identifier    "Configured Monitor"
Option        "DPMS"
EndSection

Section "Monitor"
Identifier    "HDMI-1"
Option        "Ignore" "True"
EndSection

Section "Monitor"
Identifier    "HDMI-2"
Option        "Ignore" "True"
EndSection

Section "Screen"
Identifier    "Default Screen"
Monitor       "Configured Monitor"
Device        "Configured Video Device"
DefaultDepth  24
SubSection    "Display"
Modes        "1280x800" "1024x768"
EndSubSection
EndSection

Section "Device"
Identifier    "Configured Video Device"
Driver        "intel"
#     Option        "AccelMethod" "uxa"   # При включении этой опции потреблени е возрастает на 1 Вт
Option        "monitor-HDMI-1" "HDMI-1"
Option        "monitor-HDMI-2" "HDMI-2"
EndSection

Section "ServerFlags"
Option        "DontZap" "no" # Включение x-server restart by Ctrl-Alt-Bs
EndSection


Включение опции "NoDRI" приводило к проблемам регулировки яркости.


понедельник, 17 августа 2009 г.

Corbina опять поменяла доступ к ip-tv

Вот собственно и вся новость. Веселые ребята. Придется опять менять HTML для HDX 1000. По традиции присваиваю этой новости тег pizdec

среда, 12 августа 2009 г.

x200s. HDD Spin down.

(Продолжение. Начало статьи)


Вреден ли для HDD режим spin down?

В ThinkPad x200s используется HDD Hitachi Travelstar 5K320 HTS543225L9SA00.

Этот диск обеспечивает не менее 600 000 нормальных циклов load/unloads.

В среднем ноутбук работает от батареи до 6 часов в сутки. Если считать, что диск останавливается/раскручивается 1 раз в минуту, значит его ресурса хватит не менее, чем на
600 000/(1*60*6*365) = 4,57 года.

Нечего париться по поводу ограниченного ресурса HDD. Ведь никто же не возмущается, что ресурс батареи всего 250 циклов заряд/разряд. А это вообще меньше года.


Нужно ли останавливать диск?

Вопрос запутан. Разработчики и сопровожденцы Gnome Power Manager утверждают, что не нужно. Якобы современные диски имеют такой хороший режим powersave, что и останавливать их смысла нет.

Вот данные взятые из той же спецификации на Hitachi Travelstar 5K320.

Watts (RMS Typical)
Performance Idle average1,7
Active Idle average0,8
Low Power Idle average0,55
Read average1,8
Write average1,8
Seek average2,2
Standby0,2
Sleep0,1
Startup (maximum peak)5,0
Average from power on toready3,8


На основании приведенных данных видно, что разница между Low Power Idle average и Standby составляет 0,35 Вт.

Простой расчет показывает, что перевод диска в режим Standby начинает давать экономию энергии на 12-й секунде, что наглядно показано на графике:


Кто раскручивает диск?

Чтобы проверить какие программы обращаются к диску легче всего запустить программу iotop,
которая в реальном времени это покажет. Или собрать статистику в файл и проанализировать, кто чаще образался к диску:
$ iotop -bod 30 > /tmp/iodisk.log
В таблицу сведены основные источники, вызывающие регулярные раскрутки HDD, и методы борьбы борьбы с ними.
Запись в logПо умолчанию система постоянно пишет в log файлы, которые находятся в каталоге /var/log.

Ubuntu 9.04: Я перенёс каталоги /tmp и /var/tmp в RAM и отключил логгирование в режиме работы от батареи с помощью настройки laptop-mode

Ubuntu 10.04 и выше: Для логирования в этой версии применена программа rsyslog. При работе от батарей я просто отключаю (в скрипте pm-utils) все логирование командой $ service rsyslog stop

wpa_supplicantUbuntu 9.04: wpa_supplicant раз в минуту записывает диагностику в /var/log/wpa_supplicant.log

Этот драйвер пока не настраивается через /etc/syslog.conf. Как перенаправить вывод описано здесь.


Ubuntu 10.04: В этой версии Ubuntu ничего с wpa_supplicant делать не нужно.


firefoxС точки зрения powersaving одна из самых злобных программ.

Наиболее эффективный метод - перенос User Profile в оперативную память.

gnome-power-managerНе знаю что уж, что там она менеджирует. По моему она просто показывает сколько осталось батарейки и выводит график заряда/разряда. (Шютка) За это она раз в минуту обращается к диску.

Что с ней делать пока не придумал. Может кто подскажет?

Vetal1950 предложил элегантное решение. Добавить в /etc/fstab команду монтирования:
tmpfs /var/lib/upower tmpfs defaults,noatime,nodiratime 0 0


После применения указанных мер, диск в моем ноутбуке, когда он находится в состоянии idle, просыпается примерно 1 раз за 3 минуты.



x200s/x220. Powersave. Firefox.

(Продолжение. Начало статьи)

Update:
  • После перехода на Ubuntu 9.04 и firefox 3.5 Shiretoko внесены исправления в скрипт: изменено имя программы с firefox на firefox-3.5.
  • Проверено на Ubuntu 10.04
Если в компьютере установлен SSD накопитель, то ничего этого делать не нужно

Firefox 3.x использует базу данных sqlite, которая генерирует очень много событий записи на диск.

Чтобы уменьшить обращения к диску, необходимо сделать следующее:

  1. Разместить firefox cache в оперативной памяти

    Для этого:
    1. Перенести в RAM директорию /tmp

    2. Перенести cache firefox в /tmp/firefox.
      В строке адреса пишем about:config
      Далее нажимем правуб кнопку мыши и добавляем строковую переменную:
      browser.cache.disk.parent_directory
      и присвоить ей значение:
      /tmp/firefox

  2. Размещаем весь профиль пользователя в RAM.

    Этот способ более радикальный, нежели предыдцщий, но и, соответственно, более сложный. Поэтому распечатайте эту инструкцию или скопируйте ее на диск и откройте в OO Writer.
    1. Перенести в RAM директорию /tmp

    2. Создать каталог для профиля пользователя в firefox
      $mkdir /tmp/firefox
    3. Создать новый профиль. Я назвал его RAM и разместил в каталоге /tmp/firefox
      $/usr/lib/firefox/firefox -ProfileManager

    4. Закрываем firefox.
    5. Скопировать текущий профиль в каталог /tmp/firefox
      $shopt -s dotglob $cp -a ~/.mozilla/firefox/40ev7h33.default/* /tmp/firefox
      Расположение текущего профиля указано в ~/.mozilla/firefox/profiles.ini
    6. Создаем скрипт /etc/init.d/ff-profile.sh:
      #! /bin/sh
      # This script copies the firefox user profile
      #  from the directory $DSK_PROFILE
      #  to the directory $RAM_PROFILE
      #  after the computer power up
      #  and back before power down
      # 
      #  v0.12 - minor changes for firefox control firefox cache
      #  v0.11 - minor changes for firefox 3.5 and Ubuntu 9.04
      #  v0.1 - initial in Ubuntu 8.04
      
      # define firefox name
      #FF=firefox-3.5
      FF=firefox
      
      # define how old cache in days
      OLDCACHE=2
      
      # where firefox profile
      RAM_PROFILE=/tmp/firefox
      DSK_PROFILE=/root/.mozilla/$FF/ram.profile
      
      FLG_DEBUG=1
      OUT_DEBUG=/var/log/ff-profile.tst
      
      shopt -s dotglob
      
      case "$1" in
        start)
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: ff-profile.sh started" >> $OUT_DEBUG
          fi
          if ! [ -d $RAM_PROFILE ] 
            then 
              mkdir -p $RAM_PROFILE
              chmod 777 $RAM_PROFILE
                if [ $FLG_DEBUG -eq 1 ]
                  then echo "$1: creating  $RAM_PROFILE" >> $OUT_DEBUG
                fi
          fi
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: copy $DSK_PROFILE/* $RAM_PROFILE " >> $OUT_DEBUG
          fi
          # remove old cache
          find $DSK_PROFILE/Cache* -mtime +$OLDCACHE -exec rm {} \;
      
          cp -a $DSK_PROFILE/* $RAM_PROFILE >> $OUT_DEBUG
          ;;
        stop)
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: ff-profile.sh stoped" >> $OUT_DEBUG
          fi
          if ! [ -d $DSK_PROFILE ] 
            then 
              mkdir -p $DSK_PROFILE
              chown 777 $DSK_PROFILE
              if [ $FLG_DEBUG -eq 1 ]
                then echo "$1: creating  $DSK_PROFILE" >> $OUT_DEBUG
              fi
          fi
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: copy $RAM_PROFILE/* $DSK_PROFILE " >> $OUT_DEBUG
          fi
          cp -a $RAM_PROFILE/* $DSK_PROFILE
          ;;
      esac
      
      shopt -u dotglob
      
      exit 0
    7. Назначаем ему права, пользователя, и делаем на него ссылку автозапуска и остановки
      cd /etc/init.d $sudo chmod 755 ff-profile.sh $sudo chown root:root ff-profile.sh $sudo update-rc.d ff-profile.sh defaults
    8. Открываем редактор меню (System->Preferences->Main Menu).
      Заменяем команду запуска firefox (Application->Internet->Firefox Web Browser->Properties) на /usr/lib/firefox/firefox -P RAM

      Перезагружаем компьютер. Проверяем работу.

  3. В Firefox в меню Правка -> Настройки -> Защита снять галку с пункта "Блокировать сайты, подозреваемые в имитации других сайтов"

  4. Динамические сайты с flash анимацией и java-script вносят большую долю в увеличение потребления энергии.

    Для блокировки на страницах java - установить в firefox adblock plus и заблокировать в нем показ соответствующих элементов http страниц.

    Для блокировки flash - установить Flashblock

    Это позволяет сэкономить до 1,5 Вт.

вторник, 11 августа 2009 г.

x200s. Управление вентилятором.

(Продолжение. Начало статьи)

Если установлена последняя версия BIOS 3.08 от 2009.09.07, то устанавливать tpfun нет необходимости.

Хотя я и писал, что не стоит трогать вентилятор, поскольку это жизненно важный элемент ноутбука, руки все равно чешутся.

Я установил ThinkPad Fan Control в соответствии с инструкцией указанной на домашней странице программы.

Создал файл конфигурации lenovo_74663tg:
# Fan profile for tpfand
# For Lenovo 7466-3TG
# created on  2009-08-10 21:28:17.152556
# by an http://axa-ru.blogspot.com
#
0. CPU = 0:0 47:2 63:3 71:5 75:255 
1. MiniPCI = 0:0 47:2 59:3 65:5 68:255
2. Sensor 2 = 0:0
3. GPU = 0:0 53:2 65:3 71:5 74:255
4. Bat0 = 0:0 43:2 52:3 57:5 60:255
5. Sensor 5 = 0:0 
6. Bat0 = 0:0 43:2 52:3 57:5 60:255
7. Sensor 7 = 0:0
8. Northbridge = 0:0 52:2 62:3 67:5 70:255
9. RAM? = 0:0 52:2 62:3 67:5 70:255

hysteresis = 2
interval_speed = 2
interval_duration = 500.000000
interval_delay = 5000.000000

и разместил его в каталоге /usr/share/tpfand/models/by-id.



Файл конфигурации зависит от модели ноута. У меня 7466-3TG
С большой вероятностью он подойдет для следующих моделей (собранных на той же системной плате):

7466- 3Tx, 3Ux
7469- 5Fx, 7Lx, 7Mx, 7Nx, 7Px, 7Rx, 7Sx, 7Tx, 7Ux, 7Vx, 7Xx
7470- 6Jx, 6Kx

Вот собственно и все. Экономия энергии от этого небольшая. По моим оценкам менее 0,1 Вт.

Для справки температурные режимы процессора:
Обычная температура в режиме Idle30-50°C
Рабочая, при полной утилизации процессора60-70°C
Максимальная температура100°C
Критическая температура 125°C



PS. TpFan собран для Ubuntu 9.04 и в Ubuntu 11.10 пакеты не устанавливаются.
Для экспериментаторов я переупаковал пакеты:

tpfan-admin_0.96-ubuntu1_all_patched.deb
tpfand_0.95-ubuntu1_all_patched.deb
tpfand-profiles_20090309-ubuntu1_all.deb

Если у кого появится желание попробовать, отпишитесь по результатам.

Updated 24/12/2011

четверг, 6 августа 2009 г.

x200s/x220. Увеличение времени работы от батарей.

Статья в процессе . . .
По мере обнаружения новых возможностей я буду редактировать эту статью.
В настоящее время весь материал проверен и дал положительные результаты.
Если есть вопросы, предложения, замечания - задавайте. Всегда рад обсудить.

Что у нас есть?
  • Lenovo ThinkPad x200s 74663TG. Проверено на Ubuntu 9.04, 9.10, 10.04, 10.10
  • Lenovo ThinkPad x220 4290RW1. Проверено на Ubuntu 11.04, 11.10

Видно, что разработчиками ядра была проведена работа по уменьшению потребления энергии. Мне удалось настроить систему так, что на Lenovo Thinkpad x200s с ядром 2.6.35-31-generic-pae при включенном wi-fi и запущеном firefox в idle минимальное потребление составляло 4.1 Вт. Типичное - около 5 Вт.


Для Lenovo Thinkpad x220 4290RW1 под Ubuntu 11.04 с ядром 2.6.38 показатели чуть скромнее: около 8,3 Вт. Типичный уровень потребления 9 Вт. Это лучше чем в Windows 7, где потребление составляет 10-11 Вт.
На скриншоте ниже показан powertop и snapshot Power Manager, сделанный из под Windows7.


Для той же Lenovo Thinkpad x220 4290RW1 под Ubuntu 11.10 с ядром 3.0.0.13: около 7 Вт. Типичный уровень потребления 9 Вт.



Для той же Lenovo Thinkpad x220 4290RW1 под Ubuntu 11.10 с кастомным ядром 3.1.5-pf.: около 6 Вт. Типичный уровень потребления 8 Вт.


Игра Emilia Pinball дает потребляемую мощность около 21 Вт. Я думаю, столько же даст Quake.

Теория и исследования


Что делать?

  1. Обновить BIOS
  2. Отключить в BIOS неиспользуемые устройства

  3. Установить новое ядро
  4. Настроить x server (xorg.conf)
  5. Настроить режимы видеокарты
  6. Перенести временные файлы в RAM
  7. Отключить запись логов
  8. Для SSD минимизировать запись на диск.
  9. Настроить laptop_mode (Ubuntu 9.04) или pm-utils (≥ 9.10).
  10. Включить управление скоростью вентилятора.
  11. Настроить работу программ
  12. Отключить некритичные сервисы.
  13. Если возможно, настроить точку доступа.



Полезные ссылки:


Upd 04/11/2011

понедельник, 3 августа 2009 г.

ThinkPad x200s. Настройка laptop-mode

(Продолжение. Начало статьи)

Laptop-mode - очень гибкая утилита, позволяющая управлять многими параметрами оборудования и системы.
В основном используются механизмы и команды описанные здесь.

По умолчанию laptop-mode установлена в ubuntu, но так как было замечено, что на ThinkPad иногда приводила к зависанию компьютера, она выключена и большинство управляющих констант установлено в "false" или "0".

Но на моем x200s все работает без проблем (с некоторыми моими доработками).

Почти все управляющие и командные файлы laptop-mode являются текстовыми. В них дано подробное описание по каждой команде и константе.

Я просто укажу файл, константу и значение, которое я ей присвоил.

Те константы и файлы, которые остались без изменения, я опущу.

  1. Включить laptop-mode
    • /etc/default/acpi-support
      ENABLE_LAPTOP_MODE=true


  2. Настроить файлы конфигурации

    1. /etc/laptop-mode/conf.d/ac97-powersave.conf
      CONTROL_AC97_POWER=1

    2. /etc/laptop-mode/conf.d/configuration-file-control.conf
      CONTROL_CONFIG_FILES=1

      Включение этого параметра позволяет держать 3 конфигурационных файла syslog.conf, управляющих логами, для разных режимов.
      Я закоментировал весь логинг (/etc/syslog.conf-batt) для режима работы от батареи.

    3. /etc/laptop-mode/conf.d/cpufreq.conf
      CONTROL_CPU_FREQUENCY=1
      BATT_CPU_MAXFREQ=slowest
      BATT_CPU_MINFREQ=slowest
      BATT_CPU_GOVERNOR=powersave
      CONTROL_CPU_THROTTLING=1
      BATT_CPU_THROTTLING=medium
      LM_AC_CPU_THROTTLING=minimum

    4. /etc/laptop-mode/conf.d/ethernet.conf
      Этот модуль работал странно. При смене питания батарея/сеть не переключалась скорость интерфейса.
      Я его переписал и устранил эту ошибку.
      Заодно ввел 3 константы, определяющие скорость в разных режимах.
      CONTROL_ETHERNET=1
      DISABLE_WAKEUP_ON_LAN=1
      BATT_THROTTLE_ETHERNET=1
      LM_AC_THROTTLE_ETHERNET=1
      NOLM_AC_THROTTLE_ETHERNET=1
      BATT_SPEED_ETHERNET=100
      LM_AC_SPEED_ETHERNET=1000
      NOLM_AC_SPEED_ETHERNET=1000
      ETHERNET_DEVICES="eth0"

      Файл /usr/share/laptop-mode-tools/modules/ethernet изменить в соответствии с приведенным ниже (сделать copy/past).
      #! /bin/sh
      # 
      # Laptop mode tools module: Ethernet power saving tweaks.
      #
      
      if [ x$CONTROL_ETHERNET = x1 ] ; then
        for DEVICE in $ETHERNET_DEVICES ; do
      
          # Wakeup-on-LAN handling
          if [ x$DISABLE_WAKEUP_ON_LAN = x1 ] ; then
            if ethtool -s $DEVICE wol d >> $OUTPUT 2>&1 ; then
              $LM_VERBOSE && echo "Disabled wakeup-on-LAN for $DEVICE" >> $OUTPUT
            else
              $LM_VERBOSE && echo "Could not disable wakeup-on-LAN for $DEVICE" >> $OUTPUT
            fi
          fi
      
          if [ $ON_AC -eq 1 ]; then
          # working on AC
            if [ $LM_AC_THROTTLE_ETHERNET -eq 1 ] ; then
              if ethtool -s $DEVICE speed $LM_AC_SPEED_ETHERNET >> $OUTPUT 2>&1 ; then
                $LM_VERBOSE && echo "Setting LAN speed = $LM_AC_SPEED_ETHERNET for $DEVICE" >> $OUTPUT
              else
                $LM_VERBOSE && echo "Could not chanche speed"
              fi
            fi
            if [ $NOLM_AC_THROTTLE_ETHERNET -eq 1 ] ; then
              if ethtool -s $DEVICE speed $NOLM_AC_SPEED_ETHERNET >> $OUTPUT 2>&1 ; then
                $LM_VERBOSE && echo "Setting LAN speed = $NOLM_AC_SPEED_ETHERNET for $DEVICE" >> $OUTPUT
              else
                $LM_VERBOSE && echo "Could not chanche speed"
              fi 
            fi
          else
          # working on Battery
            if [ $BATT_THROTTLE_ETHERNET -eq 1 ] ; then
              if ethtool -s $DEVICE speed $BATT_SPEED_ETHERNET >> $OUTPUT 2>&1 ; then
                $LM_VERBOSE && echo "Setting LAN speed = $BATT_SPEED_ETHERNET for $DEVICE" >> $OUTPUT
              else
                $LM_VERBOSE && echo "Could not chanche speed"
              fi
            fi
          fi
        done
      else
        $LM_VERBOSE && echo "Ethernet module is disabled." >> $OUTPUT
      fi

    5. /etc/laptop-mode/conf.d/hal-polling.conf
      CONTROL_HAL_POLLING=1

    6. /etc/laptop-mode/conf.d/intel-hda-powersave.conf
      CONTROL_INTEL_HDA_POWER=1

      Значение, которое передается контроллеру Intel HDA указано в скрипте /usr/share/laptop-mode-tools/modules/intel-hda-powersave в строке:
      . . .
      echo 5 > /sys/module/snd_hda_intel/parameters/power_save
      . . .
      

      Я заменил значение 5 на 10.

    7. /etc/laptop-mode/conf.d/intel-sata-powermgmt
      CONTROL_INTEL_SATA_POWER=1

    8. /etc/laptop-mode/conf.d/lcd-brightness.conf
      CONTROL_BRIGHTNESS=1
      BATT_BRIGHTNESS_COMMAND="echo 30"
      LM_AC_BRIGHTNESS_COMMAND="echo 80"
      NOLM_AC_BRIGHTNESS_COMMAND="echo 80"
      BRIGHTNESS_OUTPUT="/proc/acpi/video/VID/LCD0/brightness"

    9. /etc/laptop-mode/conf.d/sched-mc-power-savings.conf
      CONTROL_SCHED_MC_POWER_SAVINGS=1

    10. /etc/laptop-mode/conf.d/start-stop-programs.conf
      CONTROL_START_STOP=1
      BATT_STOP="on-ac.sh"
      BATT_START="on-battery.sh"

      В этом конфигурационном файле указываются имена скриптов запускающихся при переходe в режим работы от батареи
      #!/bin/bash
      
      # ********************************************
      # * on-battery.sh
      # ********************************************
      
      echo "for check running on-battery.sh" >> /tmp/lt-m-check.out
      
      # ********  Tuning VM
      echo 0 > /proc/sys/vm/swappiness   #    Disable SWAP
      echo 30000 > /proc/sys/vm/dirty_writeback_centisecs
      echo 0 > /proc/sys/vm/dirty_expire_centisecs
      echo 1 > /proc/sys/vm/dirty_background_ratio
      echo 95 > /proc/sys/vm/dirty_ratio
      
      #   Agressive PCI
      echo powersave > /sys/module/pcie_aspm/parameters/policy
      
      #   Set timeout to idle 20 sec, 
      #     acoustic management HDD to more silent, less performance
      hdparm -q -S4 -M 128 /dev/sda
      
      # disable HDMI
      xrandr --output HDMI-1 --off
      xrandr --output HDMI-2 --off
      
      # Stop cron, anacron
      /etc/init.d/cron stop >> /dev/null
      /etc/init.d/anacron stop >> /dev/null
      

      и от сетевого источника питания источника питания.
      # ********************************************
      # * /etc/laptop-mode/batt-stop/on-ac.sh
      # ********************************************
      
      echo "for check running on-ac.sh" >> /tmp/lt-m-check.out
      
      #   Tuning VM. Вернуть значения по умолчанию
      echo 60 > /proc/sys/vm/swappiness
      echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
      echo 60000 > /proc/sys/vm/dirty_expire_centisecs
      echo 1 > /proc/sys/vm/dirty_background_ratio
      echo 60 > /proc/sys/vm/dirty_ratio
      
      # set acoustic management HDD: more performance
      hdparm -q -M 254 /dev/sda
      
      # Start cron, anacron
      /etc/init.d/cron start >> /dev/null
      /etc/init.d/anacron start >> /dev/null

      Эти файлы нужно сохранить в каталогах
      /etc/laptop-mode/batt-start/
      и
      /etc/laptop-mode/batt-stop/
      соотвественно и сделать исполняемыми:
      $sudo chmod 755 /etc/laptop-mode/batt-start/on-battery.sh $sudo chmod 755 /etc/laptop-mode/batt-stop/on-ac.sh

    11. /etc/laptop-mode/conf.d/usb-autosuspend.conf
      CONTROL_USB_AUTOSUSPEND=1

    12. /etc/laptop-mode/conf.d/wireless-iwl-power.conf
      CONTROL_IWL_POWER=1
      IWL_AC_POWER=1
      IWL_BATT_POWER=5



После изменении параметров всех, или части параметров конфигурационных файлов необязательно перезагружать компьютер. Достаточно выполнить команду перезапуска службы laptop-mode
#service laptop-mode restart




Обсуждение лучше вести здесь: