'linux'에 해당되는 글 32건

  1. 2022.11.03 gst와 omx IL의 관계
  2. 2022.10.04 fs.protected_regular
  3. 2022.09.10 KMS, DRM, DRI 에 대한 개요
  4. 2022.09.10 wayland, x-server 관련
  5. 2022.09.10 GPL ko(kernel object) 배포 관련
  6. 2022.09.10 GPL 관련 tip
  7. 2022.07.05 custom vimrc
  8. 2022.06.30 git stash 참조
  9. 2021.07.08 timer example
  10. 2019.11.21 Network interface Restart 시 주의 사항
linux2022. 11. 3. 21:58



gst-openmax
openMAX IL
https://freedesktop.org/wiki/GstOpenMAX/

openMAX
https://www.khronos.org/api/openmax/il


gstreamer1

https://medium.com/may-i-lab/gstreamer-gstreamer-%EA%B8%B0%EC%B4%88-da5015f531fc


gstreamer2
https://gstreamer.freedesktop.org/features/index.html

GStreamer can bridge to other multimedia frameworks in order to reuse existing components (e.g. codecs) and use platform input/output mechanisms:

Linux/Unix: OpenMAX-IL (via gst-omx)
Windows: DirectShow
Mac OS X: QuickTime

 


GStreamer + OpenMAX-IL
https://www.khronos.org/files/openmax/whitepapers/OpenMAX_IL_with_GSstreamer.pdf

'linux' 카테고리의 다른 글

fs.protected_regular  (0) 2022.10.04
KMS, DRM, DRI 에 대한 개요  (0) 2022.09.10
wayland, x-server 관련  (0) 2022.09.10
GPL ko(kernel object) 배포 관련  (0) 2022.09.10
GPL 관련 tip  (0) 2022.09.10
Posted by easy16
linux2022. 10. 4. 21:13

 

root로 충분한 권한을 가졌음에도 파일에 대한 write permission이 없는 경우가 있다.

 

 

 

su max
touch /tmp/test.txt
chmod 777 /tmp/test.txt

su root
chown max:root /tmp/test.txt

# ls -l /tmp/test.txt 
-rwxrwxrwx 1 max root 0 26. Feb 12:08 test.txt

# echo "foobar" > /tmp/test.txt
bash: /tmp/test.txt: Permission denied

 

 

 

Disallows open of FIFOs or regular files not owned by the user in world writable sticky directories, unless the owner is the same as that of the directory or the file is opened without the O_CREAT flag. The purpose is to make data spoofing attacks harder. .

 

 

 

검색을 해보니 fs.protected_regular 값에 따라 동작이 달라질 것으로 보인다.

sysctl fs.protected_regular=0

 

 

$ su - root
# sysctl fs.protected_regular
fs.protected_regular = 1
# cd /
# mkdir test
# chmod 1777 test
# su - otheruser
$ echo hello >/test/somefile
$ exit
logout
# cat /test/somefile
hello
# ls -lah test/somefile
-rw-r--r-- 1 otheruser otheruser 6 Feb 26 17:21 test/somefile
# echo root >>test/somefile
-bash: test/somefile: Permission denied
# sysctl fs.protected_regular=0
fs.protected_regular = 0
# echo root >>test/somefile
# cat /test/somefile
hello
root
# sysctl fs.protected_regular=1
fs.protected_regular = 1
# echo root >>test/somefile
-bash: test/somefile: Permission denied
# chmod 0777 /test/
# echo root >>test/somefile
# cat test/somefile 
hello
root
root

 

하기 링크 참조..


https://unix.stackexchange.com/questions/691441/root-cannot-write-to-file-that-is-owned-by-regular-user
https://unix.stackexchange.com/questions/503111/group-permissions-for-root-not-working-in-tmp

'linux' 카테고리의 다른 글

gst와 omx IL의 관계  (0) 2022.11.03
KMS, DRM, DRI 에 대한 개요  (0) 2022.09.10
wayland, x-server 관련  (0) 2022.09.10
GPL ko(kernel object) 배포 관련  (0) 2022.09.10
GPL 관련 tip  (0) 2022.09.10
Posted by easy16
linux2022. 9. 10. 12:29

 

아래 사이트에 설명을 다독할 필요가 있음.

