Page 1 of 1

Отладка прикладного ПО. Перенос файлов в вирт. машину с KOS

Posted: Tue Nov 25, 2014 5:19 pm
by ALPINE
Здравствуйте.

С системой познакомился буквально недавно, хочу поучаствовать в конкурсе игр (писать планирую на Си без плюсов). На данный момент главная проблема - быстрый перенос файлов из хост-системы (работаю в Linux Mint) в Колибри (запущена в Virtualbox). USB-Флешка распознаётся, но она не может быть примонтирована сразу в двух системах. При запуске виртуальной машины флешка пропадает из системы, таким образом, для каждого запуска создаваемой программы приходится перезагружать виртуальную машину, а это неудобно.

Как разработку ведёте вы? Есть ли удобный способ "расшарить" папку, которая распознастся в виртуальной машине и будет одновременно доступна для чтения и записи в хост-машине? Я вместо Виртуалбокса пробовал QEMU с виртуальным .img-образом, как HDD в Колибри он определился, но проблема та же: без перемонтирования не работает. Можно ли перекидывать файлы живьём и на лету?

Ближайшие планы - задействовать FTP. Но если есть более простое решение, подскажите, буду благодарен. Спасибо.

P.S. С FTP не всё так гладко, он не все команды поддерживает, в частности при

Code: Select all

curl -u test:1234 -T ./test.txt ftp://10.15.11.108/test.txt
Получаю

Code: Select all

EPSV
500 Unsupported command

Posted: Tue Nov 25, 2014 8:33 pm
by e-andrew
Запускаем виртуалку из под рута, запускаем kos, потом в нижней части окна virtualbox ищем "устройства" и там находим флешку. Флешка отмонтировывается от минта и появляется в кос. Потом там же флешку отмонтировываем от кос, она автоматически монтируется в минт. Ничего перезагружать не нужно.

P.S.: чтобы fm увидел флешку, его нужно обновить. В eolite f5, в других не знаю. Можно перезагрузить fm.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Tue Nov 25, 2014 9:00 pm
by ALPINE
Запускаем виртуалку из под рута, запускаем kos, потом в нижней части окна virtualbox ищем "устройства" и там находим флешку. Флешка отмонтировывается от минта и появляется в кос. Потом там же флешку отмонтировываем от кос, она автоматически монтируется в минт. Ничего перезагружать не нужно.
Ну это всё равно долго. Я как-то привык нажав F9 сразу видеть результат, ну или хотя бы скомпилированную программу, лежащую где надо и готовую к запуске. Это осуществимо?

FTP сервер ограничен в возможностях, возможно сервер стоит поднять на хост-машине и из KOS вытаскивать его в рамдиск. Пока попробую потыкаться в TFTP Client.

P.S. "Интернет загрузчик" (HTTP Downloader) не работает. Вбиваю URL, жму "Download", ноль эмоций. При том что текстовый браузер файл открывает успешно.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Tue Nov 25, 2014 10:01 pm
by ALPINE
FTP клиент в KolibriOS сработал. Файл получен. Скажите, а нельзя ли каким-нибудь .bat-файлом (в KOS) сразу выкачать файл с ftp- или http-сервера? Чтобы не писать ftp-команды руками. Наподобие wget.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Tue Nov 25, 2014 10:40 pm
by hidnplayr
To make kolibriOS FTPD run in virtualbox requires correct configuration of FTPD.INI and configuration of NAT in virtualbox
(dont forget to open data ports if you wan to use PASV)
If you want to use active mode, set your client to use local IP 127.0.0.1

Something like .bat files is tricky because there is no real shell/console.
But.. FTPC can transfer all files in a directory at once...

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Wed Nov 26, 2014 12:41 am
by ALPINE
To make kolibriOS FTPD run in virtualbox requires correct configuration of FTPD.INI and configuration of NAT in virtualbox
It looks like it's not necessary, I configured virtualbox network in bridge mode, so actually host and virtual systems are in same subnet (both got IP from my router). So I have connection between host system and KOS, I can ping each other, both systems have internet access via router, I can access local (host) http webserver via text browser in kos, etc.

Problem is, probably, in particular implementation of FTPD. I'm trying to upload file:

Code: Select all

curl --disable-epsv -u test:1234 -T ./test.txt ftp://10.15.11.108/test.txt
(--disable-epsv is required because EPSV command is not supported by FTPD, see above)
And nothing happens: curl stucks at 0% uploaded, and this is that I see in ftpd log in KOS:

Code: Select all

Thread 27 created
220 Welcome to KolibriOS FTP daemon

USER test
Login ok
331 Please specify the password

PASS 1234
Password ok
230 You are now logged in

PWD
/

PASV
227 Entering passive mode (127,0,0,1,7,208)
_
And that's all. I have no idea why ftpd can't receive a file.

By the way, if I try to configure ftpd.ini and create new user with home directory /tmp0/1/ (RAM disk), I'll got error "Directory /tmp0/1/ doesn't exist", but it actually exists. I'm not sure if it is a bug or I'm doing something wrong.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Wed Nov 26, 2014 8:43 am
by hidnplayr
FTPD cant receive a file because it's telling curl to try to open a data connection on 127.0.0.1
227 Entering passive mode (127,0,0,1,7,208)
It's quite dumb, so you'll need to set the IP of the correct interface in ftpd.ini (10.15.11.108, since 127.0.0.1 trick will not work in bridged mode)

/tmp0/1/ should work, I'll test again later to be sure.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Wed Nov 26, 2014 11:53 am
by hidnplayr
Ps: I would recommend to use another way to transfer your files during development, because of unfortunate stability issues with network stack.
I personally use a USB device, or inject project inside kolibri.img (rebooting VM before every test run is no problem for me)

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Wed Nov 26, 2014 2:14 pm
by ALPINE
or inject project inside kolibri.img (rebooting VM before every test run is no problem for me)
Yes, I think that batch script which quickly inject executables into .img and than starting VM is good solution, I'll try it. Thank you.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Wed Nov 26, 2014 5:59 pm
by ALPINE
Solved.

Copying to USB Flash Drive, starting vm (vboxmanage startvm "kolibri", flash drive disappears from host system), testing, closing VM, USB Flash Drive returns to host system. Not ideal, but quite ok for initial development. Next stop - compiling Hello World under linux.

Thank you for your help.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Fri Nov 28, 2014 3:15 am
by Sergey_vl
как вариант:
1) в kolobrios.img в фаил settings/autorun.dat в конце дописать /hd0/1/myprog
2) компилировать программу на флешку (например /media/flashka/myprog, где /media/flashka = /dev/sdc1)
3) запуск программы - sudo qemu -fda kolibri.img -hda /dev/sdc -boot a
После чего загрузится система, и запустится только что скомпилированная вами программа. Посмотрели. Закрыли. Опять скомпилировали (п.2) и запустили (п.3), и т. д.

Re: Отладка прикладного ПО. Перенос файлов в вирт. машину с

Posted: Mon Dec 01, 2014 5:49 pm
by ALPINE
1) в kolobrios.img в фаил settings/autorun.dat в конце дописать /hd0/1/myprog
О, а вот это отличный совет, спасибо. Авторан как раз то, что нужно.