반응형

필요 빌드 패키지 설치

$ sudo apt-get install -y build-essential

OpenGL 및 Util 설치

$ sudo apt-get install freeglut3-dev libglu1-mesa-dev mesa-common-dev mesa-utils

설치 및 버전 확인

$ glxinfo | grep OpenGL

X11 환경 및 테스트

X11 환경에서 GLX 확장을 이용하여 OpenGL 3D Graphic을 확인할 수 있음

$ glxgears

아래와 같은 로그가 출력됨

22493 frames in 5.2 seconds = 4340.787 FPS
15376 frames in 5.0 seconds = 3067.526 FPS
14238 frames in 5.2 seconds = 2729.739 FPS
반응형
반응형

Mac에서 XQuartz로 X11에서 아래와 같은 오류가 발생했다.
구글링에서 확인해서 아래와 같이 세단계로 수정하여 정상 동작하는 것을 확인했다.

오류 내용

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  34
  Current serial number in output stream:  33

 

 

1. "libGL error: No matching fbConfigs or visuals found" 오류

$ echo "export XDG_RUNTIME_DIR=/tmp/runtime-$USER" >> ~/.bashrc

2. "libGL error: failed to load driver: swrast" 오류

$ echo  "export LIBGL_ALWAYS_INDIRECT=1" >> ~/.bashrc

3. "X Error of failed request: GLXBadContext ... " 오류

3.1 defaults read org.xquartz.X11 확인(0으로 되어 있음)

"enable_iglx" = 0;

아래 명령어로 1로 변경해줌

defaults write org.xquartz.X11 enable_iglx -bool true

 

4. Reload 및 재시작

4.1 Bash Resource File Reload

$ source ~/.bashrc

4.2 XQuartz 종료 및 재시작

 

 

반응형
반응형

Ubuntu GUI 로그인에서 Password가 틀리지 않았음에도 계속 로그인 창으로 반복해서 로그인 되는 현상이 여러번 발견함
구글링해서 아래와 같은 방법으로 해결했으나 다행히 CLI 모드로 진입한 것이 아닌 SSH연결의 CLI가 있어서 해당 Session으로 3번 이후의 단계로 해결함

1. [Ctrl + Alt + F3] 으로 CLI 모드 진입 or SSH/Telnet 등 Terminal 이용

2. ID, PW 입력 후 로그인

3. sudo apt-get purge lightdm

4. sudo apt-get install lightdm

5. sudo dpkg-reconfigure lightdm

6. lightdm 선택

7. sudo reboot

반응형
반응형

1. 필요 패키지 설치

 # sudo apt-get install doxygen graphviz

 

2. Doxy File 생성

# doxygen -g doxyoptfile

 

3. Doxy File Option 변경

PROJECT_NAME                 = DymLibrary
PROJECT_NUMBER            = 0.01
OUTPUT_DIRECTORY         = ./doxygen_doc
CREATE_SUBDIRS              = YES
MULTILINE_CPP_IS_BRIEF = YES
EXTRACT_ALL                      = YES
EXTRACT_PRIVATE             = YES
EXTRACT_STATIC                = YES
RECURSIVE                          = YES
SOURCE_BROWSER           = YES
GENERATE_TREEVIEW       = YES
HAVE_DOT                            = YES
UML_LOOK                            = YES
CALL_GRAPH                        = YES
CALLER_GRAPH                   = YES
DOT_PATH                             = /usr/bin/dot
DOT_GRAPH_MAX_NODES    = 100

 

4. Doxy File Option으로 Doxygen 실행

# doxygen ./doxyoptfile

 

5. index.html 파일로 결과물 확인

반응형
반응형

현재 활성화된 컨테이너 확인

# docker ps


모든 활성화된 컨테이너 확인

# docker ps -a


컨테이너 삭제
방법 1 :

# docker rm {container id or container name}

방법 2 :

# docker container rm {container id or container name}

 

이미지 리스트

# docker images

 

이미지 삭제

# docker rmi {image id or image name}


컨테이너 삭제 까지 일괄 동작

# docker rmi -f {image id or image name}


이미지 생성(빌드)
방법 1(정해진 이름으로 생성)

# docker build -t {Image Name} .

방법 2(Random 이름으로 생성)

# docker build .


Container 생성

# docker run -it --name {container name} -v {Local Path}:{To be mounted host path} {Container Name} {Shell ex./bin/bash}


중지된 Container 재시작

# docer start {container name or id}


Container 재접속

# docker attach {container name or id}



반응형
반응형

 

isp download

# wget https://www.waveshare.com/w/upload/e/eb/Camera_overrides.tar.gz 
tar zxvf Camera_overrides.tar.gz
sudo cp camera_overrides.isp /var/nvidia/nvcam/settings/ sudo
chmod 664 /var/nvidia/nvcam/settings/camera_overrides.isp
sudo chown root:root /var/nvidia/nvcam/settings/camera_overrides.isp

 

 

 

