3월, 2018의 게시물 표시

vim에서 python ide처럼 쓰기

이미지
<우리는 답을 찾을 것이다. 늘 그랬듯이> 없을리가 없죠. python 코딩하면서 이게 참 불편했는데 써보니 편하고 좋네요. https://www.vim.org/scripts/script.php?script_id=1542 여기서 pythoncomplete.vim 을 다운받은 다음 ~/.vim/autoload/ 에 넣습니다. 그리고  ~/.vimrc에 다음과 같이 추가합니다. filetype plugin on 그리고 입력모드에서 ctrl+x+o 하시면 위와같이 뜹니다. vim 7.3이상에서 동작합니다. ubuntu 12.04에서는 잘 동작합니다. ubuntu 16.04에서는 다음의 문제때문에 동작하지 않으니 python3 에서 쓸 수 있는 방법을 찾으셔야합니다. $ vim --version | grep python +cryptv          +linebreak        -python           +vreplace +cscope          +lispindent      +python3          +wildignore python으로 그냥 사용하시려면 다음과 같이 설치하세요. sudo apt-get install  vim-nox-py2 preview 뜨는게 싫으면 ~/.vimrc에 다음과 같이 추가하세요. set completeopt-=preview

virtualbox 성능 최적화

이미지
개인 PC에서 개발환경을 결국 virtualbox로 결정했습니다. 하지만 여전히 virtualbox의 성능은 불만이었습니다. 성능이 안나오면 굳이 뭐하러 virtualbox를 쓰나 자괴감이 들어.... 인터넷을 열심히 찾아봤더니 일단 한가지는 명백합니다. VirtualHDD의 용량 고정! 생각해보면 당연한거겠죠. 이미 설치한 우분투에 SSD로 하나 더 새로 생성하고 포맷하고 마운트했습니다. 속도는 모르겠지만 확실히 반응성이 좋아보입니다. 그리고 컴파일! 아직 만족할만큼 컴파일 성능이 안나오네요. 보아하니 cpu 코어 개수 문제네요.. 8개중에 4개만 할당되어있었습니다. 이부분은 열심히 찾아봐도 딱히 방법이 안보입니다. 권장보다 더 많이 하면 오히려 문제가 생길거라는 경고만 잔뜩 있네요. 어? 권장보다 더 많이 할 수 있어? 지레 짐작으로 cpu 코어 개수를 권장 이상은 안될거라고 생각하고 안건드렸는데? 일단 8개 설정하고 컴파일! cpu 100% 왔다갔다 하는군요. 굿굿~ 하지만 웹서핑이 힘들정도로 자원을 다 써버립니다. 그래서 cpu 7개로 낮췄더니 90% 정도를 유지하네요. 이정도만 되도 훌륭하죠.

vim 파일 읽어들일때 이전파일 위치 가져오기

:e $VIMRUNTIME/vimrc_example.vim vim에서 위의 명령을 실행한 후 BufReadPost 를 찾아서 해당하는 부분을 .vimrc로 가져오면 됩니다.   autocmd BufReadPost *     \ if line("'\"") >= 1 && line("'\"") <= line("$") |     \   exe "normal! g`\"" |     \ endif 출처 : https://kldp.org/node/72020 하지만 안되는 경우가 있는데..... $ ls -al ~/ -rw------- 1 root   root      4423 Mar 20 13:41 .viminfo 이러면 안됩니다. 저기서 이전에 열었던 파일 정보를 가져오는건데.. 저게 권한이 안되면 동작할리가 없죠... 근데 에러도 표시 안되서 한참을 헤맸네요 ㅡ.ㅡ 서버 설치할때 root권한으로 저걸 먼저 써버린 흔적이 있네요. 삭제! $ sudo rm .viminfo

Buildroot 개별 패키지 컴파일

buildroot에서 개별 패키지 컴파일하는 방법이 필요했습니다. 아마도 매우 간단하고 정리가 잘 되어있을 것 같아서 찾아보기로 합니다. https://buildroot.org/downloads/manual/manual.html#rebuild-pkg 네 찾았습니다. ㅋㅋㅋㅋ 참 쉽죠? The easiest way to rebuild a single package from scratch is to remove its build directory in output/build you can run make <package>-rebuild 덤으로 잘 만들어진 매뉴얼도 찾아낸 셈이네요.

개발환경 바꿔보기 #2 (마무리...벌써?)

데스크탑 PC에서 우분투를 사용했을때 장점 - PC의 남는 자원활용 - PC의 SSD를 활용한 검색 속도 - Standalone PC에서 컴파일(네트워크 문제가 발생해도 컴파일 지속) 하지만 회사의 윈도우 프로그램을 쓸수 없다는 치명적인 단점때문에 윈도우 10으로 이전했습니다. 그리고 미련이 남아서 윈도우에서 어떻게든 local 컴파일을 해보려고 다음을 고려했습니다. - 도커 : 이왕이면 최신기술 배우면서 새로운 방향을 개척해보자. 네 가능합니다, 게다가 윈도 자원 맘껏 사용 가능! 하지만 Cross-compile은 매우 골치가 아프군요. 특히 공유 폴더에서 파일시스템이 softlink를 지원하지 않아 깨져버리는 문제는 답이 없습니다. Fail - WSL(Windows Subsystem for Linux) : 이것도 윈도 자원 맘껏 사용 가능! 우오오오! 하지만 64bit windows에서는 32bit 리눅스 프로그램을 아예 지원 계획이 없답니다. 근데 cross-compiler는 32bit. Fail - virtualbox : 이것밖에 없군요. 하지만 필연적으로 따라오는 성능저하에 시무룩.. 이참에 vim을 떠나 나도 atom을 써보자! sftp 는 결국 sync맞춰야해서 매우 귀찮군요. 그래서 smb 를 써보니 간편합니다. (windows 10에서는 smb v1 지원을 켜줘야함) 근데 내가 왜 이짓을 하는지 의문이...그냥 10년 넘게 써오던 vim 그냥 쓰렵니다. 시무룩..

