일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 프로그래머스
- 최단거리
- JavaScript
- 프론트엔드
- 알고리즘
- Sort
- Python
- node.js
- 함수
- 문자열
- 코딩테스트
- 백준
- 파이썬
- 웹개발
- dfs
- 그래프
- 코테
- JS
- Linux
- 그리디
- 프리코스
- npm
- 우아한테크코스
- express
- OpenCV
- 자바스크립트
- JetsonNano
- BFS
- 고득점kit
- 우테코
- Today
- Total
공대생
linux에서 가상메모리 만들기 본문
Jetson nano에 전원을 연결해서 리눅스를 실행하는데에 성공했다. 프로젝트에서 카메라를 쓰기 때문에 이와 관련된 opencv를 설치했다. 일명 빡빡이 아저씨의 영상을 보고 opencv설치를 돌리고 99%까지 설치 완료가 된 순간, 메모리 부족 문제가 발생했다. 결국 1%를 남기고 1시간 반을 기다린 opencv를 설치하지 못했다....
찾아보니 jetson nano의 기본 RAM은 4GB이고 이는 opencv를 설치하는데 부족하다고 한다.
따라서 하드디스크(SD카드)의 용량 중 일부를 가상메모리(Virtual RAM)으로 만들어야 했다.
이러한 작업을 swap이라고 한다. 영상을 따라서 해봤는데 우리의 경우엔 swapfile은 생성이 되는데 linux의 system monitor에 swap메모리가 늘어나지 않았다. 그래서 4GB씩 만들고 또 만들었더니 SD카드 용량이 100MB밖에 안남았다는거다. (32GB짜리 인데..) 보니까 swap메모리 공간은 계속 만들어졌는데 그게 메모리로 활성화가 안되고 있는 것 같았다. 결국 SD카드를 포맷하고 처음부터 하는 작업을 두번이나 했다. 아아.. 인생이 쓰다..
*참고 linux에서 가상메모리를 만드는 방법은 2가지가 있다.
1. 하드디스크의 파티션을 분리해서 가상메모리로
2. 원하는 크기의 파일을 만들어서 가상메모리로
찾아본 결과 파일을 만들어서 가상메모리고 만드는게 안전하다고 해서 파일로 생성하는 방법을 택했다.
그렇게 알아낸 linux에서 가상메모리를 만드는 확실한방법
knormal@knormal-desktop:~$ sudo passwd root //linux OS의 최고관리자 root계정 암호 설정
[sudo] password for knormal: //내 linux id에 대한 pw
Enter new UNIX password: //root관리자의 pw설정
Retype new UNIX password:
passwd: password updated successfully
knormal@knormal-desktop:~$ su //root계정으로 사용할 수 있도록 일시적 권한부여
Password: #root 계정의 pw
root@knormal-desktop:/home/knormal# free -m //현재 메모리 확인
total used free shared buff/cache available
Mem: 3956 1366 485 27 2104 2419
Swap: 4026 0 4025
root@knormal-desktop:/home/knormal# df -h //파티션별 저장공간 사용량 확인
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p1 30G 17G 12G 58% /
none 1.7G 0 1.7G 0% /dev
tmpfs 2.0G 4.0K 2.0G 1% /dev/shm
tmpfs 2.0G 20M 2.0G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 396M 12K 396M 1% /run/user/120
tmpfs 396M 124K 396M 1% /run/user/1000
root@knormal-desktop:/home/knormal# dd if=/dev/zero of=/newswap bs=1M count=1024
// 위코드: 스왑 공간 생성하는 코드, newswap: 스왑파일 이름, bs=추가할 메모리 용량(1Mkbyte=1GB)
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 63.8108 s, 16.8 MB/s
root@knormal-desktop:/home/knormal# mkswap /newswap //mkswap: 스왑 파티션이나 파일 생성(우리는 파일생성)
mkswap: /newswap: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=c3620f5a-292c-4adf-b96d-5c10e9f6f518
root@knormal-desktop:/home/knormal# sudo nano /etc/fstab //관리자 권한으로 파일열기(관리자권한 없으면 read only라 수정불가)
//만든 가상메모리를 계속 사용하고 싶으면 연 파일의 마지막줄에 /newswap swap swap defaults 0 0 을 추가해주면 된다.
root@knormal-desktop:/home/knormal# swapon -a //스왑영역 활성화
swapon: /newswap: insecure permissions 0644, 0600 suggested.
root@knormal-desktop:/home/knormal# free -m //메모리 공간 용량 확인
total used free shared buff/cache available
Mem: 3956 1362 476 26 2116 2389
Swap: 5050 0 5049 //스왑 메모리가 1GB 늘었다!
sudo nano 명령어에서 nano명령어가 없다고 뜨면 sudo apt-get install nano로 nano명령어를 설치해주면 된다.
결국 이렇게 가상메모리를 10GB로 만들어서 opencv설치에 성공했다!
'개발 > 예비캡스톤' 카테고리의 다른 글
Jetson Nano에 Tensorflow 설치 (0) | 2020.12.21 |
---|---|
linux에서 opencv설치 (0) | 2020.12.21 |
linux에서 pyrealsense2 라이브러리 설치 (0) | 2020.10.14 |