test command

 

* IMX219-77, IMX219-160, IMX219-120, IMX219-160, IMX219-160IR, IMX219-170, IMX219-200

# DISPLAY=:0.0 gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=3280, height=2464, format=(string)NV12, framerate=(fraction)20/1' ! nvoverlaysink -e

 

 

출처 : waveshare.com

반응형
반응형





출처 : https://services.github.com/on-demand/downloads/subversion-migration/

반응형
반응형




1. SVN Repository Clone 


# git svn clone <Svn Repository Base URI> --trunk=<Trunk Path> --branches=<Branches Path> --tags=<Tags Path>

 

 실제 동작은 SVN respotiroy에 대하여 "git svn init"과 "git svn fetch"를 순서대로 실행함.


 User Information에 대한 적용을 같이 할 경우 1.3 참고 


 주의 : git-svn은 external은 supporting하지 않음. 


 1.1 <SVN Repository URI> 

     Base SVN Respository 경로

 1.2 -T<Trunk Path> -b<Branches Path> -t<Tags Path>(or --trunk=<trunk path> --branches=<branch path> --tags=<tags path>)

     Base Respository에서 각 Clone할 경로 지정, 필요한 경로를 선택 및 지정하면 되며 "

-s(--stdlaylout)"를 옵션을 이용할 경우 표준 형식을 이용할 경우 사용할 수 있음.

ex) git svn clone <SVN Repository Base URI> -svn

  주의) Trunk, Branch, Tag 지정 없이 Standard Layout이 아닌 Repository를 Clone할 경우 오랜 시간동안 Log들만 가져오고 실제 Repository는 Empty가 되는 경우가 있음.


 1.3 User 파일 적용 

 SVN의 user ID와 git에서 사용되는 user information을 matching하기 위해 user파일을 생성하고 이를 clone시 history에 적용할 수 있다. 

 # svn log ^/ --xml | grep -P "^<author" | sort -u | \ perl -pe 's/<author>(.*?)<\/author>/$1 = $1<$1\@compant\.com>/' > users.txt


 아래와 같이 하여 history의 "user"라는 user ID를 "user = user <user@company.com>" 형식으로 일괄 변경 시켜 clone시 적용 할 수 있다.

# git svn clone <Svn Repository Base URI> -T <Trunk Path>-b <Branches Path> -t <Tags Path> --authors-file=user.txt


2. git에서 Repository 확인

# git branch -a

 

  

3. Git에서 SVN Repository로 Commit 수행하기


  3.1 Git Local Commit

# git commit -am <Description>


  3.2 SVN Server로 Push(여러개의 Local Commit을 서버로 Push)

# git svn dcommit


 

4. Git에서 SVN Repository의 변경사항 받아오기

# git svn rebase


  


출처 : https://git-scm.com/book/ko/v1/Git%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EC%A0%84%ED%95%98%EA%B8%B0-Git%EA%B3%BC-Subversion

  

반응형
반응형



1. Vuldle

call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

Plugin 'The-NERD-tree'

Plugin 'ctrlpvim/ctrlp.vim'

call vundle#end()



2. Function Mapping
map <F2> :ToggleBufExplorer<CR>
map <F7> :NERDTreeToggle<CR>


3. Tab and Space Optimize 

highlight ExtraWhiteSpace ctermbg=red guibg=red    "Extra White Space 빨간색 표시

match ExtraWhiteSpace /\s\+$/                            

set list listchars=tab:→\                                        "Tab 문자 화살표 표시


4. CtrlP 옵션

let g:ctrlp_custom_ignore = {

  \ 'dir':  '\v[\/](\.(git|hg|svn)|\_site)$',

  \ 'file': '\v\.(exe|so|dll|class|png|jpg|jpeg|o)$',

\}


let g:ctrlp_by_filename = 1

let g:ctrlp_regexp = 1

let g:ctrlp_match_window = 'bottom,order:btt,min:1,max:100,results:100'

let g:ctrlp_max_files = 0


let g:ctrlp_working_path_mode = ''


let g:ctrlp_max_files = 0


let g:ctrlp_working_path_mode = 0


set wildignore+=*/tags


5. ETC...
set nu
set softtabstop=4
set tabstop=4
set shiftwidth=4
set expandtab
set hls
syntax on





VIM이 젤조음


반응형
반응형

find를 이용한 방법

filename을 찾아서 "Before String"을 "After String"으로 일괄 치환.

  # find . -name "<Filename>" | xargs sed -i 's/<Before String>/<After String>/g'

 

rename을 이용한 방법

파일명 맨 앞에 statement라는 문제 붙이기

  # rename -v 's/^/statement/g' *

 

파일명 맨 뒤에 statement라는 문제 붙이기

  # rename -v 's/$/statement/g' *

반응형

+ Recent posts