임베디드 개발 환경 설치
# Ubuntu 16
# ssh
# samba: PC ↔ Ubuntu 파일 공유(Virtual Box 공유 디렉토리를 이용한다면 생략)
# tftpboot: 타겟 보드에서 Kernel, Ramdisk, bootloader 이미지 다운로드
# nfs: 타겟보드 ↔ Ubuntu 파일 공유
1. 네트워크 설정
• 내부(Ubuntu ↔ Internet) 네트워크
• 호스트 전용(PC ↔ Ubuntu) 네트워크
• 외부(Ubuntu ↔ Target Board) 네트워크
→ 필자는 Network Card를 2개 사용하고 있어 이와 같이 설정하였음.
→ Network Card가 1개일 경우 개발환경 설치가 끝난 후 어댑터 1를 브리지 어댑터로 설정하여 타겟보드와 연동한다.
$ ifconfig
2. 우분투 기본 설정
• root 패스워드 변경
$ sudo passwd root
• 방화벽 설정
$ sudo ufw status
상태: 비활성
$ sudo ufw enable
방화벽이 활성상태이며 시스템 시작할 때 활성화 된다.
기본적인 룰을 적용.
전부 막기 sudo ufw default deny
전부 열기 sudo ufw default allow
3. 기본 패키지 설치
• 기본 패키지 설치
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install gcc build-essential binutils libsdl-dev libncurses5 libncurses5-dev bin86 vim
• vi 편집기 하이라이트 설정
$ sudo vi /etc/vim/vimrc
→ 맨 아래 입력해 준다. (ctag, cscope는 다음에 다루기로 함)
set nu
syntax on
set autoindent
set cindent
set smartindent
set tabstop=4
set shiftwidth=4
highlight Comment term=bold cterm=bold ctermfg=4
set tags=./tags
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
if filereadable("./cscope.out")
cs add cscope.out
else
cs add ./cscope.out
endif
set csverb
set fileencodings=utf8,euc-kr
4. ssh 설치
$ sudo apt-get install ssh
• ssh 방화벽 설정
$ sudo ufw allow 22/tcp
• ssh 권한 설정 경로
→ 권한 및 설정을 변경하려면 아래 경로에서 수정해 준다. 필자는 기본 값으로 사용.
$ sudo /etc/ssh/sshd_config
• 명령어
→ 서비스 재 시작
$ sudo /etc/init.d/ssh restart
$ sudo service ssh restart
5. samba 설치
• 설치
$ sudo apt-get install samba
• samba 유저 추가
$ sudo smbpasswd -a ubuntu
New SMB password:
Retype new SMB password:
• 계정 삭제 방법
$ smbpasswd -x 아이디
• 환경 설정
$ sudo vi /etc/samba/smb.conf
→ 아래 경로에서 주석을 제거하거나 내용을 추가해 준다.
[homes]
comment = Home Directories
browseable = no
valid users = %S
read only = no
[NFS]
comment = Test Linux Server
path = /NFS
read only = no
create mask = 775
directory mask = 775
• 디렉토리 설정
$ sudo mkdir /TNFS
$ sudo mkdir /TNFS/Proj
$ sudo mkdir /TNFS/tftpboot
$ sudo mkdir /TNFS/nfs
$ sudo chmod -R 775 /TNFS
$ sudo chown ubuntu:ubuntu /TNFS
$ sudo ln -s /TNFS/Proj /Proj
$ sudo ln -s /TNFS/nfs /nfs
$ sudo ln -s /TNFS/tftpboot /tftpboot
• samba 방화벽설정
$ sudo ufw allow 139,445/tcp
$ sudo ufw allow 137,138/udp
• samba 재 시작.
$ sudo service smbd restart
• samba 접속
\\[IP]
6. tftp 설치
• 설치
$ sudo apt-get install tftpd-hpa tftp-hpa
• tftp 디렉터리 생성
$ sudo mkdir -p /NFS/tftpboot
• tftp 설정
$ sudo vi /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/TNFS/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
• tftp 공유 디렉토리 설정
$ sudo chmod -R 775 /TNFS/tftpboot/
• 방화벽 설정
$ sudo ufw allow 69/tcp
$ sudo ufw allow 69/udp
• 서비스 재 시작
$ sudo service tftpd-hpa restart
7. nfs 설치
• 설치
$ sudo apt-get install nfs-kernel-server nfs-common portmap
• tftp 디렉터리 생성
$ sudo mkdir -p /NFS/nfs
• nfs 설정
$ sudo vi /etc/exports
/TNFS/nfs *(rw,async,no_root_squash,no_subtree_check,insecure)
• nfs 포트설정
$ sudo ufw allow 111,2049,4000,4001,4002,4003,4004/tcp
$ sudo ufw allow 111,2049,4000,4001,4002,4003,4004/udp
$ vi /etc/services
# nfs
status 4000/tcp
status 4000/udp
mountd 4002/tcp
mountd 4002/udp
rquotad 4003/tcp
rquotad 4003/udp
$ sudo vi /etc/default/nfs-kernel-server
→ 아래와 같이 주석 처리한 후 아래 내용으로 변경.
#RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="-p 4002 -g"
$ sudo vi /etc/modprobe.d/options
options lockd nlm_udpport=4001 nlm_tcpport=4001
• 서비스 재 시작
$ sudo /etc/init.d/nfs-kernel-server restart
• 타겟 보드에서 테스트
# ifconfig eth0 [같은 IP 대역으로 변경]
# mount -t nfs -o nolock,tcp [IP주소]:/TNFS/nfs /tmp
완료.