はじめに
きっかけはさておき、突然自作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配達員様、ありがとうございます。
組み立て
はじめに...組み立て時の写真を撮っておけばよかったのですが、完全に放念...ごめんなさい
メモのみ残しておきます。
このあたりを参考に作成
- CPUの取り付け
- クーラーの取り付け
- メモリの取り付け
- SSDの取り付け
- GPUの取り付け
- ケースに各種機器を取り付け
- マザーボードの隅をPCケースの側面にネジ止め。その際、コネクタを挿す用のパネルも取り付けておく。
- ファンのラジエーターをPCケースの天井にネジ止め
- 電源をPCケースの底にネジ止め(事前にCPU電源・GPU電源・ファン用の電源は取り付けておく)
- コネクタを接続
- 基本的にはマザーボード説明書に従う。各種、取り付けの説明書があるはず。ここでは大まかな接続した内容を記載する。(以下、マザーボードはマザボと略す)
- フロントパネルコネクター(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):ファンを光らす用のコネクタ。足りない場合は増設できるように電源が構成されているので、並列つなぎ的な感じに接続する。
- いよいよ接続確認
ubuntuインストール
- usbメディアの作成
- 別PCと空のUSBメモリを用意(USBのデータが削除されるので注意)
- 別PCにubuntuのisoファイルをdownloadする。
- 基本的にはどこでも良いが、日本語版がよいのかな?ー>ダウンロードサイト
- 今回はubuntu22を選択した(選ぶなら、22or24。サポート期間の時期に合わせて最適なバージョンを選択しましょう。)
- 別PCにrufusをインストールしておく
- USBメモリを挿し、「ブートの種類」を選択し、「スタート」を押す - 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をダウンロードします。
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
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の環境構築をします。
公式ドキュメント
を参考にすすめていきます。
手順
-
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.
-
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の公開鍵を登録する。
-
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から、パッケージがダウンロードされてインストールされる。
-
アップデート+インストール+セットアップ
sudo apt update sudo apt install ros-jazzy-desktop
-
環境変数の追加
cd echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc source ~/.bashrc
-
動作確認
- 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] ...
-
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
-
ros2初期設定
sudo rosdep init rosdep update rosdep install -i --from-path src --rosdistro $ROS_DISTRO -y
-
ros2ワークスペースの作成
cd mkdir -p ros2_ws/src cd ros2_ws colcon build source ~/ros2_ws/install/setup.bash