특히나  /dev/fbdev 와 /dev/dri/cardX를 사용하는 것에 대한 차이는 기억해 두자.

 

 

https://prographics.tistory.com/1 

'linux' 카테고리의 다른 글

gst와 omx IL의 관계  (0) 2022.11.03
fs.protected_regular  (0) 2022.10.04
wayland, x-server 관련  (0) 2022.09.10
GPL ko(kernel object) 배포 관련  (0) 2022.09.10
GPL 관련 tip  (0) 2022.09.10
Posted by easy16
linux2022. 9. 10. 12:27

 

 

Architecture만 확인하면 wayland는 x-server 및 compositor를 합한 구조로 더 나은 성능을 보여줄 것으로 보인다.

하지만 ubuntu user들의 글을 보면 wayland가 나온지 10여년이 지났으나 여전히 x-server에 비해 더 나은 성능을 보여주지는 못하고 있다는 의견이다. (기존 Library 및 GPU에 대한 지원등 넘어야할 산이 많은 듯 보인다.)

현재 최신 ubuntu에는 x-client를 지원하는 xwayland가 default 로 적용되어 있다고 한다.

 

참조  : 

https://wayland.freedesktop.org/architecture.html

https://wiki.ubuntu.com/Wayland

'linux' 카테고리의 다른 글

fs.protected_regular  (0) 2022.10.04
KMS, DRM, DRI 에 대한 개요  (0) 2022.09.10
GPL ko(kernel object) 배포 관련  (0) 2022.09.10
GPL 관련 tip  (0) 2022.09.10
custom vimrc  (0) 2022.07.05
Posted by easy16
linux2022. 9. 10. 12:20

 

 

 

Q. 디바이스 드라이버 모듈(ko 파일)로 배포할 경우 소스를 오픈해야하나요?

A. 리눅스 기본 커널 인터페이스를 이용하여 커널 모듈을 100% 자체 개발한 경우라면 해당 드라이버를 독점 코드라고 주장할 수 있다고 판단됩니다.

* 라이선스는 Proprietary 적용
다만, 리눅스 커널 디바이스 드라이버의 GPL 적용 이슈는 아직도 논의가 진행중인 내용으로 명확하게 GPL의 적용을 받는다 안받는다라고 답변 드리기에는 어려움이 있으므로 이점 참고하시기 바랍니다.

 

 

=> 논란이 있는 와중이나 대체로 driver에 대한 공개는 의무가 아닌 것으로 보인다.

 

https://www.oss.kr/oss_license_qna/show/e305f450-dbdd-4324-94ef-888fa13281ac?page=65 

'linux' 카테고리의 다른 글

KMS, DRM, DRI 에 대한 개요  (0) 2022.09.10
wayland, x-server 관련  (0) 2022.09.10
GPL 관련 tip  (0) 2022.09.10
custom vimrc  (0) 2022.07.05
git stash 참조  (0) 2022.06.30
Posted by easy16
linux2022. 9. 10. 12:18

 

=> GPL인 소프트웨어를 사용하여 서비스를 구현해도 해당 SW를 배포하지 않는다면, 소스 공개 의무가 없다.

 

Q.

1) 사용자와 계약을 소스 배포가 아닌 서비스만 할 경우에도 소스 공개 의무가 생기는지 궁금합니다.

2) 1)번과 반대로 소스 배포 까지 사용자와 계약을 했을 경우에는 소스 전체를 공개 해야 하는지 궁금 합니다.

 

A.

1. 귀사에서 GPL v3 프로젝트를 활용하여 구축한 시스템을 통해 서비스를 고객에게 제공하는 경우 GPL 프로젝트의 물리적 배포가 이루어 지지 않았으므로 GPL 의무사항이 적용되지 않습니다.
그러므로 GPL v3의 의무사항 중 하나인 소스코드 공개의무도 발생하지 않습니다.
 

 

2. GPL 라이선스는 물리적으로 프로그램(바이너리 및 소스코드 모두를 포함)을 배포하지 않는 경우 의무사항이 발생하지 않습니다.
다만, 귀사의 서비스를 이용하고자 하는 고객에게 계약 시 소스코드를 제공하겠다는 내용을 명시하였다면 계약에 따라 소스코드를 제공해야 할 것으로 보여집니다.

 