Buildroot - Making Embedded Linux Easy

이미지
build_root 라고 좋은 build_root?가 있습니다. 쉽게 bootloader, kernel 부터 rootfs와 필요한 라이브러리들은 죄다 설치해줍니다. qt부터 webkit까지 되는군요. 오예!? 필요한 일이 있어서 컴파일 해봅니다. 다운로드 받으러 간김에 repository에 가보니 다른 프로젝트와 다르게 commit이 정말 엄청나게 많군요!? 역시 모든 보드에 맞게 컴파일하고 잘 동작하게 하려면 엄청난 케바케가 있었던거죠. 먼저 홈페이지와 다운로드 https://buildroot.org/ $ wget https://buildroot.org/downloads/buildroot-2018.02.tar.gz $ tar xvfz buildroot-2018.02.tar.gz README를 봐줍니다. 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images 임베디드 개발자들에겐 익숙한 make menuconfig입니다. 하지만 옵션 하나 하나 다 선택하기는 매우 귀찮은 일이죠. 전 알려진 보드를 쓰기때문에 아마 config가 있을 겁니다. 역시 있군요! $ make menuconfig  *** 'make menuconfig' requires the ncurses libraries.  ***   *** Install ncurses (ncurses-devel) and try again. 실패! 초장부터 아름답군요. 덥벼라 build_root! $ sudo apt install libncurses5-dev 다시 $ make

Virtualbox에 VBoxGuestAdditions 설치하기

Windows 10 host, Ubuntu-server 16.04 guest 에서 shared folder를 설정할랬더니 VBoxGuestAdditions 가 필수라네요. 그런데 게스트 확장 cd 이미지 삽입을 해도 안됨... 결국 직접 다운받아서 하기로 했습니다. # 버전에 맞는 iso 이미지 다운로드 $ wget http://download.virtualbox.org/virtualbox/5.2.8/VBoxGuestAdditions_5.2.8.iso # 마운트 mount -o loop,ro VBoxGuestAdditions_5.2.8.iso /mnt # nox11로 실행 $ sudo sh /mnt/VBoxLinuxAdditions.run --nox11 # 리부팅 $ sudo reboot # 확인 $ cat /proc/filesystems | grep vboxsf nodev   vboxsf $ mount | grep vboxsf shared on /media/sf_shared type vboxsf (rw,nodev,relatime) # /media/sf_shared 접근하면 권한 없음 $ sudo usermod -aG vboxsf $(whoami) # 리부팅 $ sudo reboot Good! 참조 : https://gist.github.com/ilude/2585255

개발 환경 바꿔보기 #1

개발환경 바꿔보기 계획 1. 기존 개발환경 개발PC를 리눅스를 쓰면 간단합니다. 제게 이보다 완벽한 개발환경은 없습니다. 오피스도 구글 드라이브 쓰기때문에 문서 작성에 딱히 문제될 것이 없습니다. 거기다 보조적으로 virtualbox에 윈도우를 깔아서 왠만한 프로그램을 돌려버리기 때문에 특별히 문제되지 않았습니다. 하지만 회사에서 쓰는 프로그램중에 virtualbox로는 답이 안나오는 프로그램이 몇 있습니다. 그것때문에 문제가 몇번 발생하고는 도저히 답이 안나오더군요. 그래서 결국 전통적인(?) 윈도우pc - ssh - 리눅스서버로 돌아왔습니다. 회사 프로그램 문제는 깔끔하게 해결되었고 개발에도 뭐 문제는 없죠. ssh client라던가 minicom을 대체하는 무료 프로그램이 없다는게 마음에 안되지만 조금만 불편을 감수하면 뭐 어찌되는거죠. 하지만 빵빵한 PC(8코어CPU! SSD!) 자원은 팽팽 남아도는데 몇명이 동시에 컴파일 돌리느라 느려터진데다 HDD에서 ctags나 grep 돌렸을때의 답답함은...배알이 꼴립니다. 그래서 뭔가 해결책을 찾기로 했습니다. 2. 실패한 계획 요즘 Docker가 핫하다매? CPU 코어도 공용으로 쓰기때문에 CPU 풀파워도 쓸수 있다는데 땡깁니다! 뭐 이걸 개발서버로 못쓸게 있나? 해보자! 는 실패... Docker 초짜라서 실패한 것 같습니다. 아..이게 될것 같았는데... 고정 IP 설정, SSH/NFS/TFTP 고정 포트 설정 등이 가로막는군요. 3. 시작할 계획 virtualbox에 Ubuntu-server 설치 : CPU를 8개중 4개만 할당 가능하네요. RAM : 4GB 할당. UI를 사용할것 아니면 4GB도 넘치죠. SSD 중 100GB 할당 : 이정도면 충분하겠죠. 이래저래 설치 완료. 별거없음..

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

git pull 을 했더니 branch가 갈라지는 경우

리눅스 멀티코어를 사용하는 tar 압축/해제