Yt2md Converter YouTube to Markdown

 

Yt2md Converter YouTube to Markdown

 

Nel corso dello sviluppo di vari progetti open source, mi sono spesso trovato nella necessità di integrare video tutorial nei file README e nella documentazione tecnica. Il processo manuale di creazione dei link Markdown con thumbnail cliccabili richiedeva tempo e attenzione ai dettagli. Per risolvere questo problema in modo efficiente, ho sviluppato Yt2md Converter (YouTube to Markdown Converter), una suite completa di strumenti in bash che automatizza la conversione di link YouTube in codice Markdown formattato, pronto per l’inserimento in README di GitHub, documentazione tecnica e blog.

Problema e Soluzione

Il Problema

L’integrazione di video YouTube nella documentazione richiede tipicamente:
1. Estrazione del Video ID dall’URL
2. Costruzione dell’URL della thumbnail
3. Scrittura manuale della sintassi Markdown
4. Verifica della correttezza del codice generato

Questo processo, ripetuto per ogni video, diventa rapidamente tedioso e soggetto ad errori.

La Soluzione

Yt2md automatizza completamente questo workflow, offrendo:
– Conversione istantanea da Video ID a Markdown
– Supporto per multipli formati di output
– Interfaccia CLI per automazione
– Interfaccia GUI per utenti non tecnici
– Modalità batch per conversioni multiple
– Zero dipendenze per le versioni CLI base

Installazione Base

Clone repository

git clone https://github.com/fconidi/Yt2md-Converter
cd yt2md
bash yt2md.sh --help
Installazione Sistema (Opzionale)

Copia in /usr/local/bin

sudo cp yt2md.sh /usr/local/bin/yt2md
sudo chmod +x /usr/local/bin/yt2md

Dipendenze GUI

Ubuntu/Debian

sudo apt install zenity xclip

Architettura del Progetto

Il progetto è strutturato in quattro componenti principali:

1. yt2md.sh – CLI Semplificato

La versione consigliata per uso quotidiano. Sintassi minimalista:

bash yt2md.sh VIDEO_ID "TITOLO" "AUTORE"

 

**Caratteristiche tecniche:**

– Parsing robusto degli ID video da URL multipli formati
– Costruzione dinamica degli URL thumbnail
– Nessuna dipendenza esterna
– Output su stdout o file
– Supporto per 4 formati di output

 

**Esempio di utilizzo:**
bash yt2md.sh dQw4w9WgXcQ "Tutorial Linux Base" "TechChannel"

 

