*ERROR* Hangcheck timer elapsed… GPU hung

С очередным обновлением системы, а конкретно — ядра, пришла беда. При закрытии крышки ноутбука, система зависает наглухо и оживать никак не хочет. Ошибка в syslog’е:

hp kernel: [ 162.576036] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed… GPU hung
kernel: [ 162.576049] render error detected, EIR: 0x00000000
hp kernel: [ 162.576087] [drm:i915_do_wait_request] *ERROR* i915_do_wait_request returns -5 (awaiting 18308 at 18307)
hp kdm[2251]: X server for display :0 terminated unexpectedly

Ошибка эта нашлась в ядре в файле drivers/gpu/drm/i915/i915_irc.c, но чтобы с этим разобраться, надо много знаний по ядру и много времени, а ни того, ни другого у меня нет, поэтому пошёл в гугл. Гугление особых решений не дало. Кто-то предлагал обновить libdrm и xserver-xorg-core из unstable и experimental. Я сделал обновление из unstable, но ошибка как была, так и осталась.

Тогда я скачал и собрал ядро 2.6.34. В нём данная проблема устранена и всё работает отлично 😉 Как собрать ядро из исходников, я уже описывал ранее в записи «Компиляция ядра — это просто».

Back in business

После непродолжительного отпуска я снова в деле. Продолжаем экспериментировать с Debian Linux, тем более что работы за это время было проделано очень много. Stay tuned 🙂

Компилируем и запускаем skipfish

Google выпустил инструмент для тестирования защищённости веб-приложений. Посмотрим на этого зверя поближе. 🙂

Скачать исходники можно по адресу http://code.google.com/p/skipfish/

После распаковки архива, установим необходимые для компиляции пакеты:

alexey@hp:~/projects/skipfish$ sudo apt-get install libssl-dev libidn11 libidn11-dev

И, собственно, запустим компиляцию:

alexey@hp:~/projects/skipfish$ make
cc skipfish.c -o skipfish -Wall -funsigned-char -g -ggdb -D_FORTIFY_SOURCE=0 -O3 -Wno-format http_client.c database.c crawler.c analysis.c report.c -lcrypto -lssl -lidn -lz

NOTE: See dictionaries/README-FIRST to pick a dictionary for the tool.

Прежде чем запустить сканер, нужно скопировать необходимый для работы словарь из папки dictionaries в папку со сканером и назвать его skipfish.wl:

alexey@hp:~/projects/skipfish$ cp dictionaries/default.wl skipfish.wl

От выбранного словаря будет зависеть скорость работы и тщательность тестирования. Я решил не усердствовать для первого раза и скопировал дефолтный словарь, хотя там есть минимальный и полный.

Также неплохо создать папку, в которую будут складываться результаты работы сканера:

alexey@hp:~/projects/skipfish$ mkdir results

Теперь можно запустить сканер:

alexey@hp:~/projects/skipfish$ ./skipfish -o results http://www.mysite.com

и дождаться завершения его работы. Результат будет в виде html файлов.

Вообще сканер довольно гибкий, поддерживает cookie, http авторизацию и прочее. Более подробную информацию можно найти на вышеуказанном сайте проекта или же спросить у меня в комментариях. Постараюсь ответить на вопросы в силу своих знаний.