This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

*/

VisualStudio Code 에서 C++ 사용하기

Windows 10 OS에서 Visual Studio Code 환경에서 C++ 컴파일 환경을 구축해보자

Visual Studio Code 다운로드

우선 Visual Studio Code를 여기(code.visualstudio.com)서 다운로드 받아 설치합니다.

C++개발을 위한 VSC(Visual Studio Code) 설정

VSC를 다운받아 설치하고 실행하면 환영창이 나오고, 좌측에 파일탐색, 찾기,  Git, 실행/디버그, 확장(extension) 탭 5개가 있는것을 확인할 수 있다.

제일 아래쪽에 위치한 녹색으로 표시한 확장 탭을 누르고, 노란색으로 표기한 검색창에 "C++"을 입력하면 위의 사진과 같이 검색 결과 표시된다.
C++로 개발하기위해서는 2개의 extension을 설치해야 되는데 첫번째 확장은 결과리스트의 맨위에 있는 "C/C++"이다. 해당 항목(빨간색영역에 있는)의 Install을 눌러 설치한다. 이 확장은 VSC에서 C/C++언어을 지원하기 위한 추가하는 것이며, Compiler는 포함되어 있지 않다.
두번째 확장은 "easy c++"을 검색하여 설치한다.

Compiler 설치

C++ 컴파일러를 설치하는 방법은 아래와 같이 여러가지 방법이 있는데 여기서는 Windows Subsystem for Linux(WSL)을 설치한다.
  • Microsoft C++ compiler(MSVC) on Windows
  • GCC and Minggw-w64 on Windows
  • GCC and Windows Subsystem for Linux(WSL)
  • ...
WSL설치 후 Ubuntu 터미널에서 아래와 같이 build package들을 설치한다.
$ sudo apt install build-essential gdb

Code 작성하기

프로젝트생성을위해 폴더 열기(Ctrl+K Ctrl+O)하여 폴더를 선택한다.
F1키를 눌러 "easy"를 검색하여 Easy Cpp/C++: Create new C++ project를 선택
[WSL] Windows Subsystem for Linux를 선택 
비어 있던 프로젝트에 .vscode, bin, include, lib, src폴더와 main.cpp, Makefile등이 생성되며 좌하단에 Build 버튼과 Build&Run버튼이 생성된다.
아래쪽에 Build & Run버튼을 클릭하면 하단의 터미널창에 빌드 결과와 Hello Easy C++ project라고 실행 결과가 출력되는 것을 볼 수 있다.

Reference




 


Window Subsystem for Linux(WSL) 설치

요구사항

OS : Windows 10 ver. 16237.0이상

Architecture : x64, ARM64

Windows features

윈도우즈 제어판 -> 프로그램 및 기능 -> Windows 기능 켜기/끄기


Windows 기능 켜기/끄기에서 "Linux용 Windows 하위 시스템"을 체크하고 확인 버튼을 클릭하면 아래와 같이 필요한 파일들을 검색하고 세팅한후 재부팅 메세지가 출력된다.



재부팅후 Microsoft Store을 실행하고 ubuntu를 검색한다.
ubuntu  혹은 원하는 버전이 있으면 해당 버전을 선택하고 설치버튼을 클릭한다.

설치가 완료되면 시작메뉴에 ububtu항목이 추가된다.
시작메뉴에서 Ubuntu를 클릭하면 몇분간 초기화하고 새로운 사용자명과 패스워드를 설정하라는 메세지가 나온다.
사용자명과 패스워드를 정상적으로 등록하고 설치가 완료된 화면

참고사항

설치된 디렉토리는? 스토어를 통해 설치하는 각 배포는 해당 응용 프로그램의 appdata 디렉토리에 설치된다.
기존 Windows의 데이터 접근은? /mnt/c 에 mount되어 있음.  $ ls /mnt/ 로 기존 윈도우즈 파일들 확인 가능


OrangePi Lite 2 Swap 메모리 설정

 OrangePi Lite 2 Memory 1G를 사용중인데 약간 크기가 큰 것들을 컴파일 하면 시스템이 아주 아주 느려져 재부팅을 시키게 되는 일이 잦아 진다. 이때 swap 영역을 잡아 주면 시스템이 느려지는 현상을 상당히 완화 시킬 수 있다.

스왑(swap) 메모리

리눅스에서 swap메모리는 윈도우즈의 가상 메모리와 동일하며, 시스템의 램(RAM)이 부족한 경우 swap메모리를 이용하게 된다.

스왑메모리 영역을 설정하는 방법은 스왑 파티션이용방법과 스왑파일을 만들어 사용하는 방법이 있다. 스왑파일을 만들어 사용하는 방법을 간단히 정리한다.

