Вобщем, вот слепил из говна и палок: https://gitorious.org/acpi_call-freebsd/... Запускать не пробовал, только компилил. Можно только вызывать конкретный метод (сделав соответствующие правки в acpi_call_util.c), результат взад не возвращается.
Если тебе хватит вызова без параметров — просто в acpi_call_util.c вписываешь полный путь к нему вместо "full path to method here", компилишь, запускаешь.
Ох сурово. А если мне нужно несколько методов подряд вызвать (переключить дефолтную видеокарту И следом вырубить неиспользуемую)? Как я понимаю, метод вызывается при загрузке модуля?
если несколько — перезаполняешь структуру и ещё раз вызываешь ioctl. модуль просто предоставляет интерфейс для выполнения произвольных методов ACPI через ioctl, сами методы вызываются при запуске утилиты, которая эти ioctl вызывает
>{CC} ${UTIL_SRCS} -I /sys -o acpi_call А я то думаю, зачем симлинк... >params.path = "full path to method here"; Как можно вызвать ВОООТ такую вот херню
Олсо, когда трахал, так и не нашел, как через отладчик прочесть значение того или иного свойства (то, что видео вырубилось, можно будет посомтреть через расход батареи, но это хак) Ну ты мужик.
Как я понял, по адресу метода _SB.PCI0.P0P4.GFX0._DSM надо закатать буфер 0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0, 0x100 0x1A 0x1,0x0,0x0,0x3
The 1215N is similar to the m11x r2 in that it requires a special method (_DSM) being called with buffer arguments before the _PS3 method will turn the power off. I also found that the _PS0 method turns the power back on. After turning off the power, the power state appears to be set in the _PSC object: 0x0 when on, and 0x3 when off. Except this isn't accurate after the system has been put in standby — the power is on (according to the battery rate) but the_PSC is still 0x3. I have to use the script to turn the power off again after coming out of standby.
аргументы, думаю, там ни разу не для лулзов, а для того чтобы оно хоть как-то работало. Нет, не заработал. Оба варианта которые я нагуглил выглядят ужасными костылями.
Неговно делает cmake обрабатывать *.erl так же как и остальные языки (add_executable, все дела), а говно делает это только костылями типа ERL_BUILD, ERL_APPLICATION
nirn@unknown:~$ sudo update-grub Generating grub.cfg ... Found linux image: /boot/vmlinuz-2.6.38-11-generic Found initrd image: /boot/initrd.img-2.6.38-11-generic Found linux image: /boot/vmlinuz-2.6.38-8-generic Found initrd image: /boot/initrd.img-2.6.38-8-generic Found memtest86+ image: /boot/memtest86+.bin Found unknown Linux distribution on /dev/sda2
> Found unknown Linux distribution on /dev/sda2 Нда, придется повозиться.
а довай ты напишешь поддержку ырланка в cmake ?
можно и написать, в принципе. Надо только обратно достать и раскурить доки по ACPI
Мимими!
ты хуц! я теперь вместо ленивого почитывания pdf'ника о блейдах сижу по уши в гов^Wисходниках ядра и acpica user guide
УРА!
Ты мне скажи подо что пишешь, я качать буду. Десятка?
Вобщем, вот слепил из говна и палок: https://gitorious.org/acpi_call-freebsd/...
Запускать не пробовал, только компилил. Можно только вызывать конкретный метод (сделав соответствующие правки в acpi_call_util.c), результат взад не возвращается.
и ещё: естественно, для сборки нужны сорсы ядра (и симлинк /sys → /usr/src/sys), модуль собирается по make, утилита для вызова метода — make util
Я завтра вечером с сырцами поставлю систему.
>make util
Э... скажи как метод вызвать?
Если тебе хватит вызова без параметров — просто в acpi_call_util.c вписываешь полный путь к нему вместо "full path to method here", компилишь, запускаешь.
Ох сурово. А если мне нужно несколько методов подряд вызвать (переключить дефолтную видеокарту И следом вырубить неиспользуемую)?
Как я понимаю, метод вызывается при загрузке модуля?
если несколько — перезаполняешь структуру и ещё раз вызываешь ioctl.
модуль просто предоставляет интерфейс для выполнения произвольных методов ACPI через ioctl, сами методы вызываются при запуске утилиты, которая эти ioctl вызывает
>{CC} ${UTIL_SRCS} -I /sys -o acpi_call
А я то думаю, зачем симлинк...
>params.path = "full path to method here";
Как можно вызвать ВОООТ такую вот херню
case "$1" in
off)
echo _DSM $(acpi_call "\_SB.PCI0.P0P4.GFX0._DSM" \
"{0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47," \
"0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0}" \
"0x100 0x1A {0x1,0x0,0x0,0x3}")
# ok to turn off: Buffer {0x59 0x0 0x0 0x11}
# is already off: Buffer {0x41 0x0 0x0 0x11}
echo _PS3 $(acpi_call "\_SB.PCI0.P0P4.GFX0._PS3")
;;
on)
echo _PS0 $(acpi_call "\_SB.PCI0.P0P4.GFX0._PS0")
;;
*)
echo "Usage: $0 [on|off]"
esac
Олсо, когда трахал, так и не нашел, как через отладчик прочесть значение того или иного свойства (то, что видео вырубилось, можно будет посомтреть через расход батареи, но это хак)
Ну ты мужик.
Как я понял, по адресу метода _SB.PCI0.P0P4.GFX0._DSM надо закатать буфер
0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0, 0x100 0x1A 0x1,0x0,0x0,0x3
И потом вызвать еще два метода. Полный сырец тут — https://github.com/peberlein/acpi_call/b...
The 1215N is similar to the m11x r2 in that it requires a special method (_DSM) being called with buffer arguments before the _PS3 method will turn the power off. I also found that the _PS0 method turns the power back on. After turning off the power, the power state appears to be set in the _PSC object: 0x0 when on, and 0x3 when off. Except this isn't accurate after the system has been put in standby — the power is on (according to the battery rate) but the_PSC is still 0x3. I have to use the script to turn the power off again after coming out of standby.
Ага, значит, в сорец вписываем sleep и еще раз копипастим структуру?
как-то вооооот так: http://paste.pocoo.org/show/487164/
А зачем
args[1].Type = ACPI_TYPE_INTEGER;
args[1].Integer.Value = 0x100;
args[2].Type = ACPI_TYPE_INTEGER;
args[2].Integer.Value = 0x1A;
потому что там всего 4 аргумента передают. буфер, два целых числа и ещё один буфер
Как я понимаю, это просто just for lulz сделано.
>а довай ты напишешь поддержку ырланка в cmake
Што, cmake-erlang заработал? :)
аргументы, думаю, там ни разу не для лулзов, а для того чтобы оно хоть как-то работало.
Нет, не заработал. Оба варианта которые я нагуглил выглядят ужасными костылями.
Та же был cmake-erlang, не?
вот с конкретно таким названием я ничего не видел
Я ж тебе в комменты кидал.
не видел. erlcmake — говно какое-то, я его уже смотрел, та хрень на гитхабе — это биндинг для с/c++
и как в данном случае отличить говно от неговна?
Неговно делает cmake обрабатывать *.erl так же как и остальные языки (add_executable, все дела), а говно делает это только костылями типа ERL_BUILD, ERL_APPLICATION
Я тебя не понял, тебе шашечки или ехать?
Мне чтоб было хорошо, и чтоб ездило ровно.
пщ-пщ, ну чо, проверил?
в процессе. фрю установил, щас ее нужно зойгрузить и смонтировать tmp в память > #oooieo
бля, нашёл о чём беспокоится — о темах оформления в загрузчике
nirn@unknown:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.38-11-generic
Found initrd image: /boot/initrd.img-2.6.38-11-generic
Found linux image: /boot/vmlinuz-2.6.38-8-generic
Found initrd image: /boot/initrd.img-2.6.38-8-generic
Found memtest86+ image: /boot/memtest86+.bin
Found unknown Linux distribution on /dev/sda2
> Found unknown Linux distribution on /dev/sda2
Нда, придется повозиться.
Что-то мне подсказывает, что меня в ближайшем будущем ждут такие же трабблы :)
если выберусь то нет
Откуда?
Вот у меня докачивается правильный образ фряхи для закатывания на флешку. Через 5 минут пойду ставить :)
из линуксорабства. Если метод недавно сработает. У меня такой батхарт, какого еще не бывало. И мантрейнера отпидорашу.
Ы?
Я даже боюсь думать о том, что у тебя там случилось.