zed.0xff.me
текущие проблемы с линуксом на ноуте
i915 KMS включает 16-битный видеорежим. за счет этого только градиенты некрасивые, но фильмы и фотографии показываются без заметных глазу искажений.
fixed with kernel 2.6.30- довольно часто после просыпания сбрасывается KDE-шная сессия. приходится логиниться заново.
- чуть реже, опять же после просыпания, ноут не реагирует на клавиатуру, и как будто залипает ALT. лечится нажатием 32 раза на любую клавишу :)))
- иногда “залипает” клавиатура, и последняя нажатая клавиша повторяется раз 50 и более.. особенно неприятно когда переключаешься на первый virtual desktop, где живет firefox, и получаешь 50 нажатий f1 в firefox-e – т.е. 50 вкладок с попыткой открытия сайта его помощи :-\
но эта проблема проявляется и на десктопе тоже, но реже, потому что он быстрее. грешу на xorg.
PS: ноут ibm x40
ibm x40 и китайская батарейка :: часть 2 - solution
часть 1 – описание проблемы и скрипт-логгер
результат
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# grep STARTUP /var/log/battery.log -B1 | grep -v - -- Thu Jul 2 16:25:01 YEKST 2009 :: 14365 mW 15620 mWh 14266 mV ============== STARTUP ============= Thu Jul 2 23:15:01 YEKST 2009 :: 12227 mW 34750 mWh 14893 mV ============== STARTUP ============= Fri Jul 3 06:25:01 YEKST 2009 :: 13117 mW 19380 mWh 14227 mV ============== STARTUP ============= Fri Jul 3 21:15:01 YEKST 2009 :: 13208 mW 23190 mWh 13933 mV ============== STARTUP ============= Mon Jul 6 09:15:01 YEKST 2009 :: 18701 mW 32780 mWh 14168 mV ============== STARTUP ============= Mon Jul 6 20:40:01 YEKST 2009 :: 18523 mW 34460 mWh 13462 mV ============== STARTUP ============= Tue Jul 7 07:25:01 YEKST 2009 :: 17194 mW 39810 mWh 14187 mV ============== STARTUP ============= Wed Jul 8 11:20:01 YEKST 2009 :: 13261 mW 55910 mWh 15657 mV ============== STARTUP ============= Fri Jul 10 11:20:01 YEKST 2009 :: 13829 mW 19030 mWh 14481 mV ============== STARTUP ============= Sun Jul 12 21:45:01 YEKST 2009 :: 13559 mW 21810 mWh 13600 mV ============== STARTUP ============= Thu Jul 16 00:15:01 YEKST 2009 :: 12913 mW 23040 mWh 14364 mV ============== STARTUP ============= Tue Jul 21 07:15:01 YEKST 2009 :: 15477 mW 14800 mWh 14344 mV ============== STARTUP ============= Sat Jul 25 17:45:01 YEKST 2009 :: 6650 mW 17680 mWh 14090 mV ============== STARTUP ============= Fri Aug 7 23:05:01 YEKST 2009 :: 14131 mW 13170 mWh 13854 mV ============== STARTUP ============= |
получаем список минимальных напряжений батареи,
при которых ноут может самопроизвольно выключиться
в течение следующих 5 минут:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# grep STARTUP /var/log/battery.log -B1|grep mV | awk '{print $12}' | sort -n 13462 13600 13854 13933 14090 14168 14187 14227 14266 14344 14364 14481 14547 14893 15657 |
выделяем отсюда два некоторых средних значения,
соответствующие уровням “осталось мало заряда” и “осталось КРИТИЧЕСКИ мало заряда” :)
и забиваем их в скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/sh grep -wq discharging /proc/acpi/battery/BAT0/state if [ $? = 0 ]; then # discharging echo -n "`date` :: " >> /var/log/battery.log grep -oE "[0-9]+ .*" /proc/acpi/battery/BAT0/state | xargs >> /var/log/battery.log VOLTAGE=`cat /proc/acpi/battery/BAT0/state | grep -o "[0-9]* mV" | awk '{print $1}'` if [ $VOLTAGE -lt 14600 ]; then echo "0 blink" > /proc/acpi/ibm/led if [ $VOLTAGE -lt 14400 ]; then echo "1 blink" > /proc/acpi/ibm/led fi else echo "0 off" > /proc/acpi/ibm/led fi else # charging / charged echo "0 on" > /proc/acpi/ibm/led true fi |
в данном случае скрипт будет:
а) моргать зеленым светодиодом “питание от сети” (led 0) при низком уровне заряда
б) моргать зеленым и оранжевым (led 1) диодами при критическом уровне
а дальше – либо втыкаем блок питания и контроллер перехватывает управление диодами, либо заряд совсем кончается и питание аварийно отключается.
ibm x40 и китайская батарейка
Есть у меня довольно старенький ноут ibm x40. Бывает и старее, конечно :). Купил я его в 2005 году, проц там Pentium-M 1.4GHz, памяти добил до 1.5G, винт всего на 40 гигов.
Какое-то время назад родная батарейка (на 1.1Ah кажется) совсем устала, и ее стало хватать максимум минут на 15. И заказал я на ебэе неродную китайскую батарейку аж на 4400mAh !! :)
Батарейка вскоре пришла, ожидания мои оправдались на 100% – ее хватало на часа на 4 точно, а при желании можно было и до шести растянуть :)
Но! Но так как батарейку делали не суровые IBM-щики, а полуподпольные noname-китайцы – то есть в ней некоторый неприятный глюк – ноут практически никогда не успевает отследить момент когда заряд заканчивается – напряжение падает – и ноут, даже не пискнув, отключается.. я пробовал ставить warning-и на 25% и на 30% (в КДЕ-шных настройках питания) – всё равно момент не ловится..
И вот собрал на коленке следующий скрипт для отслеживания уровня батарейки:
1 2 3 4 5 6 7 8 9 10 |
#!/bin/sh grep -wq discharging /proc/acpi/battery/BAT0/state if [ $? = 0 ]; then # discharging echo -n "`date` :: " >> /var/log/battery.log grep -oE "[0-9]+ .*" /proc/acpi/battery/BAT0/state | xargs >> /var/log/battery.log else # charging / charged true fi |
скрипт запускаем кроном каждые 5 минут.
в /etc/conf.d/local.start (скрипт, исполняемый в gentoo при стартапе) добавляем следующее:
1 |
echo "============== STARTUP =============" >> /var/log/battery.log |
в /etc/conf.d/local.stop (скрипт, исполняемый в gentoo при шатдауне) добавляем следующее:
1 |
echo "============== SHUTDOWN ============" >> /var/log/battery.log |
таким образом, в логе видим остаток батареи, а так же маркеры [не]преднамеренного шатдауна системы. например, когда батарейка дропнула своё напряжение – то в логе будет только строчка STARTUP, т.к. шатдаун был аварийным.
лог выглядит вот так:
1 2 3 4 |
Wed Jul 1 20:40:01 YEKST 2009 :: 12115 mW 66880 mWh 16461 mV Wed Jul 1 20:45:01 YEKST 2009 :: 11701 mW 65970 mWh 16389 mV Wed Jul 1 20:50:01 YEKST 2009 :: 12177 mW 65070 mWh 16324 mV Wed Jul 1 20:55:01 YEKST 2009 :: 11675 mW 64200 mWh 16284 mV |
продолжение следует..