**Output generato:**
[![Tutorial Linux Base](https://img.youtube.com/vi/dQw4w9WgXcQ/hqdefault.jpg)](https://www.youtube.com/watch?v=dQw4w9WgXcQ)
2. yt2md-gui.sh – Interfaccia Grafica (Consigliato)

Implementazione basata su Zenity per utenti che preferiscono un’interfaccia visuale.

**Funzionalità:**

– Dialog guidati step-by-step
– Validazione input in tempo reale
– Progress bar per feedback visuale
– Integrazione clipboard (xclip)
– Conversione batch con formato strutturato
– Menu help integrato

**Dipendenze:**

– zenity
– xclip (opzionale, per clipboard)

**Workflow conversione singola:**

1. Input Video ID o URL completo
2. Input titolo (validato, obbligatorio)
3. Input autore (opzionale, default fornito)
4. Selezione formato output
5. Selezione qualità thumbnail
6. Opzioni risultato: clipboard, file, visualizzazione

**Conversione batch:**

Formato input strutturato:

VIDEO_ID | TITOLO | AUTORE

Supporta:
– Parsing automatico con rimozione spazi
– Commenti (linee che iniziano con )
– Progress bar per ogni elemento
– Report errori e successi

3. yt2md-offline.sh – CLI con Opzioni

Versione con sintassi più tradizionale per utenti abituati agli strumenti Unix standard.

bash yt2md-offline.sh -t "TITOLO" -a "AUTORE" VIDEO_ID
4. yt2md-cli.sh – CLI Avanzato

Versione completa con tutte le opzioni disponibili:

bash yt2md-cli.sh --offline --title "TITOLO" --author "AUTORE" VIDEO_ID

Supporta:
– Modalità offline esplicita
– Opzioni estese
– Help dettagliato
– Gestione errori avanzata

Formati Output Supportati

Standard Format
Il formato predefinito, ottimale per README di GitHub:

[![TITOLO](THUMBNAIL_URL)](VIDEO_URL)

Simple Format
Link testuale senza thumbnail:

[TITOLO](VIDEO_URL)

Table Format
Per liste strutturate:

| [![TITOLO](THUMB)](URL) | AUTORE |

Embed Format
Codice HTML completo con iframe:

<a href="VIDEO_URL">
<img src="THUMBNAIL" alt="TITOLO" width="480">
</a>
<iframe width="560" height="315" src="EMBED_URL"></iframe>

Il sistema supporta multipli formati di URL YouTube:

Supporta:
– URL standard: `youtube.com/watch?v=ID`
– URL brevi: `youtu.be/ID`
– Shorts: `youtube.com/shorts/ID`
– ID diretti: `ID` (11 caratteri)

Costruzione URL Thumbnail

YouTube fornisce thumbnail a diverse risoluzioni:

case "$size" in
default) thumb="https://img.youtube.com/vi/${id}/default.jpg" 120x90
medium) thumb="https://img.youtube.com/vi/${id}/mqdefault.jpg" 320x180
high) thumb="https://img.youtube.com/vi/${id}/hqdefault.jpg" 480x360
maxres) thumb="https://img.youtube.com/vi/${id}/maxresdefault.jpg" 1280x720
esac

Default consigliato: `high` (480×360) per bilanciamento qualità/peso.

Limitazioni Attuali

1. **Modalità Offline:**
– Titolo e autore devono essere forniti manualmente
– Nessuna verifica esistenza video

2. **Metadata:**
– Non recupera durata video
– Non recupera conteggio visualizzazioni
– Non recupera data pubblicazione

3. **Thumbnail:**
– URL fissi (nessuna verifica disponibilità)
– MaxRes potrebbe non esistere per video vecchi

4. **Playlist:**
– Nessun supporto diretto per playlist
– Richiede estrazione manuale ID

Conclusioni

Yt2md Converter rappresenta una soluzione completa per l’integrazione di contenuti YouTube in documentazione tecnica. La sua architettura modulare, la varietà di interfacce disponibili e l’assenza di dipendenze per le versioni base lo rendono adatto a scenari d’uso diversificati.Il progetto è completamente open source (licenza MIT) e accetta contributi dalla community. Il codice è disponibile su GitHub.

Yt2md Converter YouTube to Markdown

enjoy 😉

 

Advanced Comics Converter CBZ/CBR in PDF

 

Advanced Comics Converter CBZ/CBR in PDF

Introduzione

Advanced Comics Converter (ACC) è un potente strumento professionale multipiattaforma, progettato per automatizzare la conversione di archivi digitali di fumetti in formato PDF. Lo strumento integra elaborazione parallela, validazione avanzata dei file e un’interfaccia grafica per gestire efficientemente collezioni di qualsiasi dimensione. Questo programma è l’evoluzione di comics-converter presente su GitHub, ma nella versione advanced. Ottimo se utilizzato insieme ad RCU (Rename Comics Converter). Esiste anche la versione per gli utenti Windows.

Architettura e funzionalità principali

Elaborazione parallela intelligente

ACC sfrutta GNU Parallel per processare multipli file contemporaneamente, utilizzando fino all’80% dei core disponibili. Questo approccio riduce drasticamente i tempi di conversione su collezioni estese, mantenendo la stabilità del sistema.

Validazione basata su magic bytes

