У клиента проявилась такая интересная проблема: В дистрибутиве ALTLшnux p7 64 в ядре 3.12.21 не происходит инициализация окружения $ wine --update Updating... Using WINEPREFIX=/home/ctac/.wine with WINE@Etersoft Network 2.1.3-eter3/5 Creating default file tree... Copying prepared tree from '/usr/share/wine/skel-copy' and '/usr/share/wine/skel' ... Run /etc/wine/script.d/*.sh.pre scripts... Update registry and environments... Run /etc/wine/script.d/*.sh scripts... 7-Zip installing... FAR installing... MS XML Core Services 3.0 installing... /home/ctac/.wine/dosdevices/c:/windows/temp MS XML Core Services 4.0 installing... /home/ctac/.wine/dosdevices/c:/windows/temp Windows Scripting installing... modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент err:ntdll:RtlpWaitForCriticalSection section 0x7bcc9960 "loader.c: loader_section" wait timed out in thread 0047, blocked by 000c, retrying (60 sec) err:seh:raise_exception Unhandled exception code c0000194 flags 0 addr 0x7bc38eea err:ntdll:RtlpWaitForCriticalSection section 0x7bcc9960 "loader.c: loader_section" wait timed out in thread 0047, blocked by 000c, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x7bcc9960 "loader.c: loader_section" wait timed out in thread 0013, blocked by 000c, retrying (60 sec) err:seh:raise_exception Unhandled exception code c0000194 flags 0 addr 0x7bc38eea При этом всё работает в ядре 3.8.13.4(64) Проблема возникает после обновления ядра ------ Проверил в 3.12.21 32-бита - проблемы нету. Может чего доустановить надо ------ vbox с воспроизведённой проблемой "Users Virtual Machine/akv/ALTLinux Simply 7.0.1 x64". Не нашёл готовой машины поэтому проверял в своей. Если надо подготовлю машину.
Ситуация стала ещё интересней. Судя по заявке https://rt.etersoft.ru/Ticket/Display.html?id=35595 У человека ДИСТРИБУТИВ: UBUNTU 12.04 64bit =================== ЯДРО СИСТЕМЫ: Linux server2 3.8.0-42-generic #62~precise1-Ubuntu SMP Wed Jun 4 22:04:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Такая же ошибка: wine --admin First running... Using WINEPREFIX=/home/kvatraporto/.wine with WINE@Etersoft Network 2.1.3-eter8/5 Using shared WINE tree in /var/lib/wine/default Device \'c:\' created as link for \'/var/lib/wine/default\' target. Creating default file tree... Copying prepared tree from \'/usr/share/wine/skel-copy\' and \'/usr/share/wine/skel\' ... Run /etc/wine/script.d/*.sh.pre scripts... Initialize registry and environments... Run /etc/wine/script.d/*.sh scripts... 7-Zip installing... FAR installing... MS XML Core Services 3.0 installing... /home/kvatraporto/.wine/dosdevices/c:/windows/temp MS XML Core Services 4.0 installing... /home/kvatraporto/.wine/dosdevices/c:/windows/temp Windows Scripting installing... modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент modify_ldt: Недопустимый аргумент Видимо не в ядре дело.
По мотивам http://forum.winehq.org/viewtopic.php?f=8&t=22540 и http://wiki.winehq.org/FAQ#head-bf26e320f9d279ba6d2e039f7d91f0a60a433f88 сделал # echo 1 > /proc/sys/abi/ldt16 и установил пакет i586-libncurses Теперь всё работает Не особо понял что там написано, надо вчитываться.
Согласно статье: http://www.codeweavers.com/support/wiki/diag/brokenldt16 в свежих ядрах (из-за проблем с безопасностью) вычеркнута поддержка инициализации 16-битных адресных сегментов... Хотя это все еще требуется для многих приложений в Wine. Написано, как включить. Для включения при старте системы, полагаю, нужно добавить в /etc/sysctl.conf соответствующую запись.
(В ответ на comment #1) > Ситуация стала ещё интересней. > Судя по заявке https://rt.etersoft.ru/Ticket/Display.html?id=35595 > У человека > > ДИСТРИБУТИВ: > UBUNTU 12.04 64bit > =================== > ЯДРО СИСТЕМЫ: > Linux server2 3.8.0-42-generic #62~precise1-Ubuntu SMP Wed Jun 4 22:04:18 > UTC 2014 x86_64 x86_64 x86_64 GNU/Linux > > Такая же ошибка: > > wine --admin > First running... Using WINEPREFIX=/home/kvatraporto/.wine with WINE@Etersoft > Network 2.1.3-eter8/5 > Using shared WINE tree in /var/lib/wine/default > Device \'c:\' created as link for \'/var/lib/wine/default\' target. > Creating default file tree... > Copying prepared tree from \'/usr/share/wine/skel-copy\' and > \'/usr/share/wine/skel\' ... > Run /etc/wine/script.d/*.sh.pre scripts... > Initialize registry and environments... > Run /etc/wine/script.d/*.sh scripts... > 7-Zip installing... > FAR installing... > MS XML Core Services 3.0 installing... > /home/kvatraporto/.wine/dosdevices/c:/windows/temp > MS XML Core Services 4.0 installing... > /home/kvatraporto/.wine/dosdevices/c:/windows/temp > Windows Scripting installing... > modify_ldt: Недопустимый аргумент > modify_ldt: Недопустимый аргумент > modify_ldt: Недопустимый аргумент > modify_ldt: Недопустимый аргумент > modify_ldt: Недопустимый аргумент > > Видимо не в ядре дело. Данная ошибка не имеет отношения к 16-битной проблеме. Проверил в vbox, файла /proc/sys/abi/ldt16 нету. Видимо отдельную багу открывать надо.
В ubuntu какая-то проблема с ядрами ниже 3.14 там не приложен патч для включения 16 битных адресных сегментов. http://ubuntuforums.org/showthread.php?t=2228133&page=2 Он появляется аж в 3.14.6. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1328965 При том что в Альте ( проверял пока только в альте ) уже в 3.12 приложен патч. Проблемные дистрибутивы 12.04 (3.8.* - x64) и 14.04 (3.13.* - х64) При этом есть сообщение, что можно сделать рабочим 3.11.0-24-generic http://askubuntu.com/questions/483058/wine-stopped-working-how-do-i-re-install-w-o-losing-data Но файла /proc/sys/abi/ldt16 просто не существует и создать его не получается.
Так получилось что данная бага делиться на две: 1) В ядрах 3.10.* - 3.16 отключена поддержка 32-битных приложений. Однако существует патч, который позволяет вернуть поддержку с помощью /proc/sys/abi/ldt16 Этот патч в основных дистрибутивах бекпортирован с 3.16 на ядра ниже. 2) Ubuntu решило выделиться и бекпорт данного патча можно встретить только в 3.14.6. Ядра старше по возрасту и ниже по номеру не имеют /proc/sys/abi/ldt16. Данная вещь пока наблюдается только в ubuntu. Ядра из коробки в Ubuntu как раз попадают диапазон ядер без ldt16 Решение на первую багу можно найти здесь https://bugs.etersoft.ru/show_bug.cgi?id=10179 С номером 2 можно добавить описание ситуации на вики. Создавать ли отдельную багу?
(В ответ на comment #6) > Ядра из коробки в Ubuntu как раз попадают диапазон ядер без ldt16 > Ubuntu 14 имел ввиду
Ситацая на данный момент: В winediag добавлена проверка ... Check espfix64 issue (forbids 16-bit code on x86_64): Need fix (abi.ldt16 = 0) ... Код последней ошибки, выявленной winediag: WE69 Закрываю
Закрыл