LINUX.ORG.RU

Собрать WineASIO на kubuntu x64

 , , ,


0

1

Доброго времени суток! Поставил я 64-битную себе kubuntu, нужно собрать WineASIO, все зависимости удовлетворены для сборки. На i386 отлично собирается, но под x64 не заточено.

Я подредактировал Makefile, заменит -m32 на -m64 и поменял везде /usr/lib32 на /usr/lib Но при сборке получают следующее:

make
gcc -c -I. -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows    -m64 -g -O2 -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o asio.o asio.c
asio.c: В функции «Start»:
asio.c:607:36: ошибка: incompatible types when assigning to type «ASIOSamples» from type «int»
asio.c:608:31: ошибка: incompatible types when assigning to type «ASIOTimeStamp» from type «DWORD»
asio.c:624:53: ошибка: incompatible types when assigning to type «ASIOSamples» from type «int»
asio.c:638:58: ошибка: incompatible types when assigning to type «ASIOSamples» from type «ASIOTimeStamp»
asio.c: В функции «process_callback»:
asio.c:1357:32: ошибка: invalid operands to binary + (have «ASIOSamples» and «jack_nframes_t»)
asio.c:1358:32: ошибка: invalid operands to binary & (have «ASIOSamples» and «unsigned int»)
asio.c:1359:27: ошибка: incompatible types when assigning to type «ASIOTimeStamp» from type «DWORD»
asio.c:1386:54: ошибка: incompatible types when assigning to type «ASIOSamples» from type «jack_nframes_t»
make: *** [asio.o] Ошибка 1

Подскажите, как собрать 64-битную виназию? Благодарю!

Виназия самая свежая 0.9.0 с git-а: http://sourceforge.net/projects/wineasio/

UPD (решение): http://sourceforge.net/projects/wineasio/ Вышла виназия 0.9.2, которая отлично работает на последних версиях вина и собирается под x64. После того как подложили asio.h, запускаем:

./prepare_64bit_asio
make clean
make -f Makefile64
Кладём wineasio.dll.so в соответствующую директорию (например в: /usr/lib64/wine) и запускаем:
wine64 regsvr32 wineaiso.dll
Всё. Работает, проверено.



Последнее исправление: maxcom (всего исправлений: 2)

Вот этот только момент меня смущает:

wineasio_dll_DLLS     = odbc32 \
			ole32 \
			winmm
Пробовал и так и этак, ничего не меняет:
wineasio_dll_DLLS     = odbc64 \
			ole64 \
			winmm
wineasio_dll_DLLS     = odbc \
			ole \
			winmm

unclechu
() автор топика
Ответ на: комментарий от unclechu

Хотя в общем-то ошибки валятся до того момента, про который я описал, что он меня смущает.

unclechu
() автор топика
Ответ на: комментарий от RussianNeuroMancer

У меня конечно есть вариант поставить JACK под i386, но тогда и всё остальное, что с jack-ом работает придётся i386 ставить, а не хочется.

unclechu
() автор топика
Ответ на: комментарий от RussianNeuroMancer

Плюс ко всему придётся первую версию JACK-а втыкать. Потому что вторую поставить для i386 — это проще ставить 32-битную систему:


sudo apt-get install jackd2:i386
[sudo] password for unclechu: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
 jackd2:i386 : Зависит: python:i386 но он не будет установлен
               Зависит: python-dbus:i386 но он не будет установлен
               Рекомендует: qjackctl:i386 но он не будет установлен
               Рекомендует: jackd2-firewire:i386 но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

unclechu
() автор топика
Ответ на: комментарий от unclechu

У меня конечно есть вариант поставить JACK под i386, но тогда и всё остальное, что с jack-ом работает придётся i386 ставить, а не хочется.

Reaper же 64-разрядный есть, вот и используйтесь его с WINE x86_64.

