LINUX.ORG.RU

Как установить графическую среду в armel систему ?

 , , ,


0

1

Как подружить directfb и arm машину ? Взял готовые бинарники directfb и пример для теста отсюда https://gist.github.com/prahveen/a58c63df5481c7e87570443a5bbbe355

Но на запуске получаю ошибку | DirectFB 1.4.11 | (c) 2001-2010 The world wide DirectFB Open Source Community (c) 2000-2004 Convergence (integrated media) GmbH ----------------------------------------------------------------

(*) DirectFB/Core: Multi Application Core. (2015-05-15 10:13) (!) DirectFB/core/system: No system found!

Подскажите, что надо сделать в системе, чтобы directfb стал работать.



Последнее исправление: alex841 (всего исправлений: 1)
Ответ на: комментарий от alex841

Все достаточно крупные дистрибутивы общего назначения работают на распространённых архитектурах. У них есть даже варианты работающе на других ядрах, не Linux, правда у них постоянно эксперементальный статус.

boowai ★★★★
()

Ооо, ты решил не идти простым путём и скомпилировал как юзают на системах с минимальными ресурсами типо роутера с 16Мб памяти. Ну можешь теперь заливать туда интересующие тебя пакеты в исходниках и компилировать в консоли. Не думаю, что добавлять графику как-то адекватно усилиям.
Поставь лучше Armbian какой-нибудь готовый и туда любое нужное ДЕ штатными средствами, проблем меньше будет. Хотя помню Raspbian пытался поставить как-то, у меня клава с мышкой сначала не заработали, потом я плюнул и воткнул малинку в розетку, заходел на неё по vnc, а что-то просто кросс-компилировал на большом компе из-за высокой разницы во времени компиляции.
И непонятно, нафиг ты собирал qemu-arm по статье 2010 года, когда он готовый есть давно в пакете qemu-arch-extra, который готовый есть в репозиториях и ставится за несколько секунд.

fehhner ★★★★★
()
Ответ на: комментарий от alex841

Так дебиан для х86 ведь

Он под разные архитектуры есть

я его и поставил

А это - хорошее решение, с сендой каши не сваришь

fehhner ★★★★★
()

При компиляции тебе ещё стоит определиться, будешь ли ты юзать gnueabi-hf, в системах armhf выше быстродействие (hardware float), т.к. операции с плавающей точкой выполняются аппаратно. Либо использовать с софтверной, что подходит для более простых и дешёвых процессоров.

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

А как мне правильно выбрать арм версию, у меня прога выдает на команду file ELF 32-bit LSB shared object, ARM, version 1 (ARM), dynamically linked, with debug_info, not stripped То есть мне нужна арм линукс, в которой по либам шаренным будет такая же информация. Я собирал не qemu-arm.exe, а ядро и файловую систему, чтобы запустить мой бинарник армовский там. Я скачал дебиан-армел iso образ, но как его ставить не нашел инструкций.

Пробовал armel собирать по этой инструкции https://gist.github.com/Liryna/10710751, но во время инсталяции происходит ошибка и потом система не хочет грузится. Если есть рабочие инструкции по инсталлу арм линукса сбрось, пожалуйста.

alex841
() автор топика

поправьте если я не прав, но ваша прога должна сама работать с фрайм буфером, вам же надо было обеспечить чтоб устройство существовало, и чтоб зависимости проги были удовлетворены. Кроме того ваша прога возможно имеет особенности запуска на подобных платформах, например проги написанные на Qt запускались с особым ключём (-qws), который запускал некий урезанный аналог иксов от Qt

Silerus ★★★★
()
Ответ на: комментарий от Silerus

Да, прога вызывает функцию directfbcreate, которая без графики не успешно выполняется. А как понять какую архитектуру арм надо для мой проги ELF 32-bit LSB shared object, ARM, version 1 (ARM) Понятно, что мне не подойдут 64 битные. Но вот armel или armhf, я собрал armel и на ней прога моя запустилась, то есть я так понял угадал и если бы собирал armhf, то прога бы не запустилась, правильно ?

