0
0

自作PC製作→ubuntu環境構築→GPU環境構築→ROS環境構築

Last updated at Posted at 2024-08-11

はじめに

きっかけはさておき、突然自作PCを作ってみたいと思いました。
その時の流れをここにまとめます。
また、このPCを使用して色々遊びたいなと思ったので、備忘録のページとして残せればな...と思っています。
結構長い記事になってしまいました笑

  • 目標
    • 金額:15万程度
    • OS:ubuntu
    • 用途:rosやAI系の重た目なソフトウェアを動かす
    • 購入サイト:amazon

購入リスト

名称 概要(chatGPT君から参考) 時価(円) リンク 選定理由
CPU コンピュータの「脳」とも呼ばれる部品で、計算や処理を行う。すべてのプログラムやアプリケーションが動作するための中核的な部分。 31280 INTEL CPU RPL-S CoreI5-13400F スペック的にi5がほしかったのと、コスパ良いという記事が多めだった。
GPU 映像処理を専門に行う部品で、ゲームや動画編集などで高性能なグラフィックスを提供する。 45253 MSI GeForce RTX 3060 VENTUS 2X 12G 4080シリーズあたりが台頭してきたので、3060が当時安めの雰囲気があった
メモリ 一時的にデータを保存するための高速な記憶装置。プログラムが実行中に必要とするデータを一時的に保持する。 16475 CORSAIR Corsair DDR5-5200MHz デスクトップPC用メモリ 32Gあれば安心
SSD データを高速で読み書きできるストレージデバイス。HDDよりも圧倒的に速く、耐衝撃性も高い。 10480 キオクシア KIOXIA 内蔵 SSD 1TB 1TBは欲しいなと思い、その中で有名所・価格重視で。
マザーボード コンピュータの全ての部品を接続する基板で、CPU、メモリ、ストレージ、グラフィックカードなどが取り付けられる。 18556 MSIマザーボード B760 GAMING PLUS WIFI DDR5 機能面や周囲の自作PCの記事を参考に選定。無線ありにしたかった。
電源 コンピュータの部品に電力を供給する装置 11190 Apexgaming AGシリーズ 80 PLUS GOLD認証 750W 750WあればCPUとGPUに供給する電力として十分なイメージ
PCケース コンピュータのすべての部品を収納するための外装。冷却や配線の管理もする。 10525 NZXT H5 Flow ミドルタワー PCケース ミドルタワーのものの中で価格とかっこよさから選定
クーラー コンピュータの部品、特にCPUやGPUの熱を冷却するための装置。空冷や水冷などがある。 9080 MSI MAG CORELIQUID M240 簡易水冷CPUクーラー FN1949 冷却能力の高い水冷で見た目を重視
  • 結果
    • 合計金額:152839円
  • 所感
    • amazonの格安セールとかを狙えば、もう少し安くなるかもしれませんが目標は達成(特に、CPUやGPUやケースは変動しやすいイメージなので、もう少し安い時期を狙いましょう。)
    • 今回、OSをubuntuにしているのでOSの代金はなしというところがポイント
    • amazon配達員様、ありがとうございます。

組み立て

はじめに...組み立て時の写真を撮っておけばよかったのですが、完全に放念...ごめんなさい
メモのみ残しておきます。

このあたりを参考に作成

  1. CPUの取り付け
    • マザーボードの横にレバーがあるので、解除
    • CPU本体を設置し、レバーを下ろすことで取り付け完了
    • qiita_000_000.png
  2. クーラーの取り付け
    • 下図のように設置する。今回のCPUはIntel1700のバージョンで取り付けます。
    • グリスを塗ることを忘れずに。
    • image.png
  3. メモリの取り付け
    • メモリに穴があるのでマザボの穴に合わせて差し込み、ロックする。
    • qiita_000_001.png
    • 挿す位置は以下を参照。今回は2つのため、B2とA2に入れる。あくまでも参照なので違う位置に入れても動作はするが、起動時に警告は出る。
    • image.png
  4. SSDの取り付け
    • 差し込んだあとに、ネジ止めする。
    • qiita_000_003.png
  5. GPUの取り付け
    • マザーボードの増設箇所に接続する。
    • PCケースのGPUの高さの部分をはずしておく
    • image.png
  6. ケースに各種機器を取り付け
    • マザーボードの隅をPCケースの側面にネジ止め。その際、コネクタを挿す用のパネルも取り付けておく。
    • ファンのラジエーターをPCケースの天井にネジ止め
    • 電源をPCケースの底にネジ止め(事前にCPU電源・GPU電源・ファン用の電源は取り付けておく)
  7. コネクタを接続
    • 基本的にはマザーボード説明書に従う。各種、取り付けの説明書があるはず。ここでは大まかな接続した内容を記載する。(以下、マザーボードはマザボと略す)
    • フロントパネルコネクター(JFP1・JFP2):ケースにある9pinのコネクタをマザボに挿す
    • 電源コネクター(CPU_PWR1, ATX_PWR1):24pinと8pinのコネクタをマザボに挿す
    • typeCコネクタ(JUSB4)・USB3.2コネクタ(JUSB3)・USB2.0コネクタ(JUSB1~2):PCケースにあるコネクタを接続
    • ファンコネクタ(CPU_FAN1, PUMP_FAN1, SYS_FAN1~6):CPUファンをCPU_FAN1へ、水冷ファンをPUMP_FAN1へ、その他のファンをSYS_FANへ接続する。
    • RGB LEDコネクター(JRGB1)・追加のRGB LEDコネクター(JRAINBOW1~2):ファンを光らす用のコネクタ。足りない場合は増設できるように電源が構成されているので、並列つなぎ的な感じに接続する。
    • image.png
  8. いよいよ接続確認
    • 本体内のケーブルを結束バンドなどできっちり固定し、ファンに触れないことを確認。蓋を閉める。
    • キーボードやマウスと取り付ける。
    • 電源ONし、BIOSの画面になることを確認する。
    • 電源onしたらこんな感じになるはず
    • image.png

ubuntuインストール

  1. usbメディアの作成
    - 別PCと空のUSBメモリを用意(USBのデータが削除されるので注意)
    - 別PCにubuntuのisoファイルをdownloadする。
    - 基本的にはどこでも良いが、日本語版がよいのかな?ー>ダウンロードサイト
    - 今回はubuntu22を選択した(選ぶなら、22or24。サポート期間の時期に合わせて最適なバージョンを選択しましょう。)
    - 別PCにrufusをインストールしておく
    - USBメモリを挿し、「ブートの種類」を選択し、「スタート」を押す
  2. ubuntu環境の構築
    - 作成したUSBをPCに接続して再度電源を入れる。
    - ubuntuのインストール画面に遷移する。
    - https://www.kkaneko.jp/tools/ubuntu/ubuntudesktop.html
    - 上記など参考にしてインストールを完了させる。

起動後にやる(と良さそうな)こと

ターミナルを起動し下記を実行

  • 環境の更新
    最初に必ず実行する
sudo apt update
sudo apt upgrade
  • google chromeのダウンロード
    検索エンジンとして、chromeが好きなので。
    https://www.google.com/intl/ja_jp/chrome/
    からdebファイルをダウンロード。その後に下記を実行。
cd ダウンロード/
sudo dpkg -i google-chrome-stable_current_amd64.deb 
  • vscodeのダウンロード
    プログラムを書くときに便利なツール
sudo apt install curl
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt install apt-transport-https
sudo apt update
sudo apt install code
  • terminatorのインストール
    複数のターミナルを並列させて操作することが可能
sudo add-apt-repository ppa:mattrose/terminator
sudo apt update
sudo apt install terminator
  • geditのインストール
    あまり使用しないが、色々と便利なので一応。
sudo apt  install gedit 
  • 画像の編集ツール
sudo apt install snapd
sudo snap install pinta
pinta
  • pipのインストール
sudo apt install python3-pip

nvidia+cuda+cudnn環境の構築

nvidia driverのインストール

推奨のnvidia driverのバージョンを確認する。

ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0 ==
modalias : pci:v000010DEd00002504sv00001462sd0000397Dbc03sc00i00
vendor   : NVIDIA Corporation
model    : GA106 [GeForce RTX 3060 Lite Hash Rate]
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-555 - third-party non-free recommended
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-550 - third-party non-free
driver   : nvidia-driver-555-open - third-party non-free
driver   : nvidia-driver-550-open - third-party non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

今回は555にしましょうか。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-555

インストール完了したら再起動する。その後、インストール完了の確認をする。

nvidia-smi

cudaのインストール

cuda-archive
からcudaの最適なバージョンを選びます。
torchのインストール対応表にCUDA12.1とあるので、今回は12.1をダウンロードします。

