데스크탑 pc에서 무선 와이파이를 사용하기 위해 iptime에서 나온 usb타입의 와이파이 안테나인 A3000UA를 설치하였다.

외형은 아래와 같다.

 

그런데 아쉽게도 리눅스용 드라이버를 지원하지 않기때문에 수동으로 드라이버를 설치해야 한다.

다행히 제품 소개에 따르면 내부에는 리얼텍의 8812BU 라는 칩셋을 사용한다고 하므로 해당 드라이버를 설치하면 된다.

아래 링크에 자세한 설치 방법을 확인할 수 있다.

https://askubuntu.com/questions/1018375/how-do-i-install-driver-for-rtl88x2bu

 

How do I install driver for rtl88x2bu?

I have moved house and in my new house my desk, with the computer, is isolated and cannot get the cable fron the router though there is not a big distance, probably 10 meters. So I dusted off an old

askubuntu.com

요약하면 아래와 같은 명령을 통해 드라이버를 설치할 수 있다. (우분투 16.04 기준)

git clone https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959
sudo dkms add ./rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959
sudo dkms install -m rtl88x2bu -v 5.3.1
sudo modprobe 88x2bu

 

2019/5/2 최초 문서 발행

 

raspberry pi 나 tegra board 같은 임베디드 플랫폼에서 개발하다 보면 대부분의 리눅스 개발 환경이 그렇듯 잘 되다가도 가끔씩 시스템이 꼬여서 화면이 안나오거나, 계속해서 빌드 에러가 발생한다던지 해서 재설치 해야되는 곤란한 경우가 생기기 마련이다.


그때마다 다시 처음부터 이미지를 굽고 다시 설치하는 과정에서 많은 시간을 낭비하는데 그래서 sd card의 이미지를 복제하고 다시 복원하는 과정을 정리해 보았다.


사실 메모리 전체 이미지를 복사하는 것은 매우 쉽지만 만약 큰 용량의 sd카드, 예를들어 64기가나 128기가 같은 용량의 메모리를 사용하는 경우 복제한 이미지도 똑같은 용량을 차지해버리므로 이동, 보관이 용이하지 않다.


raspbian OS 이미지의 경우 4기가바이트 정도의 용량으로 사용자 sd카드 용량에 따라 설치 후 확장되는 방식을 적용하는데 여기서도 마찬가지로 실제로 사용하고 있는 용량 만큼의 이미지만 만들고 복원한 다음에는 사용자의 sd 카드 용량에 맞춰서 expand하는 방법을 정리하였다.


이 과정을 위해서는 micro sd카드를 읽을 수 있는 linux PC 가 필요하다.


Linux PC의 설치 준비


apt install로 gparted와 pv를 설치한다.

$ sudo apt install gparted pv dcfldd


Disk image 만들기


라즈베리파이에서 SD 카드를 꺼내서 PC에 삽입 후 df 명령어로 디스크 위치를 확인한다.

$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 786M 9.4M 777M 2% /run
/dev/sdb6 231G 63G 157G 29% /
tmpfs 3.9G 318M 3.6G 9% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 96M 29M 68M 30% /boot/efi
tmpfs 786M 100K 786M 1% /run/user/1000
/dev/mmcblk0p2 59G 5.0G 52G 9% /media/dronedev/rootfs
/dev/mmcblk0p1 44M 23M 22M 52% /media/dronedev/boot

이중에서 micro SD카드와 관련된 항목은 /dev/mmcblk0p1 과 /dev/mmcblk0p2 이다.

이제 카드를 PC에 끼운 상태에서 umount로 위 장치를 마운트 해제한다.

$ sudo umount /dev/mmcblk0p*


dd 명령어로 sdimage.img 라는 이미지 파일을 만든다.

$ sudo dd if=/dev/mmcblk0 of=sdimage.img status=progress
1611215360 bytes (1.6 GB, 1.5 GiB) copied, 39 s, 41.3 MB/s

용량에 따라 매우 오랜 시간이 걸린다. 64기가 기준으로 대략 1시간 정도 걸린 듯 하다.

이제 sync 명령으로 sd카드를 안전하게 제거한다.

$ sudo sync


image 용량 줄이기


위에서 생성된 img 파일은 root권한으로 생성되었기 때문에 파일의 소유자를 사용자로 변경한다.

