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

Applications development, KoOS API questions
  • Запускаем виртуалку из под рута, запускаем kos, потом в нижней части окна virtualbox ищем "устройства" и там находим флешку. Флешка отмонтировывается от минта и появляется в кос. Потом там же флешку отмонтировываем от кос, она автоматически монтируется в минт. Ничего перезагружать не нужно.

    P.S.: чтобы fm увидел флешку, его нужно обновить. В eolite f5, в других не знаю. Можно перезагрузить fm.
  • Запускаем виртуалку из под рута, запускаем kos, потом в нижней части окна virtualbox ищем "устройства" и там находим флешку. Флешка отмонтировывается от минта и появляется в кос. Потом там же флешку отмонтировываем от кос, она автоматически монтируется в минт. Ничего перезагружать не нужно.
    Ну это всё равно долго. Я как-то привык нажав F9 сразу видеть результат, ну или хотя бы скомпилированную программу, лежащую где надо и готовую к запуске. Это осуществимо?

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

    P.S. "Интернет загрузчик" (HTTP Downloader) не работает. Вбиваю URL, жму "Download", ноль эмоций. При том что текстовый браузер файл открывает успешно.
    Roman Shuvalov
  • FTP клиент в KolibriOS сработал. Файл получен. Скажите, а нельзя ли каким-нибудь .bat-файлом (в KOS) сразу выкачать файл с ftp- или http-сервера? Чтобы не писать ftp-команды руками. Наподобие wget.
    Roman Shuvalov
  • 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...
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • 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.
    Roman Shuvalov
  • 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.
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • 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)
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • 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.
    Roman Shuvalov
  • 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.
    Roman Shuvalov
  • как вариант:
    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), и т. д.
  • 1) в kolobrios.img в фаил settings/autorun.dat в конце дописать /hd0/1/myprog
    О, а вот это отличный совет, спасибо. Авторан как раз то, что нужно.
    Roman Shuvalov
  • Who is online

    Users browsing this forum: No registered users and 8 guests