검색

레이블이 M1인 게시물을 표시합니다. 모든 게시물 표시
레이블이 M1인 게시물을 표시합니다. 모든 게시물 표시

2024년 2월 8일

사용기 - M1 MacBook Pro 에서 VMware Fusion 기반 윈도우 11 Arm 버전 설치하기

ARM 용 공식 윈도우 설치 ISO 파일을 가지고 있다는 가정하에 작성하였다. ISO 파일을 가지고 바로 설치가 가능한 것이 아주 편리했다.

1. VMware Fusion 을 실행하고 File > New .. (⌘N) 메뉴를 실행한다.

2. ISO 이미지 파일을 "Install from disc or image" 영역에 끌어다 놓는다.

3. Firmware Type 는 UEFI (통합 확장 펌웨어 인터페이스) 을 선택했다.  UEFI 는 시스템의 부팅 속도, 보안, 디스크 지원 및 사용자 경험을 향상시킨다고 한다. 가상 환경에서 설치할 때도 이러한 이점을 활용할 수 있으며, 대부분의 경우 UEFI 를 권장한다.
4. 암호화 옵션은  TPM (Trusted Platform Module) 지원을 위해 필요한 파일들만 암호화 함을 선택하였다. 비밀번호는 나중을 위해서 반드시 기억해야 한다. 
6. 옵션 수정 없이 진행을 계속한다. 
7. 이름을 기입하고 저장을 클릭하면 가상머신 설정이 완료된다.  다음으로 윈도우 설치가 이어 진행된다.
8. 윈도우 설치과정에서 네트워크는 인식을 하지 못하는데 "인터넷에 연결되어 있지 않음" 을 선택하고 다음으로 넘어간다.
 9. 설치를 완료하면 네트워크 연결이 불가한 것을 확인할 수 있는데 이는 아래의 방법으로 VMware Tools 을 설치를 통해서 해결할 수 있다.
  1.  VMware Fusion 메뉴바에서 Virtual Machine -> Install VMware Tools. 클릭
  2.  VMware Tools ISO 가 가상머신 D:\ 에 마운트 되고 setup.exe 파일을 실행하여 설치를 진행한다.

2023년 8월 10일

코딩 - M1 환경에서 OpenCV 설치하기

◼︎ 환경
  • Model : MacBook Pro (14-inch, 2021)
  • CPU : Apple M1 Pro
  • MENORY : 16GB
  • DISK : 512 GB SSD
  • OS : macOS 13.2.4 (22F66)
  • TOOLS : Visual Studio Code, Java 11, Gradle, Docker
  • Version Control : GitHub
  • Programming Language : Java
  • Framework : Spring Boot 2.7.12
  • DBMS : MySql 8.0.33

M1 환경에서 OpenCV 을 컴파일하고 설치하는 것은 아래와 같은 순서로 진행한다.
  • Step 1: Homebrew and Xcode Command Line Tools Installation
  • Step 2: Install Miniforge
  • Step 3: Create a virtual environment with python3.8
  • Step 4: Install necessary dependencies
  • Step 5: Compile and Build OpenCV
 

Step 1: Homebrew and Xcode Command Line Tools Installation

❶ 다음 명령을 터미널에서 입력하여 brew 설치 여부를 확인한다.

brew --version

설치되어 있지 않는 경우 다음 명령을 터미널에 붙여넣기하여 설치를 진행한다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


❷ brew 가 준비되면 wget (다운로드 유틸리티) , cmake (크로스 플랫폼 빌드 도구) 를 설치한다.

brew install wget cmake 


❸ 맥에서 지원하는 XCode Command Line 도구를 설치한다.

xcode-select --install


Step2: Install Miniforge

Miniforge는 가상 환경에서 Python 패키지 관리를 지원하는 Conda 설치을 위한 프로그램을 제공하고 있다. miniforge GitHub 에서 arm64(Apple Silicon) 용 버전을 설치한다. 




❶ 스크립트를 다운로드 하고 아래와 같이 bash 명령을 사용하여 터미널에서 설치를 진행한다.

bash Miniforge3-MacOSX-arm64.sh




❷ 설치가 완료되면 가이드에 따라 Conda 에서 제공하는 디폴트 환경을 비활성화 한다. 

conda config --set auto_activate_base false


Step3: Create a virtual environment with python3.8

❶ testcv 이름으로 python 3.8 버전의 가상 환경을 생성한다.

conda create --name testcv python=3.8

% conda create --name testcv python=3.8

Collecting package metadata (current_repodata.json): done

Solving environment: done



==> WARNING: A newer version of conda exists. <==

  current version: 23.1.0

  latest version: 23.7.2


Please update conda by running


    $ conda update -n base -c conda-forge conda


Or to minimize the number of packages updated during conda update use


     conda install conda=23.7.2




## Package Plan ##


  environment location: /miniforge3/envs/testcv


  added / updated specs:

    - python=3.8



