본문 바로가기

전체 글29

vim Plugin morhetz/gruvbox 설치 및 사용 방법 1. morhetz/gruvbox 플러그인이란?? vim의 배경 색, 글자 색, 변수명등의 색상을 개발자가 원하는데로 수정이 가능한 플로그인이다. 아래 예시와 같이 Light mode, Dark mode등이 있으며 모드별 세부 원하는 색등을 튜닝 할 수 있다. 2. .vimrc에 Plugin 추가 call vundle#begin() " vim 화면 색상을 좀 더 예쁘게 구성해주는 플러그인 "vim corlor/scheme Plugin 'morhetz/gruvbox' call vundle#end() 위의 내용 처럼 vundle#begin()과 vundle#end 사이에 vim corlor/scheme 플러그인을 추가하고 PluginInstall 명령어로 설치한다. PluginInstall 명령어를 모르겠다.. 2022. 5. 6.
VIM Plugin vim-airline 설치 및 사용 방법 1. vim-airline 이란? vim을 쓸 때 맨 아래 현재 vim의 state와 파일 이름, 커서의 위치 등 정보를 알려준다. Section meaning A 현재 디스플레이 모드(입력 모드(insert), 명령 모드(command), 일반 모드(normal), 비주얼 모드(visual) B 현재 환경 상태(VCS(버전관리시스템) 코드 수정 내용 및 현재 branch 이름 등 표시 ※ B Section을 보기 위해서는 tpope/vim-fugitive 플러그인 있어야 화면에 표시된다. (당연히 git은 설치되어 있어야 하며, git 저장소가(.git) 생성되어 있어야 표시가 된다.) C 파일 이름 + read-only flag 표시 X 파일 타입 Y 파일 인코딩 형식 표시(utf-8[unix[) Z.. 2022. 5. 2.
함수의 실행 시간 구하기 1. struct timeval 사용 #include #include #include void getElapsedTime(struct timeval Tstart, struct timeval Tend) { Tend.tv_usec = Tend.tv_usec - Tstart.tv_usec; Tend.tv_sec = Tend.tv_sec - Tstart.tv_sec; printf("timeval sub sec : %ld, usec : %ld \n",Tend.tv_sec, Tend.tv_usec); Tend.tv_usec += (Tend.tv_sec*1000000); printf("Elapsed timeval Time: %lf sec\n",Tend.tv_usec / 1000000.0); } struct timev.. 2022. 4. 21.
repo 에러 /workpath/.repo/repo/main.py", line 79 file=sys.stderr) 1. 에러 내용 Yocto 개발 환경 구축을 위해서는 repo를 이용하여 관련 소스들을 다운로드 받는다. repo란 여러 git repository 전체에 걸친 작업을 단순화하여 git을 보완하기 위해 만들 툴이다. 간혹 repo를 잘 못 사용하다 보면 이 repo를 이용 소스를 다운로드 받을려고 할 때 아래와 같은 에러 메세지가 발생한다. $~/BUILD$ repo init File "/home/SSD/hdkim/BUILD/.repo/repo/main.py", line 79 file=sys.stderr) ^ SyntaxError: invalid syntax 정상적인 상태에서는 repo 명령만을 쳤을 때에는 "error: repo is not installed. Use "repo init" to inst.. 2022. 4. 20.
간단한 리눅스 모듈 드라이버 1. 모듈드라이버 등록 및 제거 코드 #include #include #include static int __init hello_init(void) { printk(KERN_ALERT "Hello, world!\n"); pr_debug("This is a debug message!\n"); pr_err("This is a error message!\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_ALERT "Bye, World!\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("khd0801"); MODULE_DES.. 2022. 4. 14.
Lockdown: insmod: unsigned module loading is restricted; see man kernel_lockdown.7 문제 해결 1. Error 내용 Ubuntu Kernel 4.4.0-20 이후로 "EFI_SECURE_BOOT_SIG_ENFORCE"라는 커널 컨피그가 Enable되어 Secure Boot가 활성화 되었다. Secure Boot가 활성화 되면서 해당 커널에서는 일반적인 방법으로 모듈 드라이버를 로드하는게 막혀지게 되었다. 모듈 드라이버를 로드 하기 위해서는 해당 컨피그를 Disable 시킨뒤 사용해야 되나 노트북에 이미 설치되어 있는 리눅스를 다시 설치하기 번거롭기 때문에 Secure Boot가 Enable 되어 있어도 모듈 드라이버를 로드 할 수 있는 방법을 설명한다. 2. Signing Key 생성, 서명 및 등록 2-1. Signing Key 생성 openssl req -new -x509 -newkey rsa.. 2022. 4. 13.