A few months ago, I got antsy with my Kobo Libra 2 and wanted to make some nitpicky adjustments to my settings. Unfortunately, the stock reader software was not as granular as I needed it to be. I decided it was finally time to install KOReader.
I expected that an open-source reader solution like this would be well-supported, and that was exactly what I found as I read documentation. You basically drop some files into your device and run a script. As with any niche community, people are incredibly passionate and there’s a huge amount of information for an expansive variety of different ereaders. With forum support as a backup, the entire thing seemed pretty idiot-proof.
So imagine my surprise when I instantly hit an error when I ran the script:
Couldn't find a Kobo eReader volume! Is one actually mounted?
Perplexed, I checked to see that the device was plugged in and viewable through file explorer (it was). I and turned everything off and back on again, which resulted in no change. Searching for the error online only resulted in a couple other incidents which did not appear to be related or relevant.
So I took a look at the script (for posterity, you can find it HERE) and spotted the issue almost immediately:
$KOBO_MOUNTPOINT=Get-Disk | Where BusType -eq USB | Get-Partition | Get-Volume | Where FileSystemLabel -eq KOBOeReader
The script is looking for a connected device exactly matching the default KOBOeReader name (i.e. “KOBOeReader”), and It would seem that I am the only weirdo who renames all of my USB devices (I guess I’m sentimental?).
I changed the name of my device back to the default and had no further issues with my installation, and lost a few days as I spent more time tinkering with my reading experience than actually reading. Thank you, KOReader team!
But is it possible to adjust the script to allow custom device names?
By using a generic Kobo file to identify a Kobo device instead of the default name, I could still have the opportunity to name my reader something ridiculous:
$KOBO_MOUNTPOINT = Get-Disk | Where-Object BusType -eq 'USB' | Get-Partition | Get-Volume | ForEach-Object { if (Test-Path "$($_.DriveLetter):.koboKoboReader.sqlite") { return "$($_.DriveLetter):" } } | Select-Object -First 1
I haven’t had a chance to test this yet (and I’m not sure it’s enough of a problem to warrant a suggestion to the fantastic creators of the original script) but it was a fun exercise to think about what I’d do to solve my issue.