image.png

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

bashrに以下を記載する。

gedit ~/.bashrc
.bashrc
export PATH=/usr/local/cuda:/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH

bashrcの更新

source ~/.bashrc

cudnnのインストール

以下を実行するのみ。(以前はアカウント登録してダウンロードして...と進める必要があったが不要になった?)

sudo apt-get -y install cudnn9-cuda-12

pytorch環境のインストール

pip3 install torch torchvision torchaudio

tensorrtのインストール

から適切なものをインストールする。今回はTensorRT 10.3 GA for Ubuntu 22.04 and CUDA 12.0 to 12.5 DEB local repo Packageを選択。

sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-10.3.0-cuda-12.5/*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt install tensorrt

確認する。

dpkg-query -W tensorrt

ROS2環境構築

ubuntu24.04にROS2 humbleの環境構築をします。
公式ドキュメント
を参考にすすめていきます。

手順

  1. universeリポジトリの追加

    sudo apt install software-properties-common
    sudo add-apt-repository universe
    

    ubuntuには下記の4種類のリポジトリがあり、標準のubuntuにはMainとRestritedからダウンロードできるようになっているので、Universeを追加する。

    • Main - Canonical-supported free and open-source software.
    • Universe - Community-maintained free and open-source software.
    • Restricted - Proprietary drivers for devices.
    • Multiverse - Software restricted by copyright or legal issues.
  2. ROS2のGPGキーを追加

    sudo apt update && sudo apt install curl -y
    sudo curl -sSL
    https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    

    GPGキーとは、オープンソースのツールの公開鍵。ROS2の公開鍵を登録する。

  3. source.listに追加

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    

    ソフトウェアパッケージを取得するためのリポジトリのリストを管理するファイルに追加する。このファイルに記述されたリポジトリのURLから、パッケージがダウンロードされてインストールされる。

  4. アップデート+インストール+セットアップ

    sudo apt update
    sudo apt install ros-jazzy-desktop
    
  5. 環境変数の追加

    cd 
    echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    
  6. 動作確認

    • talkerの実行
    source /opt/ros/humble/setup.bash
    ros2 run demo_nodes_cpp talker
    
    [INFO] [1723622549.135275508] [talker]: Publishing: 'Hello World: 1'
    [INFO] [1723622550.135108463] [talker]: Publishing: 'Hello World: 2'
    [INFO] [1723622551.135095695] [talker]: Publishing: 'Hello World: 3'
    [INFO] [1723622552.135037076] [talker]: Publishing: 'Hello World: 4'
    [INFO] [1723622553.134974142] [talker]: Publishing: 'Hello World: 5'
    [INFO] [1723622554.134864330] [talker]: Publishing: 'Hello World: 6'
    ...
    
    • listenerの実行
    source /opt/ros/humble/setup.bash
    ros2 run demo_nodes_py listener
    
    [INFO] [1723622556.145260016] [listener]: I heard: [Hello World: 8]
    [INFO] [1723622557.136622529] [listener]: I heard: [Hello World: 9]
    [INFO] [1723622558.136576119] [listener]: I heard: [Hello World: 10]
    [INFO] [1723622559.136505719] [listener]: I heard: [Hello World: 11]
    [INFO] [1723622560.136440269] [listener]: I heard: [Hello World: 12]
    [INFO] [1723622561.136401371] [listener]: I heard: [Hello World: 13]
    ...
    
  7. ros2のビルドツール・テストツールのインストール

    sudo apt update && sudo apt install -y \
      python3-flake8-docstrings \
      python3-pip \
      python3-pytest-cov \
      ros-dev-tools
    sudo apt install -y \
       python3-flake8-blind-except \
       python3-flake8-builtins \
       python3-flake8-class-newline \
       python3-flake8-comprehensions \
       python3-flake8-deprecated \
       python3-flake8-import-order \
       python3-flake8-quotes \
       python3-pytest-repeat \
       python3-pytest-rerunfailures
    
  8. ros2初期設定

    sudo rosdep init
    rosdep update
    rosdep install -i --from-path src --rosdistro $ROS_DISTRO -y
    
  9. ros2ワークスペースの作成

    cd 
    mkdir -p ros2_ws/src 
    cd ros2_ws 
    colcon build
    source ~/ros2_ws/install/setup.bash
    
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0