스왑파일 생성

1GByte의 스왑메모리슬 설정한다. 크기를 늘리고자하면 필요한만큼 숫자를 올려주면 된다. 예를 들어 OpenCV를 build할 경우 2G정도 사용하는 것이 좋다.
sudo fallocate -l 1G /swapfile
권한 설정
sudo chmod 600 /swapfile

스왑메모리로 변경

sudo mkswap /swapfile

스왑메모리 활성화

sudo swapon /swapfile

스왑메모리 확인

free
swapon -s

부팅시 자동 설정

재부팅이후에도 스왑메모리가 자동으로 지정되게 하려면 /etc/fstab에 아래 내용 추가

sudo nano /etc/fstab
     /swapfile swap swap default 0 0

스왑메모리 제거

/etc/fstab에 저장된 스왑메모리의 마운트 내용 삭제 또는 주석처리

sudo nano /etc/fstab
     /swapfile swap swap default 0 0 제거 또는 주석처리
sudo swapoff -v /swapfile
sudo swapoff on /swapfile
sudo rm -r /swapfile

Link

OrangePi Lite 2 rootfs 확장

사용 Image : OrangePi_lite2_ubuntu_xenial_desktop_linux5.3.5_v2.0.1.img

발행일 : 2019년 12월 31일

OrangePi 이미지를 설치하고 나서 처음 부팅했을때 rootfs를 사용하고 있는 SD카드의 전체를 사용하도록 확장할 필요가 있다.

확장하기전 상태

$ df h


rootfs확장 스크립트 실행

$ resize_rootfs.sh


확장후 상태

$ df -h


* Raspberry Pi에서 root fs 확장 방법

라즈베리파이에서는 raspi-config 파일을 이용하면 된다
$ sudo raspi-config
7. Advanced Options 선택
A1. Expand Filesystem 선택
종료
리부팅

OrangePi Lite 2 VNC server 설치

OrangePi Lite 2에 VNC 서버 설치하기

X11vnc 패키지 설치

$ sudo apt install x11vnc

VNC 접속 패스워드 설정

$ x11vnc -storepasswd

VNC서버 시작

$ x11vnc -forever -shared -rfbauth ~/.vnc/passwd

자동실행하도록 설정

위에서 설정한 비밀번호를 복사

$ sudo cp ~/.vnc/passwd /etc/x11vnc.pass

자동실행 스크립트 작성

/etc/rc.local파일에서 exit 0위에 아래 내용 삽입

$ sudo nano /etc/rc.local

     x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900
     

IP주소 확인

$ ifconfig

재부팅

OrangePi를 재부팅하고 로그인한다.

VNC연결

Chrome 브라우저에서 좌상단의 "앱"버튼을 누르고 VNC Viewer를 실행한다.

VNC Viewer에서 Address에 위에서 확인한 IP주소 값을 넣고 Connect버튼을 누른다.

위에서 설정한 패스워드 값을 입력한다.

Raspberry 4에서 tensorflow 2.2 설치

Tensorflow 2.2 package download

$ wget http://1.229.109.140:3562/tensorflow/tensorflow-2.2.0.armv7l/tensorflow-2.2.0-cp37-none-linux_armv7l.whl

--2020-09-03 16:45:10--  http://1.229.109.140:3562/tensorflow/tensorflow-2.2.0.armv7l/tensorflow-2.2.0-cp37-none-linux_armv7l.whl

Connecting to 1.229.109.140:3562... connected.

HTTP request sent, awaiting response... 200 

Length: 157689306 (150M)

Saving to: ‘tensorflow-2.2.0-cp37-none-linux_armv7l.whl’

tensorflow-2.2.0-cp 100%[===================>] 150.38M  2.03MB/s    in 82s     

2020-09-03 16:46:31 (1.84 MB/s) - ‘tensorflow-2.2.0-cp37-none-linux_armv7l.whl’ saved [157689306/157689306]

Install package

$ pip3 install tensorflow-2.2.0-cp37-none-linux_armv7l.whl



linux 카메라 콘트롤 - v4l2-ctl

 Linux머신에서 설치되어 있는 카메라의 정보 확인 및 제어할 수 있는 명령

v4l2-ctl 옵션확인

$ v4l2-ctl

설치된 카메라의 모든 정보 확인

$ v4l2-ctl --all
설명 추가

드라이버 정보 보기

$ v4l2-ctl -D

디바이스에서 제공될수 있는 포멧 리스트

$ v4l2-ctl --list-formats

프레임크기와 인터벌을 포함한 디바이스에서 제공될 수 있는 포멧 리스트

$ v4l2-ctl --list-formats-ext
$ lsusb