Raspberry Pi 3 64bit OS openSUSE: Install
2017-10-30: swap 추가, timezone 수정
{:.right-history}
Opensuse 에서 Raspberry Pi 3를 위한 64bit OS openSESE Leap 42.2 을 제공하고 있다.
이글은 5개 글타래로 구성되며, openSUSE 설치 및 사용에 대해 작성한다.
- Install 64bit openSUSE Leap 42.2 / JeOS
- openSUSE: Managing Service daemon
- openSUSE: Basic OS Security for Server
- Install & Configuration - Nginx, Node JS, Jupyter
- openSUSE: Build MongoDB 3.4.x
Install 64bit openSUSE Leap 42.2 / JeOS
openSUSE는 Raspberry Pi 3를 위한 Opensuse community edition은 정식 버전 Leap 42.2 image, 개발버전 Tumbleweed image, 커뮤니티버전 non-upstream openSUSE Tumbleweed image* 으로 구성되어 있다.
이들 버전은 용도에 따라 JeOS, E20, LXQT X11 이미지로 다운받을 수 있다.
Just Enought Operating System (JeOS)
- jeOS 이미지는 기본 오에스만을 포함하고 있다.
- https://www.suse.com/products/server/jeos/
E20
- 데스크탑 환경으로 Enlightenment 을 사용하 GUI 이미지
LXQt
- LXDE-Qt 와 RazorQt 병합한 데스크탑 환경
- https://en.opensuse.org/LXQt
### Download and Install
Download Page 의 두번째 Installing the 64-bit openSUSE Leap image 단락에 있는 JeOS image 를 다운로드 한다.
Writing image to SD Card
Etcher 등을 이용해서 다운받은 이미지 파일을 SD Card에 쓴다.
{:width=”640”}
dd
를 사용한다면,
다운받은 .xz
파일을 dd
를 이용해서 SD Card에 쓴다.
1 | xzcat openSUSE-Leap42.2-ARM-JeOS-raspberrypi3.aarch64.raw.xz | sudo dd of=/dev/rdisk1 bs=4m; sync |
#### Serial console
여기서는 Serial console에서 네트워크 확인 및 초기 설정을 하고 ssh 로 서버에 로그인해서 시스템 구성을 진행한다.
SD Card를 라즈베리파이에 꽃고 HDMI, Keyboard 및 Mouse 가 별도로 준비되어 있으면 직접 모니터를 보고 작업을 진행하면 좋다.
USB to Serial 케이블을 사용해서 Raspberry Pi의 Serial Console에 연결한다.
{:width=”640”}
그리고 시리얼 포트를 통해 tty 연결을 위해 터미널 프로그램에서 baud rate 115200 으로 연결한다. 아래는 macOS의 screen
CLI 명령으로 usb serial 포트에 연결하고 있다.
1 | $ screen /dev/cu.usbserial 115200 |
이제 SD Card를 넣고 부팅을 하면, 터미널에 부트 단계가 진행되고 처음 5분 정도 소요된다.
{:width=”640”}
Raspberry Pi를 위한 이미지는 처음 계정은 root/linux
이다.
터미널에서 uname 은 aarch64 임을 확인 할 수 있다.
1 | root# uname -a |
처음으로 라즈베리파이에서 64bit 환경으로 운영해 볼 수 있게 됐다.
### 설치 후 서버 구성을 위해 할 일
JeOS를 서버로 구성하기 위해서 다음 같은 작업을 수행해 준다.
- root 패스워드 변경
- sudoer 사용자 생성
- DHCP를 고정 IP로 변경
root 패스워드
root 사용자의 패스워드를 변경한다.
{:width=”640”}
Update
Ubuntu/Debian 계열의 패키지 명령 apt
,apt-get
과 비슷한 openSUSE 명령라인 패키지 관리자는 zypper 가 있다.
1 | zypper help search # to print help for the search command |
- zypper usages 에서 사용방법을 자세히 알 수 있다.
머저 최신 소프트웨어 목록으로 업데이트 한다.
1 | zypper refresh |
그리고 최근 업그레이드된 필요한 패키지를 다운로드하고 설치한다.[^1]
1 | zypper update |
지원중단된 패키지, 나뉘어진 패키지 등의 의존성을 고려한 업그레이드를 하려면
dup
명령을 사용한다.>
1
2 zypper dup # distribution upgrade
zypper dist-upgrade
upgrade 후에
실행중인 데몬을 재시작해줄 필요가 있는데 zypper ps -s
를 실행하면 목록을 표시해 준다.
1 | pi64:/home/ # zypper ps -s |
ip 주소 확인
ifconfig 명령으로 현재 IP Address를 확인하고 이 IP Address에 ssh
를 사용해 접속한다.
1 | linux:~ # ifconfig |
좀더 편리한 사용을 위해 ifconfig
명령으로 찾은 IP address에 ssh 로그인을 해서 작업을 진행한다.
1 | $ ssh root@192.168.1.104 |
### 시스템 설정
이제 sudoer 사용자로 시스템을 서버에 적합하게 구성해 보자.
- sudoer 추가
- yast 소개
- timezone
- Network 구성: 호스트 이름, IP 주소
- swap 개선
- yast로 사용자 추가
sudoer
root 사용자가 아닌 일반사용자를 sudoer
로 등록해 관리자 기능을 대행 할 수 있다. 그러기 위해서 먼저 사용자를 추가한다. openSUSE yast
라는 시스템 도구로 할 수 있지만 여기선 useradd
명령을 사용해서 사용자 추가한다. useradd
에 대해서는 useradd 명령을 참조한다.
useradd
는 홈 디렉토리, 쉘 등에 대한 옵션을 주고 사용자를 등록한다.
- 추가한 사용자를 /etc/passwd, /etc/shadow, /etc/group and /etc/gshadow 추가
- 그리고
-m
옵션으로 으로 사용자 홈 디렉토리 까지 생성한다.
1 | root# useradd -m foo |
그리고 패스워드를 등록한다.
1 | root# passwd foo |
sudoer 등록
visudo
명령으로 /etc/sudoers 파일을 편집한다.
1 | $ sudo visudo |
sudoer 파일에 있는 User privilege 항목 아래에 새로운 사용자 foo를 아래 같이 등록한다.
1 | # User privilege specification |
이제 root에서 로그아웃하고 새로 추가한 사용자로 로그인한다.
1 | $ ssh foo@192.168.1.104 |
openSUSE는 관리자용 명령을 직접 내리면 찾지 못한다고 한다.
1 | foo@linux:~> yast2 timezone |
그리고 처음으로 sudoer 사용자가 관리자 권한이 필요한 명령을 사용하기 위해 sudu
로 명령을 내리면 아래 같은 경고가 나온다.
1 | foo@linux:~> sudo /sbin/yast2 timezone |
openSUSE는 시스템 관리 도구로 yast
를 사용해서 소프트웨어 설치, 네트워크 구성, 시간 관리, 보안 및 사용자 등을 다루는 소프트웨어로 GUI와 CLI 모두 사용할 수 있다.
시스템 네트워크를 구성하기 위해서 yast
명령을 사용해보자,
yast
yast는 GUI 혹은 ClI에서 사용이 가능하다 . 다음은 sudo yast
를 실행하면 Ncurse 로 표시되는 yast 화면이다.
{:width=”640”}
TAB 키로 각 항목을 이동할 수 있고, Enter로 실행한다. 전체 화면에서 F9는 Cancel, F10은 OK 기능을 수행한다.
Timezone
처음 설치후 CET 시간대로 되어 있어서 Asia/Seoul로 변경하고자 한다.
1 | linux:~ # date |
시스템 시간대를 설정하려면 yast
를 시작해 System -> Date and Time 을 실행해 시간대를 지정한다. 혹은 yast timezone
모듈 명령을 주면 해당 Date and Time 화면으로 이동할 수 있다.
{:width=”640”}
시간대를 변경후 확인해 보면,
1 | linux:~ # date |
ntp로 동기화하려면 Other Settings… 항목을 선택해 ntp server 를 설치하고 활성화 한다.
{:width=”640”}
{:width=”640”}