Lo script implementa un controllo rigoroso delle estensioni file attraverso l’analisi dei magic bytes, correggendo automaticamente archivi con estensioni errate. Supporta:

  • ZIP/CBZ: 50 4B 03 04, 50 4B 05 06, 50 4B 07 08
  • RAR4/CBR: 52 61 72 21
  • RAR5/CBR: 06 00 00 00 52 61 72 21 1A 07 01 00
Gestione multi-tool degli archivi RAR

Per massimizzare la compatibilità con formati RAR corrotti o varianti non standard, ACC implementa una strategia di fallback sequenziale:

  1. rar con riparazione automatica (rar r -y)
  2. unar per estrazione alternativa
  3. unrar come opzione di backup
  4. 7z come ultimo tentativo
Interfaccia grafica e logging selettivo

L’integrazione con Zenity fornisce feedback visivo attraverso finestre di selezione directory e barre di progresso in tempo reale. Il sistema di logging registra esclusivamente errori critici, facilitando il debugging senza generare output ridondante.

Pipeline di conversione

Il processo di conversione segue un workflow ottimizzato:

  1. Selezione directory tramite GUI Zenity
  2. Verifica automatica delle dipendenze di sistema
  3. Scansione ricorsiva dei file CBZ/CBR
  4. Validazione e correzione delle estensioni
  5. Filtro intelligente per escludere file già convertiti
  6. Estrazione parallela degli archivi
  7. Normalizzazione immagini in formato JPG
  8. Generazione PDF individuali per pagina
  9. Merge finale con PDFtk
  10. Pulizia automatica dei file temporanei
Dipendenze core su Linux
sudo apt install imagemagick img2pdf pdftk unzip zenity coreutils parallel
Strumenti opzionali per CBR

WinRAR per Linux (ma altamente consigliato per funzionalità di riparazione):

wget https://www.win-rar.com/fileadmin/winrar-versions/rarlinux-x64-712.tar.gz
tar -xvf rarlinux-x64-712.tar.gz
cd rar/ 
sudo cp rar unrar /usr/local/bin
Installare: unar, unrar-free, p7zip-full
sudo apt install unar unrar-free p7zip-full

DOWNLOAD

 

Utilizzo base

da script
chmod +x advanced-comics-converter.sh
./advanced-comics-converter.sh
oppure il pacchetto deb
sudo dpkg -i advanced-comics-converter_2.0.0_all.deb

Selezionare la directory contenente i file tramite la finestra di dialogo. I PDF vengono generati nella stessa posizione dei file sorgente, con log degli errori in comics_converter_errors.log.

Ottimizzazione e personalizzazione

Regolazione del parallelismo

Modificare il parametro -j alla linea 338 circa:

parallel -j 50% # riduce il carico su sistemi con RAM limitata
parallel -j 100% # massimizza le prestazioni su hardware potente
parallel -j 4 # numero fisso di job simultanei

Controllo qualità immagini

Aggiungere il parametro -quality nella conversione ImageMagick (linea 180):

convert "$img" -quality 85 "$TEMPNAME"

Valori consigliati: 75-95 (bilanciamento tra dimensione file e qualità visiva).

Gestione errori e troubleshooting

Il sistema di logging strutturato registra:

  • Timestamp di esecuzione
  • Path della directory elaborata
  • Errori di estrazione per singolo file
  • Fallimenti nella conversione immagini
  • Problemi nel merge PDF
  • Statistiche riepilogative (file convertiti, saltati, falliti)

Per archivi corrotti non riparabili automaticamente:

rar r -y file_corrotto.cbr # tentativo manuale di riparazione
rar t file_corrotto.cbr # test di integrità

Considerazioni sulle prestazioni

Requisiti di sistema

  • RAM: proporzionale al parallelismo (consigliati 2GB per job)
  • Spazio disco: buffer temporaneo pari a 2x il file più grande
  • CPU: beneficio lineare fino a 8 core, miglioramenti marginali oltre

Limitazioni tecniche

  • Formati supportati limitati a CBZ (ZIP) e CBR (RAR/RAR5)
  • Conversione forzata a JPG per compatibilità PDF universale
  • Impossibilità di processare archivi protetti da password
  • Dipendenza da X11 per l’interfaccia Zenity

