p=plot()을 사용하면 IDL이 종료됩니다.

게시판 IDL Q&A p=plot()을 사용하면 IDL이 종료됩니다.

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2937 Reply
      orion03
      회원

      지금 CentOS 7에서 Linux용 IDL8.2.3버전을 설치했습니다.
      몇몇 라이브러리 파일을 설치 후에 정상적으로 설치가 완료되어 p=plot()을 실행해봤는데
      컴파일하고 실행을 누르면 터미널상에 에러 메세지와 함께 IDL이 종료됩니다.
      아래는 그 에러 메세지입니다.
      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # SIGSEGV (0xb) at pc=0x00007fe29b31d5a0, pid=7662, tid=140615806727936
      #
      # JRE version: 6.0_17-b04
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (14.3-b01 mixed mode linux-amd64 )
      # Problematic frame:
      # C [libidl.so.8.2+0x3925a0] IDL_GetScratch+0x4b
      #
      # An error report file with more information is saved as:
      # /home/lab610/hs_err_pid7662.log
      #
      # If you would like to submit a bug report, please visit:
      # http://java.sun.com/webapps/bugreport/crash.jsp
      # The crash happened outside the Java Virtual Machine in native code.
      # See problematic frame for where to report the bug.
      #

      구글로 검색하여 아래 링크에 나온 방법으로 so파일을 설치해보았습니다.

      http://www.harrisgeospatial.com/Support/HelpArticlesDetail/TabId/219/ArtMID/900/ArticleID/4576/4576.aspx
      http://wiki.xkyle.com/IDLDE_on_RHEL6.html
      (대충 설명하자면 idl설치폴더 안에 있는 bin.linux.x86_64 폴더에다가 RHEL4용 libstdc++.so파일들을 넣는 내용입니다.
      하지만 제 컴퓨터에는 저 폴더내에만 없었을 뿐, 이미 최신 libstdc++관련 패키지가 설치되어 있었습니다.
      새로받은 so파일을 넣든, 원래 설치되어 있던 최신 so파일을 넣든 결과는 같았습니다. 심지어 둘다 넣어보기도 했습니다만…)

      그 결과 위와 같은 메세지 위에 아래의 메세지 두줄이 추가되어 나올 뿐입니다.

      libGL error: unable to load driver: swrast_dri.so
      libGL error: failed to load driver: swrast

      물론 swrast관련 파일들도 모두 제 컴퓨터 내에 있었습니다.
      $ locate swrast
      /usr/lib64/dri/kms_swrast_dri.so
      /usr/lib64/dri/swrast_dri.so

      도대체 무엇이 문제인지 모르겠습니다;; 에러메세지에 나온 libidl.so.8.2 파일도 bin.linux.x86_64 폴더안에 잘 있습니다.
      자바는 최신 것으로 업데이트를 했고 버전은 아래와 같습니다
      openjdk version “1.8.0_101”
      OpenJDK Runtime Environment (build 1.8.0_101-b13)
      OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

      java -version으로 보는것과 에러메세지에 나온 자바가 다르길래, 임의로 사용되는 자바를 1.8.0으로 설정도 해보았고,
      1.7.0버전을 깔아서 사용도 해보았습니다만… 항상 저 문제가 발생합니다.
      애당초 CentOS에선 쓸수 없는건지.. 아니면 루트아래에 설치하지 않아서 그런건지…
      같은 방식으로 우분투에 깐 IDL은 잘 작동하고 있습니다. (저는 home폴더 아래에 설치했습니다.)
      심지어 우분투 컴퓨터에서 ssh로 CentOS 컴퓨터에 접속해서 IDL을 사용하면 정상작동합니다….?!
      대체 무엇이 잘못된 걸까요?

    • #2938 Reply
      Jonghyuk
      회원

      정확한 원인을 진단하기는 어렵지만, OpenGL 과 관련된 Driver 설정이 문제가 있다고 보여집니다. 이 문제는 사실 일반적으로 해결하기는 쉽지 않습니다. Video 처리장치 (예를 들어 GeFORCE나 Radeon 등)가 OpenGL 리눅스 표준을 잘 지원하는지, 또는 이에 맞는 드라이버가 설치된 것인지 등을 파악하는 것이 쉬운일이 아닐 수 있습니다. 만일 현 상황이 이 문제라면, 이는 CentOS와 그래픽카드의 문제입니다.
      HW가 같은 것인지는 모르겠으나 현재 설치하신 Ubuntu의 경우에는 이 문제가 없거나, 아니면 사실상 그래픽카드가 Native OpenGL을 지원 안하는 모드로 운영체제 설정이 되어있을지도 모릅니다. 대부분의 최신 그래픽카드들이 Linux 지원에 당장은 소홀한 상태로 출시되는 것이 현실입니다(Windows 위주로 개발되어 출시하고 시간이 지나면서 Linux 호환도 차차 맞추어 가게 되는 것 같습니다). Ubuntu의 경우 출시 주기가 6개월 정도이기 때문에, 출시 주기가 수년이 되는 CentOS 보다는 새로운 하드웨어에 대한 적응성도 뛰어나 보입니다.
      – 그래픽카드 드라이버 문제라는 확신은 없습니다만, 그래 보입니다.
      – 이 경우 그래픽카드 드라이버를 잘 설정하는 방법을 찾는 것은 – 운영체제가 알아서 잡아주지 않는다면 – 쉬운 일은 아닌 것 같습니다.
      – 이 상황이 맞다면, IDL에서 OpenGL 렌더링을 HW가 직접하지 않고 SW가 하게 하면 쉽게 해결되는 경우가 대부분입니다.

      방법은 아래와 같습니다.

      – IDLDE(Workbench)의 메뉴에서 창-> 환경설정으로 들어갑니다.
      – 환경설정 창에서 좌측에 IDL 항목이 있고 그 하위에 그래픽 항목이 있습니다. 이를 선택합니다.
      – 이제 우측을 보면, “개체 그래픽의 렌더링 방법”이 있는데, 디폴트는 하드웨어로 선택되어 있습니다. 이것을 소프트웨어로 선택하고
      – “적용” > “확인” 버튼을 눌러 빠져나옵니다.
      – IDL을 다시 시작합니다.

      이후 New Graphics를 사용하면 잘 될 가능성이 높습니다.

      또는 아예 워크벤치(IDLDE)로 들어갈 수 없는 환경인 경우,
      개인 홈디렉토리 아래의 IDL 설정파일에 이 내용을 추가하면 됩니다.
      ~/.idl/idl/pref-10-idl_8_x-unix/idl.pref 파일을 열어 보면 #으로 시작되는 주석문만 일단 있을 것입니다. 맨 아래에 다음 내용을 추가하십시오.

      IDL_GR_X_RENDERER : Software

      몇줄을 띄는 지 몇 칸을 띄는지는 별로 중요하지 않습니다.

1 답변 글타래를 보이고 있습니다
'p=plot()을 사용하면 IDL이 종료됩니다.'에 답변달기
글쓴이 정보: