metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-07-18 10:55 pm

"Но почемууу?"

Дано: ноутбук с линупсом

включить кулер
echo "on" > /proc/acpi/fan/FAN/state

выключить кулер
echo "3" > /proc/acpi/fan/FAN/state

Как бы очень полезная фича, но вот то, что включается строкой "on" а выключается строкой(числом) "3" - это какие-то очень хитрые жаббы в головах у разработчиков.

PS: Да они же упоротые все.
включение так же происходит, если:
echo "0" > /proc/acpi/fan/FAN/state
echo "o" > /proc/acpi/fan/FAN/state

и еще по другим значениям. Искать закономерность и лезть в исходники драйверов acpi за истиной влом :)

[personal profile] alll 2009-07-18 08:11 pm (UTC)(link)
Вполне возможно, что включается-выключается он каким-нибудь битиком в пришедшем байтике. ;)

[identity profile] vp.livejournal.com 2009-07-18 08:17 pm (UTC)(link)
А как тогда объяснить "он" ? :)

Вообще тема опаснейшая. Щас прибегут адепты и обвинят во вселенском непонимании тщета всего сущего и т.п. :)

[identity profile] 184467440737095.livejournal.com 2009-07-18 08:20 pm (UTC)(link)
специальный военный boolean.

[personal profile] alll 2009-07-18 08:20 pm (UTC)(link)
"on", он ведь тоже состоит из байтиков ;)
а адептов бояться - на лоре не троллить ;)

[identity profile] metaclass.livejournal.com 2009-07-18 08:24 pm (UTC)(link)
Таки у меня самого есть секретные военные boolean в программах, с третим значением. Но и у них базовый тип для хранения обычно для всех трех значений одинаковый - строка "", "Yes" или "No" или там числа 0,1,2. Но не так чтобы "Пусто" "1" "False" :)

[identity profile] gds.livejournal.com 2009-07-18 08:24 pm (UTC)(link)
а куда и что надо под виндой echo, чтобы включить кулер?

[identity profile] metaclass.livejournal.com 2009-07-18 08:27 pm (UTC)(link)
И таки да, очень на то похоже.

[identity profile] metaclass.livejournal.com 2009-07-18 08:29 pm (UTC)(link)
echo "крабе"> C:\WINDOWS\СёкоАсахара\РональдМакДональд\АТС\Змеи\Жабы\Черви\cooler.txt :)

[identity profile] dmzlj.livejournal.com 2009-07-19 03:54 am (UTC)(link)
там поди гуйня какая-то есть, что бы кулерами рулить. вот еще писать всякую муть в какие-то файлы.

[identity profile] metaclass.livejournal.com 2009-07-19 06:25 am (UTC)(link)
Не, не, гуйню мы не приемлем, я даже иксы на этом ноуте не запускаю, из ненависти к графическому оформлению и шрифтам.

[identity profile] dmzlj.livejournal.com 2009-07-19 06:43 am (UTC)(link)
Ну можно поставить какой-нить расово верный xmonad или awesome с растровыми шрифтами. И Чувствовать себя настоящим доктором зло.

[identity profile] themech.livejournal.com 2009-07-19 08:24 am (UTC)(link)
вы не поняли
в линуксе все делается для человека и во имя человека, насколько бы упоротым этот человек не был
поэтому он умеет понимать команды от людей разной степени адекватности, вероисповедания и сексуальной ориентации

[identity profile] vp.livejournal.com 2009-07-19 09:12 am (UTC)(link)
нет.
В линуксе просто приняли более расово верную парадигму именования всех устройств, драйверо и т.п, когда это действительно можно управлять потоковым выводом. В винде такое можно сделать только дописывая подобный функционал руками.

[identity profile] metaclass.livejournal.com 2009-07-19 10:36 am (UTC)(link)
В данном случае это не совсем так, скорее там действительно какие-то последовательности бит влияют.
Но даже если так - это очень плохой подход, за такое при разработке софта вырывают руки и бьют мордой лица об баг-трекер. Если элемента входа программы может быть "число", "строка с числом", "если число меньше нуля, то это дата", "если первая буква a, то это набор битовых флагов" - это источник страшных необъяснимых глюков на пустом месте. В крайнем случае это допустимо в интерфейсе пользователя, но не на уровне бизнес-логики ни в коем случае.

[identity profile] metaclass.livejournal.com 2009-07-19 10:38 am (UTC)(link)
Речь не о парадигме, а о том, что реализация этой штуки сделана бредово, т.к. понимает в качестве команд "вкл/выкл" символы и строки без явно ощущаемой закономерности.

[identity profile] metaclass.livejournal.com 2009-07-19 10:39 am (UTC)(link)
т.е. y/n было бы понятно, 0/1 тоже, on/off тоже понятно, но не так как сейчас :)

[identity profile] vp.livejournal.com 2009-07-19 11:01 am (UTC)(link)
А ты не поленись посмотри в исходники :)
Мне страх как интересен тот WTF кусок кода, который проверяет что шлют в дрова со стандартного ввода :)
Там небось будет еще если ты пошлеш туда HRENN, то он тебе вентилятором польку-бабочку начнет играть, попискивая :)

[identity profile] a-lourier.livejournal.com 2009-07-19 06:21 pm (UTC)(link)
Эти цифирки никакого отношения к линуксу не имеют. Это ACPI Power States, которые просто один к одному транслируются в устройство и соответствуют D0 .. D3. Как устройство понимает эти состояния - одному ему ведомо. Для кулеров обычно 0 - это автоматический режим, а D1 - D3 - это три уровня скорости (большая, низкая и выключен). Говорю обычно, потому что это не специфицировано. on и любая другая строка после atoi просто транслируется в 0, поэтому и включает кулер.

[identity profile] bigfrogg.livejournal.com 2009-07-20 05:26 am (UTC)(link)
http://www.novell.com/documentation/suse91/suselinux-adminguide/html/ch09s03.html

/proc/acpi/fan/FAN/state
Shows if the fan is currently active. The fan can be activated and deactivated manually by writing 0 (on) or 3 (off) into this file.

[identity profile] merrcy.livejournal.com 2009-07-20 08:36 am (UTC)(link)
Судя по всему, он ещё и 1 и 2 может понимать, включая ещё парочку режимов. Так что тут не всё так просто.