Mac 에 임베디드 리눅스 개발 환경 구성하기
- 개발환경/개발환경 세팅
- 2020. 1. 30.
반응형
본 글에서는 Mac PC 에서 임베디드 리눅스 개발을 위한 환경을 구성하는 방법을 설명한다.
참고로, 본 글에 언급된 환경은 지극히 주관적인 관점으로 본인이 현재 사용하고 있는 대로 구성하도록 작성되었다.
리눅스 개발 환경 구성
[맥] Docker 설치
Docker 참고사이트
Docer for Mac 설치
Docker 실행
MacBook-Pro:~ hello$ docker run -it ubuntu:14.04
root@9427234756e6:/#
[리눅스(도커)] 개발용 계정 생성
본 컨테이너를 실행하면 기본적으로 root 계정으로 시작한다. 실제 개발 시에 root 계정으로 진행하면 배포 시에 문제가 있을 수 있으므로 개발용 계정을 새로 생성하여 사용한다.
adduser 명령으로 계정을 추가하고, sudo visudo 명령으로 해당 계정에 super user 권한을 할당한다.
root@9427234756e6:/# adduser hello
...
root@9427234756e6:/# sudo visudo
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
hello ALL=(ALL:ALL) ALL -> hello 계정 추가
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
:wq
[리눅스(도커)] 개발용 툴 설치
각 플랫폼용 툴체인을 포함한 필요 사항들을 설치하거나 설정한다. 주요 설치항목은 다음과 같다.
- ARM용 크로스컴파일러
- PPC용 클로스컴파일러
- scp 사용을 위한 ssh
참고로 Ubuntu 14.04에서는 버전 명시없이 크로스컴파일러를 설치하면 4.8.4 버전의 gcc가 설치된다(arm-linux-gnueabi는 4.7.3).
root@9427234756e6:/# su hello
hello@9427234756e6:/$ sudo apt-get update
hello@9427234756e6:/$ sudo apt-get install build-essential
hello@9427234756e6:/$ sudo apt-get install gcc-arm-linux-gnueabihf
hello@9427234756e6:/$ sudo apt-get install gcc-arm-linux-gnueabi
hello@9427234756e6:/$ sudo apt-get install gcc-powerpc-linux-gnu
hello@9427234756e6:/$ sudo apt-get install ssh
hello@9427234756e6:/$ sudo apt-get install vim
hello@9427234756e6:/$ exit
[맥] 도커 이미지 저장하기
툴체인 등 개발환경이 모두 설정된 상태를 도커 이미지로 저장한다.
root@9427234756e6:/# exit
exit
MacBook-Pro:~ hello$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9427234756e6 ubuntu:14.04 "/bin/bash" 6 seconds ago Exited (0) 2 seconds ago youthful_kepler
e99581702f5f ubuntu:14.04 "/bin/bash" 17 hours ago Exited (0) 17 hours ago goofy_blackwell
MacBook-Pro:~ hello$ docker commit -m "development enviroments setup" -a "hello" 9427234756e6 ubuntu-devel:14.04
sha256:9ce47bbd2ab24d1c02ca4f36404c76b5ebb40d5b97ac10f76a3388caeeaee52d
MacBook-Pro:~ hello$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-devel 14.04 9ce47bbd2ab2 2 seconds ago 222MB
ubuntu 14.04 a35e70164dfb 3 weeks ago 222MB
개발용 리눅스(도커) 실행하기
다음 명령을 통해 리눅스 도커를 실행하여 작업을 수행할 수 있다.
MacBook-Pro:~ hello$ docker run -u hello -v ~/Desktop:/Desktop --rm -it ubuntu-devel:14.04
hello@a773182065ee:/$
명령줄 옵션은 다음과 같다.
- -u : 리눅스에 로그인할 계정
- -v : 마운트 옵션. Mac의 ~/Desktop을 도커 리눅스의 /Desktop 디렉터리로 마운트
- --rm : 프로세스 종료 시 도커도 함께 종료
- -it : 터미널 입출력 옵션 → 이걸 하지 않으면 키 입력이 되지 않는다.
- ubuntu-devel:14.04 : 위에서 생성한 ubuntu-devel 14.04 컨테이너를 실행한다.
주의사항: 도커 실행이 종료되면, 도커 내에서 수행되었던 작업은 모두 사라진다(변경사항이 컨테이너에 저장되지 않는다). 따라서, 작업공간은 마운트된 Mac의 디렉토리를 사용해야 한다.
편집기 설치
Eclipse 설치
Visual studio code 설치
Typora - 마크다운 편집기
Mac 설정
homebrew 설치 (패키지 관리자)
- http://brew.sh/
- 터미널에서 다음 명령 실행
MacBook-Pro:~ hello$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
MacBook-Pro:~ hello$ curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
MacBook-Pro:~ hello$ chsh -s /usr/local/bin/zsh
터미널 스타일 설정 (검은색 바탕 흰색 글씨)
- 터미널 실행
- '터미널' → '환경설정' 메뉴 선택
- '프로파일' 탭에서 'Pro' 더블 클릭
- '일반' 탭에서 '시작 시 열기'의 '새로운 윈도우(프로파일 포함)' 항목을 'Pro'로 변경
- '셀' 메뉴에서 '기본 설정으로 사용' 선택
Go2Shell 설치
- Finder 상 현재 위치에 대한 쉘 터미널을 열어주는 프로그램 (cd 명령을 이용해서 원하는 디렉토리로 이동하지 않아도 됨)
- AppStore에서 "Go2Shell" 검색 후 설치
- 설치 방법은 AppStore 화면 참조
기타 프로그램 설치
CoolTerm 설치
GitKraken 설치
tftp 서버 설치
'개발환경 > 개발환경 세팅' 카테고리의 다른 글
WSL(Windows Subsystem for Linux) 설치하기 (0) | 2020.08.20 |
---|---|
글꼴(폰트) 설치 : 나눔고딕코딩 (0) | 2020.08.16 |