여기서는 GPL 라이선스를 따르는 것이 아닌 계약의 내용을 이행하는 것으로 소스코드의 범위는 계약서의 범위를 따르게 될 것입니다.

출처 :

https://www.oss.kr/oss_license_qna/show/98a71817-ca14-40f7-8389-6615891320d4?page=65 

'linux' 카테고리의 다른 글

wayland, x-server 관련  (0) 2022.09.10
GPL ko(kernel object) 배포 관련  (0) 2022.09.10
custom vimrc  (0) 2022.07.05
git stash 참조  (0) 2022.06.30
timer example  (0) 2021.07.08
Posted by easy16
linux2022. 7. 5. 10:44
set nocompatible              " be iMproved, required
filetype off                  " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin),
"Plugin 'file:///home/jjeaby/Dev/tools/vim-plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}
" All of your Plugins must be added before the following line
Plugin 'vim-airline/vim-airline'
Plugin 'scrooloose/nerdtree'
Plugin 'airblade/vim-gitgutter'
Plugin 'scrooloose/syntastic'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'nanotech/jellybeans.vim'
Plugin 'SrcExpl'

call vundle#end()            " required
"filetype plugin indent on    " required
"NERDTree ON 단축키를 "\nt"로 설정
map <Leader>nt <ESC>:NERDTree<CR>
let NERDTreeShowHidden=1
" let NERDTreeQuitOnOpen=1
let g:ctrlp_custom_ignore = {
  \ 'dir':  '\.git$\|vendor$',
    \ 'file': '\v\.(exe|so|dll)$'
\ }
color jellybeans
" Tag List 환경설정
filetype on                                 "vim filetype on
"Source Explorer 환경설정
nmap <F8> :SrcExplToggle<CR>                "F8 Key = SrcExpl Toggling
nmap <C-H> <C-W>h                           "왼쪽 창으로 이동
nmap <C-J> <C-W>j                           "아래 창으로 이동
nmap <C-K> <C-W>k                           "윗 창으로 이동
nmap <C-L> <C-W>l                           "오른쪽 창으로 이동
" 세부 정보 출력
set nu
set title
set showmatch
set ruler
" 구문 강조 사용
if has("syntax")
 syntax on
endif
" 색깔 설정
set t_Co=256
" 들여쓰기 설정
set autoindent
set ts=4
set sw=4
set smartindent

set hlsearch
" 붙여넣기 설정
set paste
set mouse-=a
" 한글 입력 설정
set encoding=utf-8
set termencoding=utf-8
" 커서가 있는 줄을 강조함
set cursorline
" 상태바 표시를 항상한다
set laststatus=2
set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F\
" 검색 설정
"set ignorecase
" 마지막으로 수정된 곳에 커서를 위치함
au BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "norm g`\"" |
\ endif

" Markdown 문법 설정 (Git 에서 사용)
augroup markdown
    " remove previous autocmds
    autocmd!
    " set every new or read *.md buffer to use the markdown filetype
    autocmd BufRead,BufNew *.md setf markdown
augroup END
"Tlist
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
set expandtab


"Ctags
" <c-]>를 g<c-]>로 할당: 일반, 비주얼 모드에 적용
" <c-]>의 :tag 동작(첫번째로 찾아지는 태그로 이동) 대신
" g<c-]>의 :tjump 동작(이동할 태그 선택) 사용
map <c-]> g<c-]>

" 현재 경로부터 상위 경로로 tags 파일 찾아가도록 설정
set tags=tags

'linux' 카테고리의 다른 글

GPL ko(kernel object) 배포 관련  (0) 2022.09.10
GPL 관련 tip  (0) 2022.09.10
git stash 참조  (0) 2022.06.30
timer example  (0) 2021.07.08
Network interface Restart 시 주의 사항  (0) 2019.11.21
Posted by easy16
linux2022. 6. 30. 15:43

ex)


git stash save // 변경사항 저장
git stash list // 리스트 확인 
git stash show stash@{0} -p // 특정 stash의 내용 확인
git stash show stash@{1} -p 
git stash show stash@{0} -p
git stash apply

 

 

https://gmlwjd9405.github.io/2018/05/18/git-stash.html

'linux' 카테고리의 다른 글