Conclusioni

Advanced Comics Converter rappresenta una soluzione completa per la gestione automatizzata di collezioni digitali di fumetti. La combinazione di elaborazione parallela, validazione rigorosa e riparazione automatica degli archivi lo rende uno strumento affidabile per conversioni batch su larga scala.

Il progetto è rilasciato come software libero, utilizzabile e modificabile secondo le esigenze specifiche dell’utente.

Risorse

 

DOWNLOAD

 

Advanced Comics Converter CBZ/CBR in PDF

 

Advanced Comics Converter CBZ/CBR in PDF

enjoy 😉

Convertire cbr cbz pdf con Comics Converter

 

Convertire cbr cbz pdf con Comics Converter

Convertire cbr cbz pdf con Comics Converter

Questo mio script Bash, denominato Comics Converter, è progettato per convertire file di fumetti digitali nei formati PDF. Files CBZ (ZIP) e CBR (RAR) in file PDF unificati, con le immagini interne convertite in formato JPEG. Utilizza strumenti da riga di comando comuni e la GUI Zenity per l’interazione con l’utente e la segnalazione di errori/avvisi. Questo programma è l’evoluzione di AllCbrztoPdf, creato da me qualche tempo fa, ma aveva dei limiti. Infatti a volte il programma falliva, per una serie di motivi voluti e non voluti dal creatore del file stesso, di seguito alcuni esempi:

  1. Il nome del file estratto era troppo lungo, quindi lo script falliva.
  2. Le immagini erano in jpeg, ma un paio o più erano con estensioni diverse.
  3. Alcuni files cbr erano stati rinominati (intenzionalmente a mio parere) da cbr a cbz e viceversa.
  4. Nei nomi oltre la lunghezza c’era il problema di alcuni caratteri.
  5. La sequenza nome/numero file jpg/png generava problemi di impaginazione durante la conversione.

Comics Converter risolve i problemi sopra, partendo proprio dalla base, e cioè dalla numerazione progressiva partendo da 001, ed eliminando quella iniziale. Risolve il problema della fake estensione andando a verificarla e nel caso servisse a rinominarla correttamente. Mantiene solo il nome del file originale. Comics Converter lo sto utilizzando e testando da almeno sei mesi e non ha mai fallito una conversione. Pronto a condividerlo con gli amanti dei comics 🙂

Prerequisiti

Prima di eseguire lo script, devi assicurarti di avere installato i seguenti strumenti di sistema, poiché sono richiesti dallo script:

  • pdfimages: Parte del pacchetto Poppler, utilizzato per estrarre immagini dai PDF.
  • convert: Parte di ImageMagick, utilizzato per convertire formati di immagine in JPEG.
  • img2pdf: Utilizzato per convertire le singole immagini in PDF.
  • pdftk (o equivalente se non disponibile): Utilizzato per unire i PDF delle singole pagine.
  • unzip: Utilizzato per estrarre archivi CBZ (ZIP).
  • zenity: Utilizzato per finestre di dialogo grafiche (selezione directory, errori, avvisi, info).
  • head: Utilizzato per leggere l’inizio dei file per i magic bytes.
  • xxd: Utilizzato per visualizzare i magic bytes in esadecimale.
  • unrar O 7z (p7zip): Necessari per estrarre archivi CBR (RAR).

Lo script ad ogni modo controllerà la presenza dei requisiti sopra e se mancano, avviserà l’utente tramite Zenity e uscirà.

Download
git clone https://github.com/fconidi/comics-converter.git
cd comics-converter/
chmod +x comics_converter.sh
./comics_converter.sh

SCREENCAST

enjoy 😉

 

Cisco packet tracer su SysLinuxOS 13 e Debian 13

 

 

Cisco packet tracer su SysLinuxOS 13 e Debian 13

Cisco packet tracer su SysLinuxOS 13 e Debian 13

 

