Функциониране на Power бутона в GNU/Linux
17 November, 2008 – 20:51:19 от Кирил Владимиров - NetCutterОт известно време се зачудих как мога да направя, когато натисна Power бутона на щайгата ми, при работеща GNU/Linux машина, тя да започне да се изключва. Не говоря изключване от тупор, както ще стане, ако е механичен ключ(еех…и такива имаше…страшни беха
).
Става въпрос за изключване, сякаш сте задали Изключване на системата, Shut down или просто сте написали halt в конзолката. Наложи ми се тази мярка заради баща ми, който някак си страшно много се привърза към Reset бутона. Не знам защо, ама Fluxbox-а не му допада
След запитване във форума на Gentoo.bg получих подобаващ отговор от lame и го публикувам. За постигане на целта е нужна комплирана ACPI подръжка в Linux ядрото. Лесна проверка дали това е така(ако не сте комплирали вие ядрото си) става така:
cat /usr/src/linux/.config | grep CONFIG_ACPI
Търсим следните редове:
CONFIG_ACPI=y
CONFIG_ACPI_BUTTON=m
Ако те са налице, то имате комплирана ACPI подръжка и всичко е наред
Сега е време да укажем button модулът да се зарежда при всяко стартиране на машината. Изпълнете еднократно следния ред с root(sudo) права:
echo button >> /etc/modules.autoload.d/kernel-`uname -r | cut -f 1-2 -d .`
Лично аз го нямам този ред, защото се зарежда по подразбиране модулът. Но може при по-стари версии на ядрото(под 2.6.27) това да не става, за това по-добре го укажете. Сега е време да инсталираме и acpid пакетът. Има го в хранилищата на всяко дистро. Указваме на acpid да се стартира с включването на машината. (Под Gentoo става с rc-update add acpid default, нека някой под друго дистро да каже как става идеята под други дистра).
Последната стъпка е да редактираме файла /etc/acpi/events/default като поставим някъде из файла следните редове:
event=button[ /]power.*
action=/sbin/init 0
Еми това е
Рестартирайте машинката и сте готови



3 Коментара за “Функциониране на Power бутона в GNU/Linux”
Аз пък нямам нито бастър копче (power), нито рестарт
От Краси за Nov 17, 2008
“echo button >> /etc/modules.autoload.d/kernel-`uname -r | cut -f 1-2 -d .`
Лично аз го нямам този ред, защото се зарежда по подразбиране модулът. Но може при по-стари версии на ядрото(под 2.6.27) това да не става, за това по-добре го укажете.”
Малка корекция тук. Автоматичното зареждане на модули, които не са добавени в този файл, зависи не от версията на кернела, а от определена опция в него – CONFIG_KMOD.
”
Normally when you have selected some parts of the kernel to
be created as kernel modules, you must load them (using the
“modprobe” command) before you can use them. If you say Y
here, some parts of the kernel will be able to load modules
automatically: when a part of the kernel needs a module, it
runs modprobe with the appropriate arguments, thereby
loading the module if it is available.
“
От lame за Nov 19, 2008
Приемам критиката
Беше просто предположение.
От Кирил Владимиров - NetCutter за Nov 19, 2008