Ещё вариант - почему бы не воспользоваться например этим?

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Я вас не понял, я им и пользуюсь, 64-битным «Жнецом»! Только ведь мне нужен WineASIO для отсутствия задержки, плюс на родных Wine-драйверах жуткие тормоза при мало-мальски великой нагрузке плагинов, с виназией всё шоколадно, иной раз лучше чем в венде самой работает! Это я практически проверял. Просто решил кеды попробовать, очень понравилось, до этого ставил 32-битные дистры различные, чтобы виназия работала, ну вот kubuntu когда ставил — решил под свою архитектуру x86 — 64-битную поставить, но опять столкнулся с проблемой собрать виназию. То-есть я-то её собрал на сторонней машине i386, сделал deb-пакет, поставил, она появилась, но только в 32-битной версии Жнеца, в 64 ASIO driver not found, плюс в этой 32-битной попросту не работает, по всей видимости не совместима с 64-битной версией JACK-а. Внутреннее чутье мне говорит, что решение есть, просто нужно его отыскать, не обязательно ставить дистр под i386, я думаю всё-таки можно эту виназию собрать под 64 бита.

Насчёт совета — благодарю. Я раньше видел про эту новую DAW, но не нашёл где там зарегистрироваться для бета-тестирования. Оно сейчас открыто или нет? Просто пред тем как использовать нужно ознакомиться, понять, подходит или нет оно. Насчёт Жнеца я уверен, я долго просидел на Cubase, в своей жизни перепробовал много чего: FL Studio, Ableton Live, Audition, Reason, Sonar, да чего в моих руках из DAW только не было. Но после того как я подружился с «Жнецом» , — всё, в поисках нужды более не чувствую, это лучшее что я держал в руках, кубику уступает разве что в том, что не хватает таких качественных родных эффектов, как многополосный компрессор, родной набор там по своему хорош, например отсыл MIDI по LAN, нет в Жнеце так же как в кубике — смещения трека в настройках дорожки, плюс нет как в Ableton Live переходу к такту только по окончанию текущего играющего такта (в живых выступлениях полезнейшая штука), но в остальном, в организации дорожек, FX и прочем — ему равных нет. Это я всё к чему? Что мне по-хорошему нужен именно Рипер и собрать виназию очень надо! А то ведь неудобно перезагружаться в венду каждый раз как вдохновение придёт, винда только для этого и живёт сейчас на компе.

unclechu
() автор топика
Ответ на: комментарий от unclechu

Оно сейчас открыто или нет?

Действительно, уже закрыто.

То-есть я-то её собрал на сторонней машине i386, сделал deb-пакет, поставил, она появилась, но только в 32-битной версии Жнеца, в 64 ASIO driver not found, плюс в этой 32-битной попросту не работает, по всей видимости не совместима с 64-битной версией JACK-а.

Всё, понял - до меня дошло :)
Возможно достаточно поставить libjack0:i386 для решения проблемы.

Что мне по-хорошему нужен именно Рипер

Не забудьте пнуть разработчиков, чтобы почесались выпустить нативную версию.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от anonymous

Я уже кажется объяснил, венда итак стоит, как раз для этих целей, просто неудобно в неё каждый раз перезагружаться. Пользоваться вендой как основной системой мне неудобно, даже с cygwin. Мак бы купил, с радостью, хотите дать денег?

И в довершение хочу напомнить, что топик был начат не для того, чтобы «найти путь истинный», у меня есть своя истина и в ней я на данный момент уверен, по-этому я попрошу помочь по топику. Но насчёт Мака идея мне нравится, тысяч 80 рублями, я не откажусь от Вашей щедрости!

unclechu
() автор топика
Ответ на: комментарий от RussianNeuroMancer

Возможно стоит сделать как Вы говорите, но как уже от меня было заявлено — такой ход много хочет за собой утянуть:

Пакеты, которые будут УДАЛЕНЫ:
  ardour jack-mixer jack-rack jack-tools jackd jackd2 jackd2-firewire jamin libjack-jackd2-0 libjack-jackd2-0:i386 libjack-jackd2-dev meterbridge qjackctl rakarrack
НОВЫЕ пакеты, которые будут установлены:
  jackd1 jackd1-firewire libjack0 libjack0:i386