Packet Tracer è già presente di default nella distibuzione SysLinuxOS 13 Tirreno, ma di seguito ci saranno i passi per installarlo anche su Debian 13 Trixie. Come al solito bisogna procurarsi il pacchetto deb dal sito Netcad, ma nel momento dell’installazione, c’è una problema di dipendenze:

dpkg: dependency problems prevent configuration of packettracer:
packettracer depends on dialog; however:
Package dialog is not installed.
packettracer depends on libgl1-mesa-glx; however:
Package libgl1-mesa-glx is not installed.
packettracer depends on libxcb-xinerama0-dev; however:
Package libxcb-xinerama0-dev is not installed.

per risolvere il problema, basta avere il pacchetto libgl1-mesa-glx, che non è più presente nei repository di Debian 13. Per questo motivo o lo si ricerca negli archivi dei pacchetti Debian, oppure si utilizza il mio repo su github:

git clone https://github.com/fconidi/packet-tracer-debian-deps.git
cd packet-tracer-debian-deps/
sudo dpkg -i libgl1-mesa-glx_22.3.6-1+deb12u1_amd64.deb

una volta scaricato il pacchetto deb di packet tracer da:

Cisco Network Accademy

o direttamente da:

ComputerNetworkingNotes

installarlo con:

sudo dpkg -i packettracer_8.2.2_amd64.deb
oppure
sudo dpkg -i CiscoPacketTracer822_amd64_signed.deb
sudo apt install -f

Cisco packet tracer su SysLinuxOS 13 e Debian 13

enjoy 😉

 

Fix Possible missing firmware /lib/firmware/nvidia

Fix Possible missing firmware /lib/firmware/nvidia

 

Fix Possible missing firmware /lib/firmware/nvidia

 

Questo errore si presenta quando si aggiorna il kernel, e di default si utilizza la scheda video Intel. In pratica non trova alcuni firmware inerenti ai driver nvidia, che comunque sono presenti, ma in un percorso diverso. A questo proposito ho creato uno script per risolvere questo fastidioso errore.

Utilizzo:

$ git clone https://github.com/fconidi/fix-firmware-nvidia.git
$ cd fix-firmware-nvidia/
$ chmod +x fix-nvidia.sh
$ ./fix-nvidia.sh

 

Fix Possible missing firmware /lib/firmware/nvidia

 

enjoy 😉

Cambiare nome interfaccia di rete a eth0 su Debian 12

Cambiare nome interfaccia di rete a eth0 su Debian 12

 

Cambiare nome interfaccia di rete a eth0 su Debian 12

Guida su come cambiare il nome alle interfaccia di rete a eth0/wlan0, su Debian 11/12 e SysLinuxOS in modo permanente, utilizzando systemd-networkd. Attualmente vengono riconosciute con molteplici nomi, anche abbastanza lunghi e difficili da ricordare. Questi sono assegnati alle interfacce di rete direttamente dal kernel. Ma tutti questi nomi hanno in comune le due iniziali, “en” ” wl”, infatti se si digita il comando:

sudo dmesg | grep -i eth
sudo dmesg | grep -i wl

si può leggere che le interfacce vengono rinominate partendo da eth0 e wlan0. Personalmente conosco due modi funzionanti per ritornare al vecchio standard.

Metodo 1

questo modo dovrebbe funzionare nella maggior parte dei casi e si limita a fare una piccola aggiunta a grub:

sudo nano /etc/default/grub

ed aggiungere

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

come sotto:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

generare un nuovo file di configurazione di grub, e riavviare.

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot

se tutto è andato bene le interfacce saranno eth0 e wlan0. Se si usa il dhcp non c’è bisogno di modificare nulla, in caso di ip statico, si utilizza il solito metodo:

sudo nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
dns-nameservers 192.168.1.1
gateway 192.168.1.1
Metodo 2

questo metodo da utilizzare in alternativa al primo, consiste nell’andare a trovare i nomi ed i percorsi delle attuali schede di rete, per poi manualmente creare due file che conterranno i nuovi nomi.

