Màquina AMD Ryzen 7 5800X RTX 5060 Ti

De wikijoan
Salta a la navegació Salta a la cerca

Components

PC Gaming AMD Ryzen 7 5800x
Targeta gràfica: NVidia RTX 5060 Ti 16GB
RAM: GDDR7 32 GB
2 TB SSD

Per entrar a la bios: 'supr' vàries vegades

  • La placa no té bluetooth integrada.
  • Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.
  • Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.

Configuració, primeres tasques. Linux Mint

El Linux Mint que tinc és el 22.3 Zena

$ cat /etc/os-release
NAME="Linux Mint"
VERSION="22.3 (Zena)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 22.3"
VERSION_ID="22.3"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=zena
UBUNTU_CODENAME=noble
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 22.3
Release:	22.3
Codename:	zena
cat /etc/linuxmint/info
RELEASE=22.3
CODENAME=zena
EDITION="Xfce"
DESCRIPTION="Linux Mint 22.3 Zena"
DESKTOP=Gnome
TOOLKIT=GTK
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php
GRUB_TITLE=Linux Mint 22.3 Xfce
$ grep UBUNTU_CODENAME /etc/os-release
UBUNTU_CODENAME=noble

El linux mint ja vindrà amb una instal·lació de python:

python3 --version
Python 3.12.3

És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv

Instal·lo els següents paquets i aplicacions:

  • joe
  • sublime text 4
  • venv
  • docker
  • ssh server (de seguida entraré per SSH, veure més avall)

Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)


Connexió SSH (localment i remotament)

per configurar el router, entrem el router: 192.168.1.1

el password està darrere de l'aparell (pwd: gewn5gJ8)

Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).

$ hostname -I
192.168.1.184 172.17.0.1 

2. Comprovar que escolta pel port 22

Executa:

sudo ss -tlnp | grep :22
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:(("sshd",pid=1084,fd=3),("systemd",pid=1,fd=239))
LISTEN 0      4096            [::]:22            [::]:*    users:(("sshd",pid=1084,fd=4),("systemd",pid=1,fd=240))

3. Provar SSH des de dins de casa (xarxa local)

Des d'un altre ordinador connectat al teu Wi-Fi/LAN:

ssh joan@192.168.1.184

4. Després farem la configuració del HGU (la marca del router)

Una vegada confirmem això, configurarem dues coses al router:

Reserva DHCP

Per evitar que el servidor passi de 192.168.1.184 a una altra IP.

Port forwarding

Per exemple:

Internet        HGU              Linux Mint
2222  ───────►  192.168.1.184:22

Així, des de fora entraràs amb:

ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222

I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.

  • direcció IP WAN: 10.83.118.15
  • joan-IA 10:ff:e0:d5:34:e4 192.168.1.184
  • servidor DNS1: 80.58.61.254
  • servidor DNS2: 80.58.61.250
$ curl ifconfig.me
79.156.157.3

aquesta és la IP pública del router que es veu des de Internet

Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.

En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.

Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.

I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.

amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:

$ ssh joan@79.156.157.3 -p 2222

i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22

Ara ja puc fer el següent pas: autenticació SSH amb clau i desactivar l'accés per contrasenya. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.

1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs

Per exemple, si habitualment entraràs des del teu portàtil:

ssh-keygen -t ed25519

des del portàtil copiem la clau pública al servidor:

ssh-copy-id -p 2222 joan@79.156.157.3

la clau queda emmagatzemada dins del fitxer: .ssh/authorized_keys

i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:

$ ssh joan@79.156.157.3 -p 2222

ja tenim l'autenticació per clau funcionant.


El que vull és com un interruptor temporal

  • SSH només amb clau → segur
  • SSH amb clau + contrasenya → temporal
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'
[sudo] contrasenya per a joan:         
pubkeyauthentication yes
passwordauthentication yes
kbdinteractiveauthentication no
sudo nano /etc/ssh/sshd_config

Busquem:

#PasswordAuthentication yes

i posem:

PasswordAuthentication no
sudo systemctl reload ssh

(amb reload no cal reiniciar el servei, que faríem amb sudo systemctl restart ssh)

Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: passwordauthentication no al fitxer /etc/ssh/sshd_config

Per activar temporalment el password:

joe /etc/ssh/sshd_config
passwordauthentication yes
sudo systemctl reload ssh

Resum connexió SSH

Des del portàtil, en la xarxa local:

ssh joan@192.168.1.184

Des del portàtil, en una xarxa remota:

ssh joan@79.156.157.3 -p 2222

Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.

S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.

Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp

La única cosa que necessitem és un punt de muntatge, i així tindrem mapejada en el portàtil una carpeta del servidor, i hi podrem accedir com si fos local

En el portàtil instal·lem sshfs:

sudo apt install sshfs

En el portàtil creem un punt de muntatge:

mkdir -p ~/servidorIA

I muntem el directori de projectes/ del servidor:

sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA

I ara ja he de veure aquesta carpeta com si fos local.

I ara amb el Sublime Text del portàtil puc treballar amb els fitxers del servidor.

És a dir:

  • /home/joan/projectes és el directori de treball en el servidor IA
  • /home/joan/servidorIA és el punt de muntatge en el portàtil

Repassem les comandes bàsiques de sshfs i scp, tant si treballem en la xarxa local com en la xarxa remota.

Em puc connectar a un servidor via xarxa local o via xarxa remota:

ssh joan@192.168.1.184
ssh joan@79.156.157.3 -p 2222

I també sé fer un punt de muntatge:

sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA
sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222

Com faig el scp per enviar fitxers del portàtil al servidor, o del servidor al portàtil?

Del portàtil al servidor:

# Xarxa local
scp fitxer.txt joan@192.168.1.184:/home/joan/projectes/

# Xarxa remota (fixa't en la -P majúscula, i que va abans de l'origen)
scp -P 2222 fitxer.txt joan@79.156.157.3:/home/joan/projectes/

Del servidor al portàtil:

# Xarxa local
scp joan@192.168.1.184:/home/joan/projectes/fitxer.txt ~/Baixades/

# Xarxa remota
scp -P 2222 joan@79.156.157.3:/home/joan/projectes/fitxer.txt ~/Baixades/

Carpetes senceres: afegim -r (recursiu):

scp -r -P 2222 ~/meu_projecte joan@79.156.157.3:/home/joan/projectes/

Instal·lació drivers NVidia

Instal·lem el driver NVIDIA oficial a partir dels repositoris:

Menú -> Administració > Gestor de controladors.

Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.

$ nvidia-smi
Tue Sep 15 22:59:17 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |
+-----------------------------------------------------------------------------------------+

Instal·lació del CUDA Toolkit i Pytorch

El CUDA Toolkit és per fer desenvolupament amb CUDA.

Com que:

$ grep UBUNTU_CODENAME /etc/os-release
UBUNTU_CODENAME=noble

podem utilitzar el repositori ubuntu2404.

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update

sudo apt install cuda-toolkit

No instal·lem el cuda, sinó el cuda-toolkit, i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).

nvcc és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.

El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2026 NVIDIA Corporation
Built on Mon_Aug_03_13:24:11_PDT_2026
Cuda compilation tools, release 13.4, V13.4.59
Build cuda_13.4.r13.4/compiler.38657139_0
$ which nvcc
/usr/local/cuda-13.4/bin/nvcc

En el .bashrc afegim el nvcc

export PATH=/usr/local/cuda-13.4/bin:$PATH

Per fer-ho de forma permanent:

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
source ~/.bashrc (per tal de què tingui efectes immediats)

Tenim dues coses diferents:

  • nvidia-smi: són els drivers de NVIDIA + GPU
  • nvcc: cuda toolkit

Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)

sudo apt install build-essential git cmake pkg-config

PyTorch

La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.

6. No instal·lis PyTorch globalment

Això és important. Ho farem amb venv.

No facis:

sudo pip install torch

Cada projecte python tindrà el seu entorn virtual. Per ex:

mkdir xarxes-neuronals
cd xarxes-neuronals

python3 -m venv .venv
source .venv/bin/activate
nou prompt: (.venv) $
python -m pip install --upgrade pip

Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.

Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132

script primera_prova.py:

import torch

print("PyTorch:", torch.__version__)
print("CUDA disponible:", torch.cuda.is_available())
print("CUDA de PyTorch:", torch.version.cuda)

if torch.cuda.is_available():
    print("GPU:", torch.cuda.get_device_name(0))
$ python3 primera_prova.py 
PyTorch: 2.14.0+cu132
CUDA disponible: True
CUDA de PyTorch: 13.2
GPU: NVIDIA GeForce RTX 5060 Ti

En aquest punt tens PyTorch + CUDA funcionant de veritat.

(recordem que ho fem en un venv)

I ara ja puc fer servir la targeta gràfica de veritat:

script segona_prova.py:

import torch

print(torch.cuda.get_device_name(0))

a = torch.randn(5000, 5000, device="cuda")
b = torch.randn(5000, 5000, device="cuda")

c = a @ b

print(c.device)
print(c.shape)
NVIDIA GeForce RTX 5060 Ti
cuda:0
torch.Size([5000, 5000])

Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)

watch -n 1 nvidia-smi

En aquest punt tenim PyTorch + CUDA funcionant.




creat per Joan Quintana Compte, setembre 2026