Page 5 of 9

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

Posted: Sat Apr 14, 2018 9:08 pm
by tsdima
Оказывается есть такая интересная штука - strace, трассирует системные вызовы. Правда её через sudo надо запускать.
JohnXenox, а что выдаст у тебя такая команда:

Code: Select all

sudo strace -e trace=process ./kex /cd0/1/kolibrios/games/mun/mun
?

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

Posted: Sat Apr 14, 2018 10:55 pm
by JohnXenox
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 +++

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

Posted: Sun Apr 15, 2018 2:20 pm
by tsdima
JohnXenox wrote:Если папку /kolibrios разместить в папке /root, то эту папку видит только Eolite и Shell, а другие файловые менеджеры эту папку не видят.
А, я понял, другие менеджеры используют только список, возвращаемый функцией 70.1 при чтении папки "/", а Eolite проверяет ещё и наличие папки "/kolibrios". При чтении папки "/" я возвращаю только разрешённые устройства, а при открытии файлов и каталогов такой проверки нет. Короче, это не баг, это фича :)
JohnXenox wrote:Вот вывод
Честно говоря, я не понимаю, что происходит. Вроде fsbase установилось без ошибки (arch_prctl вернула ноль). Хотя, это вроде не мой вызов (адрес другой).
Интересно, как сказать strace-у, чтобы он и за дочерними процессами следил?

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

Posted: Tue Apr 17, 2018 12:06 pm
by tsdima
Kopa wrote:/root/RD/1/ каталог поместил в директорию программы и дополнительно img-образ подключил.
Можешь попробовать новую версию?
Только каталог /root/RD/1 надо не в директории программы делать. В каталоге пользователя (/home/<user>) нужно создать каталог .kex (именно с таким именем - точка kex), а вот уже туда поместить и /root/RD/1, и шрифты (char.mt, charUni.mt).

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

Posted: Tue Apr 17, 2018 1:50 pm
by Kopa
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

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

Posted: Tue Apr 17, 2018 5:17 pm
by tsdima
Запускается - уже хорошо :)
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:Консольный Тетрис не играбелен
Это какой?

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

Posted: Tue Apr 17, 2018 5:46 pm
by Kopa
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 и может перезагрузки компьютера),
но какие то вылеты исключений, всё же, бывают.

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

Posted: Tue Apr 17, 2018 7:25 pm
by JohnXenox
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

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

Posted: Tue Apr 17, 2018 8:04 pm
by tsdima
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. Ну и как быть? Обе пробовать? Или как-то версию проверять?

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

Posted: Tue Apr 17, 2018 8:17 pm
by Kopa
tsdima wrote:
Kopa wrote:P.S. PIG в KolibriOS запускается.
А ты точно ночную сборку проверял?
...
Похоже так и есть т.к. запустилась вообще из стороннего каталога :)
GrafX2 запускается, но выйти из неё как? И режим запуска 320х240 (всё очень мелко)

P.S. А шрифты в KFAR (и других менеджерах) настраиваются?

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

Posted: Tue Apr 17, 2018 9:12 pm
by tsdima
Kopa wrote:GrafX2 запускается, но выйти из неё как? И режим запуска 320х240 (всё очень мелко)
На тулбаре есть кнопка QUIT. Рядом кнопка с дисплеем, выдаёт список разрешений. Приятные диалоги.
Kopa wrote:P.S. А шрифты в KFAR (и других менеджерах) настраиваются?
Нет вроде бы. Или это вопрос про эмулятор? В эмуляторе точно ничего такого нет.

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

Posted: Tue Apr 17, 2018 9:20 pm
by Leency
> GrafX2 запускается, но выйти из неё как?
Alt+F4 ?

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

Posted: Tue Apr 17, 2018 9:20 pm
by JohnXenox
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

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

Posted: Tue Apr 17, 2018 10:06 pm
by 0CodErr
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 просто нужно заменить шрифт в папке с программой.

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

Posted: Wed Apr 18, 2018 1:32 am
by JohnXenox
Вообще, я думаю, мелкую работу можно сбросить на 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.