sudo udevadm info /sys/class/net/nome_interfaccia

il comando sopra ci trova i dati che ci interessano:

E: ID_PATH=pci-0000:03:00.0
E: ID_PATH_TAG=pci-0000_03_00_0

di conseguenza potremo creare il file manualmente:

sudo nano /etc/systemd/network/10-rename-nome_interfaccia

ed aggiungere come esempio sotto

per eth0:

[Match]
Path=pci-0000:03:00.0
pci-0000_03_00_0
[Link]
Name=eth0

o questo per wlan0

[Match]
Path=pci-0000:05:00.0
pci-0000_05_00_0
[Link]
Name=wlan0

dopo il riavvio il nome delle interfacce di rete saranno viste permanentemente con il vecchio standard. In realtà ci sarebbe anche un altro metodo, più semplice 🙂 e cioè uno script bash che fa tutto da solo:

Metodo semplice

sempre in alternativa al primo

git clone https://github.com/fconidi/rename-interfaces.git
cd rename-interfaces/
chmod +x rename-interfaces.sh
sudo ./rename-interfaces.sh
sudo reboot

Cambiare nome interfaccia di rete a eth0 su Debian 12

enjoy 😉

 

Convertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Convertire Fumetti Cbr/Cbz in PdfConvertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Uno dei problemi più comuni che gli utenti devono affrontare è la conversione dei file di immagine di fumetti, come i file CBR e CBZ, in formato PDF. Per questo ho creato AllCbrztoPdf, uno script Bash che semplifica notevolmente questo processo. Lo script in questione è stato progettato per eseguire automaticamente la conversione di file CBR e CBZ in formato PDF, utilizzando una serie di comandi Bash standard, rendendo la conversione di grandi quantità di file una questione semplice e veloce.
L’esecuzione dello script è semplice. una volta eseguito scaricherà ed installerà i programmi che servono, per le distribuzioni come Debian based e SysLinuxOS,  poi chiederà all’utente di selezionare una cartella principale tramite Zenity e, successivamente, avvierà la conversione di tutti i file CBR e CBZ in formato PDF all’interno della cartella e delle sue sottocartelle.
Durante la conversione, lo script visualizzerà l’avanzamento tramite pv e creerà un unico file PDF combinato utilizzando pdftk. Infine, lo script salverà il file PDF risultante nella stessa cartella in cui si trovava il file originale. Di default lascerà solo i files PDF e cancellerà TUTTI i file CBR e CBZ.

Download ed utilizzo via GitHub

$ git clone https://github.com/fconidi/AllCbrztoPdf.git
$ cd AllCbrztoPdf/
$ chmod +x allcbrztopdf.sh
$ ./allcbrztopdf.sh

Download ed utilizzo anche via Sourceforge

AllCbrztoPdf script completo:

per le distribuzioni NON Debian based, si possono commentare/eliminare le stringhe con sudo, ed installare i pacchetti tramite il proprio gestore.

Se si volesse mantenere i file CBR/CBZ basta commentare la stringa in fondo rm “$file”

#!/bin/bash
set -xev
sudo apt update
sudo apt upgrade -y
sudo apt install -y pv imagemagick pdftk img2pdf unrar-free rar unrar p7zip-full

# Select the root folder
folder=$(zenity --file-selection --directory --title="Select the root folder")

# Rename all files .cbr to .rar and .cbz to .zip (recursively)
find "$folder" -type f -name "*.cbr" -execdir rename 's/ /_/g' '{}' \;
find "$folder" -type f -name "*.cbr" -execdir mv '{}' '{}'.rar \;
find "$folder" -type f -name "*.cbz" -execdir rename 's/ /_/g' '{}' \;
find "$folder" -type f -name "*.cbz" -execdir mv '{}' '{}'.zip \;

