La liseuse Kobo Libra H2O

Dusk Logo

La liseuse Kobo Libra H2O, en mode nuit, affichant « Seconde Fondation », d’Isaac Asimov.

Ayant fait l’acquisition de cette liseuse, il fallait passer par quelques étapes avant de pouvoir réellement m’en servir. Voici une petite liste des choses à faire.

Pour la suite de l’article, la Kobo est vue par le système (GNU/Linux) en tant que /dev/sdc et ces variables d’environnement sont définies suivant l’emplacement du dossier dans lequel elle est montée :

export KOBO_ROOT="/media/${USERNAME}/KOBOeReader"
export KOBO_DIR="${KOBO_ROOT}/.kobo"
export KOBO_VERSION='4.37.21582'
export KOBO_PATCH_VERSION='82'
export KOBO_NM_VERSION='0.5.4'

🚀 Premier Démarrage

Quelques étapes que j’ai préféré faire, mais dont aucune n’est indispensable.

💿 Sauvegarde

  1. Brancher le cordon USB à l’ordinateur.

  2. Lorsque la liseuse démarre, choisir « Vous n’avez pas de réseau Wi-Fi ? ».

  3. La liseuse est détectée et montée, la démonter.

  4. Faire la sauvegarde :

    dd bs=4M conv=sync,noerror status=progress \
        if='/dev/sdc' \
        of="kobo-$(date '+%Y%m%d')-full.dd"
    
  5. Remonter la liseuse.

  6. Faire une copie du dossier .kobo:

    cp -rv "${KOBO_DIR}" "${KOBO_DIR}-$(date '+%Y%m%d')"
    

🔓 Compte Kobo/Rakuten

Outrepasser la demande d’enregistrement pour jouir de la liseuse sans avoir à créer de compte en ligne :

sqlite3 "${KOBO_DIR}/KoboReader.sqlite" \
    'INSERT INTO user(UserID, UserKey) VALUES("1", "")'

♻️ Purge Initiale

Supprimer le contenu inclus par défaut :

sqlite3 "${KOBO_DIR}/KoboReader.sqlite" \
    'DELETE FROM content WHERE ___UserID != "adobe_user" ; VACUUM'

⚙️ Mettre à Jour le Firmware

Voici la procédure pour mettre à jour le firmware de la Kobo.

  1. Télécharger et installer le firmware :

    wget "https://ereaderfiles.kobo.com/firmwares/kobo7/Jul2023/kobo-update-${KOBO_VERSION}.zip" \
        && unzip "kobo-update-${KOBO_VERSION}.zip" -d "${KOBO_DIR}" \
        && sync
    
  2. Éjecter la liseuse et patienter.


🎛️ Hacker le Firmware

