Quantcast
Channel: MobileRead Forums - Kobo Developer's Corner
Viewing all 1561 articles
Browse latest View live

invoking sql in a shell script

$
0
0
Hi all,

I would like to invoke sql to update a table in KoboReader.sqlite on my Kobo.
But, if I am able to write the sql update, tested on a copy of the KoboReader.sqlite on my PC (Windows 8) with the SQLite Manager for firefox, I don't know the way to access this database in shell.

My purpose is to call the shell by a user command in the KoboTweaks plugin.

Can someone guide me to solve my problem ?
Thanks.

E-ink optimized browser

$
0
0
Hi everyone,
I have the Aura HD. It works very well for me, but that's not what this thread is about.

The thing is, I like e-readers :book2: I like the internet :bookworm: I like to browse the internet on my e-reader :bookworm: But, you see, the experimental browser on the Kobo has one big problem (aside from being very basic feature-wise), and it's scrolling. Scrolling is a terrible way to move across content on an e-reader because of the screen refresh rates and the black-white flicker.

Honestly, I believe e-readers have a potential to be some of the best web-browsing devices around, especially for sober reference sites such as Wikipedia. E-reader web browsing could be infinitely better with the simplest tweak: break the web page into screen sized pages that we can flip through like a book.

I wonder if a QT application that does this is available, or that any developer would take an interest in creating one, or customizing an existing browser.

This sounds so simple that I find it hard to believe that I should be the first to bring it up. But I've done searches and came up with nothing. I guess the problem is that it is hard to describe in a few search terms. My apologies if the topic has been discussed extensively.

Run automaticaly a script just after plugin installation

$
0
0
Hi all,

I have a question I asked on another thread, but the object is on a different subject.
So, I try to have an answer with a new thread.

I make a plugin for wich the only thing I want is to run a script shell just after the installation.
This script self-destroy at the last instruction.

I looked at the nightmode plugin.
I see a file /root/autorun.sh
I made one for my plugin :
If my script is /mnt/onboard/.kobo/MyShell.sh,
/root/autorun.sh is :
Code:

/mnt/onboard/.kobo/MyShell.sh
rm /root/autorun.sh
sync
reboot

But, my script don't run after plugin installation.

Someone is able to help me please ?
Thanks.

screen savers on aura hd

$
0
0
is there a hack for the kobo that allows you to use your own images as the standby image when you put it to sleep or turn it off?

the only option the aura hd provides is to use the book cover of the book you are currently reading or a blank screen with "Sleeping" or "Powered Off" at the bottom left corner.

CutyCapt for Kobo (Render Webpage to Kobo raw Grafic)

$
0
0
Hi everybody

There is already a tool that can save a webpage to a picture: CutyCapt.
http://cutycapt.sourceforge.net/
CutyCapt is nice because it is using QtWebKit to render pages and can do javascript, css and all.

I modified it a little, so it can output rgb565, so the files that can be show by pickel.

you can also call use as filename foo.rgb565stream and it won't create a file, but get the stream out, so "CutyCapt --blablabla | pickel showpic" should be possible without saving to a file.