# Convert all files .cbr and .cbz to PDF (recursively)
find "$folder" -type f \( -name "*.rar" -o -name "*.cbr" -o -name "*.zip" -o -name "*.cbz" \) |
while read file; do
ORIGINAL_FOLDER=$(dirname "$file")
TMP_FOLDER=$(mktemp -d)
cd "$TMP_FOLDER"
case "$file" in
*.rar|*.cbr)
unrar e "$file" "$TMP_FOLDER"
;;
*.zip|*.cbz)
unzip -j "$file" -d "$TMP_FOLDER"
;;
esac
ls -1 ./*jpg ./*jpeg ./*png | pv -lep -s $(ls -1 ./*jpg ./*jpeg ./*png | wc -l) | xargs -L1 -I {} img2pdf {} -o {}.pdf
pdftk *.pdf cat output combined.pdf
cp "$TMP_FOLDER/combined.pdf" "$ORIGINAL_FOLDER/$(basename "$file" .cbr | sed 's/.rar$//;s/.zip$//;s/.cbz$//').pdf"
rm -rf "$TMP_FOLDER"
rm "$file"
done

zenity --info --text="Conversion completed!"

PS: script aggiornato su GitHub o SourceForge

 

Convertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Video:

 

enjoy 😉

 

Fix error Possible missing firmware /lib/firmware/i915

 

Fix error Possible missing firmware /lib/firmware/i915Fix error Possible missing firmware /lib/firmware/i915

 

Questi tipo di errori sono presente oramai da qualche anno e si presentano quando si lancia il comando:

sudo update-initramfs -u

questi errori segnalano che ci sono dei firmware mancanti e si riferiscono alle microarchitetture intel come:

Sky Lake, Broxton, Kaby Lake, Commet Lake, Ice Lake, Elkhart Lake, Tiger Lake, Gemini Lake, Alder Lake,Arc Alchemist.

Per risolvere il problema su Debian, SysLinuxOS ed altre distro, basta scaricare da GitHub il mio script bash, che si occuperà di scaricare tutti i firmware .bin, compararli con quelli già presenti, per poi copiare solamenti quelli mancanti in /lib/firmware/i915.

Per utilizzare fixi915.sh eseguire i seguenti comandi:

$ git clone https://github.com/fconidi/fix-firmware-i915.git
$ cd fix-firmware-i915/
$ chmod +x fixi915.sh
$ ./fixi915.sh

questo è tutto!

 

Di seguito lo script completo:

 

#!/bin/bash

# Source: https://francoconidi.it/fix-error-possible-missing/
# Source: https://syslinuxos.com

# Install curl, wget, lynx

sudo apt update; sudo apt install -y wget curl lynx

# folder creation
mkdir /home/$USER/i915; cd /home/$USER/i915

# Download the web page and use lynx to extract the HTTP/HTTPS links

lynx -dump "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/" | grep -o 'https\?://[^ ]*\.bin' > /home/$USER/i915/links.txt

# Download the .bin files from the list of links
while read -r line
do
# Extract the filename from the link
filename=$(basename "$line")

# Download the file from the link using curl
curl -OJL "$line"

# Rename the downloaded file to its original name
mv "$filename" "${filename%.*}.bin"
done < "links.txt"

# Two folders to compare
folder1="/home/$USER/i915"
folder2="/lib/firmware/i915/"

# Check folders
if [ ! -d "$folder1" ]; then
echo "Error: First folder does not exist."
exit 1
fi

if [ ! -d "$folder2" ]; then
echo "Error: Second folder does not exist."
exit 1
fi

# Cycle through the files in the first folder
for file1 in "$folder1"/*.bin; do
# Extract the filename without the path
filename="$(basename "$file1")"
# Check if the file exists in the second folder
if [ ! -f "$folder2/$filename" ]; then
# Copy the missing file into the second folder
sudo cp "$file1" "$folder2"
echo "The file $filename has been copied to the second folder."
fi
done

echo "The check has been completed."

# Update initramfs
sudo update-initramfs -u

echo "Fix missing firmware has been completed."

 

Fix error Possible missing firmware /lib/firmware/i915

 

enjoy 😉