VlaoMao |
|
Темы:
15
Сообщения:
306
Участник с: 23 января 2011
|
Здравствуйте. У меня проблема уже давно, пока пользуюсь костылями, но хотелось бы спросить, может тут есть знатоки, которые помогут мне исправить всё это. Дело вот в чём. Начиная с ядра версии 2.6.37 при загрузке ноутбука eMachines E725, не включается подсветка дисплея. Она включается только если нажать комбинацию клавиш Fn+стрелки(у меня так уровень яркости регулируется). Пока проблему обошёл, добавив в /etc/rc.local строку setpci -s 00:02.0 F4.B=0. Однако посветка загорается довольно поздно, уже перед самым окном логина, и я не вижу весь процесс загрузки, да и после гибернации, ждущего режима она не зажигается самостоятельно. Если кто в курсе, как можно поправить, напишите пожалуйста. lspci | grep Display 00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 09) dmesg | grep Intel agpgart-intel 0000:00:00.0: Intel GM45 Chipset |
corner |
|
Темы:
6
Сообщения:
773
Участник с: 21 июля 2011
|
Попробуйте в /boot/grub/menu.lst в опцию загрузки ядра добавить acpi_osi=Linux Пример kernel /vmlinuz-linux root=/dev/sda3 ro acpi_osi=Linux |
VlaoMao |
|
Темы:
15
Сообщения:
306
Участник с: 23 января 2011
|
cornerУже добавлено. |
corner |
|
Темы:
6
Сообщения:
773
Участник с: 21 июля 2011
|
А это ? acpi_backlight=vendor Если не поможет, что говорят kernel.log, errors.log, everything.log ? |
void |
|
Темы:
32
Сообщения:
375
Участник с: 15 февраля 2010
|
вместо rc.local, комманду можно прописать в rc.sysinit… |
VlaoMao |
|
Темы:
15
Сообщения:
306
Участник с: 23 января 2011
|
cornerНе помогает. Если не поможет, что говорят kernel.log, errors.log, everything.log ?С acpi_backlight=vendor или без? вместо rc.local, комманду можно прописать в rc.sysinit…Ну это тоже костыль, и тем более после команды setpci -s 00:02.0 F4.B=0 подсветка включается на максимум и перестаёт реагировать на попытки регулирования таким образом. |
corner |
|
Темы:
6
Сообщения:
773
Участник с: 21 июля 2011
|
Посмотрел - везде висит в багах. Единственно, у кого-то на kerhel lts вроде работало. А так, наверное, надо ждать исправления. Хотя его уже не производят, судя по сайту, и производитель позиционируется по Windows… |
VlaoMao |
|
Темы:
15
Сообщения:
306
Участник с: 23 января 2011
|
Я так понимаю проблема в модуле i915. Его можно пересобрать без пересборки всего ядра, и как? Я где-то видел патчи для него. |
VlaoMao |
|
Темы:
15
Сообщения:
306
Участник с: 23 января 2011
|
При загрузке ноутбука подсветка исправлена:diff -r -w -p i915_dma.c /usr/src/linux-3.0-ARCH/drivers/gpu/drm/i915/i915_dma.c *** i915_dma.c 2011-08-30 00:56:30.000000000 +0400 --- /usr/src/linux-3.0-ARCH/drivers/gpu/drm/i915/i915_dma.c 2011-09-01 09:29:17.051459833 +0400 *************** int i915_driver_load(struct drm_device * *** 1893,1898 **** --- 1893,1899 ---- struct drm_i915_private *dev_priv; int ret = 0, mmio_bar; uint32_t agp_size; + u32 max; /* i915 has 4 more counters */ dev->counters += 4; *************** int i915_driver_load(struct drm_device * *** 2068,2073 **** --- 2069,2081 ---- spin_unlock(&mchdev_lock); ips_ping_for_i915_load(); + /* force backlight brightness + * this is useful if the BIOS can't control the backlight + */ + if (i915_force_backlight > 0 && i915_force_backlight <= 100) { + max = intel_panel_get_max_backlight(dev); + intel_panel_set_backlight(dev, i915_force_backlight * max / 100); + } return 0; diff -r -w -p i915_drv.c /usr/src/linux-3.0-ARCH/drivers/gpu/drm/i915/i915_drv.c *** i915_drv.c 2011-08-30 00:56:30.000000000 +0400 --- /usr/src/linux-3.0-ARCH/drivers/gpu/drm/i915/i915_drv.c 2011-09-01 09:29:59.821228130 +0400 *************** module_param_named(lvds_downclock, i915_ *** 64,69 **** --- 64,72 ---- unsigned int i915_panel_use_ssc = 1; module_param_named(lvds_use_ssc, i915_panel_use_ssc, int, 0600); + unsigned int i915_force_backlight = 0; + module_param_named(force_backlight, i915_force_backlight, int, 0600); + int i915_vbt_sdvo_panel_type = -1; module_param_named(vbt_sdvo_panel_type, i915_vbt_sdvo_panel_type, int, 0600); diff -r -w -p i915_drv.h /usr/src/linux-3.0-ARCH/drivers/gpu/drm/i915/i915_drv.h *** i915_drv.h 2011-08-30 00:56:30.000000000 +0400 --- /usr/src/linux-3.0-ARCH/drivers/gpu/drm/i915/i915_drv.h 2011-09-01 09:31:00.230900861 +0400 *************** extern unsigned int i915_powersave; *** 992,997 **** --- 992,998 ---- extern unsigned int i915_semaphores; extern unsigned int i915_lvds_downclock; extern unsigned int i915_panel_use_ssc; + extern unsigned int i915_force_backlight; extern int i915_vbt_sdvo_panel_type; extern unsigned int i915_enable_rc6; extern unsigned int i915_enable_fbc; А вот после ухода ноутбука в гибернацию / ждущий режим и после смены разрешения экрана подсветка не восстанавливается. Пробдему ещё можно было бы решить, если модуль i915 можно было бы свободно выгружать и загружать заново. Но ему походу мешает Xorg и KMS. |
void |
|
Темы:
32
Сообщения:
375
Участник с: 15 февраля 2010
|
нашел вот для ThinkPad'ов: acpi_sleep=s3_bios — makes the system call the video BIOS to reenable video on resume from suspend-to-ram (use this if you experience a blank display after resume while your system seems elsewise awake) может поможет? UPD Или прописать парамметр в /etc/sysctl.conf и в /etc/pm/ на событие “возврат из сна” обновлять его через sysctl |