Эмулятор под Linux

Running Kolibri and its programs in other OSes
  • tsdima wrote:Если мы про виртуальную папку /kolibrios, то её и не нужно создавать в ~/.kex/root, она мапится программой searchap
    В реальной системе - да, но как это делается в эмуляторе, я не знал, поэтому, я просто скопировал папку /kolibrios из latest-distr.7z, в папку ~/.kex/root. В результате, при запуске Eolite, папка /kolibrios становится видна в Eolite.
    P.S. У эмулятора, вообще странное поведение. Если папку /kolibrios разместить в папке /root, то эту папку видит только Eolite и Shell, а другие файловые менеджеры эту папку не видят.
    tsdima wrote:Так задумано :) Сначала каталог ~/.kex/root тоже читался, как обычная папка, но потом я решил сделать список допустимых устройств, и они в верхнем регистре.
    Ясно.
    tsdima wrote:Оказывается есть такая интересная штука - strace, трассирует системные вызовы. Правда её через sudo надо запускать.
    JohnXenox, а что выдаст у тебя такая команда:

    Code: Select all

    sudo strace -e trace=process ./kex /cd0/1/kolibrios/games/mun/mun
    ?
    У меня, путь до mun, немного другой, поэтому изменил путь. Вот вывод:
    Spoiler:

    Code: Select all

    sudo strace -e trace=process ./kex /kolibrios/games/mun/mun
    [sudo] password for -------: 
    execve("./kex", ["./kex", "/kolibrios/games/mun/mun"], [/* 29 vars */]) = 0
    arch_prctl(ARCH_SET_FS, 0x7f1a37f04700) = 0
    clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1a37f049d0) = 2712
    Process: mun
    err : 0x00000000 trapno: 13 addr: 0x0000000000000000
    EAX : 0x000000000001f000 EBX : 0x000000000000000c ECX : 0x000000000021f000
    EDX : 0x0000000f3ffff000 ESI : 0x0000000000413ac2 EDI : 0x000000007ffff000
    EBP : 0x00007ffecadc1390 EIP : 0x0000000000000058 ESP : 0x000000000001ee90
    Flags : 0x00010206 CS: 0x000f
    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2712, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
    wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2712
    exit_group(0)                           = ?
    +++ exited with 0 +++
    The Glass is Always Half Full! :mrgreen:
  • JohnXenox wrote:Если папку /kolibrios разместить в папке /root, то эту папку видит только Eolite и Shell, а другие файловые менеджеры эту папку не видят.
    А, я понял, другие менеджеры используют только список, возвращаемый функцией 70.1 при чтении папки "/", а Eolite проверяет ещё и наличие папки "/kolibrios". При чтении папки "/" я возвращаю только разрешённые устройства, а при открытии файлов и каталогов такой проверки нет. Короче, это не баг, это фича :)
    JohnXenox wrote:Вот вывод
    Честно говоря, я не понимаю, что происходит. Вроде fsbase установилось без ошибки (arch_prctl вернула ноль). Хотя, это вроде не мой вызов (адрес другой).
    Интересно, как сказать strace-у, чтобы он и за дочерними процессами следил?
  • Kopa wrote:/root/RD/1/ каталог поместил в директорию программы и дополнительно img-образ подключил.
    Можешь попробовать новую версию?
    Только каталог /root/RD/1 надо не в директории программы делать. В каталоге пользователя (/home/<user>) нужно создать каталог .kex (именно с таким именем - точка kex), а вот уже туда поместить и /root/RD/1, и шрифты (char.mt, charUni.mt).
  • tsdima wrote:Можешь попробовать новую версию?
    Проверил новую версию, проги стали запускаться (начал с tube :)
    Запуск Eolite выдал такое сообщение

    Code: Select all

    X Error of failed request:  BadMatch (invalid parameter attributes)
      Major opcode of failed request:  73 (X_GetImage)
      Serial number of failed request:  2524
      Current serial number in output stream:  2524
    
    P.S. Сейчас более детально потестирую.
    Web (демо-приложение) отображает подобие "снежных"чёрточек вверху и внизу экрана монитора. (LCD монитор сейчас у меня в портретную ориентацию установлен).
    В основном все программы запускаются, но обнаружены и не работающие (SNAKE)
    TETRIS сначала отрисовывается с глюком до момента общей его перерисовки (повторные проверки подтверждают глюк)
    CPUID выдал такое исключение

    Code: Select all

    Process: CPUID
    err : 0x00000000 trapno: 13 addr: 0x00000000
    EAX : 0x52502028 EBX : 0x000f00bf ECX : 0x0000a8a3
    EDX : 0x0000a8a2 ESI : 0x00000033 EDI : 0x0000b368
    EBP : 0x00019bc7 EIP : 0x0000af7b ESP : 0x000254b2
    Flags : 0x00210206 CS: 0x000f
    
    и ещё запускаю программы через FAR, но начальное расположение запущенной программы всегда вверху экрана, что немного неудобно (приходится перетаскивать её окно), т.к. сам FAR hв центре экрана.
    Webview "из коробки" не вывел тестовые страницы (проводное соединение)

    Code: Select all

    HTTP library: init OK
    parsing URL: http://kolibrios.org
    hostname: kolibrios.org
    pageaddr: /
    port: 80
    Resolving hostname
    Usage: nmcli device { COMMAND | help }
    
    COMMAND := { status | show | connect | reapply | disconnect | delete | monitor | wifi | lldp }
    
      status
    
      show [<ifname>]
    
      set [ifname] <ifname> [autoconnect yes|no] [managed yes|no]
    
      connect <ifname>
    
      reapply <ifname>
    
      disconnect <ifname> ...
    
      delete <ifname> ...
    
      monitor <ifname> ...
    
      wifi [list [ifname <ifname>] [bssid <BSSID>]]
    
      wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [ifname <ifname>]
                             [bssid <BSSID>] [name <name>] [private yes|no] [hidden yes|no]
    
      wifi hotspot [ifname <ifname>] [con-name <name>] [ssid <SSID>] [band a|bg] [channel <channel>] [password <password>]
    
      wifi rescan [ifname <ifname>] [[ssid <SSID to scan>] ...]
    
      lldp [list [ifname <ifname>]]
    
    Ошибка. Неверная команда «dev»: «list».
    Error!
    parsing URL: http://kolibri-n.org
    hostname: kolibri-n.org
    pageaddr: /
    port: 80
    Resolving hostname
    Error!
    parsing URL: http://kolibrios.org
    hostname: kolibrios.org
    pageaddr: /
    port: 80
    Resolving hostname
    Error!
    
    Launcher сначала отображается в верхней части экрана, а потом "перескакивает" к центру.
    Magnfy замедленно отрисоывает своё изображение.
    SCRSHOOT не захватил правильно изображение.
    Кодировка вводимых символов в текстовом редакторе не изменяется.
    ClipView не видит буфер обмена?
    Pig такое сообщение

    Code: Select all

    Done initializing video
    Initializing timers...done
    SDL: Subsystems initialized
    Requested mode: 800x600x24, obtained mode 800x600x24 (offset 0)
    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCould not load graphics!
    /RD/1/MENUET.APP: exit code=1
    
    Mun пишет /kolibrios/games/mun/libc.dll not found
    запускаю его с CD0/1/kolibrios/
    Директория kolibrios на CD0/1 при наличии не монтируется по умолчанию?

    Piton

    Code: Select all

    02.0000052C: mcall 18, 0xE, 0x103AC, 0x0
    Консольный Тетрис не играбелен

    Code: Select all

    02.000290C9: mcall 18, 0xE, 0x10, 0x23
  • Запускается - уже хорошо :)
    Kopa wrote:Запуск Eolite выдал такое сообщение
    Какие-то проблемы с чтением пикселей с экрана. Сейчас приходится выпендриваться: если прямоугольник полностью внутри окна - пиксели читаются из окна, и это вроде работает всегда. Как я думал. Но похоже, что нет.
    Kopa wrote:Web (демо-приложение) отображает подобие "снежных"чёрточек вверху и внизу экрана монитора.
    Видимо что-то с разрешением экрана. А у тебя сколько дисплеев и как они расположены?
    Можно при компиляции указать -DSCREEN_WIDTH=xxx -DSCREEN_HEIGHT=yyy с желаемым разрешением xxx,yyy, потому-что если несколько дисплеев, то X11 объединяет их в одну общую поверхность, и в итоге разрешение получается больше размеров дисплея.
    Kopa wrote:В основном все программы запускаются, но обнаружены и не работающие (SNAKE)
    SNAKE корректирует свой размер после изменения размера. Поначалу он у меня вообще зацикливался на изменении размера. Может у тебя тоже так получается.
    Kopa wrote:TETRIS сначала отрисовывается с глюком до момента общей его перерисовки
    Тоже одно из капризных приложений. Постоянно читает события без ожидания. Загрузка процессора нехилая. Иксы чего-то там не успевают.
    Kopa wrote:CPUID выдал такое исключение
    А оно везде должно работать? Может там команды какие хитрые используются?
    Kopa wrote:и ещё запускаю программы через FAR, но начальное расположение запущенной программы всегда вверху экрана
    Тоже подтверждает проблему с разрешением экрана. Попробуй скомпилировать с указанием разрешения.
    Kopa wrote:Webview "из коробки" не вывел тестовые страницы (проводное соединение)
    Блин, этот nmcli только у меня работает, что-ли? Видимо новые версии не имеют команды list. А как тогда выдать нечто подобное:
    Spoiler:$ nmcli dev list
    GENERAL.DEVICE: eth0
    GENERAL.TYPE: 802-3-ethernet
    GENERAL.VENDOR: Intel Corporation
    GENERAL.PRODUCT: --
    GENERAL.DRIVER: e1000e
    GENERAL.DRIVER-VERSION: 2.3.2-k
    GENERAL.FIRMWARE-VERSION: 0.1-4
    ...
    IP4.ADDRESS[1]: ip = 192.168.1.15/24, gw = 192.168.1.1
    IP4.DNS[1]: 192.168.1.1
    ...
    Kopa wrote:SCRSHOOT не захватил правильно изображение.
    Ему вроде gs: нужен, пока не реализовано.
    Kopa wrote:Кодировка вводимых символов в текстовом редакторе не изменяется.
    "Горячие" клавиши пока не реализованы, если мышкой щёлкнуть по иконке языка, то вроде меняются.
    Kopa wrote:ClipView не видит буфер обмена?
    Работало вроде.
    Kopa wrote:Pig такое сообщение

    Code: Select all

    Done initializing video
    Initializing timers...done
    SDL: Subsystems initialized
    Requested mode: 800x600x24, obtained mode 800x600x24 (offset 0)
    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCould not load graphics!
    /RD/1/MENUET.APP: exit code=1
    
    Так вроде и в реальной Колибри он не работает.
    Kopa wrote:Mun пишет /kolibrios/games/mun/libc.dll not found
    запускаю его с CD0/1/kolibrios/
    Директория kolibrios на CD0/1 при наличии не монтируется по умолчанию?
    Нужно запускать searchap. Он 5 секунд ждёт, потом монтирует. Было бы неплохо, задавать задержку в командной строке (это когда он из autorun.dat запускается).
    Kopa wrote:Консольный Тетрис не играбелен
    Это какой?
  • tsdima wrote:
    Kopa wrote:Консольный Тетрис не играбелен
    Это какой?
    http://board.kolibrios.org/viewtopic.php?f=41&t=2594

    P.S. PIG в KolibriOS запускается. :)
    В основном программы нормально работают и в текущем у меня разрешении экрана (1920ч1080) и в портретной ориентации. Те же DispTest, CROWNSCR. KFM нормально на весь экран расширяется и обратно восстанавливается, а KFAR почему то обратно к исходному размеру и расположению не приходит, а только сужается с боков (это при портретной ориентации LCD монитора), но похоже эффект нестойий.
    Другие Файл-менеджеры отображаются нормально.
    В графическом бенч тесте похоже тоже какие то артефакты в выводимом окне.
    В целом всё отлично запускается :)

    P.P.S. Сейчас PIG и CPUID тоже стартанули (вероятно после применения searchap и может перезагрузки компьютера),
    но какие то вылеты исключений, всё же, бывают.
    Last edited by Kopa on Tue Apr 17, 2018 8:02 pm, edited 2 times in total.
  • tsdima wrote:
    JohnXenox wrote:Если папку /kolibrios разместить в папке /root, то эту папку видит только Eolite и Shell, а другие файловые менеджеры эту папку не видят.
    А, я понял, другие менеджеры используют только список, возвращаемый функцией 70.1 при чтении папки "/", а Eolite проверяет ещё и наличие папки "/kolibrios". При чтении папки "/" я возвращаю только разрешённые устройства, а при открытии файлов и каталогов такой проверки нет. Короче, это не баг, это фича :)
    JohnXenox wrote:Вот вывод
    Честно говоря, я не понимаю, что происходит. Вроде fsbase установилось без ошибки (arch_prctl вернула ноль). Хотя, это вроде не мой вызов (адрес другой).
    Ясно.
    tsdima wrote:Блин, этот nmcli только у меня работает, что-ли? Видимо новые версии не имеют команды list. А как тогда выдать нечто подобное:
    Spoiler:

    Code: Select all

    $ nmcli dev list
    GENERAL.DEVICE: eth0
    GENERAL.TYPE: 802-3-ethernet
    GENERAL.VENDOR: Intel Corporation
    GENERAL.PRODUCT: --
    GENERAL.DRIVER: e1000e
    GENERAL.DRIVER-VERSION: 2.3.2-k
    GENERAL.FIRMWARE-VERSION: 0.1-4
    ...
    IP4.ADDRESS[1]: ip = 192.168.1.15/24, gw = 192.168.1.1
    IP4.DNS[1]: 192.168.1.1
    Водимо, да. А выдать, легко.

    Вот команда:

    Code: Select all

    nmcli device show
    Для получения адреса ip4:

    Code: Select all

    nmcli device show | grep -i ip4.address
    Для получения адреса ip4.dns:

    Code: Select all

    nmcli device show | grep -i ip4.dns
    The Glass is Always Half Full! :mrgreen:
  • Kopa wrote:P.S. PIG в KolibriOS запускается.
    А ты точно ночную сборку проверял?
    Я так полагаю, с тех пор, как эту игру перенесли на CD она и не работает. Ищет свои файлы в каталоге /cd0/1/games/pig хотя лежит в каталоге /cd0/1/kolibrios/games/pig
    Скопировал в каталог /rd/2/games/pig - замечательно запустилась и в эмуляторе.
    JohnXenox wrote:Вот команда:

    Code: Select all

    nmcli device show
    Печально. Заменили list на show. Ну и как быть? Обе пробовать? Или как-то версию проверять?
  • tsdima wrote:
    Kopa wrote:P.S. PIG в KolibriOS запускается.
    А ты точно ночную сборку проверял?
    ...
    Похоже так и есть т.к. запустилась вообще из стороннего каталога :)
    GrafX2 запускается, но выйти из неё как? И режим запуска 320х240 (всё очень мелко)

    P.S. А шрифты в KFAR (и других менеджерах) настраиваются?
  • Kopa wrote:GrafX2 запускается, но выйти из неё как? И режим запуска 320х240 (всё очень мелко)
    На тулбаре есть кнопка QUIT. Рядом кнопка с дисплеем, выдаёт список разрешений. Приятные диалоги.
    Kopa wrote:P.S. А шрифты в KFAR (и других менеджерах) настраиваются?
    Нет вроде бы. Или это вопрос про эмулятор? В эмуляторе точно ничего такого нет.
  • > GrafX2 запускается, но выйти из неё как?
    Alt+F4 ?
    Из хаоса в космос
  • tsdima wrote:Печально. Заменили list на show. Ну и как быть? Обе пробовать? Или как-то версию проверять?
    Я думаю, надо проверить сначала list, если list выдаёт ошибку, то использовать show. На bash. это делается элементарно, а на C - не знаю.
    Spoiler:

    Code: Select all

    #!/bin/bash
    
    if `nmcli dev list &> /dev/null`; then
      nmcli dev list | grep -i ip4.address
      nmcli dev list | grep -i ip4.dns
    else
      nmcli device show | grep -i ip4.address
      nmcli device show | grep -i ip4.dns
    fi
    The Glass is Always Half Full! :mrgreen:
  • Kopa wrote:P.S. А шрифты в KFAR (и других менеджерах) настраиваются?
    В KFar похоже задаются при компиляции в файле http://websvn.kolibrios.org/filedetails ... 2Ffont.inc
    В fNav можно просто заменить файл шрифта(fnav_fnt.png) например, вон на те из-под первого спойлера http://board.kolibrios.org/viewtopic.ph ... =45#p68083 просто нужно заменить шрифт в папке с программой.
  • Вообще, я думаю, мелкую работу можно сбросить на Bash скрипты, а основную работу оставить эмулятору.

    Под мелкой работой, я имею ввиду:
    1. Создание директорий: /RD/1/, /TMP0/1/.
    2. Закачка и распаковка файлов: latest-distr.7z. char.mt, charUni.mt.
    3. Автоматическое получение сетевых адресов (IP, DNS), и запись их в NETWORK.INI.

    И, может быть ещё что-то.

    Если интересует, могу попробовать сделать, но я только не знаю как распаковать образ .img, в пользовательском режиме.
    Вроде программа из пакета mtools может это делать, но как с ней работать, я так и не знаю. Пробовал, но ничего не вышло.

    P.S. Не на одном сайте, из мною просмотренных, об этом не говорится, но распаковать образ .img, оказывается можно программой 7z.
    The Glass is Always Half Full! :mrgreen:
  • Who is online

    Users browsing this forum: No registered users and 1 guest