[SOLVED, ЁПТА!] (wine) Не запускается ни одно приложение, использующее 3D-графику
Всем доброго времени суток. Не смотря, что на предыдущие темы никто не отвечал, я снова отпишусь здесь, авось помогут.
Проблема в сабже. Из видимого лишь:
wine: Unhandled page fault on read access to 0xffffffff at address 0x7d528598 (thread 003d), starting debugger...
Дело в том, что дебаггер wine вызывается всегда, как только я пытаюсь запустить какое-либо приложение, которое рисует 3D-графику. Единственную закономерность, которую я заметил, это:
wine: Unhandled page fault on read access to 0xffffffff - этот адрес не меняется.
Можно сделать вывод, что это не проблема wine, а где-то это закопано в моей системе.
Что посоветутете? Пробовал менять версию wine, mesa, nvidia-drivers, USE-flags, пробовал даже переходить на nouveau - безрезультатно. Что интересно: нативные приложения (к примеру, эмуляторы pcsx2, dolphin-emu) работают без проблем, как и gnome-shell, kwin и прочие красивости.
Сразу информация о системе:
make.conf:
# optimization flags for GCC compiler CFLAGS="-march=core2 -O2 -pipe \ -msse -msse2 -msse3 -mssse3 -msse4.1 \ -ftree-vectorize \ --param l2-cache-size=3072 \ --param l1-cache-size=32 \ -g0 \ -fomit-frame-pointer \ -mfpmath=sse,387" #-fpermissive требуется для сборки smartcam CXXFLAGS="${CFLAGS}" CHOST="i686-pc-linux-gnu" INPUT_DEVICES="keyboard evdev mouse" USE="mmx sse sse2 sse3 ssse3 \ X -cups raster \ gnome gtk gtk3 -kde -qt4 -declarative -webkit -sql -c++0x \ cleartype freetype truetype type1 \ -bindist \ bluetooth \ alsa gsm pulseaudio \ fbcondecor" VIDEO_CARDS="nvidia" PKGDIR="/usr/local/portage/bin32" LINGUAS="ru en" ACCEPT_KEYWORDS="~x86" MAKEOPTS="-j3" ACCEPT_LICENSE="*" FEATURES="ccache parallel-fetch candy buildpkg" CCACHE_SIZE="5G" CCACHE_DIR="/ccache" EMERGE_DEFAULT_OPTS="--quiet-build=n" EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --with-bdeps=y" #source /var/lib/layman/make.conf PORTDIR_OVERLAY="/usr/local/portage" # DELTA: FETCHCOMMAND="/usr/bin/getdelta.sh \"\${URI}\" -O \"${DISTDIR}/\${FILE}\""
Оговорюсь сразу: на флаг -mfpmath=sse,387, возможно, не стоит обращать большого внимания, ибо совсем недавно wine работал с учетом того, что вся система собрана с флагом генерации sse-инструкций для операцией с плавающей точкой. Ради эксперимента пробовал даже полностью пересобрать систему без этого флага - прошло очень много времени, но это не дало результата.
emerge --info:
Portage 2.2.0_alpha100 (default/linux/x86/10.0/desktop/gnome, gcc-4.6.2, glibc-2.14.1-r2, 3.3.1-gentoo i686) ================================================================= System uname: Timestamp of tree: Sun, 08 Apr 2012 00:45:01 +0000 ccache version 3.1.7 [enabled] app-shells/bash: 4.2_p24 dev-lang/python: 2.7.2-r3, 3.2.2-r1 dev-util/ccache: 3.1.7 dev-util/cmake: 2.8.7-r5 dev-util/pkgconfig: 0.26 sys-apps/baselayout: 2.1 sys-apps/openrc: 0.9.9.3 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.11.4 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.5.3-r1, 4.6.2 sys-devel/gcc-config: 1.6 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 3.3 (virtual/os-headers) sys-libs/glibc: 2.14.1-r2 Repositories: gentoo local Installed sets: ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="*" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mssse3 -msse4.1 -ftree-vectorize --param l2-cache-size=3072 --param l1-cache-size=32 -g0 -fomit-frame-pointer -mfpmath=sse,387" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mssse3 -msse4.1 -ftree-vectorize --param l2-cache-size=3072 --param l1-cache-size=32 -g0 -fomit-frame-pointer -mfpmath=sse,387" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--quiet-build=n --with-bdeps=y" FEATURES="assume-digests binpkg-logs buildpkg candy ccache distlocks ebuild-locks fixlafiles news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="ru_RU.UTF-8" LC_ALL="" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="ru en" MAKEOPTS="-j3" PKGDIR="/usr/local/portage/bin32" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa berkdb bluetooth branding bzip2 cairo cdda cdr cleartype cli colord consolekit cracklib crypt cxx dbus dri dts dvd dvdr eds emboss encode evo exif fam fbcondecor firefox flac fortran freetype gdbm gdu gif gnome gnome-keyring gnome-online-accounts gpm gsm gstreamer gtk gtk3 iconv ipv6 jpeg lcms ldap libnotify mad mmx mng modules mp3 mp4 mpeg mudflap nautilus ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf png policykit ppds pppd pulseaudio qt3support raster readline sdl session socialweb spell sse sse2 sse3 ssl ssse3 startup-notification svg sysfs tcpd tiff truetype type1 udev unicode usb vorbis x264 x86 xcb xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard evdev mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru en" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Если не хватит еще какой-либо информации - проинформиуйте, но пока я ОЧЕНЬ прошу вашей помощи, ибо уже много нервов потратил.
---------------
РЕШЕНО! Блин, сколько нервов было потрачено! Оказывается, что интуиция меня не подвела. Оказывается, проблема была коварна. Именно вайн вызывал сегфолтинг библиотеки libasound.so, именно на ней спотыкалась работа приложений! Я это понял, как только скомпилировал VirtualBox и после запуска виртуальной ОС произошёл kernel panic. Дабы решить проблему, я пересобрал alsa-lib с наиболее безопасными флагами с помощью
CFLAGS="-march=core2 -pipe" emerge -v alsa-lib
- и проблема решилась! А вот и презент в честь этого - всеми нелюбимый второй Крысис.
- Для комментирования войдите или зарегистрируйтесь
вот всё расписал, молодец, а
вот всё расписал, молодец, а нужного нет.)
Какие версии wine ставил и с какими use флагами
Да, извиняюсь, жестко ступил
Да, извиняюсь, жестко ступил =)
Итак...
emerge -pv wine:
Как видно, сейчас стоит 1.3.37. Начиная с версий выше этой, перестают работать даже 2D-игры - снова вызывается дебаггер, и снова с одинаковым первым адресом - "wine: Unhandled page fault on read access to 0xffffffff at address 0x0000:0x7dad9598 (thread 002f), starting debugger...
"
Пробовал версии: 1.3.37; 1.4_rc1; 1.4_rc2; 1.4_rc3; 1.4; 1.5.0; 1.5.1 - ни на одной не работает 3D-графика.
Может ли проблема быть в том, что перед установкой системы я полностью пересобрал систему (emerge -eav system) с флагом -mfpmath=sse,387? Но... Дело в том, что я пробовал пересобирать всю систему и без этого флага - сейчас жалею о бесцельно проср^Wпройденном времени. Как замечено, на 1.3.37 начинает работать 2D-графика (на более новых версиях не работает даже моя любимая игрушка "DX-Ball-2").
Отвечу на всё, что потребуется, но очень прошу помощи, уже сил просто нет...
Кстати, запуск приложений
Кстати, запуск приложений виндовс осуществляеться из другого раздела? с файловой системой ntfs? wine хочет чтобы раздел монтировался с пермишнами на разрешения исполнения
Такой момент: вайн сам по
Такой момент: вайн сам по себе достаточно малопригодный к использованию с игрушками и более менее навороченными программами.
http://wiki.winehq.org/winetricks_ru - повзоляет устанавливить ряд дополнений и родных виндовых библиотек, в том числе DX.
И ещё один момент, вайн своё окружение хранит в ~/.wine - иногда бывает полезно, особенно при переходе на новые версии, сделать копию этого каталога и попробовать настроить окружение wine с нуля, в том числе и все установки winetricks. Достаточно часто такая процедура помогает в решении проблем (даже в этом вопросе эмулируется винда, да))
-= Concordia victoriam gignit =-
Спасибо за ответ. Кстати,
Спасибо за ответ. Кстати, этот метод я пробовал, тобишь просто сносил префикс ~/.wine/, настраивая всё заново. Снова сносил, снова настраивал (всё равно важного я там ничего не храню). Winetricks тоже в наличии. Чего я только не пробовал устанавливать, но погоды это просто не изменило - в любом случае идет вызов дебаггера, и адрес один и тот-же - 0xffffffff - жутко бесит. Продолжал гуглить - каждый решал эту проблему по-разному. Кто-то обновлял драйвера, кто-то переходил со свободных на проприетарные, кто-то отключал поддержку шейдеров - ничего не сработало. Я просто в шоке. Осталось лишь 2 варианта: пересобрать всю систему без флага -mfpmath=sse,387 и установить на отдельный раздел новую Gentoo, но на стабильной ветви. Вот пока что такие у меня мысли.
Было бы интересно увидеть
Было бы интересно увидеть полный лог вайна. Дьявол кроется в мелочах и причина ошибки зачастую не в той строке, где она выявляется.
"Адрес" 0xffffffff - видимо какая-то специфическая константа (тот же null) и на него вообще можно не обращать внимания, важно почему эта константа оказалась переданной как адрес. А тут, чем больше информации, тем лучше
-= Concordia victoriam gignit =-
Наконец-то заметил ещё одну
Наконец-то заметил ещё одну закономерность. При каждом падении вайн-приложений идёт акцент на звук. Это уже становится намного интереснее. Возможно, как раз проблема в том, что флаг -mpfmath=sse,387 разваливает возможность работы вайна с этими приложениями.
Кстати, сейчас сделал даунгрейд к версии 1.3.33.
Лог запуска, к примеру, Half-Life 1:
Лог запуска SCP-087:
Лог запуска Voltage:
Лог запуска Armadillo Run:
Лог запуска Portal 2:
Вот такие дела. Начинаю замечать, что я ССЗБ, но мне нужно просто узнать причину, почему именно
=>0 0xb31ea468 in libasound.so.2 (+0x54468) (0x00080000)
Или может нужны более полные логи каждого из этих приложений? А то, скорее всего, я делал неправильно, когда запускал программы в вайновском дебаггере, ибо он вызывается сам при возникновении каких-то ошибок.