alex841
() автор топика
Ответ на: комментарий от alex841

Какой на у тебя процессор? Ты, блин, самого главного не сказал.
Да, официальный debian есть и для armel. У меня вот рядом стоит и работает.

anonymous
()
Ответ на: комментарий от alex841

вот смотри, если ты выполнишь cat /dev/urandom >/dev/fb0 - то у тебя на экране появится психоделическая картинка, твоя прога также напрямую должна общаться с фраймбуфером и никакие посредники ей особо не нужны

Silerus ★★★★
()
Ответ на: комментарий от alex841

Но вот armel или armhf, я собрал armel и на ней прога моя запустилась, то есть я так понял угадал и если бы собирал armhf, то прога бы не запустилась, правильно ?

hf - это сборка с аппаратной возможностью работы с операциями с плавающей точкой. Т.к. ты изначально собрал ядро как eabi, hf бы под ним не запустилось, но почти во всех процессорах есть hf в наши дни, а это даёт очень существенный прирост производительности. Поэтому, если на девайсе armhf - лучше при компиляции к gcc добавлять параметр -mfloat-abi=hard

fehhner ★★★★★
()
Последнее исправление: fehhner (всего исправлений: 1)

какой у тебя arm?

или что за одноплатник (название)?

sqq
()
Ответ на: комментарий от anonymous

Процессор arm1176 на устройстве. Какую взять версию арм ?

Я тут попробовал https://people.debian.org/~aurel32/qemu/armel/ Запустил такой вариант qemu-system-arm -M versatilepb -kernel vmlinuz-3.2.0-4-versatile -initrd initrd.img-3.2.0-4-versatile -hda debian_wheezy_armel_desktop.qcow2 -append «root=/dev/sda1» Но там все либы определяются вот так ELF 32-bit LSB executable, Arm, version 1 (SYSV), for GNU/Linux 2.4.17, dynamically linked (uses shared libs), for GNU/Linux 2.4.17, stripped И моя прога не запускается, а надо чтобы либы определялись так ELF 32-bit LSB executable, Arm, version 1 (Arm), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), for GNU/Linux 2.2.0, stripped

Я не пойму как мне найти сборку, где не SYSV версия. Потому что я так понял либы SYSV не будут работать с бинарником от ARM, получаю segment fault типа ошибку там.

alex841
() автор топика
Ответ на: комментарий от alex841

Я пытаюсь выполнить пример этот https://gist.github.com/prahveen/a58c63df5481c7e87570443a5bbbe355 про directfb на моей arm машине с gui интерфейсом уже. Я собрал пример на x86 кали кросс компилятором и перенес его вместе с либами directfb на арм машину. Пробую так запускать, указывая путь к либам root@debian-armel:/home/user# LD_LIBRARY_PATH=/lib demo3 22 33 4 5 6 >> 1.txt Doing DirectFBInit (&argc, &argv) Done DirectFBInit (&argc, &argv) Doing DirectFBCreate (&dfb)

~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.4.11 |~~~~~~~~~~~~~~~~~~~~~~~~~~ (c) 2001-2010 The world wide DirectFB Open Source Community (c) 2000-2004 Convergence (integrated media) GmbH ----------------------------------------------------------------

(*) DirectFB/Core: Multi Application Core. (2015-05-15 10:13) (!) DirectFB/core/system: No system found! demo3.c <77>: (#) DirectFBError [DirectFBCreate (&dfb)]: No (suitable) implementation found!

Почему-то DirectFBCreate не успешно выполняется. Кто-нибудь знает что надо сделать, чтобы эта функция нормально создала dfb указатель.

alex841
() автор топика
Ответ на: комментарий от alex841

Ребята, кто-нибудь подскажет как directfb приручить ? Как эту ошибку исправить DirectFB/core/system: No system found!

alex841
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.