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 😉

 

Wine error /lib/ld-linux.so.2

 

Wine error /lib/ld-linux.so.2

Wine error /lib/ld-linux.so.2.

 

Guida su come risolvere l’errore di libreria mancante (ld-linux.so.2) quando si utilizza wine. Questo tipo di errore “/lib/ld-linux.so.2: could not open” di solito si verifica quando si tenta di eseguire un programma Windows (.exe, .msi) e la libreria potrebbe non essere presente nel sistema o il percorso potrebbe essere errato.

Ecco alcune soluzioni da provare:

Assicurarsi che sul sistema sia installato il linker dinamico a 32 bit. Per verificare a quale pacchetto appartiene ld-linux.so.2, utilizzare i seguenti comandi:

$ sudo apt install apt-file
$ sudo apt-file update
$ sudo apt-file find ld-linux.so.2

output:

edmond@SysLinuxOS:~$ sudo apt-file find ld-linux.so.2
[sudo] password for edmond: 
libc6-i386: /lib/ld-linux.so.2 
libc6-i386: /lib32/ld-linux.so.2
libc6-i386-amd64-cross: /usr/x86_64-linux-gnu/lib/ld-linux.so.2
libc6-i386-amd64-cross: /usr/x86_64-linux-gnu/lib32/ld-linux.so.2
libc6-i386-cross: /usr/i686-linux-gnu/lib/ld-linux.so.2
libc6-i386-x32-cross: /usr/x86_64-linux-gnux32/lib/ld-linux.so.2
libc6-i386-x32-cross: /usr/x86_64-linux-gnux32/lib32/ld-linux.so.2
libc6-sh4-cross: /usr/sh4-linux-gnu/lib/ld-linux.so.2
libc6-sparc-sparc64-cross: /usr/sparc64-linux-gnu/lib32/ld-linux.so.2
libc6-sparc64-cross: /usr/sparc64-linux-gnu/lib64/ld-linux.so.2
libc6.1-alpha-cross: /usr/alpha-linux-gnu/lib/ld-linux.so.2

eventualmente installarlo o reinstallarlo:

$ sudo apt-get install --reinstall libc6:i386

Verificare il percorso corretto, che si trova in /lib/ld-linux.so.2

$ ls /lib/ld-linux.so.2

Se non esiste, estendere la ricerca a tutte le cartelle, in particolare a /usr/lib32, oppure /usr/x86_64-linux-gnu/lib32/ e poi creare un link simbolico a /lib:

$ sudo ln -s /usr/x86_64-linux-gnu/lib32/ld-linux.so.2 /lib

a questo punto rilanciando di nuovo wine il problema dovrebbe essere risolto.

Wine error /lib/ld-linux.so.2

enjoy 😉

 

AnyDesk error signature verification

 

AnyDesk error signature verification

 

AnyDesk error signature verification

 

Nelle ultime settimane durante l’aggiornamento di SysLinuxOS il repository di AnyDesk presenta il seguente errore:

An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://deb.anydesk.com all InRelease: The following signatures were invalid: EXPKEYSIG 18DF3741CDFFDE29 philandro Software GmbH <info@philandro.com>

Questo errore si presenta su tutte le distro con i repo per AnyDesk.

Per risolvere rimuovere vecchio anydesk.list:

$ sudo rm /etc/apt/sources.list.d/anydesk.list

aggiornare chiave e repository:

$ curl -fsSL https://keys.anydesk.com/repos/DEB-GPG-KEY|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/anydesk.gpg
$ echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list
$ sudo apt update
AnyDesk error signature verification

enjoy 😉

 

Edge Browser su Debian 12

 

Edge Browser su Debian 12

Edge Browser su Debian 12

 

Microsoft Edge è un browser web basato su Chromium, sviluppato da Microsoft. Su SysLinuxOS è già presente di default, ma per installarlo su Debian 12 seguire i passi successivi.

Prerequisiti
$ sudo apt update && sudo apt upgrade
$ sudo apt install software-properties-common apt-transport-https ca-certificates curl -y
Download GPG Keys
$ curl -fSsL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/microsoft-edge.gpg > /dev/null
Aggiungere repo
$ echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-edge.gpg] https://packages.microsoft.com/repos/edge stable main' | sudo tee /etc/apt/sources.list.d/microsoft-edge.list
Installazione
$ sudo apt update
$ sudo apt install microsoft-edge-stable

 

Edge Browser su Debian 12

enjoy 😉

WineHQ 8 su Debian 12

 

WineHQ 8 su Debian 12

 

WineHQ 8 su Debian 12

 

Guida su come installare Winehq 8.19 su Debian 12. Wine è in grado di far girare alcune applicazioni native per Windows, sotto Linux, BSD, OSX. Su SysLinuxOS 12 winehq è installato di default.

Abilitare architettura 32bit
$ sudo dpkg --add-architecture i386
Download GPG Keys
$ sudo mkdir -pm755 /etc/apt/keyrings
$ sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
Aggiungere repo
$ sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources
Installazione
$ sudo apt install --install-recommends winehq-stable
$ sudo apt install --install-recommends winehq-staging

 

WineHQ 8 su Debian 12

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 😉

 

Configurare Wake-on-LAN usando systemd

 

Configurare Wake-on-LAN usando systemd

Configurare Wake-on-LAN usando systemd

 

Configurare Wake-on-LAN usando systemd per inviare un magic packet sulla rete. Per utilizzare questa funzione, è necessario abilitare il supporto WoL nel BIOS/UEFI e configurare il sistema operativo per rilevare e rispondere ai pacchetti magici. In questa guida, vedremo come configurare Wake-on-LAN su un sistema Debian, SysLinuxOS utilizzando systemd.

Passo 1 – Verificare la compatibilità hardware

Prima di procedere, è importante verificare che il dispositivo di rete del computer supporti Wake-on-LAN. È possibile farlo eseguendo il seguente comando:

 
sudo ethtool <interface-name> | grep "Wake-on"

dove <interface-name> è il nome dell’interfaccia di rete (ad esempio eth0 o enp3s0). Se il comando restituisce una riga con “Wake-on: d“, significa che la scheda di rete supporta WoL.

edmond@SysLinuxOS:~$ sudo ethtool enp3s0 | grep "Wake-on"
Supports Wake-on: pumbg
Wake-on: d
$ sudo ethtool enp3s0
edmond@SysLinuxOS:~$ sudo ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: unknown
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: d
Link detected: no

la lettera d, significa che WOL sulla scheda è disabilitato, per abilitarlo con g:

$ sudo ethtool --change enp3s0 wol g

il comando sopra però è provvisorio.

Passo 2 – Configurare systemd per abilitare Wake-on-LAN al boot
$ sudo tee /etc/systemd/network/10-enp3s0.link << EOF
[Match]
MACAddress=e8:d8:d1:86:cd:ce

[Link]
WakeOnLan=magic
EOF

dove <MAC-address> è l’indirizzo MAC della scheda di rete del computer.

Passo 3 – Identificare il pc in rete

Determinare l’indirizzo MAC del dispositivo di destinazione che si desidera risvegliare:

$ ip neigh show
Passo 4 – Testare Wake-on-LAN

Per testare Wake-on-LAN, inviare un pacchetto magico sulla rete utilizzando uno strumento come wakeonlan o etherwake:

$ sudo apt-get install wakeonlan etherwake

comandi:

$ sudo etherwake -i <nome_interfaccia> <indirizzo_MAC>
$ sudo wakeonlan <indirizzo_MAC>

Il computer dovrebbe avviarsi dopo aver ricevuto il pacchetto magico.

Conclusioni

In questa guida, abbiamo visto come configurare Wake-on-LAN su un sistema Debian GnuLinux, SysLinuxOS,  utilizzando systemd. Questa funzionalità può essere utile per accendere un computer a distanza e risparmiare energia evitando di tenerlo acceso costantemente.

Configurare Wake-on-LAN usando systemd

 

enjoy 😉