Las entrañas del sistema
Deja de leer, de verdad, no lo hagas. La entrada de hoy no es ninguna reflexión, simplemente el ordenador me ha estado dando guerra y de la mala ostia me he cargado varias cosas.
Como la cosa no pinta bien y puede que en cualquier momento deje de funcionar, sería una catástrofe perder toda la información y la ergonomía de trabajo que tanto esfuerzo me ha llevado cultivar, es por ello que me dispongo a dejar plasmado todo lo utilizado por si en un futuro necesito recolectar la configuración y programas utilizados en una instalación limpia.
21 de noviembre de 2011
La base es un Acer Predator G3610 a la cual se le han ido actualizando algunos componentes:
- OS: Debian 13 (Testing).
- Memory: 32 GiB DDR3.
- CPU: Intel i7-2600 (8) @ 3.800GHz (2011).
- GPU: Gigabyte NVIDIA GeForce GTX 1650 SUPER - 4 GiB DDR6 (2019) con OC de +200mHz core y +75mHz memoria.
Ahora vamos a ir desgranando parte por parte;
Packages:
- Okular: para leer documentos pdf.
- Steam, Firefox, Anki, YT-DLP: obvio.
- TexMaker: para la creación de documentos pdf (más adelante enseño cómo genero los documentos e instalo TexLive).
- Blueman Bluetooth Manager: manejo de los dispositivos con Bluetooth.
- Ollama (principalment qwen3:4b mediante el front-end de ChatBox)
curl -fsSL https://ollama.com/install.sh | sh
- Nvidia X Server Settings: en mi caso los genero directamente de la página web de Nvidia pues los paquetes que hay en los repositorios son muy antiguos.
- CPU-X y Psensor: control de la temperatura y parámetros del ordenador.
- Haku Neko Nightly: para descargar manga, manhua (principalmente de MangaDex y WeebCentral) y anime.
- Problemas con GPU en Wayland y abrimos el programa en la terminal:
/usr/lib/hakuneko-desktop/hakuneko --no-sandbox --disable-gpu
- Sparrow: billetera para ver xPub con Bitcoin Core.
- Problemas con GPU en Wayland. Hacemos Edit application - Enviorment variables > _JAVA_OPTIONS=-Dprism.order=sw
- Calibre: para gestionar nuestra biblioteca y no depender de GoodReads.
- Timeshift: Para hacer snapshots de toda la configuración menos /home/ por si se rompe algo al usar Debian Testing.
- CasaOS: Gestión de contenedores Docker:
curl -fsSL https://get.casaos.io | sudo bash
Los contenedores Docker que yo utilizo son:
- MeTube:
name: metube
services:
metube:
cpu_shares: 90
command: []
container_name: metube
deploy:
resources:
limits:
memory: 32077M
reservations:
memory: "134217728"
hostname: metube
image: ghcr.io/alexta69/metube:latest
labels:
icon: https://cdn.jsdelivr.net/gh/Cp0204/CasaOS-AppStore-Play@main/Apps/metube/icon.png
ports:
- mode: ingress
target: 8081
published: "8081"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /DATA/Downloads
target: /downloads
bind:
create_host_path: true
devices: []
cap_add: []
environment: []
network_mode: bridge
privileged: false
x-casaos:
architectures:
- arm64
- amd64
author: Cp0204
category: Downloader
description:
en_us: MeTube is a self-hosted YouTube downloader with a web UI for youtube-dl /
yt-dlp, enabling easy downloading of your favorite videos.
zh_cn: MeTube 是一个自托管的 YouTube 下载器,具有 youtube-dl / yt-dlp 的 Web UI,能够轻松下载您喜爱的视频。
developer: alex
hostname: null
icon: https://cdn.jsdelivr.net/gh/Cp0204/CasaOS-AppStore-Play@main/Apps/metube/icon.png
index: /
is_uncontrolled: false
main: metube
port_map: "8081"
scheme: http
screenshot_link:
- https://cdn.jsdelivr.net/gh/Cp0204/CasaOS-AppStore-Play@main/Apps/metube/screenshot.gif
store_app_id: metube
tagline:
en_us: Download your favorite videos easily with MeTube!
zh_cn: 使用 MeTube 轻松下载您喜爱的视频!
title:
custom: ""
en_us: MeTube
- Scrutiny (si no aparecen los discos, abrimos la terminal desde el front-end de CasaOS y ejecutamos scrutiny scrutiny-collector-metrics run:
name: big-bear-scrutiny
services:
big-bear-scrutiny:
cap_add:
- SYS_RAWIO
cpu_shares: 90
command: []
container_name: big-bear-scrutiny
deploy:
resources:
limits:
memory: 32077M
devices:
- /dev/sda:/dev/sda
- /dev/nvme0:/dev/nvme0
environment:
- COLLECTOR_CRON_SCHEDULE=0 */6 * * *
hostname: big-bear-scrutiny
healthcheck:
test:
- CMD
- curl
- -f
- http://localhost:8080/api/health
timeout: 10s
interval: 1m30s
retries: 3
start_period: 40s
image: ghcr.io/analogj/scrutiny:master-omnibus
labels:
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/scrutiny.png
ports:
- mode: ingress
target: 8080
published: "38080"
protocol: tcp
- mode: ingress
target: 8086
published: "38086"
protocol: tcp
privileged: true
restart: unless-stopped
volumes:
- type: bind
source: /DATA/AppData/big-bear-scrutiny/config
target: /opt/scrutiny/config
bind:
create_host_path: true
- type: bind
source: /DATA/AppData/big-bear-scrutiny/influxdb
target: /opt/scrutiny/influxdb
bind:
create_host_path: true
- type: bind
source: /run/udev
target: /run/udev
read_only: true
bind:
create_host_path: true
x-casaos:
ports:
- container: "8080"
description:
en_us: "Container Port: 8080"
- container: "8086"
description:
en_us: "Container Port: 8086"
volumes:
- container: /opt/scrutiny/config
description:
en_us: "Container Path: /opt/scrutiny/config"
- container: /opt/scrutiny/influxdb
description:
en_us: "Container Path: /opt/scrutiny/influxdb"
- container: /run/udev
description:
en_us: "Container Path: /run/udev"
networks:
- default
networks:
default:
name: big-bear-scrutiny_default
x-casaos:
architectures:
- amd64
- arm64
author: BigBearTechWorld
category: BigBearCasaOS
description:
en_us: If you run a server with more than a couple of hard drives, you're
probably already familiar with S.M.A.R.T and the smartd daemon.
developer: analogj
hostname: ""
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/scrutiny.png
index: /
is_uncontrolled: false
main: big-bear-scrutiny
port_map: "38080"
scheme: http
store_app_id: big-bear-scrutiny
tagline:
en_us: Monitor your server's hard disk health
thumbnail: ""
title:
custom: ""
en_us: Scrutiny
- Stirling-PDF:
name: big-bear-stirling-pdf
services:
big-bear-stirling-pdf:
cpu_shares: 90
command: []
container_name: big-bear-stirling-pdf
deploy:
resources:
limits:
memory: 32077M
environment:
- CSRF_DISABLED=false
- DEFAULT_LOCALE=en-US
- DOCKER_ENABLE_SECURITY=false
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
- LANGS=en_US
- SECURITY_ENABLE_LOGIN=true
- SECURITY_INITIALLOGIN_PASSWORD=4500733e-a0f8-4605-a712-fd267404956a
- SECURITY_INITIALLOGIN_USERNAME=bigbear
hostname: big-bear-stirling-pdf
image: stirlingtools/stirling-pdf:0.45.6
labels:
icon: https://cdn.jsdelivr.net/gh/bigbeartechworld/big-bear-casaos/Apps/stirling-pdf/logo.png
ports:
- mode: ingress
target: 8080
published: "8080"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /DATA/AppData/big-bear-stirling-pdf/tessdata
target: /usr/share/tessdata
bind:
create_host_path: true
- type: bind
source: /DATA/AppData/big-bear-stirling-pdf/configs
target: /configs
bind:
create_host_path: true
x-casaos:
envs:
- container: DOCKER_ENABLE_SECURITY
description:
en_us: Enable Security Jar for Authentication
- container: SECURITY_ENABLE_LOGIN
description:
en_us: Enable Login for Authentication
- container: SECURITY_INITIALLOGIN_USERNAME
description:
en_us: Initial admin username
- container: SECURITY_INITIALLOGIN_PASSWORD
description:
en_us: Initial admin password
- container: CSRF_DISABLED
description:
en_us: Disable CSRF Protection
- container: DEFAULT_LOCALE
description:
en_us: Set Default Locale
- container: INSTALL_BOOK_AND_ADVANCED_HTML_OPS
description:
en_us: Install Book and Advanced HTML Ops
- container: LANGS
description:
en_us: Languages
ports:
- container: "8080"
description:
en_us: "Container Port: 8080"
volumes:
- container: /usr/share/tessdata
description:
en_us: "Container Path: /usr/share/tessdata"
- container: /configs
description:
en_us: "Configuration Files Path: /configs"
devices: []
cap_add: []
networks:
- default
privileged: false
networks:
default:
name: big-bear-stirling-pdf_default
x-casaos:
architectures:
- amd64
- arm64
author: BigBearTechWorld
category: BigBearCasaOS
description:
en_us: Stirling PDF - Local hosted web based PDF editor
developer: stirlingtools
hostname: ""
icon: https://cdn.jsdelivr.net/gh/bigbeartechworld/big-bear-casaos/Apps/stirling-pdf/logo.png
index: /
is_uncontrolled: true
main: big-bear-stirling-pdf
port_map: "8080"
scheme: http
store_app_id: big-bear-stirling-pdf
tagline:
en_us: Stirling PDF - Local hosted web based PDF editor
thumbnail: ""
tips:
before_install:
en_us: >
Read this before installing:
https://community.bigbeartechworld.com/t/added-stirling-pdf-to-bigbearcasaos/2265#p-4248-documentation-3
title:
custom: ""
en_us: Stirling-PDF
Firefox:
- Tab Session Manager.
- SingleFile.
- Unhook.
- SteamDB.
Anki:
- Button Colors Good Again.
- ReColor.
- Review Heatmap.
- Study Time Stats.
TexMaker:
- Primero instalamos TexLive con sudo apt-get install texlive-full.
- Seguimos con TexMaker sudo apt-get install texmaker.
- Creamos un documento, que en mi caso hago uso de Markdown y LuaLaTex como compilador de PDF. Para el que quiera aquí tiene la plantilla completa:
AppImages:
- BitWarden, Ledger, CDC-Defi, QBittorrent, GOverlay: obvio.
- Suyu: no quiero problemas con la gran N así que me lo reservo en mi GDrive.
- Real-Video-Enhancer: reescalado de imagenes de los vídeos mediante IA (top pero ojo con las temperaturas).
- ChatBox: front-end para hacer uso de Ollama.
Desktop Enviorment (DE), Window Manager (WM):
Como DE usamos KDE Plasma 5.27.5 (el que venía con Debian 12) y Kwin como WM pero modificados para parecerse lo máximo a un tipo i3WM pero con las comodidades de un DE. Para muestra un botón:
KDE Plasma viene con una aplicación denominada Plasma Style donde yo la tengo configurada de la siguiente forma (puedes copiarla mediante Get new… en cada sección:
- Colors > WhiteSurAlt.
- Application Style > Breeze (Follow color scheme).
- Plasma Style > Breeze Light.
- Window Decorations > Breeze.
- Icons > Reversal Icon.
- Cursors > WhiteSur Cursors.
- Fonts > Noto Sans 12pt.
A mi me gusta tener un estilo tipo i3wm y por ello nos vamos a Ajustes > Window Management > Kwin Scripts:
- Instalamos Krohnkite y lo configuramos poniendo un Gap en todas las opciones de 20px.
Pondremos la barra de tareas arriba y le adjudicamos un espacio en el panel de 30px.
Instalación de Debian
Si por algún casual te animas a instalar esta maravillosa distribución Linux te animo a que le pongas los siguientes parámetros:
- un Ext4 root “/”, de 120GB aprox., para el sistema operativo y de tipo bootable.
- un Swap de la misma capacidad que la cantidad de GB RAM instalada.
- el resto para la Ext4 “/home” para tus datos.
Antes de finalizar la instalación te pedirá que pongas una contraseña para tu superusuario “root”, pero OJO, Debian no da permisos de superusuario al mismo usuario que inice sesión en el ordenador con lo que te encontrarás el mítico problema de user is not in the sudoers file. Esto no ocurrirá si dejas la contraseña en blanco y Debian SÍ dará permisos de superusuario al primer usuario que se registre en el sistema.
Por si no te habías dado cuenta yo soy muy tonto y he aprendido la lección por errores de la vida, por lo que la solución a una instalación con contraseña en root y un usuario sin permisos es hacer nano con su a /etc/sudoers y añadir nuestro usuario, por ejemplo:
> # User privilege specification
> root ALL=(ALL:ALL) ALL
> user ALL=(ALL:ALL) ALL
Guardamos con Ctrl+O y salimos con Ctrl+X.
Si por algún casual no podemos editarlo por falta de permisos al usuario, debemos dejar que nuestro usuario pueda hacer uso del comando uso mediante usermod -aG sudo TUUSUARIO.
Finalmente hacemos un reboot now para que surjan efecto los cambios.
Hay veces que directamente no se puede solucionar siguiendo los pasos anteriores y lo único que queda es hacer sudo con cada comando ya que no nos deja permanecer como superusuarios o acceder a root poniendo su en la terminal (los cambios realizados mediante root se quedará en la carpeta de root y no en la de usuario del sistema).
Instalación de NvidiaDrivers.
Hacemos uso de los repositorios de Debian siguiendo la guía en https://wiki.debian.org/NvidiaGraphicsDrivers . Especial atención a la parte de usar Wayland en Debian donde primero debemos comprobar si # cat /sys/module/nvidia_drm/parameters/modeset nos devuelve un Y o N. Si nos devuelve una N, debemos añadir options nvidia-drm modeset=1 en el archivo /etc/modprobe.d/nvidia-options.conf con sudo nano. Después de eso podemos reiniciar siempre y cuando no tengamos intención de usar la opción de suspender el ordenador. En nuestro caso sí que queremos y por tanto debemos añadir la opción options nvidia NVreg_PreserveVideoMemoryAllocations=1 en el archivo /etc/modprobe.d/nvidia-options.conf con sudo nano.
Además, en Wayland hay un bug con los drivers en Nvidia que nos causará muchos parpadeos (flickering) en las aplicaciones debido a que se encuentra activada la opción GSP. Para desactivarla hacemos sudo nano /etc/modprobe.d/nvidia-gsp-disable.conf y añadimos el siguiente comando:
options nvidia NVreg_EnableGpuFirmware=0
Prompts para Ollama (qwen3:4B).
Normalmente utilizo la IA local para obtener una URL modificada de un video de Youtube para que esté lista para usarse con yt-dlp y éste pueda descargar la transcipción en ingles sin los timestamp.
You're a bot and you will refactor the next code with the URL I give you on the brackets of <URL_GOES_HERE_WITHOUT_QUOTES>. Don't think, just give me the code with the URL changed. Don't give me any summary, just the code.
###
yt-dlp --skip-download --write-subs --write-auto-subs --sub-lang en --sub-format ttml --convert-subs srt --output "transcript.%(ext)s" <URL_GOES_HERE_WITHOUT_QUOTES> && sed -i '' -e '/^[0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9][0-9] --> [0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9][0-9]$/d' -e '/^[[:digit:]]\{1,4\}$/d' -e 's/<[^>]*>//g' ./transcript.en.srt && sed -e 's/<[^>]*>//g' -e '/^[[:space:]]*$/d' transcript.en.srt > output.txt && rm
###
Give me the output within a code block so I can copy it
Cuando ya tengo el archivo de la transcripción, hago uso de otro prompt para que me haga un resumen de éste:
As a professional summarizer, create a concise and comprehensive summary of the provided text, be it an article, post, conversation, or passage, while adhering to these guidelines:
1. Craft a summary that is detailed, thorough, in-depth, and complex, while maintaining clarity and conciseness.
2. Incorporate main ideas and essential information, eliminating extraneous language and focusing on critical aspects.
3. Rely strictly on the provided text, without including external information.
4. Format the summary in paragraph form for easy understanding.
By following this optimized prompt, you will generate an effective summary that encapsulates the essence of the given text in a clear, concise, and reader-friendly manner.
Copias de seguridad de archivos con RClone
Para hacer copias de seguridad usando el método 3-2-1 (3 copias de los datos, 1 original y 2 copias, en 2 medios diferentes y siendo 1 de ellos fuera del lugar habitual) haremos uso de RClone (**sudo -v ; curl https://rclone.org/install.sh | sudo bash**. |
Cuando tengamos configurado RClone (en mi caso sería Original+HDD+GDrive), utilizaremos el siguiente código para montar el GDrive como “disco local” especificando que el almacenamiento de GDrive (rclonedrive:) se monte en nuestro almacenamiento local (/home/user/rclonedrive) con la opción –vfs-cache-mode full para que sea completamente compatible con nuestros archivos a expensa de usar un mayor espacio en disco.
rclone mount rclonedrive: /home/user/rclonedrive/ --vfs-cache-mode full
Como nuestra intención es ir aumentando la copia original con contenido nuevo, lo que haremos será hacer uso del comando sync.
rclone sync --dry-run SOURCE DESTINATION --progress --interactive
Este comando hará un barrido en seco para que veamos que haría si se ejecutara sin él (si estamos seguros podemos eliminarlo directamente) y con la etiqueta –progress para observar qué está ocurriendo y la etiqueta –interactive que nos preguntará que hacer con cada archivo. Comparará los archivos de nuestro Source con los de Destination y:
- Si no existen en Destination los creará.
- Si existe pero son diferentes, modificará los de Destination para que sea los de Source.
- Si no existe en Source lo eliminará de Destination.
Si por algún casual no nos fiamos de Source, podemos añadir la etiqueta *–backup-dir** que hará que en Destination se muevan aquellos archivos que sería modificados derivado de Source.
OC a la GPU.
Para hacer el OC haremos uso de GreenwithEnvy que lo instalaremos mediante Flatpak. Una vez instalado necesitaremos desbloquear el OC con CoolBits mediante nvidia-xconfig –cool-bits=value donde value será como mínimo el 12 (en nuestro caso usamos el 31) porque burra grande ande o no ande.
Básicamente creamos un perfil nuevo para el OC y empezamos a modificar primero la velocidad del core y probamos en un juego exigente hasta que los propios drivers peten y tengas que reiniciar el ordenador. Cuando tengamos un core donde no nos pete la gráfica continuamos modificando la velocidad de la memoria hasta que el propio rendimiento empeore o empiecena a aparecer artefactos en las texturas del videojuego. En mi caso lo tengo configurado de la siguiente forma: