반응형
  1. CMakeLists.txt에 아래와 같이 FLAG를 추가해준다.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fsanitize=address")
  1. 실행시 환경 변수값을 포함하여 실행해준다.

    LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5 {EXECUTABLE BINARY}
  2. expor를 하는 방법도 있다.
    하지만 추천하지 않는다. 커맨드도 sanitizer에 물려서 제대로 실행이 안된다;

    $ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5
반응형
반응형

EOG

원격 서버에서 개발/테스트를 진행할때에 Dump Image를 보기 위해서는 모니터를 연결하거나 파일을 압축해서 가져와서 봐야 하는 귀찮음이 있는데, 이미지 뷰어를 사용하면 X.11 환경에서는 커맨드로 이용하기도 좋고 귀찮음이 덜하다.

EOG라는 프로그램이 있어서 찾아보니 대충 사용하기 용이하다.

EOG Homepage

https://manpages.ubuntu.com/manpages/trusty/man1/eog.1.html

How to install

$ sudo apt install eog

How to run

$ eog ${PATH or FILENAME}
반응형
반응형

User list

$ sudo ipmitool user list 
혹은
$ sudo ipmitool user list 1

위에서 빈 slot number를 이용하거나 추가하고자 하는 number로 id를 보통 추가한다.

User add

$ sudo ipmitool user set name <ID> <USERNAME>

User Password set

$ sudo ipmitool user set password <ID>
Password for user <ID> : 

위와 같이 User를 추가했을 때에 Web에서 접근을 할경우 로그인 오류가 발생한다.
이와 같을 경우 해당 User가 Enable되지 않았을 경우이므로 Enable 해준다.

User enable list 확인

$ sudo ipmitool user summary <CH>
Maximum IDs        : 16
Enabled User Count  : 0
Fixed Name Count    : 0

위에서 "Enabled User Count가 0일 경우 Enable이 되지 않은 상태로 Enable 시켜준다.

Added user ID enable

$ sudo ipmitool user enable <ID>

그 다음 웹에 접근할 경우 정상적으로 접근되는 것이 확인되었다.

반응형
반응형

gdb binary

일반적으로 gdb를 사용하려면 단순히 gdb binary 이렇게 간단하게 사용한다.
가끔 특정 library를 환경 변수를 주어 실해아 하는 경우가 있는데, 이럴 경우에는 env binary 이렇게 사용하는데,
gdb env binary 아니면 env gdb binary 이렇게 해도 안된다.
환경 변수는 gdb 에서 아래와 같이 사용한다.

binary 실행 예제

현재 폴더의 lib 폴더를 library path로 잡고 실행 예제

$ LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./lib binary 

gdb 로 실행 방법

환경 변수 없이 gdb로 실행

$ gdb binary

환경 변수 설정

(gdb) set environment LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:./lib

Run

(gdb) run
반응형
반응형

Ubuntu에 LFS 설치하기

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt install git-lfs

Repository에 git lfs 적용

git lfs install

Repository에 git lfs 해제

git lfs uninstall

LFS 적용하기

git lfs rm --cached FILE
git lfs track FILE

git add FILE
git commit FILE -m "MESSAGE"
git push

LFS 관리 해제

git lfs untrack FILE

LFS 관리 완전 해제

git lfs untrack FILE
git rm --cached FILE
git add FILE
git commit FILE
git push

LFS 적용 확인

${REPO ROOT}/.gitattributes에 추가되어 있음.

LFS 리스트 확인

git lfs ls-files

LFS 적용된 Repository clone

git clone URL
git lfs pull

참고 : https://newsight.tistory.com/330

반응형
반응형
$ git log origin/<branch name>..HEAD
반응형
반응형
docker> $ cat /proc/self/cgroup | grep docker

 

마지막 Checksum을 OS Native에서 Docker container의 Checksum과 비교하면 된다.

 

$ docker container ls -a

 

반응형
반응형

Group 추가

 $ groupadd <Group Name>

Group 확인

 $ groups

Group에 User 추가

 $ gpasswd -a <User ID> <Group Name>

Group의 User 삭제

 $ gpasswd -d <User ID> <Group Name>/

Group 접근 권한 폴더에 추가

 $ chmod 775 <Folder> -R

Group 권한 추가

 $ chown <User ID>:<Group ID> <Folder> -R
반응형
반응형

GSTShark 설치가 필요함

1. 관련 Package 설치

sudo apt install graphviz libgraphviz-dev
sudo apt install octave epstool babeltrace

2. GSTShark 설치

$ git clone https://github.com/RidgeRun/gst-shark/
$ cd gst-shark/
$ ./autogen.sh --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/
$ make
$ sudo make install

3. 테스트

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" \
	gst-launch-1.0 videotestsrc num-buffers=10000 ! \
	'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, framerate=(fraction)30/1' \
	! videorate max-rate=30 ! videoconvert ! queue ! avenc_h263p ! queue ! avimux ! fakesink

4. 로그 확인

0:00:01.994246894 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)videoconvert0, time=(string)0:00:00.000032109;
0:00:01.994395874 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)avenc_h263p0, time=(string)0:00:00.000372912;
0:00:01.994401155 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)queue0, time=(string)0:00:00.000154431;
0:00:01.994401865 1151846 0x562427ae8850 TRACE             GST_TRACER :0:: proctime, element=(string)queue1, time=(string)0:00:00.000006357;
0:00:01.994594740 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)capsfilter0, time=(string)0:00:00.000000482;
0:00:01.994598173 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)videorate0, time=(string)0:00:00.000003703;
0:00:01.994630612 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)videoconvert0, time=(string)0:00:00.000032159;
0:00:01.994774671 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)avenc_h263p0, time=(string)0:00:00.000372839;
0:00:01.994779616 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)queue0, time=(string)0:00:00.000149048;
0:00:01.994780333 1151846 0x562427ae8850 TRACE             GST_TRACER :0:: proctime, element=(string)queue1, time=(string)0:00:00.000006217;

5. Graphviz 이용

$ ./gstshark-plot gstshark_2022-05-30_19\:16\:42/ -s pdf
반응형
반응형

업데이트 이후 갑자기 개인 서버로 사용하는 데스크탑이 꺼지는 현상이 보인다(절전으로 보임)

유의미한 로그를 한번에 찾기 어려워서, 아예 kernel, syslog, dmesg를 로그를 걸어놓고 모니터링했더니 NetworkManager의 Request로 Sleep에 들어가는 어이 없는 상황이 발생하는 것을 확인했다

$ tail -f ./dmesg ./kern.log syslog
manager: sleep: sleep requested (sleeping: no  enabled: yes)

아래의 명령어로 현재 자동 대기 모드로 loading되어 있는지 확인이 가능하다. "loaded" 메시지가 있으면 loading된 상태로 봐야 한다고 한다. 다만 로그를 보면 최근 Sleep Request가 얼마전에 되었는지 나오는데 그것을 보고 확인을 하면 될거 같다.

$ systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target
● sleep.target - Sleep
     Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
     Active: inactive (dead) since Mon 2023-08-07 12:38:08 KST; 38s ago
       Docs: man:systemd.special(7)

아래 명령어로 절전 기능을 끌 수 있다고 해서 설정하였다. 

$ systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

이후에 status로 보면 "Loaded" 상태가 loaded에서 masked로 바뀐 것을 확인할 수 있다.

● sleep.target
     Loaded: masked (Reason: Unit sleep.target is masked.)
     Active: inactive (dead) since Mon 2023-08-07 12:38:08 KST; 2min 47s ago

다시 켜려면 unmask  옵션으로 다시 켤 수 있다고 하는데 할 생각이 없다. 서버가 절전기능이 되면 안되지...

반응형

+ Recent posts