Перейти к содержанию
    

Начал заниматься embedded системами. Выбрал в качестве аппаратной платформы Kontron Xboard на PXA255 с TFT - панелькой 640х480. Портированный Kontron'ом Linux 2.4.19 заработал, но там нет MicroWindows (ради графики все и затевалось). Взял скомпилированную microwindows-arm_tag-0.90-6.arm.rpm из комплекта ELDK, проставил в загрузочный root на development машине вместе с glibc из того же ELDK (загрузка по сети bootp/tftp/nfs). Пытаюсь запустить на taget:

# nano-X

cannot bind to named socket

Хорошо в faq'ах нашел, что nano-X не может создать/удалить named socket "/tmp/.nano-X". У меня каталога /tmp просто не было. Создал.

Дальше поругалась на отсутствие fb0 и tty0

Создал символические ссылки:

# ln -s /dev/fb/0 /dev/fb0

# ln -s/dev/tty /dev/tty0

 

Теперь при запуске nano-X чистится экран и ничего. А при запуске с терминала на development машине пишет:

# nano-X

Error setting graphics mode: Invalid argument

Cannot initialiase screen

 

На сайте www.wicrowindows.org куча описаний API, но как запустить nano-X - практически ничего не нашел. Описаний ключей для запуска - нет, как установить режим - нет. Более того, скаченный оттуда сорц не захотел компилироваться - нет файла assert.h, string.h и так далее, куча ошибок при компиляции fblin8.c. Что интересно, это драйвер для 8bpp, а я в конфигурации указывал MWPF_TRUECOLOR565 для 16bpp. Получается скомпилированный microwindows может переключать режимы?

 

Помогите кто чем может. Заранее благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел по исходникам. Похоже nano-X при запуске опрашивает fb0 для определения разрешения/глубины цвета. Ошибка Error setting graphics mode: Invalid argument выскакивает на удаленной консоли при попытке перевести ее в графический режим.

Говорят к X-серверу надо ставить диспетчер окон. Какой обычно используется с nano-X?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Прежде чем пускать что-либо на embedded платформе следует отработать это на host'е.

2. Если nano-x работает поверх fb, то следует для начала настроить/проверить fb, например с помощью fbset

3. диспетчер окон можно поставить любой - вопрос только в количестве свободной памяти и мощности cpu, самый мелкий обычно - twm.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Прежде чем пускать что-либо на embedded платформе следует отработать это на host'е.

На Embedded намного проще. Иначе замучаешься host перенастраивать.

 

Удалось перекомпилировать microwindows. Почему-то компилируется только GCC из ELDK, причем где у него прописаны пути к системным хедерам, я не понял. Лежат они почему-то в /opt/eldk/arm/usr/lib/include.

Кроме того, в config пришлось установить SCREEN_PIXTYPE = MWPF_PALETTE (8bpp), иначе линкер выдавал ошибку линковки макросов PIXELVALTOCOLORVAL и COLORVALTOPIXELVAL в /engine/devdraw.c.

Еще в config пришлось отключить все функции, использующие libz.a, ибо линковщик не захотел линковать /usr/lib/libz.a хост-машины. А при попытке указать путь к /opt/eldk/usr/bin/libz.a, компилятор захотел ее собрать, но не нашел правил.

Путем вставления printf-ов в разные места srvmain.c, с перенаправлением вывода на ttS0, удалось выяснить, что не инициализируется мышь. Почему-то родной EPRINTF("Cannot initialise mouse\n") ничего не выводил.

Отключил мышь в конфигурации - вроде заработало. По крайней мере при запуске примера:

#nan0-X & sleep 1 ; mdemo

рисуются голубые пингвины (палитра 8bpp вместо 16bpp?), окно и органы управления. Но клавиатурный ввод идет непонятно куда. Программа mterm ругается, что не может создать ptyp0.

Что скажете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверить включена ли в ядре поддержка ptys и есть ли файл /dev/ptmx и директория /dev/pts

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что то вы не с того начали - на мой взгляд.

microwindows замечателеная вещь - там есть чудный документ на несколько страниц с описанием его архитектуры. там в частности сказано:

- наврех он поставляет два набора API на выбор

- снузу ему надо поставить 5 (вроде) функций для рисования - смысла PutPixel GetPixel DrawLine FillRect - уже могу что то напутать. На базе этих функций он сам рисует все остальное.

 

Т.е. если вы подсуните ему файл в котором реализованы требуемые ему фукнции (правильно прописав его в конфиграции) то он соберется и начнет рисовать.

 

т.е. конструкция такая

 

[примитивы] ->[микровиндовс] ->[API] -> [app]

 

