Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARM node-gyp configure error #10

Closed
medonomator opened this issue Dec 24, 2019 · 21 comments
Closed

ARM node-gyp configure error #10

medonomator opened this issue Dec 24, 2019 · 21 comments

Comments

@medonomator
Copy link

Доброго дня. Никак не могу собрать под arm raspberry. Если собираю на версиях ниже 12 выдает такое

Screenshot from 2019-12-24 14-13-13
А если на 12 и выше то такая

Screenshot from 2019-12-24 14-14-04

Что-то с питоном, никак не могу понять в чем причина...

@farafonov-alexey
Copy link
Owner

Привет, @medonomator.
Предполагается, что команда node -e "console.log(process.arch)" выполнится node и заполнит переменную arch в процессе сборки, наверное node по какой-то причине не смогла ее выполнить.
Затем данная переменная проверяется на равенство ia32 или x64 (думаю node под arm такое не вернет, а вернет что-то типа 'arm') и копируются соответствующие скомпилированные библиотеки в папку сборки (libfptr10 и др.)
В настоящий момент скомпилированных библиотек под arm в проекте нет и я не в курсе есть ли они в ДТО.

@maxvgi
Copy link

maxvgi commented Dec 24, 2019

Всем привет.

Я библиотекой изначально пользовался исключительно под arm, никаких проблем при сборке не было. Просто изначально поставил deb-пакет с библиотекой от Атол.

И дальше npm install node-atol-wrapper

Правда, версия node-atol-wrapper тогда была 0.0.15. В настоящий момент возможности проверить нет.

@medonomator
Copy link
Author

Получилось собрать под arm, но теперь выдает Error 9 [ Способ связи с ККТ не поддерживается ]. Будто устройство просто не видит Атол, буду разбираться...

@maxvgi
Copy link

maxvgi commented Dec 24, 2019

Получилось собрать под arm, но теперь выдает Error 9 [ Способ связи с ККТ не поддерживается ]. Будто устройство просто не видит Атол, буду разбираться...

Если я правильно помню, то я сначала зашел в настройки кассы через графическую утилиту и выставил, что коннект с ней будет по USB.

Ну и в коде образно говоря так:

const Atol = require('node-atol-wrapper');

const driver = new Atol.Fptr10();
driver.create();

const connectionConfig = {Port: 1}; //usb
const settings = driver.getSettings();

for(let i in connectionConfig) {
   settings[i] = connectionConfig[i];
}

driver.setSettings(settings);
driver.open();

@medonomator
Copy link
Author

Спасибо, все заработало. Могу сделать пул реквест с обновленным binding.gyp ? Хочу добавить условие для arm и файлы подсунуть

@farafonov-alexey
Copy link
Owner

@medonomator, конечно

@maxvgi
Copy link

maxvgi commented Dec 25, 2019

А кстати хороший вопрос. Посмотрел, в моей версии в binding.gyp - для linux не было никаких действий, поэтому с компиляцией под arm не было никаких вопросов.

Для windows - согласен, там с установкой и компиляцией отдельная история.

А нужно ли копирование so-файлов для linux? У вас библиотеки установлены не system-wide?

@medonomator
Copy link
Author

Не могу запушить ветку, нет доступа 403

@medonomator
Copy link
Author

А кстати хороший вопрос. Посмотрел, в моей версии в binding.gyp - для linux не было никаких действий, поэтому с компиляцией под arm не было никаких вопросов.

Для windows - согласен, там с установкой и компиляцией отдельная история.

А нужно ли копирование so-файлов для linux? У вас библиотеки установлены не system-wide?

Совсем не понимаю о чем вы ) Под arm нужны файлы из ДТО, сейчас таковых нету

@maxvgi
Copy link

maxvgi commented Dec 25, 2019

Не могу запушить ветку, нет доступа 403

Нужно сначала склонировать этот репозитарий, потом запушить изменения в свой репозитарий, а затем уже создавать pull request.

@medonomator
Copy link
Author

Запушить изменения в свой репозиторий ?? Вы о чем ?)) Я склонировал репу, создал ветку, сделал работу, после этого хочу запушить и вылетает 403

@maxvgi
Copy link

maxvgi commented Dec 25, 2019

Запушить изменения в свой репозиторий ?? Вы о чем ?)) Я склонировал репу, создал ветку, сделал работу, после этого хочу запушить и вылетает 403

Да, простите, оговорился - не склонировать, а форкнуть.
Вы пытаетесь запушить коммит в чужой репозитарий, куда у вас нет прав на запись.

Инструкция в картинках как делать pull request

@medonomator
Copy link
Author

Ок, теперь понял, благодарю!

@maxvgi
Copy link

maxvgi commented Dec 25, 2019

Совсем не понимаю о чем вы ) Под arm нужны файлы из ДТО, сейчас таковых нету

Вы же непосредственно из-под raspberry собираете?

Скачал свежий драйвер ККТ, это zip-архив в 395 Мб. В нём по пути /10.6.1.0/installer/deb/ лежат собранные пакеты для debian-based дистрибутивов. Закидываем пакет libfptr10_10.6.1.0_armhf.deb в raspberry, устанавливаем - dpkg -i libfptr10_10.6.1.0_armhf.deb

Всё, библиотеки установлены в систему по стандартным путям и доступны. После этого сборка проходит без лишних вопросов, ничего никуда копировать не надо.

Хотя иной подход тоже имеет место быть, мне просто ближе установка софта через пакеты.

@medonomator
Copy link
Author

medonomator commented Dec 25, 2019

Такой вариант не подходит, даже если проделать все эти операции, в момент установки пакета npm i node-atol-wrapper выдает gyp: Call to 'node -e "console.log(process.arch)"' returned exit status 134 while in binding.gyp. while trying to load binding.gyp
что говорит о том, что он не может найти условие в .gyp под текущую архитектуру

@medonomator
Copy link
Author

medonomator commented Dec 25, 2019

Очень интересно как вы умудрились собрать под raspberry если в .gyp нет такова условия)

@maxvgi
Copy link

maxvgi commented Dec 25, 2019

А какие там условия?

В .gyp описаны дополнительные операции, которые требуется выполнить для сборки под конкретную платформу. Если библиотеки поставить нормально (через deb-пакет), то никакие операции не требуются, сборщик всё нормально сам собирает.

Я в своём пулл-реквесте вообще удалял копирование файлов для линукса. Потому что после установки библиотеки ни на моем рабочем компе (x64), ни на raspberry (armhf) никакой магии в .gyp не требовалось.

Только сейчас увидел, что, оказывается, библиотеки из дистрибутива содержатся в этом репозитарии =) Ну да, возможно это и правда оптимальное решение - пользователю в этом случае даже не нужно знать, что есть какой-то драйвер от Атол.

В общем да, диалог продолжать смысла нет, теперь это больше похоже будет на холивар )

@farafonov-alexey farafonov-alexey changed the title node-gyp configure error ARM node-gyp configure error Jan 11, 2020
@farafonov-alexey
Copy link
Owner

Спасибо, все заработало. Могу сделать пул реквест с обновленным binding.gyp ? Хочу добавить условие для arm и файлы подсунуть

@medonomator, желание еще не пропало?

@squalsoft
Copy link
Contributor

Смотрю, что pull-request так и не сделали?

@squalsoft
Copy link
Contributor

squalsoft commented Dec 22, 2020

process.arch = arm

@farafonov-alexey
Copy link
Owner

#17

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants