Jump to content

    

Удаленная отладка программ на Linux

Не знаю, в ту ли ветку пишу, но назрел вопрос.

Есть удалённая железка на Raspbian, на ней работают некоторые программные модули. На железке есть хреновый мобильный интернет и можно открыть несколько портов. Один порт открыт для SSH.  Редактировать код, запускаемый на малине, необходимо с локального компа. Как автоматизировать процесс  загрузки новых файлов с локальной машины и их запуск ?  Кто нибудь такое делал ?

Пока есть идея использовать в качестве облака - GitHub. Залить на него изменённый код, затем при помощи скрипта на малине, запускаемого через SSH, выполнить необходимые действия. 

Может есть какое либо более изящное решение ?

 

Share this post


Link to post
Share on other sites
2 минуты назад, Digi сказал:

Пока есть идея использовать в качестве облака - GitHub. Залить на него изменённый код, затем при помощи скрипта на малине, запускаемого через SSH, выполнить необходимые действия. 

Может есть какое либо более изящное решение ?

наплодить ключ для ssh, положить в нужное место, т.с. обеспечив доверенное соединение, потом скриптами гонять пакеты нужную сторону

Share this post


Link to post
Share on other sites

А в чем, собственно, проблема? У меня достаточно железок вроде "апельсинки" или "куби". Просто монтирую хомяка по sshfs. Открываю на своем компьютере в qtcreator и правлю спокойно код. А собираю и отлаживаю по ssh в терминале. Разницы с локальной работой почти никакой — только тормоза из-за "задумчивости" одноплатников (правда, иной раз реально бесит, когда перекомпиляция секунд 20 длится — и это гольный С, а не кресты с бустами и шаблонами!).

Share this post


Link to post
Share on other sites
16 часов назад, Digi сказал:

Как автоматизировать процесс  загрузки новых файлов с локальной машины и их запуск ?  Кто нибудь такое делал ?

Да. Речь идет о кросскомпиляции? Настройка шагов в 10, дальнейший процесс выгрузки и отладки в ОДИН клик. Уже обсуждалось, почитайте тут

Если хотите собирать исходники прямо на малине, то в Eclipse настраивается ремоут достут. все исходники на малине... запскт gcc из локального эклипса прямо на малине..... блин - забудьте удаленную сборку на таргете. Настройте кросскмпиляцию. Готовых кросскомпиляторов для малины полно. Если на локале не будет нужных сторонних библиотек (например boost, wiringpi, qt и т.п.) то их с малины на локальный десктоп скопировать и эклипсу указать путь к ним. 

11 часов назад, Eddy_Em сказал:

правда, иной раз реально бесит, когда перекомпиляция секунд 20 длится — и это гольный С

при кросскомпиляции натравить эклипс на 8 ядер на все ядра - сборка махом!!! Да и отладка прямо на таргете в человеческой в лучшей IDE возможна

 

Edited by razrab83

Share this post


Link to post
Share on other sites

Не вижу смысла делать кросс-компиляцию чего-то мелкого. Можно и 20 секунд подождать.

Другое дело - генту собирать. Вот там — да, приходится делать qemu'вский чрут, чтобы собрать образ для "малинки" или "апельсинки". Армбиан, к сожалению, скатился в самое оно — ведь он основан на бубунте, а это — днище!

Share this post


Link to post
Share on other sites

Всем спасибо, общая идея понятна. Буду разбираться с SSHFS , оно мне больше подходит.

Share this post


Link to post
Share on other sites

SSHFS  у меня пару лет назад постоянно падало.

Самый простой вариант:

Как отправить с Линукса.

заходите в папку из которой надо скопировать файл "file" на малинку.

запускаете команду sftp pi@remote_raspberry_pi_ip_address. Полагаю, что username pi. Если сделали другое имя, то пишите его.

У вас будут работать команды ls cd, но уже на малинке. Заходите в нужную папку.

из директории, в которой вы находились копируете файл "file" командой "put file"

 

Второй вариант:

команда scp похожа на команду cp, только она копирует на удаленный или с удаленного компьютера. Перед абсолютным путем к файлу на удаленном компьютере необходимо написать pi@remote_raspberry_pi_ip_address:

Двоеточие в конце обязательно

 

scp /home/devel/raspberry_design/file pi@remote_raspberry_pi_ip_address:/home/pi/location

скопирует файл file из папки /home/devel/raspberry_design/ в папку /home/pi/location на удаленной малинке с IP адресом  remote_raspberry_pi_ip_address.

 

Если копировать с винды, то поставьте на нее winscp.

Share this post


Link to post
Share on other sites

Тогда давайте еще вспомним rsync…

Вообще же, если соединение нестабильное (а только по этой причине могут быть проблемы с sshfs), можно подмонтировать удаленный ресурс при помощи NFS. Прошло уже то время, когда NFS приводила к зависаниям компьютера. Сейчас все нормально работает.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now