Il y a possibilité de personnaliser quelques options et comportements de la liseuse.

  1. Suivre l’étape précédente en entier et conserver les fichiers pour la suite.

  2. Télécharger le patcheur et copier le firmware :

    wget "https://github.com/pgaskin/kobopatch-patches/releases/download/v${KOBO_PATCH_VERSION}/kobopatch_${KOBO_VERSION}.zip" \
        && unzip "kobopatch_${KOBO_VERSION}.zip" \
        && cp -v "kobo-update-${KOBO_VERSION}.zip" 'src'
    
  3. Éditer les fichiers src/*.yaml pour activer les patches désirés. Ou éditez le fichier kobopatch.yaml. Voici mes options :

    Fichier : kobopatch.yaml
    version: 4.37.21582
    in: src/kobo-update-4.37.21582.zip
    out: out/KoboRoot.tgz
    log: out/log.txt
    
    patchFormat: kobopatch
    
    patches:
      src/nickel.yaml: usr/local/Kobo/nickel
      src/libadobe.so.yaml: usr/local/Kobo/libadobe.so
      src/libnickel.so.1.0.0.yaml: usr/local/Kobo/libnickel.so.1.0.0
      src/librmsdk.so.1.0.0.yaml: usr/local/Kobo/librmsdk.so.1.0.0
    
    overrides:
      src/nickel.yaml:
        Dictionary pop-up - increase available text area: yes
        Increase library cover size: yes
        Custom collection/author header title font: yes
        Reduce new header/footer height: yes
        Series list increase cover thumbnails: yes
        New home screen subtitle custom font: yes
        Remove footer (row3) and increase cover size on new home screen: yes
        Change TOC level indentation: yes
      src/libadobe.so.yaml:
        Remove PDF map widget shown during panning: yes
      src/libnickel.so.1.0.0.yaml:
        Dictionary text font-family/font-size/line-height: yes # custom values inside
        Custom navigation menu page number text: yes
        Force user line spacing in ePubs (part 1 of 2): yes
        Force user font-family in ePubs (Part 1 of 2): yes
        Shorten dictionary entry not found message: yes
        Replace adobe page numbers toggle with invert screen: yes
        Allow USB storage even when device locked: yes
        Remove beta features not supported text: yes
        Disable all tutorial dialogs: yes
        Remove recommendations (row1col2) from home screen: yes
        Never show Kobo Plus, wishlist, and points SmartLinks: yes
        Remove title from reading header/footer: yes
        Don't uppercase header/footer text and change page number text: yes
        FeatureSettings - BookSpecificStats: yes
      src/librmsdk.so.1.0.0.yaml:
        Force user line spacing in ePubs (Part 2 of 2): yes
        Force user font-family in ePubs (Part 2 of 2): yes
    

    Modifications apportées à src/libnickel.so.1.0.0.yaml :

    @@ -467,7 +467,7 @@ Un-force link decoration in KePubs:
     # The following patch(es) were made by jackie_w
     
     Dictionary text font-family/font-size/line-height:
    -  - Enabled: no
    +  - Enabled: yes
       - Description: |
           This patch allows you to to customise the appearance of the text
           in the pop-up and full-screen dictionary widgets.
    @@ -531,5 +531,6 @@ Dictionary text font-family/font-size/li
       #- ReplaceString: {Offset: 54, Find: "serif                 ", Replace: "'KBJ-TsukuMin Pr6N RB'", MustMatchLength: yes}
       #- ReplaceString: {Offset: 54, Find: "serif                ",  Replace: "'KBJ-UDKakugo Pr6N M'",  MustMatchLength: yes}
       #- ReplaceString: {Offset: 54, Find: "serif           ",       Replace: "'AR UDJingxihei'",       MustMatchLength: yes}
    +  - ReplaceString: {Offset: 54, Find: "serif    ",              Replace: "FreeSerif",              MustMatchLength: yes}
     
       # Un-comment and edit next line to change font-size
    

    Afin d’appliquer ces modification à votre fichier, copier le code précédent dans le fichier libnickel.so.1.0.0.diff, puis :

    patch --binary 'src/libnickel.so.1.0.0.yaml' 'libnickel.so.1.0.0.diff'
    
  4. Patcher et installer le firmware modifié :

    ./kobopatch.sh \
        && cp -v 'out/KoboRoot.tgz' "${KOBO_DIR}" \
        && sync
    
  5. Éjecter la liseuse. C’est terminé.


🍽️ NickelMenu

En option, vous pouvez installer un menu supplémentaire, NickelMenu, qui permet d’ajouter des actions spécifiques intéressantes. Le menu se trouvera en bas à droite de l’écran. Je m’en sers notamment pour (dés)activer les captures d’écran, inverser les couleurs, enregistrer les logs ou encore démarrer une application de prise de notes/dessins assez cool (voici la liste des options disponibles).

  1. Télécharger le fichier et copier le firmware:

    wget "https://github.com/pgaskin/NickelMenu/releases/download/v${KOBO_NM_VERSION}/KoboRoot.tgz" \
            -O "${KOBO_DIR}/KoboRoot.tgz" \
        && sync
    
  2. Éjecter la liseuse et patienter.

  3. Rebrancher la liseuse.

  4. Créer, ou modifier, le fichier de configuration. Voici le contenu du mien :

    Fichier : ${KOBO_ROOT}/.adds/nm/config
    # Custom NickelMenu items on the "main" screen
    menu_item :main    :Dark Mode        :nickel_setting   :toggle:invert
      chain_success                      :power            :reboot
    menu_item :main    :Save Logs        :cmd_spawn        :logread > /mnt/onboard/.adds/syslog.log
    menu_item :main    :Screenshots      :nickel_setting   :toggle:screenshots
    menu_item :main    :Sketch Pad       :nickel_extras    :sketch_pad
    menu_item :main    :My Words         :nickel_open      :reading_life:words
    menu_item :main    :PC Connect       :nickel_misc      :force_usb_connection
    
    # Custom NickelMenu items on the "reader" screen
    menu_item :reader    :Dark Mode      :nickel_setting   :toggle:invert
      chain_success                      :power            :reboot
    menu_item :reader    :Sketch Pad     :nickel_extras    :sketch_pad
    menu_item :reader    :Screenshots    :nickel_setting   :toggle:screenshots
    
  5. Éjecter la liseuse. C’est terminé.


📘 Dictionnaire

Installons le dictionnaire basé sur le Wiktionnaire:

mkdir -pv "${KOBO_DIR}/custom-dict/" \
    && wget 'https://github.com/BoboTiG/ebook-reader-dict/releases/download/fr/dicthtml-fr-fr.zip' \
        -O "${KOBO_DIR}/custom-dict/" \
    && sync

Astuce

D’autres langues sont disponibles dans le dépôt officiel : BoboTiG/ebook-reader-dict.


🔤 Police de caractères

Un police de caractères supportant un grand nombre de langues est préférable pour l’affichage des étymologies. FreeSerif en est une, du projet FreeFont :

wget 'http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip' \
    && unzip 'freefont-ttf-20120503.zip' \
    && cd 'freefont-20120503' \
    && mv -v 'FreeSerif.ttf' 'FreeSerif-Regular.ttf' \
    && mv -v 'FreeSerifBold.ttf' 'FreeSerif-Bold.ttf' \
    && mv -v 'FreeSerifBoldItalic.ttf' 'FreeSerif-BoldItalic.ttf' \
    && mv -v 'FreeSerifItalic.ttf' 'FreeSerif-Italic.ttf' \
    && mkdir -pv "${KOBO_ROOT}/fonts" \
    && cp -v FreeSerif*.ttf "${KOBO_ROOT}/fonts" \
    && sync

🎣 Sources


📜 Historique

2024-10-17

Déplacement de l’article depuis le blog.

Adaptation du nom du domaine pour le téléchargement du firmware (kbdownload1-a.akamaihd.netereaderfiles.kobo.com).

2023-07-06

Mise à jour du firmware (4.34.200974.37.21582) et des patches (v79v82).

2022-11-10

Ajout de la section NickelMenu (via la variable d’environnement KOBO_NM_VERSION, en version 0.5.4).

2022-10-19

Mise à jour du firmware (4.33.197594.34.20097) et des patches (v78v79).

2022-07-22

Mise à jour du firmware (4.31.190864.33.19759) et des patches (v74v78).

Ajout de la command sync à la fin de chaque étape de copie vers la carte SD.

2022-04-10

Mise à jour du firmware (4.30.188384.31.19086) et des patches (v73v74).

Correction du lien de téléchargement du dictionnaire.

Utilisation des variables d’environnement ${KOBO_VERSION} et ${KOBO_PATCH_VERSION} pour faciliter les mises à jour.

2021-11-12

Mise à jour du firmware (4.26.167044.30.18838) et des patches (v70v73).

2021-03-08

Relecture et revue du code.

Utilisation des variables d’environnement ${KOBO_ROOT} et ${KOBO_DIR} pour faciliter les manipulations et améliorer la lisibilité.

2021-03-07

Mise à jour du firmware (4.25.158754.26.16704) et des patches (v69v70).

Ajout de la commande pour supprimer le contenu inclus par défaut.

2020-11-15

Mise à jour du firmware (4.20.146224.25.15875) et des patches (v59v69).

Adaptation de l’emplacement du dictionnaire (.kobo/dict/.kobo/custom-dict/).

Ajout de la section police de caractères.