SMP8654 Embedded 관련 DirectFB 문의

kleeck의 이미지


안녕하세요
SMP8654 보드를 이용하여 여러가지를 제작중에 있습니다.
현재 문제가 되고 있는 것은 SMP8654 보드에는 DIRECTFB가 올라가져 있어서 QT를 통하여 만들면
DIRECTFB를 통해서 화면에 뿌려주게 됩니다.

하지만 QT를 만들어서 DIRECTFB/BIN 폴더 안에 있는 예제프로그램들을 QProcess를 통하여 바이너리를 바로
실행을 하였으나 DIRECTFB가 초기화가 않됐다면서 바로 Out of memory 에러를 유발하면서 실행이 않됩니다.

그렇다고 시그마디자인에서 제공하는 SDK인 플레이어를 이용하면은 이것역시 UI를 죽여버리고 초기화가 되어서
동영상만을 실행을 시켜버리는 일이 발생합니다.

여기에 대한 해결방법이 없을까 합니다.

QT로 만들어서 시그마디자인에서 제공하는 SDK를 실행시킬때 QT UI를 않죽이고 하는 방법이 알고 싶습니다.

zippiest의 이미지

아 저랑 같은 고민을 하시는군요....

저도 8654에서 QT를 이용하여 UI 를 만들고 UI 에서 시그마디자인에서 제공하는 동영상 플레이어를 실행시켜려고 하는데...

답변이 아니어서 죄송합니다..

런맨의 이미지

아 저도 잡담이라서 죄송한데...반갑네요..
시그마 디지인 쓰시는 분들을 여기서 보니.^^전 8621나 씁니다...
전 usb 카피가 안되서 고생중이네요.^^

인생은 도박이다.

poplinux의 이미지

프레임 버퍼는 올렸나요?

제가 볼 땐 프레임 버퍼 드라이버가 안 올라갔거나 DCC_init() 호출할때 init_display() 해서 프레임버퍼 영역이 초기화 된 것 같은데요?

========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux

임베디드 리눅스 관련 프리렌서 지향

tobetter의 이미지

전에 8634에 Qt를 올려서 작업을 해 본적이 있습니다.
물론 8634에도 DirectFB가 포팅이 되어져 있죠.

DirectFB를 이용하면 하드웨어 그래픽가속기를 수월하게 이용할 수 있다는 장점은 있습니다만,
문제는 Qt는 Multiprocess가 가능하도록 설계되어 있는데,
DirectFB, 시그마디자인에서 포팅한 상태는 Multiprocess지원이 되지 않은 상태였습니다.
기본적으로 시그마디자인에서 제공하는 DirectFB 소스는 Single Application Core로 컴파일될 겁니다.
Qt를 쓰기 위해서는 Multi Application Core로 컴파일되어야 하고,
Fusion이라고 하는 라이브러리, 커널 모듈을 사용해야 합니다.

DCC_init()에서 이미 초기화된 걸 다시 초기화하려니까 메모리문제의 에러메시지 보여주고 죽었습니다.
이런 부분이 해결이 되어야 하는데, 저도 해결하려고 노력하다가 너무 꼬이고 복잡해지기도 했지만
노력한 시간에 비해서 속도나 안정성이 만족스럽지 못했습니다.
(실력이 부족해서 해결하지 못한 것이겠죠)
그리고, 차후에 DirectFB가 업데이트되어지면 패치하는데도 쉽지 않겠단 생각이 들었습니다.

결론은 그냥 DirectFB를 사용하지 않고 Qt에서 framebuffer를 바로 열어서 사용했습니다.
속도는 생각하기 나름입니다만, 그다지 나쁘지 않았습니다.

kleeck의 이미지


안녕하세요
일반 프레임버퍼라고 말씀하신다면은 보통 SMP8654에서는 mambofb 라는 것이 일반 리눅스 프레임버퍼 입니다만
리눅스 맵핑만 뜨면서 화면에 디스플레이는 되지가 않네요

이게 실행이 되는건지 않되는건지는 몰라도 QT 같은 경우에는 아예 일반 프레임버퍼로는 실행이 되지가 않습니다.
님께선 어떻게 모듈이나 그런걸 따로 올리셨는지요 커널에서는 Support Frame buffer 를 빌드를 시켰습니다만
혹시 님께선 모듈로 올려주셨나요??

tobetter의 이미지

저도 Framebuffer관련된 드라이버, 시그마디자인에서 제공하는, 는 올렸었고요.
Qt쪽 linuxfb관련된 소스쪽에서 /dev/fb0를 열어서 초기화 하는 부분을 수정했습니다.
제가 소스를 가지고 있지 않아서 직접적으로 알려드릴 수는 없고요,
MRUA예제들 중에서 Framebuffer를 열어서 동그라미 여러색으로 화면에 보여주는 샘플 있을 겁니다.
그 소스 이름도 생각이 나지 않습니다만,
그 소스에서 /dev/fb0열어서 초기화 하는 부분을 차근차근 Qt쪽하고 비교하면서 보시면
고쳐야 하는 부분을 발견하게 되실 겁니다.
mmap하는 부분이던가 그럴 것입니다.
그 부분 처리해서 Qt 다시 컴파일하시면, 일반적으로 얘기하는 linuxfb열어서
Qt동작시키는 것을 보실 수 있을 겁니다.

제 경험으로는 SMP8634에서 Qt의 wiggly라고 하는 샘플을 돌려보면,
DirectFB를 이용한 Qt보다 linuxfb를 이용한 Qt가 동작이 좀 더 빨랐습니다.
SMP8654는 어떤지 모르겠습니다.

kleeck의 이미지

현재 확인한 봐로는
동그라미 여러색 보여주는 샘플은 fb_test 라는 샘플 어플리케이션 입니다.
거기 소스와 qt쪽은 qscreenlinux.fb_qws.cpp 쪽에서 비슷한 부분의 mmap 부분을 찾았습니다.

그렇다면 소스를 수정을 해야 하는데 fb_test 쪽을 기준으로 그대로 바꿔주면 될까요?

단지 그쪽 mmap 부분만 바꿔주면은 원래대로 시그마디자인에서 제공하는 em86xxxfb 프레임버퍼를
일반 /dev/fb0로 잡아서 사용하면은 되는건가요?

아참 그리고 tobetter님 많이 귀찮게는 않할께요..
부디 연락이 가능하신 mail 주소나.. 메신저 아이뒤좀 부탁드리겠습니다.
tobetter님의 도움이 절실히 필요하네요.. 간단히 조언 정도만 받고자 합니다.

tobetter의 이미지

메모리 Alignment관련해서 수정해주는 부분인데,
그 부분 수정하시고 fb드라이버 잘 설정해서 올려주시면 Qt가 동작할 겁니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.