Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Ostatnio bawię się trochę z LFS 7.4 i w związku z tym stanąłem przed zadaniem samodzielnego skompilowania jądra Linuksa. Mam problem z właściwą konfiguracją acpi - wykrywanie wciśnięcia przycisków. Mój sprzęt to Toshiba 650C-15J.
Poniżej zamieszczam wyniki polecenia acpi_listen:
Jak to wygląda w Debianie.
Wersja stabilna:
button/sleep SBTN 00000080 00000000 K video/switchmode VMOD 00000080 00000000 video/brightnessdown BRTDN 00000087 00000000 video/brightnessup BRTUP 00000086 00000000 button/volumedown VOLDN 00000080 00000000 K button/volumeup VOLUP 00000080 00000000 K
Regulacja podświetlania w powłoce działa.
Kernel z backportów:
button/screenlock SCRNLCK 00000080 00000000 K button/battery BAT 00000080 00000000 K button/sleep SBTN 00000080 00000000 K button/suspend SUSP 00000080 00000000 K video/switchmode VMOD 00000080 00000000 K video/brightnessdown BRTDN 00000087 00000000 K video/brightnessup BRTUP 00000086 00000000 K button/wlan WLAN 00000080 00000000 K button/volumedown VOLDN 00000080 00000000 K button/volumeup VOLUP 00000080 00000000 K
Regulacja podświetlania w powłoce nie działa.
Teraz moje próby.
Kernel 3.10.31 [url=http://wklej.org/id/1286404/]plik config[/url]
video 0VGA 00000080 00000000 video DD03 00000087 00000000 video DD03 00000086 00000000
Regulacja podświetlenia działa
Kernel 3.10.32 [url=http://wklej.org/id/1286405/]zmiany w stosunku do poprzedniego pliku config[/url]
I acpi_listen nie wykrywa wciśnięcia przycisków (puste wyjście), jak się można spodziewać regulacja podświetlenia nie działa.
Moje pytanie, na co w tym wypadku zwrócić uwagę przy konfiguracji kernela? Bo ja prawdę mówiąc to już się pogubiłem co od czego zależy.
Offline
Rzuć okiem na ten wątek (cały):
http://forum.dug.net.pl/viewtopic.php?id=20515
Chyba powinien pomóc.
Offline
[quote=Jacekalex]Rzuć okiem na ten wątek (cały):
http://forum.dug.net.pl/viewtopic.php?id=20515
Chyba powinien pomóc.[/quote]
Pobieżnie przejrzałem. Nie do końca chyba dotyczy mego problemu...
W każdym bądź razie, ściągnąłem źródła kernela 3.12.13, bazując na jądrze z backportów (i jego configu) dokonałem drobnych zmian - wyrzuciłem niezaładowane moduły, kilka zostało wkompilowanych na stałe. Obecnie acpi_listen pokazuje coś podobnego do kernela z backportów na Wheezy.
Podświetlenie w konsoli po załadowaniu systemu nie działa. Działa natomiast po załadowaniu sterownika karty graficznej, a przed tworzeniem listy urządzeń w /dev (LFS 7.4 ma trochę inny porządek startu niż Debian), potem przestaje.
Z testów na jądrze z backportów w Debianie, regulacja podświetlenia działa po zalogowaniu w XFCE (w Openboksie, Trinity i powłoce już nie). Natomiast na jądrze z wersji stabilnej (3.2) działa wszędzie.
Ja już nie mam pomysłów, jakieś sugestie? Ewentualnie gdzie można doczytać o tym acpi?
W sumie bardziej mi zależy żeby się czegoś dowiedzieć, niż żeby mi to zaczęło działać ;)
Dopisek. Podświetlenie w sensie "regulacja jasności podświetlenia".
Ostatnio edytowany przez pioki (2014-03-05 07:22:09)
Offline
Sprawdź który sterownik za to u Ciebie odpowiada:
[ 2.461668] thinkpad_acpi: detected a 8-level brightness capable ThinkPad [ 2.827720] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver [ 2.827721] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default... [ 3.602399] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
Z testów na jądrze z backportów w Debianie, regulacja podświetlenia działa po zalogowaniu w XFCE (w Openboksie, Trinity i powłoce już nie). Natomiast na jądrze z wersji stabilnej (3.2) działa wszędzie.[/quote]
Domyślam się, że w pierwszym przypadku działa sterownik producenta, w drugim standardowy sterownik acpi.
Pobaw się wpisem w Grubie [tt]acpi_backlight=[/tt]
Offline
Wygląda na to, że miałeś rację. Sprawcą zamieszania wydaje się być moduł "toshiba_acpi". Po dodaniu go do czarnej listy (samo wyładowanie nie pomaga) na nowszym kernelu acpi_listen pokazuje podobne zdarzenia do wersji stabilnej (gdzie mimo, że jest załadowany wydaje się nie działać) i regulacja podświetlenia działa. Co prawda po tej czynności tracę dostęp do zdarzeń SCRNLCK, BAT, SUSP, VMOD, WLAN.... Nie wiem na ile poprawne jest to rozwiązanie.
Jeśli chodzi o parametr acpi_backlight to jak wyczytałem może przyjmować dwie wartości: vendor bądź video. W moim przypadku nie przyniosło to pozytywnych rezultatów: pierwszy parametr powodował "całkowite" wyłączenie możliwości regulacji podświetlenia, drugi nic nie zmieniał.
Pozdrawiam.
Offline
Pokaż co tam tym steruje:
ls /sys/class/backlight/
Wrzuć gdzieś cały [tt]dmesg[/tt]
Jaka masz kartę graficzną?
Sprawdź jeszcze taki parametr:
video.use_native_backlight=1
Ostatnio edytowany przez yossarian (2014-03-05 21:33:14)
Offline
Karta graficzna to intel 4500m, sterownik i915.
Wynik polecenia `ls /sys/class/backlight` to dla jądra 3.2 (z Debiana stabilnego): acpi_video0 intel_backlight toshiba, dla jądra z backportów tylko dwa pierwsze.
Dmesg: [url=http://wklej.org/id/1291134/]3.2 Wheezy[/url], [url=http://wklej.org/id/1291130/]3.12 backporty[/url], [url=http://wklej.org/id/1291132/]3.12.13 LFS 7.4 i915 wbudowany na stałe[/url].
Ten parametr nic nie robi, albo ja coś robię źle.
Offline
Sprawdź jeszcze czy da się to kontrolować za pomocą pliku [tt]brightness[/tt] w katalogach acpi_video0 lub intel_backlight (to przy używaniu standardowego sterownika acpi).
Ja nie zadziała to trzeba będzie pokombinować z tym modułem toshiba_acpi i ustawieniu acpi_backlight=vendor. Widać, że brakuje tam katalogu /sys/class/backlight/toshiba.
Wywal z Gruba wpisy acpi_osi=xxx To rzadko działa, a może powodować problemy.
[Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored[/quote]
Offline
Użytkownik root przy pomocy komendy `echo 4 > /sys/class/backlight/acpi_video0/brightness` może kontrolować wartość podświetlenia (z zakresu 0-7).
Jeśli chodzi o acpi_osi to nie mam takich wpisów w grubie, chyba że dodają się jakoś automagicznie...
Zastanawia mnie to działanie zmiany podświetlenia po zalogowaniu w xfce: przed załadowaniem modułu toshiba_acpi naciśnięcie przycisku zmienia poziom o 2 jednostki, po załadowaniu o 1). I czemu po jego załadowaniu w acpi_listen pojawia się na końcu znak "K" (jak w logach w pierwszym poście).
Offline
[quote=pioki]Użytkownik root przy pomocy komendy `echo 4 > /sys/class/backlight/acpi_video0/brightness` może kontrolować wartość podświetlenia (z zakresu 0-7).[/quote]
Sprawdź czy masz jakieś specjalne ustawienia dla Toshiby w /etc/acpi.
W sumie możesz sobie sam je dorobić wg tego przykładu:
https://github.com/codingtony/acer-brightness-linux-acpi
Zastanawia mnie to działanie zmiany podświetlenia po zalogowaniu w xfce: przed załadowaniem modułu toshiba_acpi naciśnięcie przycisku zmienia poziom o 2 jednostki, po załadowaniu o 1). I czemu po jego załadowaniu w acpi_listen pojawia się na końcu znak "K" (jak w logach w pierwszym poście).[/quote]
Skoro zarządzają tym dwa różne narzędzia, to zachowanie też jest różne.
[url=https://wiki.archlinux.org/index.php/backlight#ACPI]Tu[/url] piszą, że parametr [tt]video.use_native_backlight=1[/tt] działa od 3.13.
W ogóle pokombinuj z różnymi wersjami kernela bo wygląda na jakiś problem z tym modułem toshiba_acpi. Może na innych/nowszych wersjach jądra działa to lepiej.
Tam na wiki masz trochę więcej informacji o tym.Ostatnio edytowany przez yossarian (2014-03-07 16:40:37)
Offline
Na razie przerobiłem trochę podane przez Ciebie skryty i tak:
c650_jasniej
event=video/brightnessup BRTUP 00000086 00000000 K action=/etc/acpi/c650-jasniej.sh
c650_ciemniej
event=video/brightnessdown BRTDN 00000087 00000000 K action=/etc/acpi/c650-ciemniej.sh
i analogiczne skrypty:
c650-jasniej.sh
#!/bin/bash max=$(cat /sys/class/backlight/acpi_video0/max_brightness) poziom=$(cat /sys/class/backlight/acpi_video0/actual_brightness) if [ $poziom -lt $max ]; then poziom=$((poziom+1)) else poziom=$max fi echo $poziom > /sys/class/backlight/acpi_video0/brightness
c650-ciemniej.sh
#!/bin/bash poziom=$(cat /sys/class/backlight/acpi_video0/actual_brightness) if [ $poziom -gt 0 ]; then poziom=$((poziom-1)) else poziom=0 fi echo $poziom > /sys/class/backlight/acpi_video0/brightness
I wydaje się działać - no tym razem z wyjątkiem xfce gdzie zachowuje się odrobinę nieprzewidywalnie.
Jeśli chodzi o konfigurację Debiana, to obawiam się, że jest ona dla mnie zbyt mądra...
To może nie do końca wina modułu toshiba_acpi, co serii C650 - od początku były z nią problemy. Przykładowo "normalne" modele toshiby obsługują moduły acpi: toshiba i toshiba_acpi - u mnie załadowanie modułu toshiba powoduje błąd (niezgodność biosu czy coś takiego). W sumie dziwię się, że ten drugi jakoś działa ;)
Na razie testowałem 3.2, 3.10 i 3.12.
No nic, będę się musiał w to jeszcze trochę wgryźć.
Dzięki za pomoc.
Offline
Time (s) | Query |
---|---|
0.00007 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00063 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.222.20.250' WHERE u.id=1 |
0.00059 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.222.20.250', 1733247839) |
0.00046 | SELECT * FROM punbb_online WHERE logged<1733247539 |
0.00061 | DELETE FROM punbb_online WHERE ident='13.58.200.78' |
0.00059 | DELETE FROM punbb_online WHERE ident='18.188.59.124' |
0.00067 | DELETE FROM punbb_online WHERE ident='3.142.200.102' |
0.00088 | DELETE FROM punbb_online WHERE ident='3.144.249.63' |
0.00075 | DELETE FROM punbb_online WHERE ident='3.145.33.62' |
0.00066 | DELETE FROM punbb_online WHERE ident='52.14.100.101' |
0.00070 | DELETE FROM punbb_online WHERE ident='57.141.0.2' |
0.00061 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=25360 AND t.moved_to IS NULL |
0.00012 | SELECT search_for, replace_with FROM punbb_censoring |
0.00253 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=25360 ORDER BY p.id LIMIT 0,25 |
0.00089 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=25360 |
Total query time: 0.01081 s |