$ sudo chown unsername.username sdimage.img

$ ls -l

-rw-r--r-- 1 username username 64087916544 2월 20 12:23 sdimage.img

이 파일을 fdsik 명령어로 살펴보면 아래와 같이 나타나는 것을 확인할 수 있다.

$ sudo fdisk -l sdimage.img
Disk sdimage.img: 59.7 GiB, 64087916544 bytes, 125171712 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc8ba1b7d

Device Boot Start End Sectors Size Id Type
sdimage.img1 8192 97890 89699 43.8M c W95 FAT32 (LBA)
sdimage.img2 98304 125171711 125073408 59.7G 83 Linux


이제 아래와 같이 losetup 명령어를 사용하여 이미지를 /dev/loop0에 마운트 한다. 

$ sudo losetup /dev/loop0 sdimage.img

또는 Finder 에서 disk image mounter 를 사용해도 된다.



이제 마운트한 이미지를 gparted에서 열어서 용량을 변경해보자.  이 시점에서 만약을 위해 img 파일을 백업해놓는것도 좋다.


$ sudo partprobe /dev/loop0
$ sudo gparted /dev/loop0
======================
libparted : 3.2
======================

아래와 같은 화면에서 마우스 오른쪽 클릭하여 Resize/Move를 선택한 다음,




세로 바를 움직여서 적당한 크기로 만들거나 직접 입력한다. 최소 용량에서 200MB 정도 여유를 주는 게 좋다.





이제 Edit -> Apply All Pperations를 눌러 적용한다. Save details를 누르면 세부 사항이 저장된다.



모두 닫고 losetup -d 명령으로 장치를 제거한 다음 fdsik -l 로 이미지의 정보를 확인한다.

$ sudo losetup -d /dev/loop0

$ fdisk -l sdimage.img
Disk sdimage.img: 14.9 GiB, 16012804096 bytes, 31275008 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc8ba1b7d

Device Boot Start End Sectors Size Id Type
sdimage.img1 8192 97890 89699 43.8M c W95 FAT32 (LBA)
sdimage.img2 98304 12257279 12158976 5.8G 83 Linux


truncate 명령어를 사용하여 사용되지 않는 영역을 삭제한다. 여기서 END는 2번째 파티션의 마지막 섹터, 즉 12257279 이다.

$ truncate --size=$[(12257279+1)*512] sdimage.img

이제 etcher와 같은 툴을 사용하여 sd 메모리에 저장 후 새로운 라즈베리파이로 부팅하면 성공이다.


라즈베리파이에서 파티션 늘리기


라즈베리파이에서 처음 부팅하게 되면 줄어든 용량만큼만 사용하게 되므로 sd카드의 나머지 영역을 사용하도록 확장하기 위해 raspi-config를 실행한다.

$ sudo raspi-config


여기서 Advanced Options -> A1 Expand Filesystem 을 선택하여 전체 sd카드 용량을 사용하도록 전택한다.

설정을 적용하여 Finish 후 재부팅하면 된다.

재부팅 후 df -h 를 실행하면 아래와 같이 16G 용량으로 변경된 것을 확인할 수 있다.


$ df -h

Filesystem Size Used Avail Use% Mounted on /dev/root 15G 5.0G 9.1G 36% / devtmpfs 460M 0 460M 0% /dev tmpfs 464M 0 464M 0% /dev/shm tmpfs 464M 13M 452M 3% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 464M 0 464M 0% /sys/fs/cgroup /dev/mmcblk0p1 44M 23M 22M 52% /boot tmpfs 93M 0 93M 0% /run/user/1000






다음은 Synology(시놀로지) NAS를 사용하여 godaddy를 통해 구매한 도메인을 통해 이메일을 주고받는 방법을 정리한 것이다.


시놀로지 NAS의 일부 모델은 mailplus 라는 어플을 통해 매우 강력한 메일 서비스를 제공한다고 하는데 다음 링크에서 지원 여부를 확인할 수 있다.

https://www.synology.com/ko-kr/dsm/packages/MailClient


하지만 위 모델에 해당하지 않는 나의 213J+ 모델은 Mail Station을 사용할 수 밖에 없다. 이 패키지는 NAS의 Package Center에서 설치할 수 있고 Mail Server와 함께 설치된다.



1. 사전 준비 사항


