일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 마이컴
- bldc
- CCS
- EMBEDDED
- 임베디드시스템
- MAC OS
- St
- Programming
- GPIO
- 8051
- PCB
- 7 세그먼트
- Embedded System
- 모두의연구소
- 초보개발자
- 아트웍
- easyeda
- IoT
- terminal
- TM4C123GXL
- Arm
- mcu
- RTOS
- JLCPCB
- Developer
- m4
- TI
- TM4C123
- 임베디드
- 전자공학
- Today
- Total
Engineering Agit
[Session 03 RTOS study 01] - 실습교재 및 개발환경 구성 본문
[Session 03 RTOS study 01] - 실습교재 및 개발환경 구성
Sean_Kim95 2021. 1. 18. 17:07◈ 여는 글
본 Session 03은 모두의 연구소(강남 캠퍼스) 임베디드 랩의 2번째 session(2021.01.13~)을 다룬다. (Session 03인 이유는 Session 01이 비공식적인 session이었기 때문이다.) 이번 session은 RTOS에 관하여 다룬다.
1. 교재
① 임베디드 OS 개발 프로젝트:
- 실제 임베디드 OS의 구현을 위한 실습교재
② RTOS를 이용한 실시간 임베디드 시스템 디자인:
- 위의 교재에서 명시되어있지 않은 이론적인 내용을 담고 있다.
2. 개발환경 구성
실습교재에서는 Linux환경에서 진행하고 있지만, 현재 사용하고 있는 노트북은 Mac OS가 설치되어 있기 때문에 VM을 설치하여 Linux를 실행하거나 하드에 직접 OS 사용공간을 할당하여 사용해야 하기 때문에 번거로움이 있다. 따라서 native 환경인 Mac OS에서 embedded system emulator인 QEMU를 설치하고 RTOS에 대한 공부를 하려 한다.
2-1. 개발환경 구성 요소
실제 embedded development board에서 OS를 개발해도 되지만, 해당 dev. board를 구매하는 것은 비용이 든다. 따라서 본 교재에서는 emulator를 이용하여 가상의 dev. board에서 OS를 개발하는 방식을 택했다. 이를 위해 QEMU와 ARM용 cross-compiler인 GCC 설치가 필요하다.
2-1-1. QEMU
QEMU는 Quick EMUlator의 약자로 hardware virtualization을 수행하기 위한 무료 오픈소스 emulator이자 virtualizer이다. 해당 emulator는 다양한 종류의 hardware platform들을 지원하는데 우리는 그 중 ARM을 위한 RTOS를 개발할 것이다. 자세한 사항은 아래의 링크를 참고하자.
2-1-2. GCC
GCC는 GNU Compiler Collection의 약자로 C/C++로 개발된 펌웨어를 embedded system에서 작동할 수 있도록 compile해주는 compiler이다. GCC도 다양한 hardware platform 용 compiler들이 존재하며 우리는 ARM용 GCC를 설치할 것이다. 자세한 사항은 아래의 링크를 참고하자.
en.wikipedia.org/wiki/GNU_Compiler_Collection
2-2. 개발환경 구축
개발환경 구축은 Mac의 Terminal에서 이루어진다. 다음 순서는 크게 의미가 없고 해당하는 명령어들을 실행해주어 설치하면 구축이 완료된다.
- GCC(ARM용) installation for cross-compiler: 'brew install --cask gcc-arm-embedded'
- Wget(A robust command line application for downloading URL-specified resources): 'brew install wget'
- QEMU installation for emulating embedded system: 'brew install qemu'
여기서 Wget은 추후에 개발 중 URL resource를 이용해야하는 경우가 발생하는데 그때 사용하기 위한 프로그램이다.
2-3. 결과
➜ ~ brew install --cask gcc-arm-embedded
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
acl2 graphql-cli odin
act gravity oha
aerc grokj2k omake
aida-header grpcui openalpr
airshare gtkmm4 openfast
alsa-lib guile@2 openfst
amp gulp-cli openjdk@8
apidoc h2spec openstackclient
arb halide oq
argo hashlink or-tools
argocd hasura-cli ormolu
arrayfire hblock ory-hydra
arturo hcxtools osi
asimov hdf5-mpi osm
asroute heksa overdrive
asuka heppdt2 ox
athenacli httpx packetbeat
atkmm@2.28 hy packr
attr i686-elf-binutils pandoc-include-code
austin i686-elf-gcc pandocomatic
autodiff idris2 pangomm@2.42
aws-console immudb parallel-hashmap
aws-rotate-key indicators pdm
awsweeper infracost periscope
bandit inframap pfetch
bit-git inja phive
blaze inko php@7.4
blogc ioctl pickle
bombadillo isl@0.18 pipgrip
bond isort pkger
bootloadhid jc po4a
borgbackup jerryscript podman
box2d jimtcl postgresql@12
bpytop jinx prometheus-cpp
buildozer jobber promtail
c7n jolie protoc-gen-go-grpc
cadence jpeg-xl protoc-gen-gogo
cairomm@1.14 jql protoc-gen-gogofaster
cargo-audit json5 ptpython
cargo-edit jsonnet-bundler pwncat
cargo-watch k3sup python@3.7
carton k9s python@3.9
cassowary kamel qrcp
castget kcgi quill
cbc kde-extra-cmake-modules rain
cbmc kde-karchive rbtools
cddlib kde-kdoctools rcm
cdktf kde-ki18n redo
cdo kde-threadweaver reg
cfn-flip keptn regipy
cfn-format khiva reorder-python-imports
cgl kona rgf
chalk-cli kondo richmd
charge ksync rm-improved
chars kube-linter rqlite
chart-testing kubecm rtorrent
checkov kubevela rttr
chezmoi kubie ruby@2.7
choose-rust kumactl rust-analyzer
chrony lab rustscan
clair ladspa-sdk s2n
clang-format@8 lanraragi saltwater
clash latexindent sdns
claws-mail lc0 semgrep
cli11 ldpl server-go
clip leaf shallow-backup
cloud-nuke leakcanary-shark sheldon
cloudformation-cli libaio showkey
cloudformation-guard libbsd shtools
coconut libcap silicon
code-server libcap-ng simdjson
colfer libcouchbase@2 skylighting
commitizen libcpuid sleef
condure libdmx smlpkg
copilot libdrm snap
coredns libfontenc so
cortex libfs solidity
counterfeiter libfuse sollya
cpio libgccjit sonic
cpm libgnt spack
cpr libhandy sponge
cqlkit libice spotify-tui
croaring libirecovery spotifyd
croc libmnl sqlc
cubejs-cli libnetfilter-queue sqlite-utils
cucumber-ruby libnetworkit standardese
cvs-fast-export libnfnetlink staticcheck
datasette libnsl strace
dbdeployer libolm structurizr-cli
detach liboqs subfinder
device-mapper libpciaccess t-rec
dgraph libpinyin tanka
diskonaut libpqxx@6 taskwarrior-tui
dmagnetic libpthread-stubs tctl
dnsprobe librttopo tendermint
dnsx libseccomp tengo
doctest libslirp termcolor
docui libsm terracognita
dog libtirpc terraform-ls
dosbox-staging libtorrent-rakshasa terraform@0.12
dotenv-linter libva terraform@0.13
dotnet libvdpau terrascan
dprint libvnc tfsec
driftctl libx11 tgenv
duckdb libxau thanos
duckscript libxaw thrax
duf libxaw3d tm
duktape libxcb toot
earthly libxcomposite torchvision
easy-rsa libxcursor trailscraper
efm-langserver libxdamage tre-command
eksctl libxdmcp trec_eval
eleventy libxext tree-sitter
empty libxfixes trimage
envoy libxfont trunk
erlang@22 libxft ugrep
eva libxi unum
evernote2md libxinerama uptoc
f3d libxkbfile usb.ids
fargatecli libxml++@4 utf8cpp
fava libxml++@5 util-macros
fblog libxmu uutils-coreutils
fcct libxp v2ray
fennel libxpm vapor
fetch libxrandr vc
field3d libxrender vcpkg
fizz libxres vgrep
flamegraph libxscrnsaver vint
flank libxshmfence vivid
flarectl libxt vlang
flash libxtst vlmcsd
fleet-cli libxv volk
flit libxvmc volta
flow-cli libxxf86dga vsearch
flux libxxf86vm vtk@8.2
fnm linux-headers vulture
folderify litecli wangle
font-util lizard-analyzer wasm-pack
foreman localstack wayland
forge logcli wayland-protocols
fpart logswan webify
fpdns loki wgcf
fplll lp_solve wownero
functionalplus lua@5.3 wren
gallery-dl lunchy wren-cli
gateway-go lunchy-go x86_64-elf-gdb
gau macos-trash xbitmaps
gcalcli magic_enum xcb-proto
gcc@9 mandown xcb-util
gdbgui mariadb@10.4 xcb-util-cursor
gdu markdownlint-cli xcb-util-image
ghc@8.8 marked xcb-util-keysyms
ghz mask xcb-util-renderutil
ghz-web massdns xcb-util-wm
git-bug matplotplusplus xcbeautify
git-hooks-go md4c xcinfo
git-hound mermaid-cli xdpyinfo
gitlint mesa-glu xinput
gitql mhonarc xkeyboardconfig
gitui microplane xorgproto
giza mockery xorgrgb
glab muffet xterm
glibmm@2.64 naabu xtrans
gluon nanorc xxh
gmailctl ncspot yh
go@1.14 nest yj
gocloc networkit ykdl
gofish never youtube-dlc
gofumpt nfpm youtubedr
golangci-lint ngs yq@3
googletest nicotine-plus z.lua
gopls node@14 zenith
gosec notmuch-mutt zoxide
gost numcpp zsh-async
gostatic oakc zsh-you-should-use
gping ocaml-zarith
gradle-profiler oci-cli
==> Updated Formulae
Updated 4852 formulae.
==> Renamed Formulae
elasticsearch@6.8 -> elasticsearch@6
gst-validate -> gst-devtools
gtk+4 -> gtk4
interactive-rebase-tool -> git-interactive-rebase-tool
jfrog-cli-go -> jfrog-cli
kibana@6.8 -> kibana@6
mkl-dnn -> onednn
now-cli -> vercel-cli
==> Deleted Formulae
baidupcs-go gnome-builder python
biogeme gobby residualvm
boost@1.55 godep rmtrash
boost@1.59 highlighting-kate sflowtool
cargo-completion i386-elf-grub stlviewer
confluent-platform kibana@5.6 tomee-jax-rs
crc llvm@6 unp64
cryptopp lumo unrar
curl-openssl marathon-swift unravel
deis meson-internal urbit
deisctl mysql-connector-c++@1.1 woboq_codebrowser
dtrx open-cobol wpscan
elasticsearch@2.4 ori xspin
elasticsearch@5.6 pgplot xu4
fmsx pijul
==> Tapping homebrew/cask
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
remote: Enumerating objects: 543736, done.
remote: Total 543736 (delta 0), reused 0 (delta 0), pack-reused 543736
Receiving objects: 100% (543736/543736), 239.19 MiB | 1.31 MiB/s, done.
Resolving deltas: 100% (383775/383775), done.
Tapped 3790 casks (3,911 files, 256.7MB).
==> Downloading https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020
==> Downloading from https://armkeil.blob.core.windows.net/developer/Files/downl
######################################################################## 100.0%
==> Installing Cask gcc-arm-embedded
==> Linking Binary 'arm-none-eabi-strip' to '/usr/local/bin/arm-none-eabi-strip'
==> Linking Binary 'arm-none-eabi-ar' to '/usr/local/bin/arm-none-eabi-ar'.
==> Linking Binary 'arm-none-eabi-as' to '/usr/local/bin/arm-none-eabi-as'.
==> Linking Binary 'arm-none-eabi-c++' to '/usr/local/bin/arm-none-eabi-c++'.
==> Linking Binary 'arm-none-eabi-c++filt' to '/usr/local/bin/arm-none-eabi-c++f
==> Linking Binary 'arm-none-eabi-cpp' to '/usr/local/bin/arm-none-eabi-cpp'.
==> Linking Binary 'arm-none-eabi-elfedit' to '/usr/local/bin/arm-none-eabi-elfe
==> Linking Binary 'arm-none-eabi-g++' to '/usr/local/bin/arm-none-eabi-g++'.
==> Linking Binary 'arm-none-eabi-gcc' to '/usr/local/bin/arm-none-eabi-gcc'.
==> Linking Binary 'arm-none-eabi-gcc-ar' to '/usr/local/bin/arm-none-eabi-gcc-a
==> Linking Binary 'arm-none-eabi-gcc-nm' to '/usr/local/bin/arm-none-eabi-gcc-n
==> Linking Binary 'arm-none-eabi-gcc-ranlib' to '/usr/local/bin/arm-none-eabi-g
==> Linking Binary 'arm-none-eabi-gcov' to '/usr/local/bin/arm-none-eabi-gcov'.
==> Linking Binary 'arm-none-eabi-gcov-tool' to '/usr/local/bin/arm-none-eabi-gc
==> Linking Binary 'arm-none-eabi-gdb' to '/usr/local/bin/arm-none-eabi-gdb'.
==> Linking Binary 'arm-none-eabi-gdb-py' to '/usr/local/bin/arm-none-eabi-gdb-p
==> Linking Binary 'arm-none-eabi-gprof' to '/usr/local/bin/arm-none-eabi-gprof'
==> Linking Binary 'arm-none-eabi-ld' to '/usr/local/bin/arm-none-eabi-ld'.
==> Linking Binary 'arm-none-eabi-ld.bfd' to '/usr/local/bin/arm-none-eabi-ld.bf
==> Linking Binary 'arm-none-eabi-nm' to '/usr/local/bin/arm-none-eabi-nm'.
==> Linking Binary 'arm-none-eabi-objcopy' to '/usr/local/bin/arm-none-eabi-objc
==> Linking Binary 'arm-none-eabi-objdump' to '/usr/local/bin/arm-none-eabi-objd
==> Linking Binary 'arm-none-eabi-ranlib' to '/usr/local/bin/arm-none-eabi-ranli
==> Linking Binary 'arm-none-eabi-readelf' to '/usr/local/bin/arm-none-eabi-read
==> Linking Binary 'arm-none-eabi-size' to '/usr/local/bin/arm-none-eabi-size'.
==> Linking Binary 'arm-none-eabi-strings' to '/usr/local/bin/arm-none-eabi-stri
==> Linking Binary 'arm-none-eabi-addr2line' to '/usr/local/bin/arm-none-eabi-ad
🍺 gcc-arm-embedded was successfully installed!
➜ ~ brew install wget
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
Updated 4 formulae.
==> Updated Casks
Updated 2 casks.
==> Downloading https://homebrew.bintray.com/bottles/gettext-0.21.big_sur.bottle
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/a025e143fe3f5f7e24a93
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libunistring-0.9.10.big_sur
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/5d336bd939f678b48dc1c
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libidn2-2.3.0.big_sur.bottl
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/65523d89d65893a402f9f
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/openssl%401.1-1.1.1i.big_su
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/8008537d37a7f09eedbcd
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/wget-1.21.big_sur.bottle.ta
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/eb830909eed1e6d861968
######################################################################## 100.0%
==> Installing dependencies for wget: gettext, libunistring, libidn2 and openssl@1.1
==> Installing wget dependency: gettext
==> Pouring gettext-0.21.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/gettext/0.21: 1,953 files, 19.8MB
==> Installing wget dependency: libunistring
==> Pouring libunistring-0.9.10.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libunistring/0.9.10: 55 files, 4.5MB
==> Installing wget dependency: libidn2
==> Pouring libidn2-2.3.0.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libidn2/2.3.0: 72 files, 808.2KB
==> Installing wget dependency: openssl@1.1
==> Pouring openssl@1.1-1.1.1i.big_sur.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl@1.1/certs
and run
/usr/local/opt/openssl@1.1/bin/c_rehash
openssl@1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.
If you need to have openssl@1.1 first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc
For compilers to find openssl@1.1 you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
==> Summary
🍺 /usr/local/Cellar/openssl@1.1/1.1.1i: 8,067 files, 18.5MB
==> Installing wget
==> Pouring wget-1.21.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/wget/1.21: 88 files, 4.1MB
==> Caveats
==> openssl@1.1
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl@1.1/certs
and run
/usr/local/opt/openssl@1.1/bin/c_rehash
openssl@1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.
If you need to have openssl@1.1 first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc
For compilers to find openssl@1.1 you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
➜ ~ brew install qemu
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/libffi-3.3_2.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/pcre-8.44.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/a67dd6141e117f849bbb7d3bde92ffb6485921939c1d64e39a3f7fd0dac3f523?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/gdbm-1.18.1_1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/36b492f1b0910367dd394cbdcffe1606f64ab41ec6701210becfb591a8557dee?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/readline-8.1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/2cc3a9582e3c7e21eb3c2c8964abd33e9720fb4a9588c626d8424ff8cc9b1aed?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.34.0.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/cdf256befc0752680a6742469b217e0dae42c691cb3565923d4bf2c5a0583152?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/tcl-tk-8.6.11.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/f7c4fb93ca32dca70f3ead938b44bce22c7a99f060242ce802ca8955d274f361?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/xz-5.2.5.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/4fbd4a9e3eb49c27e83bd125b0e76d386c0e12ae1139d4dc9e31841fb8880a35?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/python%403.9-3.9.1_6.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/48d123683fa125de9f02f7777683edda40e998f0e2dca492024c00bbd3f05ea2?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/glib-2.66.4_1.big_sur.bottle.1.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/f8851f19a2ce75914f0b38a3a0ad4d357f16824bfa10344a0cdf5d3e2d794ef5?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/gmp-6.2.1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/6a44705536f25c4b9f8547d44d129ae3b3657755039966ad2b86b821e187c32c?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/bdw-gc-8.0.4_1.big_sur.bottle.1.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/bb94ab58bc20b01662c432d21920c9a2e644aad92208b640658d3fd9fb530636?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libtool-2.4.6_2.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/b5dba5a59ae66f42b012998e08edbeaed9e2456c0d1670307b8f46be5ef3b9fa?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.2_3.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/0040b6ebe07f60549800b211343fd5fb3cf83c866d9f62e40f5fb2f38b71e161?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/guile-3.0.5.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/ce8a02da2f7a50ee2df21ace1dac3b8335855907ec31224cea3ea5f89d82c463?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libtasn1-4.16.0.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/nettle-3.7.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/e02e4ae1f73b54c0976a2e7afdbe2f461a202362c51c68e341f289477a9dfb6b?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/p11-kit-0.23.22.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/9474fe6483bbc394d9069f79528ecfe9ba1af00db4aca23c26857b6b66736d73?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libevent-2.1.12.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/45758b448d82b82b6bea52bc9a72593ef22f04ebdaa4b4230cadf12768252e22?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/c-ares-1.17.1.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/jemalloc-5.2.1_1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/7797788be2da677a8343ac6199e2f180c2e6b627c0b9abc9da133fbc34e86678?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libev-4.33.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/nghttp2-1.42.0_1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/3d0437a63bcc51ec17d456847bcc0a624be2e00755ecc96b8445bc15020ff413?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/unbound-1.13.0.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/cef5d9843ecaabaa0a4cb9b89e04bc3d370ce143e4ff2e0f6711aa6572b1ad3a?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/gnutls-3.6.15.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/6f523e8ce74c567d17a4a5b69794e897074a016b895a5d8ef7122ac006b770fc?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/jpeg-9d.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/c565929a4901365a3408b57275802f943625c1e29e1b48a186edd2e97d8c0bdb?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libpng-1.6.37.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/a8f1c35f9f004c4f7878c30027e35a9fb9551782df963f88deebd3dc29d94d51?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libssh-0.9.5_1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/ba9752b774a055a0df12b12cb76c8faed66b13de0f8ebbb8d415dae9f21a899d?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/libusb-1.0.24.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/lzo-2.10.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/ncurses-6.2.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/b34b4aa433f23405c6104bf810836eed2686f11c660b8668a7af86f99be2329f?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/pixman-0.40.0.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/0114710dd922d5e4839c9dea3b72cd5fbe6f00157dd63457c99ca15554cf8d7f?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/snappy-1.1.8.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/vde-2.3.2_1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/f634d3558c44876138a229f06554ab603b31e412a03c049d96f6c3616e579729?response-content-disp
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/qemu-5.1.0.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/6d66e4689bda9dc9c43bd3924e49e4722586bb611073ced182c79c6d7f995cb0?response-content-disp
######################################################################## 100.0%
==> Installing dependencies for qemu: libffi, pcre, gdbm, readline, sqlite, tcl-tk, xz, python@3.9, glib, gmp, bdw-gc, libtool, pkg-config, guile, libtasn1, nettle, p11-kit, libevent, c-ares, jemalloc, libev, nghttp2, unbound, gnutls, jpeg, libpng, libssh, libusb, lzo, ncurses, pixman, snappy and vde
==> Installing qemu dependency: libffi
==> Pouring libffi-3.3_2.big_sur.bottle.tar.gz
==> Caveats
libffi is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
For compilers to find libffi you may need to set:
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export CPPFLAGS="-I/usr/local/opt/libffi/include"
==> Summary
🍺 /usr/local/Cellar/libffi/3.3_2: 17 files, 540.5KB
==> Installing qemu dependency: pcre
==> Pouring pcre-8.44.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/pcre/8.44: 204 files, 5.8MB
==> Installing qemu dependency: gdbm
==> Pouring gdbm-1.18.1_1.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/gdbm/1.18.1_1: 25 files, 787.2KB
==> Installing qemu dependency: readline
==> Pouring readline-8.1.big_sur.bottle.tar.gz
==> Caveats
readline is keg-only, which means it was not symlinked into /usr/local,
because macOS provides BSD libedit.
For compilers to find readline you may need to set:
export LDFLAGS="-L/usr/local/opt/readline/lib"
export CPPFLAGS="-I/usr/local/opt/readline/include"
==> Summary
🍺 /usr/local/Cellar/readline/8.1: 48 files, 1.6MB
==> Installing qemu dependency: sqlite
==> Pouring sqlite-3.34.0.big_sur.bottle.tar.gz
==> Caveats
sqlite is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have sqlite first in your PATH run:
echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.zshrc
For compilers to find sqlite you may need to set:
export LDFLAGS="-L/usr/local/opt/sqlite/lib"
export CPPFLAGS="-I/usr/local/opt/sqlite/include"
==> Summary
🍺 /usr/local/Cellar/sqlite/3.34.0: 11 files, 4.1MB
==> Installing qemu dependency: tcl-tk
==> Pouring tcl-tk-8.6.11.big_sur.bottle.tar.gz
==> Caveats
tcl-tk is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have tcl-tk first in your PATH run:
echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.zshrc
For compilers to find tcl-tk you may need to set:
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
==> Summary
🍺 /usr/local/Cellar/tcl-tk/8.6.11: 3,041 files, 51.6MB
==> Installing qemu dependency: xz
==> Pouring xz-5.2.5.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/xz/5.2.5: 95 files, 1.4MB
==> Installing qemu dependency: python@3.9
==> Pouring python@3.9-3.9.1_6.big_sur.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3
Target /usr/local/bin/2to3
already exists. You may want to remove it:
rm '/usr/local/bin/2to3'
To force the link and overwrite all conflicting files:
brew link --overwrite python@3.9
To list all files that would be deleted:
brew link --overwrite --dry-run python@3.9
Possible conflicting files are:
/usr/local/bin/2to3 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/2to3
/usr/local/bin/2to3-3.9 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/2to3-3.9
/usr/local/bin/easy_install-3.9 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/easy_install-3.9
/usr/local/bin/idle3 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/idle3
/usr/local/bin/idle3.9 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/idle3.9
/usr/local/bin/pip3 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/pip3
/usr/local/bin/pip3.9 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/pip3.9
/usr/local/bin/pydoc3 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/pydoc3
/usr/local/bin/pydoc3.9 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/pydoc3.9
/usr/local/bin/python3 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/python3
/usr/local/bin/python3-config -> /Library/Frameworks/Python.framework/Versions/3.9/bin/python3-config
/usr/local/bin/python3.9 -> /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9
/usr/local/bin/python3.9-config -> /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9-config
==> /usr/local/Cellar/python@3.9/3.9.1_6/bin/python3 -m ensurepip
==> /usr/local/Cellar/python@3.9/3.9.1_6/bin/pip3 install -v --global-option=--no-user-cfg --install-option=--force --install-option=--single-ver
==> /usr/local/Cellar/python@3.9/3.9.1_6/bin/pip3 wheel --wheel-dir=/usr/local/Cellar/python@3.9/3.9.1_6/Frameworks/Python.framework/Versions/3.9
==> Caveats
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python@3.9/libexec/bin
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.9/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
==> Summary
🍺 /usr/local/Cellar/python@3.9/3.9.1_6: 3,932 files, 65.4MB
==> Installing qemu dependency: glib
==> Pouring glib-2.66.4_1.big_sur.bottle.1.tar.gz
🍺 /usr/local/Cellar/glib/2.66.4_1: 441 files, 20.8MB
==> Installing qemu dependency: gmp
==> Pouring gmp-6.2.1.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/gmp/6.2.1: 21 files, 3.3MB
==> Installing qemu dependency: bdw-gc
==> Pouring bdw-gc-8.0.4_1.big_sur.bottle.1.tar.gz
🍺 /usr/local/Cellar/bdw-gc/8.0.4_1: 69 files, 1.6MB
==> Installing qemu dependency: libtool
==> Pouring libtool-2.4.6_2.big_sur.bottle.tar.gz
==> Caveats
In order to prevent conflicts with Apple's own libtool we have prepended a "g"
so, you have instead: glibtool and glibtoolize.
==> Summary
🍺 /usr/local/Cellar/libtool/2.4.6_2: 71 files, 3.7MB
==> Installing qemu dependency: pkg-config
==> Pouring pkg-config-0.29.2_3.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/pkg-config/0.29.2_3: 11 files, 656.6KB
==> Installing qemu dependency: guile
==> Pouring guile-3.0.5.big_sur.bottle.tar.gz
==> Caveats
Guile libraries can now be installed here:
Source files: /usr/local/share/guile/site/3.0
Compiled files: /usr/local/lib/guile/3.0/site-ccache
Extensions: /usr/local/lib/guile/3.0/extensions
Add the following to your .bashrc or equivalent:
export GUILE_LOAD_PATH="/usr/local/share/guile/site/3.0"
export GUILE_LOAD_COMPILED_PATH="/usr/local/lib/guile/3.0/site-ccache"
export GUILE_SYSTEM_EXTENSIONS_PATH="/usr/local/lib/guile/3.0/extensions"
==> Summary
🍺 /usr/local/Cellar/guile/3.0.5: 834 files, 56.8MB
==> Installing qemu dependency: libtasn1
==> Pouring libtasn1-4.16.0.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libtasn1/4.16.0: 60 files, 535.7KB
==> Installing qemu dependency: nettle
==> Pouring nettle-3.7.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/nettle/3.7: 89 files, 2.7MB
==> Installing qemu dependency: p11-kit
==> Pouring p11-kit-0.23.22.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/p11-kit/0.23.22: 63 files, 3MB
==> Installing qemu dependency: libevent
==> Pouring libevent-2.1.12.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libevent/2.1.12: 57 files, 2MB
==> Installing qemu dependency: c-ares
==> Pouring c-ares-1.17.1.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/c-ares/1.17.1: 85 files, 672.3KB
==> Installing qemu dependency: jemalloc
==> Pouring jemalloc-5.2.1_1.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/jemalloc/5.2.1_1: 16 files, 2MB
==> Installing qemu dependency: libev
==> Pouring libev-4.33.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libev/4.33: 12 files, 483.8KB
==> Installing qemu dependency: nghttp2
==> Pouring nghttp2-1.42.0_1.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/nghttp2/1.42.0_1: 24 files, 2.8MB
==> Installing qemu dependency: unbound
==> Pouring unbound-1.13.0.big_sur.bottle.tar.gz
==> Caveats
To have launchd start unbound now and restart at startup:
sudo brew services start unbound
==> Summary
🍺 /usr/local/Cellar/unbound/1.13.0: 57 files, 5.5MB
==> Installing qemu dependency: gnutls
==> Pouring gnutls-3.6.15.big_sur.bottle.tar.gz
==> Caveats
If you are going to use the Guile bindings you will need to add the following
to your .bashrc or equivalent in order for Guile to find the TLS certificates
database:
export GUILE_TLS_CERTIFICATE_DIRECTORY=/usr/local/etc/gnutls/
==> Summary
🍺 /usr/local/Cellar/gnutls/3.6.15: 1,250 files, 11MB
==> Installing qemu dependency: jpeg
==> Pouring jpeg-9d.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/jpeg/9d: 21 files, 953.8KB
==> Installing qemu dependency: libpng
==> Pouring libpng-1.6.37.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libpng/1.6.37: 27 files, 1.3MB
==> Installing qemu dependency: libssh
==> Pouring libssh-0.9.5_1.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libssh/0.9.5_1: 23 files, 1.2MB
==> Installing qemu dependency: libusb
==> Pouring libusb-1.0.24.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/libusb/1.0.24: 22 files, 516.4KB
==> Installing qemu dependency: lzo
==> Pouring lzo-2.10.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/lzo/2.10: 31 files, 570.7KB
==> Installing qemu dependency: ncurses
==> Pouring ncurses-6.2.big_sur.bottle.tar.gz
==> Caveats
ncurses is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have ncurses first in your PATH run:
echo 'export PATH="/usr/local/opt/ncurses/bin:$PATH"' >> ~/.zshrc
For compilers to find ncurses you may need to set:
export LDFLAGS="-L/usr/local/opt/ncurses/lib"
export CPPFLAGS="-I/usr/local/opt/ncurses/include"
For pkg-config to find ncurses you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/ncurses/6.2: 3,913 files, 8.9MB
==> Installing qemu dependency: pixman
==> Pouring pixman-0.40.0.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/pixman/0.40.0: 14 files, 1.3MB
==> Installing qemu dependency: snappy
==> Pouring snappy-1.1.8.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/snappy/1.1.8: 18 files, 158KB
==> Installing qemu dependency: vde
==> Pouring vde-2.3.2_1.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/vde/2.3.2_1: 73 files, 1.4MB
==> Installing qemu
==> Pouring qemu-5.1.0.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/qemu/5.1.0: 162 files, 490.5MB
==> Caveats
==> libffi
libffi is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
For compilers to find libffi you may need to set:
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export CPPFLAGS="-I/usr/local/opt/libffi/include"
For pkg-config to find libffi you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
==> readline
readline is keg-only, which means it was not symlinked into /usr/local,
because macOS provides BSD libedit.
For compilers to find readline you may need to set:
export LDFLAGS="-L/usr/local/opt/readline/lib"
export CPPFLAGS="-I/usr/local/opt/readline/include"
For pkg-config to find readline you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig"
==> sqlite
sqlite is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have sqlite first in your PATH run:
echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.zshrc
For compilers to find sqlite you may need to set:
export LDFLAGS="-L/usr/local/opt/sqlite/lib"
export CPPFLAGS="-I/usr/local/opt/sqlite/include"
For pkg-config to find sqlite you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/sqlite/lib/pkgconfig"
==> tcl-tk
tcl-tk is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have tcl-tk first in your PATH run:
echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.zshrc
For compilers to find tcl-tk you may need to set:
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
For pkg-config to find tcl-tk you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
==> python@3.9
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python@3.9/libexec/bin
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.9/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
==> libtool
In order to prevent conflicts with Apple's own libtool we have prepended a "g"
so, you have instead: glibtool and glibtoolize.
==> guile
Guile libraries can now be installed here:
Source files: /usr/local/share/guile/site/3.0
Compiled files: /usr/local/lib/guile/3.0/site-ccache
Extensions: /usr/local/lib/guile/3.0/extensions
Add the following to your .bashrc or equivalent:
export GUILE_LOAD_PATH="/usr/local/share/guile/site/3.0"
export GUILE_LOAD_COMPILED_PATH="/usr/local/lib/guile/3.0/site-ccache"
export GUILE_SYSTEM_EXTENSIONS_PATH="/usr/local/lib/guile/3.0/extensions"
==> unbound
To have launchd start unbound now and restart at startup:
sudo brew services start unbound
==> gnutls
If you are going to use the Guile bindings you will need to add the following
to your .bashrc or equivalent in order for Guile to find the TLS certificates
database:
export GUILE_TLS_CERTIFICATE_DIRECTORY=/usr/local/etc/gnutls/
==> ncurses
ncurses is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have ncurses first in your PATH run:
echo 'export PATH="/usr/local/opt/ncurses/bin:$PATH"' >> ~/.zshrc
For compilers to find ncurses you may need to set:
export LDFLAGS="-L/usr/local/opt/ncurses/lib"
export CPPFLAGS="-I/usr/local/opt/ncurses/include"
For pkg-config to find ncurses you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig"
[1] 임베디드 OS 개발 프로젝트, 이만우, 인사이트
[2] https://github.com/Homebrew/homebrew-cask/blob/master/Casks/gcc-arm-embedded.rb
[3] 나빌로스 Github project URL: https://github.com/navilera/Navilos