Погодите-ка, что-то я до селе не замечал вот это: libjack-jackd2-0:i386 хм... Может есть какой-то вариант запустить jackd от i386? Хм... Пороюсь, попробую.

Разработчиков обязательно пну! Я благодарен им хотя бы за то, что они официально поддержкой под вайн занимаются! Это по-моему замечательный и благородный ход с их стороны!

Но ещё очень стоит пнуть производителей VST, потому как это тоже очень важно, и Reaper без набора хороших VST не очень силён. Например: Guiar Rig, Oxford VST-plugins, Kontakt, Battery, Nexus и проч. Хотя конечно есть и под линукс крутые штуки вроде PianoTeq. Есть пак свободных mda vst нативных для linux.

unclechu
() автор топика
Ответ на: комментарий от unclechu

Ах, простите, я же пытался уже поставить jackd2:i386, не вышло.

unclechu
() автор топика
Ответ на: комментарий от RussianNeuroMancer

Где зарылась проблема при сборке я нашёл! Файл asio.c, были там следующие конструкции:

#ifndef _WIN64
Ну я и заменил _WIN64 на _WIN64x везде, и всё собралось под 64 бита! Но вот в 64-битном Reaper-е всё-равно не видать виназии, not found.

unclechu
() автор топика
Ответ на: комментарий от unclechu

regsvr32 теперь регистрировать не хочет, но файл по тому же пути лежит. В 32-битном Жнеце он в списке ASIO-дров появляется, но порты не появляются и получаем-с: “Error loading ASIO driver”, джек запущен, всё как положено!

unclechu
() автор топика
Ответ на: комментарий от unclechu

Вот он 32-битную регистрирует, а 64-битную отказывается.

unclechu
() автор топика
Ответ на: комментарий от unclechu

regsvr32 теперь регистрировать не хочет, но файл по тому же пути лежит.

Я не в курсе, но может 64-разрядные библиотеки иначе регистрируются? Ну там regsvr64 какой-нибудь, например.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Может быть, regsvr64 — первое что я бы попробовал, но в системе этого нет, Wine 64-битный. Вот и спрашиваю, что сделать, чтобы 64-битная виназия встала как положено?

unclechu
() автор топика
Ответ на: комментарий от unclechu

С этим наверное уже на винфак :)
Серьёзно, скорее там подскажут, как зарегистрировать 64-разрядную dll-ку в системе, чем здесь.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от unclechu

могу сбросить скомпиленные wineasio.dll.so и jackbridge - есть высокая вероятность, что они у вас запустятся, т.к. я сам их просто скопировал на убунту 12.10 x64 с мандривы 2011 x64, где компилил их, и все отлично работает стучите в асю 133888484

anonymous
()
Ответ на: комментарий от anonymous

Я похоже выяснил в чём была проблема. Но сейчас не проверю, потому что уже стоит i386 дистрибутив. Я просто складировал wineasio.dll.so в /usr/lib/wine, а нужно было в /usr/lib/i386-linux-gnu/wine, ну и для x64 соответствующий путь. Собрать-то под x64 я собрал, надо бы ещё проверить, вполне вероятно что заработает.

unclechu
() автор топика
19 мая 2013 г.
Ответ на: комментарий от unclechu

Дальнейшее развитие тут: Debian 7, в котором нет gcc-4.5 и winegcc, который его жаждет

Получилось собрать: Makefile для Ubuntu 13.04 amd64. Так же нужны были исправления в asio.c, о которых описано выше, впрочем вот мой asio.c, в котором также внесены изменения для избежания глюков авто-подключения к физическим портам (ознакомиться можно тутитут).

unclechu
() автор топика
Ответ на: комментарий от unclechu

Подключаем либу так:

wine64 regsvr32 wineasio.dll.so

Но у меня жива проблема — не видно портов в 64-битном рипере.

unclechu
() автор топика
Ответ на: комментарий от unclechu

Получилось разве что собрать 32-битную виназию, и запустить в 32-битном Reaper-е, при том что jackd2 под amd64, для этого должен стоять libjack-jack2-0:i386.

unclechu
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.