메일 서버를 설정하기 위해서는 다음의 준비 과정이 필요하다.


1.1. 외부에서 NAS 접속이 가능할 것.


고가의 상용 네트웍에 가입되어 고정 IP를 할당받은 경우라면 해당 IP로 접근하면 되므로 문제 없음.

하지만 대부분의 가정에서 NAS 서버를 사용하는 경우 유동 IP를 통해 접속되므로 Quick Connect ID를 통해 접속할 수 있다.

이 서비스를 통해 만약 본인의 id가 quickid 이라면 quickid.synology.me 로 NAS에 접속할 수 있다.

자세한 사용 방법은 아래 링크 참조.

https://www.synology.com/ko-kr/knowledgebase/DSM/tutorial/Network/How_to_make_Synology_NAS_accessible_over_the_Internet


1.2. 본인이 소유한 도메인이 존재할 것.


도메인의 DNS 정보를 수정해야하므로 도메인을 관리할 수 있는 권한이 필요하다.

일부 무료 도메인을 서비스들은 간단한 CNAME 레코드를 통해 웹 페이지를 연결할 수 는 있으나 이메일 송수신을 위해서는 MX 레코드를 수정할 수 있어야 한다.

여기서는 GoDaddy의 유료 도메인 서비스를 사용한다.


1.3. 라우터 관리자 권한이 있을 것.


본인의 NAS가 외부에 있는 라우터를 통해 연결된 경우 일부 포트가 차단되어 mail 수신이 불가능할 수 있다.

포트 관리를 위해서는 관리자 권한이 필요하다.


2. 도메인 DNS 설정


도메인의 DNS에는 http, ftp, ssh 등 여러가지 프로토콜에 대한 Routing 방식이 정의되어 있다.

웹브라우저의 주소에 mydomain.com 이라는 주소를 넣었을때 자동으로 http://www.mydomain.com 이라는 주소로 연결되는것은 바로 해당 패킷에 대한 경로가 DNS에 정의되어 있기 때문이다.

email에 관한 패킷은 MX 레코드에 정의된 경로로 전송되므로 해당 레코드가 설정되지 않으면 그냥 반송되어버린다.

도메인 서비스의 DNS 관리 화면으로 이동하면 다음과 같이 레코드를 설정할 수 있다.



이제 MX 레코드를 추가하기 위해 유형을 MX로 설정하고 다음과 같이 입력한다.

본인의 QuickconnectID가 quickid 라면 지시 방향에 smtp.quickid.synology.me 라고 쓰면 된다.

우선순위는 0 혹은 10으로 설정한다.

quickid.synology.me 혹은 localhost.quickid.synology.me 도 아래와 같이 추가한다.




3. Synology Mail Server 설정


이제 본인의 NAS에 접속하여 Mail Server를 설정한다.


3.1.  SMTP 서버 설정

아래와 같이 SMTP를 사용하도록 설정하고

Hostname에는 본인이 사용하고자 하는 도메인 주소를 입력한다. 예를들어 mydomain.com 을 입력하면 된다.



3. 2. IMAP/POP3 설정

사용하고자 하는 서비스에 따라 IMAP 혹은 POP3 를 설정한다. 여기서는 POP3만 설정한다.



3. 3. Security 설정


인증된 이메일만 수신 가능하도록 설정하거나 SPAM, 안티바이러스 등을 설정할 수 있다.



DKIM selector prefix에 mailkey를 입력하고 Generate Public Key를 눌러 퍼블릭 키를 생성하고 저장한다.



4. Mail Station 실행하기


이제 NAS에서 Mail Station을 실행하여 메일을 전송해본다.

본인의 quick connect ID를 통해 브라우저 주소창에 myquickid.synology.me/mail 를 입력하여 접근 가능하다.




본인 ID로 로그인을 하면 아래와 같은 화면을 볼 수 있다.


다른 외부 메일을 통해 메일 송/수신이 정상적으로 진행되는지 확인해본다.



5. Router Port Forwarding 설정


외부로 메일 전송은 되는데 수신이 안되는 경우 라우터에서 보안을 위해 25번 포트를 막았기 때문일 수 있다. 이때는 해당 포트를 NAS에 열어주어야 한다. 단 해당 포트는 바이러스나 해킹의 위험이 있으므로 사용에 주의해야 한다.




+ Recent posts