GPL 관련 tip  (0) 2022.09.10
custom vimrc  (0) 2022.07.05
timer example  (0) 2021.07.08
Network interface Restart 시 주의 사항  (0) 2019.11.21
4.9.x driver 중, memcpy 시도 할 경우, kernel panic #PAN emulation  (0) 2019.10.15
Posted by easy16
linux2021. 7. 8. 15:37
#include <linux/types.h>
#include <linux/input.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <poll.h>
#include <sys/epoll.h>
#include <pthread.h>


#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>

#define SIGTIMER (SIGRTMAX)
#define ONESHOTTIMER (SIGRTMAX-1)

timer_t SetTimer(int signo, int sec, int mode);
timer_t timerid,oneshotTimer;

int count;

int main()
{
	timerid = SetTimer(SIGTIMER, 500, 1);
	//oneshotTimer = SetTimer(ONESHOTTIMER, 5000, 0);
	while(1){

        printf("sleep 5s count : %d\n",count);
        sleep(5);
        count++;
	    if (timerid == 0){
            printf("settimer again\n");
            timerid = SetTimer(SIGTIMER, 500, 1);
        } 
    };
	return 0;
}
static void timer_test_func(union sigval sigev_val)
{
    printf("[%d %s]\n",__LINE__,__func__);
    if ( count > 5){
        printf("timer_delete\n");
        timer_delete(timerid); 
        timerid = 0;
        count = 0;
    }
    return;
}


timer_t SetTimer(int signo, int sec, int mode)
{
	struct sigevent sigev;
	timer_t timerid;
	struct itimerspec itval;

	// Create the POSIX timer to generate signo
    memset(&sigev, 0, sizeof( struct sigevent));
	sigev.sigev_notify = SIGEV_THREAD;
    sigev.sigev_notify_function = timer_test_func;
	sigev.sigev_value.sival_ptr = &timerid;
    printf("timer_create\n");
	if (timer_create(CLOCK_REALTIME, &sigev, &timerid) == 0) {
		itval.it_value.tv_sec = 10;
		itval.it_value.tv_nsec = 0;
        itval.it_interval.tv_sec = 2;
        itval.it_interval.tv_nsec = 0;

        printf("timer_settime\n");
		if (timer_settime(timerid, 0, &itval, NULL) != 0) {
			perror("time_settime error!");
		}
        printf("timer_settime success\n");
	} else {
		perror("timer_create error!");
		return (timer_t)-1;
	}
	return timerid;
}

Timer test code in linux

'linux' 카테고리의 다른 글

custom vimrc  (0) 2022.07.05
git stash 참조  (0) 2022.06.30
Network interface Restart 시 주의 사항  (0) 2019.11.21
4.9.x driver 중, memcpy 시도 할 경우, kernel panic #PAN emulation  (0) 2019.10.15
Overview NEC protocol  (0) 2019.06.28
Posted by easy16
linux2019. 11. 21. 18:04

기존에 사용하던 방식은 

 

#ifconfig eth0 down

#필요 설정 후,(mac 변경)

#ifconfig eth0 up

 

위와같이 interface가 시작되는 경우, socket 연결 시, 알 수없는 이유로 client socket이 holding 되는 문제가 있음.

그러나 아래와 같이 ifup/ifdown 명령어를 사용하면 socket에서 발생하던 문제가 사라졌음.

구체적인 이유는 알 수 없지만 ifup/ifdown을 사용하는 경우, dhcp 설정까지 모두 초기화 한 후 다시 IP address를 받아 오기 때문에 괜찮은 것 같다. 반대로 ifconfig up/down의 경우엔 mac은 변경 되었으나 dhcp에서는 기존에 가지고 있던 정보들과 sync가 맞지않아 문제가 생긴것으로 판단됨.

 

#ifdown eth0

#필요 설정 후,,(mac 변경)

#ifup eth0

 

 

출처 : https://www.cyberciti.biz/faq/linux-restart-network-interface/

'linux' 카테고리의 다른 글

git stash 참조  (0) 2022.06.30
timer example  (0) 2021.07.08
4.9.x driver 중, memcpy 시도 할 경우, kernel panic #PAN emulation  (0) 2019.10.15
Overview NEC protocol  (0) 2019.06.28
scp 사용법  (0) 2019.06.21
Posted by easy16