The following packages will be downloaded:


    package                    |            build

    ---------------------------|-----------------

    ca-certificates-2023.7.22  |       hf0a4a13_0         146 KB  conda-forge

    openssl-3.1.2              |       h53f4e23_0         2.1 MB  conda-forge

    pip-23.2.1                 |     pyhd8ed1ab_0         1.3 MB  conda-forge

    python-3.8.17              |h3ba56d0_0_cpython        13.1 MB  conda-forge

    wheel-0.41.1               |     pyhd8ed1ab_0          56 KB  conda-forge

    ------------------------------------------------------------

                                           Total:        16.8 MB


The following NEW packages will be INSTALLED:


  bzip2              conda-forge/osx-arm64::bzip2-1.0.8-h3422bc3_4 

  ca-certificates    conda-forge/osx-arm64::ca-certificates-2023.7.22-hf0a4a13_0 

  libffi             conda-forge/osx-arm64::libffi-3.4.2-h3422bc3_5 

  libsqlite          conda-forge/osx-arm64::libsqlite-3.42.0-hb31c410_0 

  libzlib            conda-forge/osx-arm64::libzlib-1.2.13-h53f4e23_5 

  ncurses            conda-forge/osx-arm64::ncurses-6.4-h7ea286d_0 

  openssl            conda-forge/osx-arm64::openssl-3.1.2-h53f4e23_0 

  pip                conda-forge/noarch::pip-23.2.1-pyhd8ed1ab_0 

  python             conda-forge/osx-arm64::python-3.8.17-h3ba56d0_0_cpython 

  readline           conda-forge/osx-arm64::readline-8.2-h92ec313_1 

  setuptools         conda-forge/noarch::setuptools-68.0.0-pyhd8ed1ab_0 

  tk                 conda-forge/osx-arm64::tk-8.6.12-he1e0b03_0 

  wheel              conda-forge/noarch::wheel-0.41.1-pyhd8ed1ab_0 

  xz                 conda-forge/osx-arm64::xz-5.2.6-h57fd34a_0 



Proceed ([y]/n)? 



❷ 가상환경 생성이 완료되면 생성시 사용한 이름을 사용하여 가상환경을 활성화 한다.

conda activate testcv


info 옵션을 사용하여 활성화된 가상환경을 확인할 수 있다.

conda info 


Step4: Install necessary dependencies

OpenCV를 설치하려면 Apple에서 M1용으로 제공하는 호환 가능한 버전의 Numpy를 설치해야 한다. 
터미널에서 다음 명령을 실행하여 Numpy 및 기타 종속 요소를 설치한다.

conda install -c apple tensorflow-deps

Step5: Compile and Build OpenCV

❶ OpenCV 와 OpenCV Contrib 소스를 먼저 다운로드 한다. (여기에서는 opencv 폴더를 생성하고 다우로드 및 빌드 작업을 진행했다.)

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.8.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.8.0.zip

❷ 다운로드한 소스 압축을 푼다.

unzip opencv.zip && unzip opencv_contrib.zip

❸ opencv 소스 폴더에 build 폴더를 생성하고 이동한다.

cd opencv-4.8.0/
mkdir build && cd build


❹ cmake 을 실행하여 소스를 빌드한다.  실행 옵션은 아래와 같다.




Cmake 를 실행하면 아래와 같은 화면이 보여진다. 컴파일에는 그리 많은 시간이 소요되지 않는다.



❺ make 명령 사용 CMake가 생성한 Makefile을 기반으로 빌드 실행한다. 여기서 M1 맥의 경우 8코어 CPU 이기 때문에 j8은 옵션을 사용하여 make를 실행했다. 

make -j8


make 과정에서  다양한 어려움이 발생되었다. 

⑴ No rule to make target 'zlib'. 

make[2]: *** No rule to make target `zlib', needed by `lib/libopencv_imgcodecs.4.8.0.dylib'.  Stop


zlib 을 설치하였지만 문제가 해결되지 않았다

brew install zlib

brew 때문에 발생하는 것이라는 글이 있어 삭제 후 다시 설치 해보았으나 문제가 해결되지 않았다.

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install wget cmake 


⑵ fatal error: 'ft2build.h' file not found


텍스트 렌터링 오픈 소스 halfbuzz 를 설치.

brew install halfbuzz 

설치 결과물을 보면 java 부분이 누락되었는데 확인을 위하여 cmake 결과를 확인해보니 java 부분 설정이 일반적이지 않는 것을 확인했다.



아래 명령을 입력하여 설치된 자바 경로를 확인하였다.

/usr/libexec/java_home --verbose

확인 된 자바 위치 정보를 사용하여 JAVA_HOME, JRE_HOME 경로를 설정해준다.

export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
export JRE_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home


누락된 ant 빌드 도구를 설치하였다.

brew install ant 

여기에서는  M1 을 지원하는 자바 버전 설치를 위하여 https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html  방문하여 맥용 (macOS aarch64) 설치파일을 다운로드 하여 설치하였다. 

% /usr/libexec/java_home --verbose

Matching Java Virtual Machines (2):

    17.0.8 (x86_64) "Amazon.com Inc." - "Amazon Corretto 17" /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home

    11.0.11 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home


export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
export JRE_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home

다시 cmake 를 실행하면 JAVA 항목은 NO 로 표기되고 있지만 정상적으로 빌드가 된다. 


make -j8
sudo make install

/usr/loca/share/java/opencv 경로에 자바 라이브러리가 생성됨을 확인