Limitations:
- Big pages get squeezed to 800x600. (or what you enter with --rgbWidth=800 --rgbHeight=600 )
-no timeout when it fails (page not reachable)
- compiled for qt 4.8, (qt 4.6 can't do https with TLSv1 only SSLv3)

Check the Attachet zip for more details and examples.
Thanks for everybodies help.
Thanks to z000ao8q (http://www.scherello.de/?id=265) for the wifi scripts.

Code and binary are as they are. I'm sure a will work on this more in the future, but not right now because i'm busy...
Enjoy and Greetings
Grunge

Attached Files
File Type: zip CutyCapt_Kobo.zip (4.30 MB)

Aura HD A simplified High Performance AuraHD?

$
0
0
It is my impression that the complexity of the sync and tile based
user interface hobbles the performance of the AuraHD. It could be
much of the reason that the 1000mHz Aura can't handle the number
of files or a file structure of any real complexity, when compared
to ereaders using much less powerful 400mHz CPUs.

The power and potential of a database derived user interface may be
very alluring and the "book management" as opposed to file management
concept may work well for calibre, but a simple user manageable file
structure would allow for a higher performance with large ebook
libraries.

Just as when trying to make a high performance racing vehicle, a
stripping out of any extra, unnecessary weight, is an essential
step. So much that appears to be there solely to tie use of the
device to Kobo servers provides nothing to the basic reading
functionality of the device.

I know nothing of how the FW is structured but I do know that some
modularity must be there. Would it not be possible to unentangle
the reading and just those other components necessary to support
reading, from the current mix. Then remove the current overlay of
the file system and allow for the normal file management of the
partition's format.

I realize this approach would not be popular with Kobo, but it
would be just the thing for many of us users.

Luck;
Ken

Glo Resurecting dead Glo(help needed)

$
0
0
Hi all,

I have had a dead Glo for some time and finally got the courage to open it.

Started by backing up the sd card with dd and got read error.
badblocks showed me that the rootfs is corrupted but the recoveryfs and the koboreader are not.

This would explain why the factory reset did not work.
I backed up the recoveryfs partition and the partition table just in case,
and fixed the bad blocks with "e2fsck -c -c".

the mounted rootfs had only few folders(much less than the recoveryfs),
so I decided to pop the fixed card back in and try the factory reset one more time.

The recovery seemed to work - I checked the md5sums of all files listed in the fs.md5sum and they were all matching, except that I was missing one file in the rootfs: usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/fonts/Gothic MB101.otf.

The problem is that the Glo still does not start.

I cannot find any log files in the rootfs that would give me an idea what is wrong, but I find it unlikely that the device has had 2 hardware failures simultaneously.

I would appreciate any ideas about how to continue.

Can any one post the dump of the sdcard partition table?

pointers to log files, sd card image, etc would be great.
I have read that debian install is possible, has anyone attempted debian install in the rootfs and is that going to reveal any hardware problems.

Thanks in advance

Glo Getting WiFi to work with a custom kernel on Glo

$
0
0
Hi,

Because the stock Glo kernel has no iptables support, I have compiled a custom kernel with this option from the original kernel : https://github.com/kobolabs/Kobo-Rea....6.35.3.tar.gz

I managed to write it to the Glo's internal SD card using dd if=uImage of=/dev/mmcblk0 bs=512 seek=2048 and to get the device to boot. However, of course, the modules used by the device need to be upgraded. I managed to compile functional versions of the USB network interface modules in /drivers/ntx508/usb/gadget and even managed to compile a new /drivers/ntx508/wifi/dhd.ko using https://github.com/kobolabs/Kobo-Rea...2-03112011.tgz

However, after all this, though the device is usable and I can connect to the device from USB (indicating that the relevant modules are operational), the WiFi is not working. I can perform:
Code:

busybox insmod /drivers/ntx508/wifi/dhd.ko
busybox insmod /drivers/ntx508/wifi/sdio_wifi_pwr.ko

and an eth0 interface shows up in /sbin/ifconfig -a. However, trying to run "/sbin/ifconfig eth0 up" fails with "ifconfig: SIOCSIFFLAGS: Operation not permitted" (though I'm root) and "wlarm_le -i eth0 up" fails with "wlarm_le: wl driver adapter not found". Interestingly, trying to "rmmod sdio_wifi_pwr" triggers an oops (that gets written to dmesg):
Code:

kernel BUG at drivers/mmc/core/sdio_io.c:29!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 80004000
[00000000] *pgd=00000000
Internal error: Oops: 817 [#1] PREEMPT
last sysfs file: /sys/devices/platform/pmic_battery.1/power_supply/mc13892_bat/status
Modules linked in: dhd ipv6 g_ether arcotg_udc [last unloaded: sdio_wifi_pwr]
CPU: 0    Not tainted  (2.6.35.3-850-gbc67621a3nm+ #9)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<80027c28>]    lr : [<80027c24>]    psr: 60000013
sp : 8e0f9dd8  ip : 900fe000  fp : 00000000
r10: 00000001  r9 : 7f085718  r8 : 8e0f9e00
r7 : 7f087700  r6 : 8e0f9e47  r5 : 00000004  r4 : 0001000e
r3 : 00000000  r2 : 8e0f9dcc  r1 : 80321bd4  r0 : 00000033
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 7e08c019  DAC: 00000017
Process kmmcd (pid: 153, stack limit = 0x8e0f82e8)
Stack: (0x8e0f9dd8 to 0x8e0fa000)
9dc0:                                                      00000000 8020bbe0
9de0: 8d567304 7f07e7d8 8004eb4c 8e027140 803a15c8 8e027170 8e027140 803a15c8
9e00: ffffffff 00000000 00000002 8e0f9e68 00000000 8d5679e0 00000001 0001000e
9e20: 00000000 00000000 00000000 7f07e8ac 8e0f9e47 00000001 0001000e 7f07f5c8
9e40: 8d5679e0 10000001 8d760000 8d5679e0 8e0f9e68 00000001 8e0861a0 7f079608
9e60: 8e0f9e68 ffffe925 8e0f9e7c 00000000 0000001a 8029748c a0000013 00000000
9e80: 00200200 8d760000 8eb730ac 8e4a1540 00000001 8e0861a0 00000000 7f079878
9ea0: 8d760000 7f07b4a4 8d760000 00000001 8e0f9eb0 0000027f 8eb73000 8eb730ac
9ec0: 8e1b96c0 8eb7303c 8e0861a0 7f06b814 8eb73000 7f06b9a4 8e4a1540 8d760000
9ee0: 8e4a1540 7f0874c8 00000000 7f079c64 8eb730ac 7f0874bc 8e4a1a40 7f07fc50
9f00: 8e5dfe00 8e5dfe08 7f08559c 8020ab18 8e5dfe08 7f08559c 8ebacc08 801ada88
9f20: 00000000 8e5dfe3c 8e5dfe08 801adaf0 00000000 8e5dfe08 8e086000 801ad68c
9f40: 8e5dfe08 801ab4e0 8e5dfe08 8e086000 0000006f 8020ad80 00000001 8020a1cc
9f60: 00000000 8e086000 ffffff85 8e17c340 80205f58 8020a258 8020a200 8e0861a0
9f80: 8e086000 80205fe4 8e0861a0 8e0f9fac 8e17c340 8e0f8000 8e0861a4 8e17c340
9fa0: 80205f58 80065090 8e0f9fd4 00000000 8e027140 8006902c 8e0f9fb8 8e0f9fb8
9fc0: 8e029f30 80064f28 8e17c340 00000013 00000000 80068964 00000000 00000000
9fe0: 8e0f9fe0 8e0f9fe0 8e029f30 800688ec 800258b4 800258b4 fffbffff ffffffff
[<80027c28>] (__bug+0x1c/0x28) from [<8020bbe0>] (sdio_claim_host+0x2c/0x40)
[<8020bbe0>] (sdio_claim_host+0x2c/0x40) from [<7f07e7d8>] (sdioh_request_byte+0x19c/0x25
0 [dhd])
[<7f07e7d8>] (sdioh_request_byte+0x19c/0x250 [dhd]) from [<7f07e8ac>] (sdioh_cfg_write+0x
20/0x24 [dhd])
[<7f07e8ac>] (sdioh_cfg_write+0x20/0x24 [dhd]) from [<7f07f5c8>] (bcmsdh_cfg_write+0x4c/0
x88 [dhd])
[<7f07f5c8>] (bcmsdh_cfg_write+0x4c/0x88 [dhd]) from [<7f079608>] (dhdsdio_htclk.isra.1+0
x40/0x260 [dhd])
[<7f079608>] (dhdsdio_htclk.isra.1+0x40/0x260 [dhd]) from [<7f079878>] (dhdsdio_clkctl.is
ra.2+0x50/0xd0 [dhd])
[<7f079878>] (dhdsdio_clkctl.isra.2+0x50/0xd0 [dhd]) from [<7f07b4a4>] (dhd_bus_stop+0x58
/0x24c [dhd])
[<7f07b4a4>] (dhd_bus_stop+0x58/0x24c [dhd]) from [<7f06b814>] (dhd_bus_detach+0x2c/0x44
[dhd])
[<7f06b814>] (dhd_bus_detach+0x2c/0x44 [dhd]) from [<7f06b9a4>] (dhd_detach+0x178/0x1d8 [
dhd])
[<7f079c64>] (dhdsdio_release+0x38/0x100 [dhd]) from [<7f07fc50>] (bcmsdh_remove+0x1c/0x9
0 [dhd])
[<7f07fc50>] (bcmsdh_remove+0x1c/0x90 [dhd]) from [<8020ab18>] (sdio_bus_remove+0x1c/0x58
)
[<8020ab18>] (sdio_bus_remove+0x1c/0x58) from [<801ada88>] (__device_release_driver+0x84/
0xd0)
[<801ada88>] (__device_release_driver+0x84/0xd0) from [<801adaf0>] (device_release_driver
+0x1c/0x28)
[<801adaf0>] (device_release_driver+0x1c/0x28) from [<801ad68c>] (bus_remove_device+0x74/
0x84)
[<801ad68c>] (bus_remove_device+0x74/0x84) from [<801ab4e0>] (device_del+0x110/0x16c)
[<801ab4e0>] (device_del+0x110/0x16c) from [<8020ad80>] (sdio_remove_func+0x1c/0x28)
[<8020ad80>] (sdio_remove_func+0x1c/0x28) from [<8020a1cc>] (mmc_sdio_remove+0x48/0x7c)
[<8020a1cc>] (mmc_sdio_remove+0x48/0x7c) from [<8020a258>] (mmc_sdio_detect+0x58/0x7c)
[<8020a258>] (mmc_sdio_detect+0x58/0x7c) from [<80205fe4>] (mmc_rescan+0x8c/0x308)
[<80205fe4>] (mmc_rescan+0x8c/0x308) from [<80065090>] (worker_thread+0x168/0x218)
[<80065090>] (worker_thread+0x168/0x218) from [<80068964>] (kthread+0x78/0x84)
[<80068964>] (kthread+0x78/0x84) from [<800258b4>] (kernel_thread_exit+0x0/0x8)
Code: e59f0010 e1a01003 eb09b050 e3a03000 (e5833000)

Has anyone gotten the WiFi to work with a custom kernel for the Kobo Glo? My prime suspect is this sdio_wifi_pwr that should probably be recompiled somehow, but I do not know where this file comes from and how to recompile it (Google isn't very helpful). Any ideas?

Thanks!

Help from those who have telnet access

$
0
0
Hi everyone. I'm porting koreader (https://github.com/koreader/koreader/issues/50) to the kobo platform; I am almost done with it, I just need to know a file that exists in every kobo model in order to detect that the program is running on a kobo.
This is my guess, and what I'm currently using:
/sys/devices/platform/pmic_leds.114/modalias

can anyone with a model different from a kobo glo (which I own) confirm that this file exists on his kobo? (specifying the model)

I guess it should be there, since the distributed firmware is the same at least for mini, glo and aura hd... let me know!

Kobo switched to new toolchain in 2.6.1 ???

Compiling C++ on the Kobo Glo

$
0
0
Hello

I have a problem and have searched for days for a solution
how do I compile a .CPP file on the Kobo Glo

Do I compile it on the device or using some package installed on windows like
CodeSourcery G++ or do i just enter some command like #>compile code.cpp

I have got telnet usb RNDIS python and pygame working fine
even soldered wires to the pcb to get rs232 login from /dev/ttymcx0
so I can do pretty much everything I want
the problem is the file that i found online ( here i think )
that updates the e-ink ( full_updatescreen ) only works correctly on the touch and possibly mini.

The fullupdatre works but it only updates 800x600 not the 1024x758 of the glo

I have the source code .cpp and .h supplied by <PLACE NAME HERE > thanks heaps
but i am basing my app on the glo so either need to know how to compile or have a compiled file that works with the glo..

For the moment i only really want the executable ( i am guessing someone has this already )

I have tried various example of gcc make g++ etc but done seem to be installed on the kobo so i am not sure if it is possible to compile on the kobo or if it needs to be done on the pc

Help would be appreciated

P.S

This is my first post and a bit about my career is in the new user introduction section of the forum.. 25 years with playing with gadgets etc

Koreader running on Kobos (all of them, hopefully!)

$
0
0
Quick post in order to deliver what I worked on lately.
This is the build of Koreader I'm actually using on my Glo; so far as I can tell, it is working close to perfectly.
The modifications needed to support our platform have been integrated in the main project, so everyone wanting to do so can head over to https://github.com/koreader/koreader, checkout the source and build his own copy! ;)
Things that are still missing:
- suspend support (hard to implement)
- avoid a reboot after exiting koreader (maybe a little easier)
- light control.

Installing instructions:
just place the folder "koreader" inside the zip to your .kobo folder;
use your favourite mean (tweaks, launcher, whatever) to execute the command
Code:

/mnt/onboard/.kobo/koreader/koreader_kobo.sh /mnt/onboard
This should be it. Performance is much better than using my old build of KPV when using reflow, and there are many other improvements. Enjoy!

Edit: Use koreader_old.zip for 2.5.x or older firmware; for 2.6.1 use the other archive.

Attached Files
File Type: zip koreader_old.zip (9.27 MB)
File Type: zip koreader-v2013.03-273-g01d0425.zip (9.26 MB)

List of Tweaks / Hacks / Mods

$
0
0
I'm going to try to maintain this post as a link to the current versions of the various hacks / tweaks / mods available for the Kobo family. I hope to keep the links in this first post current as development continues.

In any of the quotes I have included, clicking on the BLUE icon besides the author's name will take you their original posting. For instance
Quote:

Originally Posted by PeterT (Post 2558880)
I'm going to try to maintain this post as a link to the current versions of the various hacks / tweaks / mods available for the Kobo family. I hope to keep the links in this first post current as development continues.

will take you back to this post.

Direct Links to Kobo Touch Firmware
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=185660

Just be careful to select the correct firmware for your device.
Currently there are two distinct files for the Touch and beyond.

One download for the original two Touch models (N905 and N905B)
One download for the Aura / Glo / Mini / Touch Low Cost (N905C).

Even though it's the same build for Aura as the Glo and Mini, don't downgrade the Aura below the initial F/W release for it, which I believe was 2.5.1

Google Drive on Kobo Touch
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=205457
Current Instructions:
Spoiler:

Quote:

Originally Posted by spMatti (Post 2419008)
Hi

I developed hack to synchronize Kobo Touch with Google Drive. It uses open source Linux client called grive (https://github.com/Grive/grive). When the eReader is online files are automatically synchronized. You can find download link and installation instructions from https://github.com/softapalvelin/kobo-grive-sync.

I wrote about it in http://blog.softapalvelin.com/2013/0...h-ereader.html if you want to read more.



KoboLauncher for standalone Qt apps
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=201632
Current Instriuctions:
Spoiler:

Quote:

Originally Posted by sergeyvl12 (Post 2367067)
Hi!

I've written a small launcher program for my Qt applications: pbchess, checkers, reversi (othello) and sokoban. All the programs work well with Kobo Touch, Glo and Mini.

Video
Download

Kobo Launcher applications

1. pbchess
2. checkers
3. reversi (othello)
4. sokoban
5. gomoku
6. notepad
7. calculator
----
8. CoolReader (in plans ...)

Kobo Launcher utilities

1. Power off
2. Usb network + dropbear ssh server + sftp

Installation:

http://wiki.vlasovsoft.net/doku.php?...touch_glo_mini

You can add another applications or remove existing ones to/from the KoboLauncher menu. Just edit KoboLauncher/KoboLauncher.ini.

Usb network

Instruction how to start usb network on Windows
Usbnet tips and troubleshooting

Additional info

Source code for KoboLauncher and Qt Kobo plugins
Useful info for Linux users

http://www.mobileread.com/forums/sho...&postcount=157



Kobo Tweaks
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=206180
NOTE: CURRENTLY DOES NOT WORK WITH 2.6.1 F/W
Current Instructions:
Spoiler:

Quote:

Originally Posted by ah- (Post 2428415)
Since I recently updated my Touch to 2.4.0 and missed my beloved adblocker, I fixed up Kobo Tweaks and got it running again. Many thanks to ikarus9999 for the updates for firmware 2.x, they were really helpful.

It's still a bit rough, but I think it's already useful and I'd rather release this now than letting it rot away on my harddrive again.

So, what's new?
  • Improved plugin loading. It should work with SD cards and in the future also load automatically. It actually already worked automatically and is already loaded on boot, but Kobo improved the home screen so you need to open something and go back to the homescreen before anything there is changed.
  • Nice GUI to setup everything. I actually had this sitting around for more than half a year, but now it's actually in there :). Due to the new homescreen behavior you might have to reboot for now to see some changes. Also, the menu customization is yet to come.
  • Major code cleanup. This is probably not very visible to you but means that it's fun again to work on it :).

I took the great idea of custom commands from the other plugin, but implemented it using QtScript, since that's already included with Qt. This means that the syntax slightly changed:

Note that you have to escape the " like this: \”. Oh, and the filename changed to kobotweaks.ini to avoid a name clash.

There's more to come as I find some more time to work on it. I'm especially thinking about some way to better integrate the weather display, chess, etc. applications with nickel. Maybe it's possible to start an external application and display just a white (or black) screen so it can use the display (but keep nickel running) until some signal is received that the application terminated.

Also, the Qt based applications should be able to integrate directly with nickel just as the settings do. Oh yeah, and about the settings, I have no idea how well they fit on the larger screens. I designed them before the Glo even existed.

Download: http://andreas.heider.io/kobo/tweaks-13-02-18.zip
The source is at https://github.com/ah-/koboplugins



Night Mode [Glo/Touch/Mini]
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=212162
Original Version - KevenShortl:
Spoiler:

Quote:

Originally Posted by KevinShort (Post 2501565)
Here's a new hack that will hopefully benefit some people (I know I use it!).



A little while back I released a very hacky white on black display mode for the Glo. Not long after, yoq put together a much nicer version of the hack, which you can download here.


Installation - works on Touch, Glo and Mini

You'll need to install the Kobo Tweaks plugin and create a new file named "kobotweaks.ini" in the .kobo folder on your Kobo. Put these lines in kobotweaks.ini:
Code:

[Global]
compatFirmware=2.5.1

[CustomCommands]
Toggle Night Mode=tweaks.executeSystemCmd(\"/mnt/onboard/.kobo/nightmode.sh\")

Download and extract "screenInv.zip", below. Inside the "installer" folder, there is a KoboRoot.tgz file. Put the KoboRoot.tgz file in the .kobo folder on your Kobo. After your device reboots, open the Library to activate the plugin, then go back to the home screen. Under the "Tools" menu you can now select "Toggle Night Mode" to turn the hack on and off.



Newer Version - Yoq
Spoiler:

Quote:

Originally Posted by yoq (Post 2557139)
Nightmode for Kobo
Read light-on-dark on your Kobo AuraHD / Glo / Touch or Mini!



Installation / Removal
  • Download the attached zip file
  • Connect your Kobo to your computer
  • Extract the file KoboRoot.tgz from the installer / uninstaller folder
  • Copy it to the .kobo folder on your device
  • Safely remove the USB storage and unplug
  • Your device will reboot automatically

Control nightmode
There are two ways to control this mod:
  • Long-press the LIGHT/HOME button to toggle on/off
  • Use a launcher to start the nightmode.sh script:
    • KoboLauncher: Add:
      Night Mode = /mnt/onboard/.kobo/nightmode.sh
      to .kobo/KoboLauncher/kobo_launcher.ini
    • or KoboTweaks: (not working on 2.6+) Add:
      Night Mode=tweaks.executeSystemCmd(\"/mnt/onboard/.kobo/nightmode.sh\")
      to .kobo/kobotewaks.ini

Configuration
In your .kobo folder, there will be a configuration file called nightmode.ini. You can change whether the state should be retained over a restart of the device, the default state after power up and the duration for a long press. The new setting will take effect after a restart.

FAQ
  • I have updated my firmware and it stopped working!
    Simply install the mod again
  • Will this drain my battery?
    The effect on battery life should be negligible
  • I can see more ghosting when the mod is activated!
    This is normal, as eInk screens are optimized for black-on-white mode. Change the refresh rate if it annoys you.

More info
For a more detailed description, the changelog and the source code, visit github:
http://dbeinder.github.io/kobo-nightmode

Credits
  • KevinShort, for the idea and a first proof of concept
  • Nicolas Devillard and others, for the iniParser library



How to backup your Kobo's firmware on an SD card without opening it
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=212474
Current Instructions:
Spoiler:

QUOTE=met67;2505335]Hi,

waiting for my Aura to come, I put together a simple hack to automatically dump the internal firmware of a Mark 4 Kobo (i.e. Mini, Glo, Aura and recent Touch) on an SD card. This should work on any recent version of the firmware...

As usual I assume no responsibility for any damage on your device, I have tested it on a Glo and it works for me…

You will need a SD card with enough free space to hold the whole firmware (i.e, 2/4GB for Glo, 4 for Aura, and so on). I used a 16GB SD, just to be sure :)
You should also start with a fully charged Kobo.

The trick uses a modified upgrade-wifi.sh script in /etc/init.d; this script is started during a firmware upgrade when there is a upgrade folder in .kobo, and I modified it to dump the internal card to folder KoboDump in the SD.

In order to dump the firmware, insert an SD with at least 2GB free (I suggest using a larger card…) in your Kobo, connect it to the PC and create an empty folder named KoboDump on the root of the SD. Then extract the contents of DumpScript zip and copy KoboRoot.tgz and upgrade folder in folder .kobo within the internal memory (be careful that KoboRoot.tgz and upgrade should be right within .kobo folder and not in a subfolder).

Now eject your Kobo and disconnect it from the PC: you should see the usual upgrade screens. If everything goes as expected, you should wait for a long time while the script dumps the firmware: on a Glo I waited more than 25 minutes for a 2GB dump.

After a (possibly quite) long time, your Kobo will restart. Connect it again to the PC and you should find that the KoboDump folder has been renamed to KoboDumpDone. Inside it you should find a dump.img file: this is your dump.
Copy it on your PC and you should be able to open it (under Windows) with DiskInternal’s Linux Reader, which gives you access to all the partitions: rootfs, recoveryfs and FAT.

To restore the original upgrade-wifi.sh, extract the KoboRoot.tgz from OriginalScript zip to the .kobo folder, disconnect and wait a couple of minutes until the script is copied back.

Let me know if this works for you, and which model you dumped with this.[/QUOTE]


Cross Compiling for Kobo on PC
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=216923
Current Instructions:
Spoiler:

Quote:

Originally Posted by yoq (Post 2556979)
you can compile on your pc for the kobo although it is a different processor architecture, it's called cross-compiling.

kobo supplies all you need on their github repository: https://github.com/kobolabs/Kobo-Reader
but afaik it's only possible to download the whole 3.5G repo, so i'll post the links here for what you need to compile for the glo:

assuming you are running 2.6+, use this toolchain:
Code:

gcc-linaro-arm-linux-gnueabihf-4.8-2013.04-20130417
you can get it here: https://launchpad.net/linaro-toolcha...ries/+download
linux:https://launchpad.net/linaro-toolcha..._linux.tar.bz2
win32: https://launchpad.net/linaro-toolcha...0417_win32.exe
i'm a linux user, so i haven't tried the windows version, but it should work as well.

you'll probably need some linux headers, this is the kernel for the glo and most newer models:
http://www.sendspace.com/file/0sd6ej

compile with:
Code:

arm-linux-gnueabihf-g++ -I X:/path/to/linux-2.6.35.3-507/include -Wall -o programFilename code.c
happy coding ;)



Memory Upgrade Mod Guide (With Pictures)
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=209122

This is for a GLO but similar techniques will work on any of the SD card based Kobo's
Current Instructions: See main thread

Koreader running on Kobos
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=216960
Current Instructions:
Spoiler:

Quote:

Originally Posted by giorgio130 (Post 2556855)
Quick post in order to deliver what I worked on lately.
This is the build of Koreader I'm actually using on my Glo; so far as I can tell, it is working close to perfectly.
The modifications needed to support our platform have been integrated in the main project, so everyone wanting to do so can head over to https://github.com/koreader/koreader, checkout the source and build his own copy! ;)
Things that are still missing:
- suspend support (hard to implement)
- avoid a reboot after exiting koreader (maybe a little easier)
- light control.

Installing instructions:
just place the folder "koreader" inside the zip to your .kobo folder;
use your favourite mean (tweaks, launcher, whatever) to execute the command
Code:

/mnt/onboard/.kobo/koreader/koreader_kobo.sh /mnt/onboard
This should be it. Performance is much better than using my old build of KPV when using reflow, and there are many other improvements. Enjoy!

Edit: Use koreader_old.zip for 2.5.x or older firmware; for 2.6.1 use the other archive.



Custom Dictionaries
Spoiler:

Main Threads: http://www.mobileread.com/forums/sho...d.php?t=196925 and http://www.mobileread.com/forums/sho...d.php?t=194986
Current Instructions:
Spoiler:

Quote:

Originally Posted by ShellShock (Post 2307615)
Due to the great work of other forum members it is now possible to create your own dictionaries for the Kobo Glo and Touch, for firmware 2.1.4 or later. Why do this? Well, the dictionaries provided by Kobo are a bit limited, and it is fun anyway to see what can be done. :bookworm:

To use the new dictionaries:
  1. Connect your Kobo to your PC.
  2. On the Kobo go to the ".kobo\dict" folder, and rename "dicthtml.zip" to "dicthtml.backup.zip". This backs up your existing English dictionary (which I assume you already have installed).
  3. Download the appropriate zip file below and unzip it to extract the dicthtml.zip file inside. Do not unzip the dicthtml.zip file.
  4. Copy the dicthtml.zip file to the ".kobo\dict" folder on the reader.
  5. Eject/disconnect your Kobo.
  6. Go into the dictionary screen, e.g., if you have a book open, tap the book icon on the bottom menu, and select Definition.
  7. Flip the language from English to e.g., Deutsch and back again. This makes the Kobo refresh the English dictionary cache. You only have to do this once.
  8. The new dictionary is now ready to use.

It is possible to install the new dictionary to replace one of the other built-in Kobo dictionaries, by replacing the appropriate file with the custom dictionary, e.g., dicthtml-de.zip to replace the Deutsch dictionary. That way you can swop between the Kobo English dictionary and the custom English dictionary.

One minor point: when you view a definition in the custom dictionary the page will still display "Source: Merriam-Webster's English Dictionary" (which is the Kobo dictionary). This description is not actually part of the dictionary file but seems to be held elsewhere in the firmware. You can tell that you are in fact using one of the custom dictionaries because their word definitions usually have an initial upper case letter, whereas in the Kobo Merriam-Webster dictionary they generally start with a lower case letter.

Project Gutenberg notice:

Chambers1908.zip: Chamber's Twentieth Century Dictionary of the English Language, Rev. Thomas Davidson (1908), London. Source: Project Gutenberg. Over 33,000 definitions; it is particularly good for British English and historical fiction, as it contains archaic words that are not in the more modern English dictionary supplied with the Kobo. But don't go looking up "twitter" or "facebook"!

Websters1913.zip: Webster's Unabridged Dictionary, various, (1913), USA. Source: originally Project Gutenberg, but I used the excellent epub compiled by MobileRead member nrapallo as my starting point. This dictionary has over 110,000 definitions (compared to the 80,000 or so in the Kobo dictionary), many of them with lengthy descriptions (generally longer than in the Chambers). It is primarily focused on American English spellings; it has British English spellings too, but the definitions simply refer to the American equivalent. For more information about this dictionary, including pronunciation and abbreviation guides, see here.

HowToCreateKoboDictionaries.zip, v 1.1: Instructions on how to create your own custom Kobo dictionaries.

marisa.zip: Marisa tools for creating dictionary index.


Penelope Instructions
Spoiler:

Quote:

Originally Posted by AlPe (Post 2334327)
Hi all,

I implemented the output to Kobo format into Penelope, my dictionary-converter tool.

Source code: http://code.google.com/p/penelope-dictionary-converter/
Doc/explanation: http://www.albertopettarin.it/penelope.html

Note that you will probably need Python 2.6+ (not Python 3.x) to run it.

Example:
Code:

$ python penelope.py --output-kobo -p bar -f en -t it
Create English-to-Italian dictionary in Kobo format (dicthtml-en-it.zip), from StarDict files bar.*

Example 2:
Code:

$ python penelope.py --xml --output-kobo -p bar -f en -t en
Create English dictionary in Kobo format (dicthtml.zip), from XML file bar.xml

===

NOTE 1: probably the management of 11.html entries is not completely correct right now. At the moment every key NOT starting as [a-z][a-z] (when lowercased) will go to 11.html. Better ideas?

NOTE 2: you will need to modify MARISA_BUILD_PATH in penelope.py, pointing it to the directory containing a working build of MARISA.



improved hyphenation dictionaries:
Spoiler:

Main Thread: http://www.mobileread.com/forums/new...eply&p=2499153
Installation Instructions:
Spoiler:

Quote:

Originally Posted by ewphoenix123 (Post 2499153)
I uploaded the new Hyphenation dictionaries for you, and a backup of the original.
You can install it by renaming the according tgz file to KoboRoot.tgz and placing it in your .kobo folder.

All credit for the dictonaries belongs to yen


Original Location: http://www.lesen.net/forum/ebook-rea...cketbook-verw/ (in German)

Registration Bypassing
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=171664
Instructions:
Spoiler:

Note that various revisions of the Kobo f/w have changed the columns in the user table, and it's possible you will need to tailor the insert. Of course, you can also use other tools besides SQLITE3; I've had a lot of success with the open source tool DBeaver

Quote:

Originally Posted by rashkae (Post 1998068)
If you buy a Kobo with an older firmware, it will work as a pure play reader (but wifi will be disabled, so not downloading from Calibre server for you.) However, as old units eventually sell out and new units go on store shelves with newer firmware, even that function will be disabled. The new firmware will not accept new books until it's registered. New firmware is also needed for basic fuctions, (Like your own bookmarks, rather than just remembering the page where the book was last closed.)

Fortunately, you can have your cake and eat it too. Especially if you are a Linux user. If you must buy a Kobo rather than a Sony, there are 2 things you can do to get a full function device:

1. Instlal SQLite3 and open the KoboReader.sqlite in the .kobo directory.

Give it this command:

INSERT INTO "user" VALUES('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa','aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa','xxxx@xxxx.xx','xxxx@xxxx.xx','2aaaa aaaaaaaaaaaaa==');

Next, you can download firmware 1.9.16.zip from Kobo. They don't publicize the link, but you should be able to find it in the Firmware thread.

Unzip the contents of the zip file into the .kobo directory. Eject/Unmount the Kobo and disconnect. It should update itself and enable all functions that are usually disabled until registered.

You can PM me if you need further clarification, but again, if all this seems like insane work to make a device you pay money for work, splurge a little on the Sony.



Disable google analytics:
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=162713
Instructions:
Spoiler:

Technique should work for any and all Kobo's and will need to be redone after any f/w upgrades.
Quote:

Originally Posted by novou (Post 1897098)
Scroll down for instructions to disable tracking.

Almost definitely true, non-sensational facts about Kobo's use of Google Analytics. tl;dr:
  • KT Usage data is being sent to Google-Analytics (If/when your KT is online and Google Analytics is accessible.)
  • This is not a new part of .16. It's probably been there since launch.
  • Usage data includes stuff such as 'home screen loaded @time', 'book view opened for X minutes @time,' 'device put to sleep @time'
  • If you keep your KT in airplane mode your data is not sent (if you disable it to update over WiFi, some stats probably are sent.)
  • A session lasts until power-off/reboot (or 500 GA actions, no idea if the Kobo then makes a new session or pauses logging.)
  • Unsent data is cleared at each reboot.
  • Randomly assigned user ID's are not kept across sessions. They are consistent within sessions.
  • This is not sending your credit card number, pet's name, side-loaded books, or email address to Google. (You're probably doing that already.)
  • Kobo cannot see your IP or practically associate your actions with your KoboBooks account.
    Google can see, and is undoubtedly logging IP's.
  • Traffic is not 'redirected through Google Analytics'
  • This has nothing to do with the built-in browser.
  • devices.kobo.com is an illusion.

The GAQueue variable in .kobo/Kobo/Kobo eReader.conf stores the Google-Analytics callbacks until the next time you connect the KT to the Internet. The GAQueue is cleared on each reboot.

If you want to decode the entries in the GAQueue variable, go ahead.
The documentation is right here: Most values, GA's cookies, the utms parameter.

Here's a dissection for nerds, of what data is sent/stored:
http://pastie.org/3079390

The KT reports URL's like 'http://devices.kobo.com/ReadingView/Book' to GA. 'devices.kobo.com' doesn't exist. It's not a real subdomain, and not because of some sinister 'hide the evidence' motive either. (If that were the case, the configuration file would be obfuscated and Kobo's CEO would have way more money than he does now.)

Google Analytics provides a handy, free of charge, platform and lots of pre-built tools for monitoring websites. All Kobo has done is made KT send stats to GA as if the device is a website you're browsing. They're using the GA for mobile devices approach described here.

As Lunchtray said, a device tracking usage metrics is not surprising. But I disagree with them about whether stats of the detail they described using for their games (tracking individual option usage, etc.) are necessary, or even that useful.

I'd known about the KT's GA integration for a while, but after just now looking into the implementation, I am concerned by the detail of the stats. I'm happy to see that Kobo has made an effort to avoid much of the highly intrusive, and useless, tracking the a tool like GA affords. They don't tie metrics to accounts and clear UID's and unsent callbacks across sessions (meaning they don't track devices across reboots.)

But aiming to report each time you load the home-screen, or read a book for X minutes nonetheless seems like overkill to me. Their metrics are not super-invasive, and an extremely far cry from stuff like CarrierIQ, or individual menu button tracking.

That said, for me at least, they still do cross the line into 'creepy,' especially since the callbacks are being sent to Google, where those stats will be be saved and analyzed as a part of Google's hoard of personal data. (If it were Kobo infrastructure, I'd still be concerned, but much less so. Kobo isn't a business built on harvesting personal data.)

Marco Arment describes the creepy threshold in mobile analytics better than I could. (49mins in, past all the coffee talk)

How to disable Google Analytics on the Kobo Touch

What this does: it edits the hosts file of the Kobo Touch so www.google-analytics.com is translated to the loopback IP address of your device: 127.0.0.1. This means the device can't talk to Google Analytics, thus breaking stats tracking.

The exact line I'm adding to the /etc/hosts file is '127.0.0.1 www.google-analytics.com ssl.google-analytics.com google-analytics.com' I encourage you to open up the KoboRoot.tgz file and verify this yourself.

Directions:
Save this file in your KT's '.kobo' directory.
Eject & disconnect.
Watch 0.5 seconds of the upgrade animation.
Be happy.


(KoboRoot.tgz is deleted after the upgrade. Don't worry.)

The tweak should persist across upgrades, unless the devs ship a hosts file in an update, but that's very unlikely.

I was able to whip this up thanks to the Kobo's accessible system, research done by Stef70 and the Hacking into the KT & Manually upgrading KT firmware threads. Much love.



Quick Guide to Shelf Management with calibre 0.9.1 & above (Touch / Glo / Mini /Aura)

Summary of Modified Fonts

HOWTO make a Kobo sleep cover from a regular cover for about $2

calibre - Kobo Device Driver Update
Spoiler:

This is the driver included as standard in calibre. This driver handles ePubs
Main Thread: http://www.mobileread.com/forums/sho...d.php?t=192863

calibre -[Device Plugin] Kobo Touch Extended Driver
Spoiler:

This is an optional driver for calibre that handles the conversion of material from standard ePub format to Kobo's kEpub format. The main reason for this transformation is to ensure reading of eBooks is done via the Kobo ACCESS renderer for ePubs as opposed to their Adobe RMSDK based engine.
Main Thread: http://www.mobileread.com/forums/sho...d.php?t=211135

calibre - [GUI Plugin] Kobo Utilities
Spoiler:

Optional plugin for calibre that adds functions such as backup and restore reading location in all books on the Kobo.
Main Thread: http://www.mobileread.com/forums/sho...d.php?t=215339

Kobo - fullscreen
Spoiler:

Main Thread: http://www.mobileread.com/forums/sho...d.php?t=217192
No one post in the thread though seems to include installation instructions.

Firmware mod: reducing size of the bottom bar (pageometer)
Spoiler:

Similiar in scope to Kobo - fullscreen
Main Thread: http://www.mobileread.com/forums/sho...d.php?t=217434
Instructions:
Spoiler:

While not pointed out here, the mod is actually editing the libnickel.so.1.0.0 file. Do take care doing this; I for one would suggest using a Hex Editor rather than a text editor. For possible tools this link seems to have some suggestions. Also do take care in how you install this mod.
Quote:

Originally Posted by Anak (Post 2562149)
I've played around with the firmware to change the dimensions of the bottom bar in reading mode. See the attached file for a visual result.
The first picture shows a screen shot of the originial firmware 2.5.1. bottom bar
The second and fourth picture show the adjusted page number footer in reading mode.
The third picture shows the menu bar of which the dimensions have not changed (the changes have no effect on the menu bar). Compare with the second picture.
The second and third picture show the modified page number footer in reading mode.

Second image
Code:

ReadingFooter {
        min-height: 40px;
        max-height: 40px;
        qproperty-footerMargin: 20;
}

Third image
Code:

ReadingFooter {
        min-height: 30px;
        max-height: 30px;
        qproperty-footerMargin: 30;
}

Device: Kobo Touch
Firmware: 2.5.1.
File: libnickel.so.1.0.0
Path: \usr\local\Kobo



Stop the FLASH to BLACK
Spoiler:

Not sure of a better description for this :)
Main Thread: http://www.mobileread.com/forums/sho...&postcount=221
Instructions:
Spoiler:

Quote:

Originally Posted by 2bits (Post 2428169)
TRADE slight degradation of type definition for elimination of flash to BLACK and increase battery life ...

The latest firmware updates have reduced ghosting
(this has -slightly- slowed page turn times)

so... as the ghosting is greatly reduced ...

you might want to consider completely STOPPING the screen flashing to BLACK every 1-6 page turns due to the old refresh scheme,

and

- get faster page turns that are
- easier on eyes &
- increase in battery life too

* kobo mainly uses battery to draw new pages *

it takes more power to refresh a page to black and then display the new page than to just "overwrite" old page with new page]

You do this easy-hack by re-setting the refresh variable to 90
as follows:

[Connect kobo to your computer with hidden files displayed]

Navigate to the file:

Kobo eReader.conf (there's a space in the name)

found at

KOBOeReader/.kobo/Kobo/Kobo eReader.conf

* BACKUP the file 1st *

Copy file:

Kobo eReader.conf and rename it to
Kobo eReader.conf.orig

Then make the change in

Kobo eReader.conf

[at ~ 40 lines from the end of the file]

in the [Reading] section ...
change the value of variable

numPartialUpdatePageTurns

from (1-6) to 90

to give result as follows:

numPartialUpdatePageTurns=90

Save file and Exit

Now while reading, enjoy flash free reading and if you notice ghosting (after very MANY page turns) to clean up the type

MANUALLY REFRESH PAGE by ...

1) touch page bottom then
2) touch page middle

Quick and Easy!


Kobo - fullscreen

$
0
0
Hi All,
I am intrigued by Kobo devices because of the open enough access to the Linux layer, and I am intrigued by the new hardware with 1440x1080 resolution.

Only - apart from the non-convincing dictionary UI - one fault is blocking: the lack of a full-screen (or almost full-screen) option. The bottom bar (page numbers and static menu) should be at least halved; its internal font needs to be greatly reduced.

Did anyone manage to tweak the bottom area of the screen? Are there relevant editable files in the system, or are they compiled inside libadobe.so? In the latter case: can libadobe.so be recompiled? Is the source available?

Thank you

kobo aurahd accelerometer?

$
0
0
from telnet/ssh try evtest /dev/input/input2

horizontal:
Event: time 1372969847.228965 ------- Report Sync ------ x: 2 y: 0 p: 0 ------------
Event: time 1372969847.728904 ------- Report Sync ------ x: 3 y: 0 p: 0 ------------
Event: time 1372969848.228938 ------- Report Sync ------ x: 2 y: -1 p: 0 ------------


vetical:
Event: time 1372969873.668871 ------- Report Sync ------ x: 1 y: 21 p: 0 ------------
Event: time 1372969874.168864 ------- Report Sync ------ x: 1 y: 23 p: 0 ------------
Event: time 1372969874.668861 ------- Report Sync ------ x: 1 y: 21 p: 0 ------------
Event: time 1372969875.168869 ------- Report Sync ------ x: 1 y: 22 p: 0 ------------
Event: time 1372969875.668965 ------- Report Sync ------ x: 0 y: 21 p: 0 ------------

Touch Patching nickel to leave the wifi active

$
0
0
Hi,
I just wanted to let you know that I managed to patch the nickel application on my Kobo Touch to remove the automatic wifi disconnect, I think it might interest some people here. The function to patch is :
Code:

WirelessWatchdog::attemptToKill(void)
More detailled informations are on my website : http://renaud.schleck.free.fr/kobo.php#wifi

Firmware mod: reducing size of the bottom bar (pageometer)

$
0
0
I've played around with the firmware to change the dimensions of the bottom bar in reading mode. See the attached file for a visual result.
The first picture shows a screen shot of the originial firmware 2.5.1. bottom bar
The second and fourth picture show the adjusted page number footer in reading mode.
The third picture shows the menu bar of which the dimensions have not changed (the changes have no effect on the menu bar). Compare with the second picture.
The second and third picture show the modified page number footer in reading mode.

Second image
Code:

ReadingFooter {
        min-height: 40px;
        max-height: 40px;
        qproperty-footerMargin: 20;
}

Third image
Code:

ReadingFooter {
        min-height: 30px;
        max-height: 30px;
        qproperty-footerMargin: 30;
}

Device: Kobo Touch
Firmware: 2.5.1.
File: libnickel.so.1.0.0
Path: \usr\local\Kobo

Attached Thumbnails
Click image for larger version

Name:	Clipboard01.jpg
Views:	N/A
Size:	486.8 KB
ID:	107847  

Mini Need Mini uSD Image

$
0
0
Does anyone have a recent microSD card image (or can point me to a download) for a Kobo Mini - totally bricked my Mini trying to install FW 2.61 and not the reader won't boot up.

Thanks in advance

Aura HD Accessible Internal uSD card

SDL and/or FB access for a ported game

$
0
0
Hi,

I just picked up a Kobo Mini - ridiculously cheap and I thought it would be quite hackable. I'm not disappointed!

I was looking at porting a piece of software that I'm familiar with - Simon Tatham's Portable Puzzle Collection - to it. It seems a good match for the touchscreen, limited colours, slow screen updates, etc.

I've previously ported this to the GP2X which runs on an ARM chip, so I'm hoping to reuse most of my work but it's the display that I'm finding a pain.

Do we have any way to refresh / draw direct to it reliably across all Kobo models yet? I've looked into the files on my device and it seems to think it's a 16-bit display and framebuffer (when I dump the contents of fb0), but I'm assuming that's just a variation on published information which says the Kobo tends to give 4- or 8-bit framebuffers.

I don't mind interfacing direct with the framebuffer for now, and calling pickel for screen updates, but I'd like to move to a more integrated solution eventually. Do we have any information that way yet?

Also, I'm going to be re-using my SDL-based backend. Probably, initially, I'll just disable the SDL graphics functions and use it as a pixel-shifter on a dummy framebuffer, but I was wondering if there is any SDL library available for the device yet, or will I have to get compiling? I don't need video-access or acceleration, but I just use the SDL_gfx library a lot in my port of the puzzles collection along with various SDL_Surfaces as the backend storage for screen images. At worst, I'll just compile SDL in a "dummy" mode and use it to generate bitmaps that I'll throw at pickel's "showimage".

Apart from that, anything else I should know? I have ARM-compatible code, I assume tslib is available for touch screen interfacing (or, at worst, probing the Linux input devices directly), I don't need sound or fast graphics updates, I have plenty of storage, it seems, so I'm hoping it'll be quite a nice port.

Is there any information about getting a link to an executable into the menu of the Kobo so it can be run directly? I've seen it done with a "book" that ran an executable.

(Also, did anyone else spot that in the SD card there are other games for the menu? My UK WHSmith Kobo only shows Sudoku and Chess but there's Linux .so's in there for Boggle and all sorts).
Viewing all 1561 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>