Прошло более четырех лет, и, честно говоря, я полностью забыл об этом вопросе и вернулся только потому, что увидел, что получил Значок Notable Question за это.
Проблема была косвенно связана с гиперпоточностью, но, как я постоянно указывал респондентам, это было не причиной 50% холостого хода.
Причина была связана с неправильно настроенной конфигурацией динамических тиков ядра. Я работал с Gentoo и использовал собственное ядро. После того, как я обновил ядро, примерно в середине 2012 года, проблема исчезла сама собой.
Обратите внимание, что в каталоге ~/.wine/dosdevices
символические ссылки d:
и g:
указывают на /media/user_family/Geom-9
(, который, как я полагаю, является точкой монтирования компакт-диска ), а d::
и g::
указывают на /dev/sr0
, который является устройством для привода компакт-дисков.
Пока Wine не запущен, удалите лишние символические ссылки g:
и g::
:
rm ~/.wine/dosdevices/g: ~/.wine/dosdevices/g::
После удаления дубликатов ваш дисковод для компакт-дисков должен остаться с буквой D :.
Вторая проблема, тот факт, что каждый диск монтируется по разным путям, является следствием использования подсистемы udisks2
для работы со съемными устройствами. По соображениям безопасности udisks2
не позволяет пользователю, запрашивающему монтирование, каким-либо образом влиять на выбор точки монтирования.
По умолчанию он монтирует компакт-диски для любого локального пользователя в местоположении /media/<username>/<CD volume name>
. Установив ENV{UDISKS_FILESYSTEM_SHARED}="1"
в правиле udev, применяемом к вашему приводу компакт-дисков, вы можете изменить путь по умолчанию просто на /media/<CD volume name>
. Но это вам не поможет, так как метка тома компакт-диска по-прежнему используется как часть имени точки монтирования, а это — это то, чего wine
вообще не запрограммировано ожидать -по крайней мере пока нет.
Но вы можете попробовать поместить эту строку в свой /etc/fstab
файл:
/dev/sr0 /media/cdrom iso9660,udf ro,noauto,user 0 0
Затем используйте sudo mkdir /media/cdrom
, чтобы создать пустой каталог, который будет использоваться в качестве точки монтирования для всех ваших компакт-дисков.
Это должно переопределить обработку udisks2
вашего дисковода компакт-дисков и указать системе, что любой компакт-диск должен быть смонтирован в эту конкретную точку монтирования, независимо от метки тома. Это старый -школьный способ использования дисководов компакт-дисков в Linux, и это то, что wine
ожидает в настоящее время.
Но когда дисковод компакт-дисков указан в списке /etc/fstab
, то udisks2
он может или не может быть вообще пропущен :вы можете потерять функцию монтирования на основе графического интерфейса -для дисковода компакт-дисков (У меня нет t проверил это на Ubuntu 19.04 ). Но если это так, то теперь вы сможете использовать команды mount /media/cdrom
и umount /media/cdrom
как обычный пользователь, даже не используя sudo
. Так что было бы довольно просто написать скрипт с тремя командами:
#!/bin/sh
mount /media/cdrom # mount the CD before starting wine
wine <your educational program and its options, if any>
umount /media/cdrom # unmount the CD after wine exits
...а затем используйте этот сценарий (, возможно, в виде красивой иконки GUI или пункта меню )для запуска образовательной программы.