Далее - в наборе поставляется несколько разных [примитивов] - в частности для fb0 - для работы над фреймбуфером. Эти [примитивы] могут облечить вам жизнь - так как, например, фреймбуфер есть много где. Но зато они и не оптимальны.

 

Т.е. у вас есть варианты

- поиметь нормальный фреймбуфер - такой какой ждет готовая уже прослойка [примитивов] в комплекте микровиндовса

- написать свою прослойку для него с этими 5 функциями.

 

что лучше и легче - зависит от вашего окружения. в свое время я делал свою прослойку - работало на ура. А затем для другой платы уже пускал на фреймбуфере.

кстати пока я колдовал с железякой - народ писал приложение на Хосте - где был развернут этот же микровиндовс - очень удобная штука.

 

Итак вам надо

- понять архитектуру микровиндовса - там все просто, но документ то прочитать придется

- разобраться с его конфиг файлом - рекомендую править его в редакторе, а не через гуи что там есть

- разобраться чего микровиндовс от вас ждет

- дать ему это

- по ходу разберетесь и с вводом выводом - как ему сказать что у него есть мышка.

 

Рекомендую придерживаться данного плана

Если есть вопросы - спрашивайте, но сейчас у меня не развернуто ничего реального.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посоветуйте, какой API применять? APIW (Win32) как-то привычнее.

 

А мышка мне без надобности - в устройстве только кнопки будут.

 

Посмотрел по исходникам - такое впечатление, что управление окнами с клавиатуры не предусмотрено, кроме ESC - выход. Так ли это?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посоветуйте, какой API применять? APIW (Win32) как-то привычнее.

 

А мышка мне без надобности - в устройстве только кнопки будут.

 

Посмотрел по исходникам - такое впечатление, что управление окнами с клавиатуры не предусмотрено, кроме ESC - выход. Так ли это?

 

если win32 привычнее - конечно его и берите. у нас он же был - потому что программист с винловса был - он ловка освоил и начал на микровиндовсе колбасить.

по верхнему API много не могу сказать - я с ним практически не разбирался

 

кнопки... не помню уже - нокнопки были точно - причем была система окон... там вроде как то информировалось система что нажималась внопка - а слой работающий с самими кнопками сам писал. что то там простое было - вот и не запомнилось.

в том же документе должно быть как ввод нажатий/курсора обслуживать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что то вы не с того начали - на мой взгляд.

microwindows замечателеная вещь - там есть чудный документ на несколько страниц с описанием его архитектуры. там в частности сказано:

- наврех он поставляет два набора API на выбор

- снузу ему надо поставить 5 (вроде) функций для рисования - смысла PutPixel GetPixel DrawLine FillRect - уже могу что то напутать. На базе этих функций он сам рисует все остальное.

Итак вам надо

- понять архитектуру микровиндовса - там все просто, но документ то прочитать придется

- разобраться с его конфиг файлом - рекомендую править его в редакторе, а не через гуи что там есть

- разобраться чего микровиндовс от вас ждет

- дать ему это

- по ходу разберетесь и с вводом выводом - как ему сказать что у него есть мышка.

 

Никто не пробовал, скажем в СBuilder6 для конвы написать PutPixel GetPixel DrawLine FillRect, прикрутить исходники микровиндоус и файлы примерчика и компильнуть всё это.

Может посоветуете более лёгкий способ разобраться какой исходник к чему относится.

Просто когда я открыл проект микровиндоус то увидел кучу исходников и make- файлов к ним. Кок известно под виндой make- файлы не популярны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, это у меня только неполучается зайти на этот сайт

http://www.wicrowindows.org/ или у других тоже :(

может ктонибудь сбросит nano-x на мой адрес. unichorn [ тузик ] rambler тчк ru.

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очепятка, должно быть www.microwindows.org

 

UPD: Действительно не ходит :( Ждите, пока поднимут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нее результат тотже :(

Понятно.

У меня толко что открылось. Сейчас на мыло вышлю.

 

Так еще поробуйте

ftp://microwindows.censoft.com/pub/microwindows/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное спасибо всем откликнувшимся.

 

Так открылось.

ftp://microwindows.censoft.com/pub/microwindows/

 

Письмо получил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После долбежа с конфигуратором всё-таки нано-х компильнулось под asp-линуксом вместе с примерами (запускал demo.sh и другие сценарии - прикольно). Чтобы компильнулось и заработало под линуксом надо компилить с драйверами для X-11 (а не как с фрэймбуфером - по умолчанию).

Под виндой-же пока поставить выше названный эксперимент пока не получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...