Portál AbcLinuxu, 19. března 2024 06:18

KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

22.5.2022 09:34 | Přečteno: 9345× | Rôzne | Výběrový blog | poslední úprava: 22.5.2022 16:21

Pôvodný článok bol zverejnený na mojom blogu na LinuxOS.sk. Obsah zčasti nadväzuje na predchádzajúci článok o problémoch s fotmi na Amazon Kindle.
Dnešný článok bude venovaný open source čítačke KOReader. V článku sa venujem inštalácii, používaniu a porovnaniu so štandardnou čítačkou na Amazon Kindle Paperwhite 2 (drvivá väčšina platí aj pre ostatné čítačky od Amazonu). Ďalej sa venujem optimalizácii spotrebovanej RAM a riešeniu problémov pri spustení bez Kindle Framweorku. Článok uzatváram trochou disassembleru a malým pluginom pre lepšiu podporu Kindle.

Vstavaná čítačka od Amazonu je pomerne spoľahlivá, ale má minimálne možnosti nastavenia, text nezobrazuje práve najlepšie a človek občas narazí na nejaký nepríjemný bug, napríklad, že si čítačka nepamätá stranu pri použití vlastných fontov.

Inštalácia KOReadera

Po jailbreaku a rozbehaní KUAL je inštalácia extrémne jednoduchá. Stačí stiahnuť balík pre Kindle a skopírovať adresár koreader a obsah adresára extensions do čítačky. Teraz stačí už len spustiť KUAL menu a ťuknúť na KOReader.

Výhody vstavanej čítačky

Vstavaná čítačka je predinštalovaná v systéme. Používateľ dostane aký-taký základ bez nutnosti čokoľvek nastavovať, alebo riešiť. Knihy sa dajú bez problémov skopírovať cez USB mass storage (aj keď je nutná konverzia do podporovaného formátu).

Knižnica je užívateľsky prívetivá. Knihy môžu byť organizované do zbierok, dajú sa filtrovať a vyhľadávať. Užívateľ vôbec nevidí adresárovú štruktúru. Domovská stránka zobrazuje štandardne posledné otvorené knihy.

Zobrazenie kníh nie je úplne najlepšie. Text sa renderuje strašne. Čo môžem jemne pochváliť rýchlosť zoomu a posunu v PDF dokumentoch.

V čom je iný KOReader

Existuje mnoho dôvodov, prečo by niekto mohol chcieť používať alternatívnu čítačku. V tejto sekcii skúsim zhrnúť zmeny oproti vstavanej čítačke, výhody a nevýhody.

Zobrazenie knihy

Začnem pre mňa najdôležitejším bodom - zobrazenie knihy. Kvalita (alebo nekvalita) sadzby textu dokáže ovplyvniť rýchlosť a celkový dojem z čítania. V nasledujúcom texte porovnávam zobrazenie textu v oboch čítačkách.

Delenie slov

Teoreticky delenie slov podporujú obe čítačky. Kindle však vyžaduje vloženie znaku soft hyphen na každé miesto, kde sa dá slovo rozdeliť. KOReader má vstavané slovníky, takže ak má kniha správne nastavený jazyk, dokáže rozdeliť slová automaticky.

Okrem delenia slov sa dajú v KOReaderi nastaviť aj veľkosti medzier medzi slovami a pravidlá pre minimálnu vzdialenosť slov (redukciu medzier). Vo výsledku je KOReader schopný udržať aj pri pomerne krátkych riadkoch konzistentnú veľkosť medzier. U Kindle je naopak rozdiel medzi štandardnou medzerou (riadok hypothetical questions) a najhorším riadkom (scientists …) obrovský.

Delenie slov
Obrázok 1: Delenie slov

Mimochodom soft hyphen sa dá pridať v calibre cez dialóg Polish books (klávesová skratka p) a výber Add soft hyphens.

Pridanie soft hyphens
Obrázok 2: Pridanie soft hyphens

Kerning

Medzery medzi znakmi by mali mať konzistentnú veľkosť. Pri výpočte šírky medzery sa musí brať do úvahy tvar písmen. Napríklad písmena AV by mali byť k sebe bližšie než je ich typická šírka, pretože ich tvar do seba pekne zapadne. Fonty majú v sebe zvyčajne tabuľku obsahujúcu horizontálny posun znakov oproti štandardnému posunu pre každú dvojicu znakov, ktorá do seba nejak zapadne. Kindle v podpore kerningu absolútne zlyháva.

Teraz sa pozrime na príklad kerningu s rovnakým písmom. Do pozornosti dávam napríklad dvojicu ou v slove out, hy v slove physics, alebo nt v slove eventually.

Kerning
Obrázok 3: Kerning

Ligatúry

Niektoré skupiny znakov sa môžu zobrazovať ako jeden znak. Typický príklad je dvojica fi, kde sa vrchná časť znaku f prekrýva s bodkou nad znakom i. KOReader pekne podporuje ligatúry, ale Kindle zase absolútne bez podpory.

Ligatúry
Obrázok 4: Ligatúry

Hinting

Ako na poslednú vlastnosť zobrazenia textu sa pozrieme na hinting. Ide o úpravu kontrolných bodov fontu tak, aby sa presne zarovnali do mriežky pixelov. Horizontálne a vertikálne hrany sú vďaka tomu ostrejšie. Zmenu pozície bodov riadi bytekód, ktorý sa interpretuje. Niektoré fonty sú navrhnuté tak, že bez hintingu sa nezobrazujú korektne. Opäť Kindle nemá žiadnu podporu hintingu. V čítačke KOReader sa dá hinting voliteľne zapnúť.

Hinting
Obrázok 5: Hinting

Stránkovanie

Obe čítačky majú iný algoritmus stránkovania. Kindle považuje za stránku určitý pevne daný počet znakov. Zmena veľkosti, alebo typu písma teda nemení počet stránok. Pri čítaní podľa nastavenej veľkosti písma sa niekedy zmení strana o 2 čísla, inokedy o 0.

KOReader čísluje omnoho presnejšie, ale zároveň to znamená, že pri zmene písma sa musí viac-menej vyrenderovať celá kniha. Kindle preto vie meniť veľkosť písma prakticky okamžite, pretože odhad počtu stránok sa pri tejto operácii nemení.

Fonty

Ako som na začiatku spomenul, Kindle nefunguje dobre s inými fontmi než so vstavanými kvôli bugu, pri ktorom si napamätá aktuálnu pozíciu. Zo vstavaných fontov sa mi najlepšie číta Bookerly, ale italic variant sa číta hrozne.

Celkovo mám pocit, že keď je italic šikmý, tak sa na e-inku nerenderuje práve najlepšie. Práve z toho dôvodu používam písmo Literata, ktoré má italic takmer rovný, ale z tvaru znakov sa dá ľahko odlíšiť od normálneho písma. Škoda, že vo vstavanej čítačke je prakticky nepoužiteľný kvôli bugom.

PDF

Na Kindli môžem v prípade podpory PDF pochváliť len rýchlosť zoomu. Okrem nastavenia kontrastu nemá Kindle žiadne špeciálne nastavenia pre PDF.

KOReader síce nevie rýchly zoom, má implementovaný reflow a dokonca OCR (tesseract OCR engine). Výber textu a slovníky by mali fungovať aj na naskenovaných dokumentoch.

Knižnica

Pre KOReader je knižnica len obyčajným adresárom. Na rozdiel od Kindle neindexuje na pozadí knihy a nezobrazí všetky naraz.

Nie som náročný na funkcie knižnice, takže to, čo dokáže KOReader mi úplne postačuje. Knižnicu je možné zobrazovať ako zoznam, alebo mriežku s náhľadmi. Zoradenie je možné podľa abecedy, dátumu vytvorenia, dátumu posledného čítania, alebo podľa priebehu čítania. V zozname je možné zobraziť aj sériu kníh a poradové číslo v sérii.

Ovládanie a nastavenia

V čítačke Kindle sa dá nastaviť zobrazenie knižnice (mriežka, zoznam), veľkosť, hrúbka a typ fontu, riadkovanie, zarovnanie a čiastočne intenzita osvetlenia. To je asi všetko, čo sa dá v Kindle nastaviť. Napriek tomu občas ťuknem na nesprávnu ikonku. Ovládanie by mohlo byť vážne intuitívnejšie.

Nastavenia čítačky kindle
Obrázok 6: Nastavenia čítačky kindle

Na prvom obrázku (vľavo hore) je menu settings. Tu nájdeme režim lietadla, okamžitú synchronizáciu (od kedy je okamžitá synchronizácia nastavením?), tlačidlo všetkých nastavení a nastavenie jasu. Na tom istom screenshote je v dolnej časti zobrazená aktuálna kapitola a pod ňou tlačidlá na rýchlu navigáciu v dokumente. Tie tlačidlá vyzerajú ako prepínač zobrazenia, ale v skutočnosti jedno zobrazí popup s prehliadačom stránky a druhé mriežku stránok (v tomto dokumente nedostupné). Z pohľadu UX sú tie 2 tlačidlá absolútna katastrofa, pretože vyzerajú ako prepínač. Ešte horšie je, že keď človek chce rýchlo listovať knihou, musí vliezť do nastavení, ktoré ani nie sú nastaveniami. Nedávno som chcel v jednej knihe nalistovať graf a nepamätal som si presne kde bol a trvalo mi 20(!) minút kým som našiel prehliadač stránok (pamätal som si, že niekde musí byť, ale nevedel som kde).

KOReader má nastavenia rozčlenené do horného menu (vyvolané potiahnutím zhora, alebo kliknutím v hornej časti) a dolného menu (vyvolané potiahnutím zdola, alebo kliknutím). Pred použitím nastavení odporúčam prečítať si príručku.

Predpokladám, že si nikto moju radu aj tak nezobral k srdcu, takže pre istotu spomeniem s čím som mal najväčší problém. KOReader má samostatné nastavenia pre každú knihu. Pri každej knihe si môžem nastaviť vlastnú veľkosť písma, typ fontu, štýly atď. Nastavenia budú platiť len pre danú knihu. Ak v Kindle niečo nastavím, platí to všade. Ak to urobím v KOReaderi, platí to len pre danú knihu.

Okrem nastavení knihy existujú aj defaultné nastavenia. Tie sa prekopírujú do nastavení knihy po prvom otvorení knihy. Ďalšia zmena defaultných nastavení neovplyvní už otvorenú knihu. Aby sa prejavila zmena defaultných nastavení v už otvorenej knihe, je potrebné otvoriť horné menu, kliknúť na ikonu dokumentu a vybrať položku menu Reset document settings to default.

Zostáva už len otázka, ako zmeniť defaultné nastavenia. Tie sa menia dlhým podržaním prsta na voľbe, ktorú chcem nastaviť ako default.

Toto ovládanie nie je intuitívne, pretože bez manuálu užívateľ nemá ako vedieť, že defaultné nastavenia zmení podržaním prsta. Tak isto rozdelenie medzi defaultné nastavenia a nastavenia knihy nie je intuitívne, pretože užívateľ jednoducho čaká, že sa nastavenia prejavia všade.

Že niečo nie je intuitívne ešte neznamená, že je to zlé. Ani Blender nie je intuitívny, ale vďaka takému ovládaniu, aké má je v rukách profesionála extrémne efektívny. Ja musím KOReader preto pochváliť za tieto rozhodnutia, pretože občas narazím na knihu, kde autor nastavil malé písmo, inde naopak príliš veľké a preto sa mi hodí nastaviť veľkosť písma špecificky pre vybranú knihu. Na ovládanie som si zvykol veľmi rýchlo, takže tých 5 minút čítania užívateľskej príručky stálo za to.

KOReader - nastavenia
Obrázok 7: KOReader - nastavenia

Spodné menu je jednoduché, ľahko použiteľné a sprístupňuje rôzne nastavenia zobrazenia dokumentu. Podržaním prsta na názve možnosti sa vyvolá pomoc k danej položke (obrázok vľavo dole). Niektoré nastavenia majú tlačidlo troch bodiek, ktorým sa vyvolá dialóg pre zadanie presnej hodnoty (obrázok hore v strede).

V hornom menu by som chcel upozorniť na položku Taps and gestures. V tejto sekcii je možné priradiť rôzne akcie gestám ako ťahanie prstom pri niektorom okraji, ťahanie dvoma prstami, kliknutie na niektorý z rohov …

Členenie menu nie je ani zďaleka ideálne. Za bežných okolností by som určite skritizoval umiestnenie osvetlenia niekam do horného menu. Našťastie je tu možnosť nastaviť gestá. Momentálne mám nastavenú hodnotu osvetlenia, ktorú používam v noci a akciu zapnutie / vypnutie osvetlenia mám priradenú na ťuknutie vľavo dole. Okrem toho zvýšenie a zníženie jasu mám priradené na potiahnutie 2 prstami, takže nemusím vôbec chodiť do menu.

Pri menu by som sa ešte spomenul katastrofálne zobrazenie položiek (dolný rad, stredný obrázok). Šípky vpravo pri položkách by mali byť zarovnané na pravý okraj, aby zbytočne nerušili text. Čo je horšie je šípka hore v poslednom riadku menu - to je tlačidlo späť.

V spodnej časti je konfigurovateľný status bar. Nastaviť sa dá formát položiek, zoznam položiek, skrývanie ak sú niektoré irelevantné. Dá sa nastaviť napríklad zobrazenie stavu batérie ak je nabitie pod určitou hodnotou, alebo zobraziť ikonu ak je zapnuté osvetlenie (cez deň nemám šancu vidieť, že mám zapnuté osvetlenie, ale ikonu si bez problémov všimnem a vypnem ho keď je zbytočné).

Open source

Zdrojové kódy sú dostupné na githube. Renderovacie jadro je z čítačky Cool Reader. Čítačka sa dá veľmi jednoducho skompilovať a spustiť na desktope (stačí klonovať git clone --recursive https://github.com/koreader/koreader.git a spustiť ./kodev run v adresári koreader).

Užívateľské rozhranie je naprogramované v jazyku lua. Väčšina úprav (prakticky všetko, ak človek nepotrebuje upravovať renderovacie jadro) sa dá robiť bez kompilácie, stačí sa prihlásiť na čítačku cez SSH a priamo upravovať zdrojové kódy. Ak by niekto chcel vyvíjať cez SSH odporúčam:

# štandardná IP adresa
ssh root@192.168.15.244

# zastavenie vstavanej čítačky
stop framework

# spustenie
cd /mnt/us/koreader
./reader.lua

Mnoho funkcií v užívateľskom rozhraní je implementovaných ako zásuvné moduly. Ukážka zásuvného modulu, ktorý sa registruje do menu a dá sa vyvolať aj cez gestá je na githube. Ladiť sa dajú bez problémov na desktope, ako aj na čítačke cez SSH.

Integrácia s Calibre

So vstavanou čítačkou Kindle pracuje calibre bez dodatočných nastavení. Calibre ju automaticky pri pripojení kábla primontuje (je to mass storage) a nastaví príslušný profil v calibre. Štandardne sa dokumenty nahrávajú do adresára documents v dosť šialenej štruktúre autor/kniha.azw3. Adresárová štruktúra však nie je vôbec dôležitá, pretože Kindle zobrazuje všetky knihy v jednom veľkom zozname.

Z funkcií calibre som s Kindlom používal len jednosmerné nahrávanie kníh a konverziu do AZW3. V minulosti som sa pokúšal o synchronizáciu priebehu, ale to sa mi nepodarilo, pretože nikdy som v čítačke nemal tú správnu verziu firmvéru. Nechcelo sa mi s tým vôbec babrať, pretože po aktualizácii môže byť situácia zase iná.

Kindle by sme teda mali, ale ako je na tom KOReader?

Prvým problémom, na ktorý človek narazí je absencia mass storage. Nie je to len nejaká malá drobnosť, ktorá by sa dala vyriešiť, ale je to dôsledok spustenia čítačky z partície s užívateľskými dátami. Pri mass storage musí byť partícia odpojená, čo nie je možné, kým z nej beží KOReader. Nahranie kníh je možné niekoľkými spôsobmi:

Cez mass storage po ukončení KOReadera
Táto možnosť by bola celkom akceptovateľná, keby vstavaná čítačka neštartovala 2-3 minúty (mimochodom KOReader sa dá spustiť aj bez ukončenia behu vstavanej čítačky, vtedy zariadeniu síce zostane menej RAM, ale človek nemusí čakať).
Cez wifi
Zapínať wifi na jailbreaknutom Kindle vážne nie je dobrý nápad. Amazon sa snaží všetkými prostriedkami bojovať proti jailbreaku a neexistuje spoľahlivý spôsob ako zablokovať aktualizácie.
Cez ssh
Osobne uprednostňujem možnosť nechať permanentne zapnutý prístup cez ssh a nahrávať knihy po pripojení cez sshfs.

Z dostupných možností som si vybral podľa mňa najmenej zlú - ssh.

Pripojenie súborového systému

Aby bolo možné použiť ssh, musí sa Kindle najskôr prepnúť do režimu USB sieťovky. Na to slúži USBNetwork hack.

Balík sa najskôr musí rozbaliť, následne sa jeden z .bin súborov (podľa podľa zariadenia) umiestní do adresára mrpackages a nakoniec sa nainštaluje cez menu KUAL pomocou položky Install MR Packages.

Po reštarte odporúčam ešte raz spustiť KUAL a v menu USBNetwork povoliť spustenie SSH po štarte.

Teraz sa bude Kindle tváriť ako sieťová karta obsluhovaná modulom jadra cdc_ether. Keďže väčšina distribúcii používa takzvané "predictable names", bude názov sieťovky nejaká mňamka ako enp7s0f4u2i1. Aby nebolo málo zábavy, tento názov používa aj moja dokovacia stanica, takže reálne môže dostať aj nejakú inú mňamku.

Pre krátky test môžem nastaviť IP adresu a skúsiť, či SSH funguje korektne:

ip link set enp7s0f4u2i1 up; ip addr add 192.168.15.243/24 dev enp7s0f4u2i1

Štandardná adresa, ktorú má kindle je 192.168.15.244, takže prihlásiť sa môžem príkazom (heslo je prázdny reťazec):

$ ssh root@192.168.15.244


Welcome to Kindle!

root@192.168.15.244's password:
#################################################
#  N O T I C E  *  N O T I C E  *  N O T I C E  #
#################################################
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
#################################################
[root@kindle root]#

Pripojenie by fungovalo, poďme teraz automatizovať pripojenie súborového systému. Začnem zistením informácií o sieťovom rozhraní zo subsystému udev:

udevadm info -p /sys/class/net/enp7s0f4u2i1

P: /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb5/5-2/5-2:1.0/net/enp7s0f4u2i1
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb5/5-2/5-2:1.0/net/enp7s0f4u2i1
E: INTERFACE=enp7s0f4u2i1
E: IFINDEX=6
E: SUBSYSTEM=net
E: USEC_INITIALIZED=18056489502
E: ID_NET_NAMING_SCHEME=v249
E: ID_NET_NAME_MAC=enxee4900000000
E: ID_NET_NAME_PATH=enp7s0f4u2
E: ID_VENDOR=Linux_3.0.35-lab126_with_fsl-usb2-udc
E: ID_VENDOR_ENC=Linux\x203.0.35-lab126\x20with\x20fsl-usb2-udc
E: ID_VENDOR_ID=0525
E: ID_MODEL=RNDIS_Ethernet_Gadget
E: ID_MODEL_ENC=RNDIS\x2fEthernet\x20Gadget
E: ID_MODEL_ID=a4a2
E: ID_REVISION=0399
E: ID_SERIAL=Linux_3.0.35-lab126_with_fsl-usb2-udc_RNDIS_Ethernet_Gadget
E: ID_TYPE=generic
E: ID_BUS=usb
E: ID_USB_INTERFACES=:0202ff:0a0000:020600:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=cdc_ether
E: ID_USB_CLASS_FROM_DATABASE=Communications
E: ID_VENDOR_FROM_DATABASE=Netchip Technology, Inc.
E: ID_MODEL_FROM_DATABASE=Linux-USB Ethernet/RNDIS Gadget
E: ID_MM_CANDIDATE=1
E: ID_PATH=pci-0000:07:00.4-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_07_00_4-usb-0_2_1_0
E: ID_NET_DRIVER=cdc_ether
E: ID_NET_LINK_FILE=/lib/systemd/network/99-default.link
E: ID_NET_NAME=enp7s0f4u2i1

Zaujímavé položky sú napríklad ID_VENDOR, alebo ID_NET_NAME_MAC. Keďže sú názvy nespoľahlivé, začnem premenovaním zariadenia na niečo stabilné pomocou MAC adresy (dal by sa zneužiť aj výrobca). Vytvorím si, alebo pridám do súboru /etc/udev/rules.d/98-network.rules nasledujúci riadok:

SUBSYSTEM=="net", ACTION=="add", ENV{ID_VENDOR}=="Linux_3.0.35-lab126_with_fsl-usb2-udc", NAME="eth_kindle"

Toto pravidlo nastaví názov sieťového zariadenia na eth_kindle. Teraz nasleduje pomerne hnusný hack, ktorý si môžem dovoliť, pretože môj počítač používam sám.

Pod rootom teda vytvorím adresár /mnt/kindle príkazom mkdir -p /mnt/kindle a priradím mu práva chown uzivatel:skupina /mnt/kindle, v mojom prípade chown mirec:mirec /mnt/kindle.

Do systému nainštalujem balíky sshfs a sshpass. Ďalej nahradím pôvodný riadok v /etc/udev/rules.d/98-network.rules novými riadkami pre pripojenie a odpojenie (pribudol len príkaz RUN).

SUBSYSTEM=="net", ACTION=="add", ENV{ID_VENDOR}=="Linux_3.0.35-lab126_with_fsl-usb2-udc", NAME="eth_kindle" RUN+="/etc/udev/scripts/kindle_start"
SUBSYSTEM=="net", ACTION=="remove", ENV{ID_VENDOR}=="Linux_3.0.35-lab126_with_fsl-usb2-udc", NAME="eth_kindle" RUN+="/etc/udev/scripts/kindle_stop"

Skript pre odpojenie /etc/udev/scripts/kindle_stop bude veľmi jednoduchý:

#!/bin/bash
fusermount -z -u /mnt/kindle

Samozrejme skript musí mať príkaz spustiteľný (chmod +x /etc/udev/scripts/kindle_stop). To isté bude platiť aj pre skript kindle_start, ktorý vyzerá takto:

#!/bin/bash
ip link set eth_kindle up
ip addr add 192.168.15.243/24 dev eth_kindle
su uzivatel -c "sshfs root@192.168.15.244:/mnt/us/ /mnt/kindle"
echo "date -s \"`date +'%Y-%m-%d %H:%M:%S'`\";hwclock -w -u"|sshpass -p "" ssh -o StrictHostKeyChecking=no root@192.168.15.244

Nastavenie adresy nemusím vysvetľovať. Pripojenie sa vykonáva pod bežným užívateľom cez fuse. Čo tam však robí date?

Jailbreaknutý Kindle používam permanentne v režime lietadla. V takom prípade nie je možné synchronizovať čas. Presnosť hodín reálneho času na mojej čítačke je nič moc, okolo 30s chyba mesačne. Nie je to veľa, ale je to dosť na to, aby sa mi nechcelo nastavovať čas. To však nevysvetľuje dôvod, prečo som nepoužil NTP.

Časová zóna /etc/localtime je odkaz na /var/local/system/tz, čo je nejaký súbor generovaný Amazonom. Koreňový adresár zostáva permanentne read-only. Príkaz date vypíše toto:

# date
Sat May 14 09:12:30 GMT+2:22100 2022

Čo je GMT+2:22100? Prečo je časový posun oproti GMT 8520 sekúnd (2 hodiny a 22 minút)? Nastavenie času cez ntp mi posunie hodiny o 22 minút. Mohol by som teoreticky nahradiť súbor časovej zóny, ale pri ďalšom štarte by sa to zase rozbilo.

Správa kníh cez Calibre

Na začiatok je potrebné spustiť welcome wizard. Pre Kindle sa totiž štandardne používajú formáty AZW3 a MOBI. Teoreticky sa Calibre tvári, že je možné ich zmeniť v nastaveniach, ale stále existujú automatické konverzie, ktoré mení len wizard. Bez tohto kroku by síce boli knihy správne odosielané v EPUB-e, ale správy by sa napríklad stále ukladali do MOBI.

Spustenie welcome wizardu
Obrázok 8: Spustenie welcome wizardu

Nastavenie zariadenia
Obrázok 9: Nastavenie zariadenia

Čítačka sa dá pridať cez tlačidlo pripojenia a výber adresára /mnt/kindle/documents/.

Pripojenie čítačky v calibre
Obrázok 10: Pripojenie čítačky v calibre

V nastaveniach adresára je potrebné ešte nastaviť podporované formáty, pretože pri zvolení generického zariadenia bude akceptovať aj formáty, ktoré nepodporuje. Taktiež odporúčam zmeniť šablónu (pattern, ktorý sa používa pre uladanie), pretože štandardne ukladá v adresárovej štruktúre Autor / Kniha, čo sa mi na čítačke nepoužíva práve najpríjemnejšie.

Menu adresára
Obrázok 11: Menu adresára

Nastavenie adresára
Obrázok 12: Nastavenie adresára

KOReader sync

Dodatočný zásuvný modul, KOReader sync slúži na načítanie niektorých atribútov z čítačky. Nastavenie nie je úplne najintuitívnejšie, preto skúsim vysvetliť ako funguje napríklad taká synchronizácia priebehu čítania.

Najskôr je potrebné vytvoriť si stĺpec, do ktorého sa bude údaj načítavať. V tomto prípade to bude desatinné číslo formátované (python formátovanie) ako percentuálna hodnota.

Pridanie stĺpca
Obrázok 13: Pridanie stĺpca

V nastaveniach KOReader sync už stačí len spárovať import so stĺpcom a zobraziť stĺpec progress v zozname kníh. Po stlačení tlačidla synchronizácie sa načíta stav kníh zo zariadenia.

Pridadenie stĺpca
Obrázok 14: Priradenie stĺpca

Spustenie bez framweorku

KOReader môže na zariadeniach Amazon Kindle naraziť na nedostatok operačnej pamäte. Pri náročnejších PDF súboroch zvykne štandardná čítačka padať na nedostatku pamäte. Zvyčajne na chvíľu pomôže reštart. KOReader má rovnaký problém, aj keď sám veľa operačnej pamäte nepotrebuje.

Pamäť
Obrázok 15: Pamäť

Pre pochopenie nasledujúcej časti bude potrebné poznať niektoré komponenty. Začnem preto rovno malým slovníkom.

Framework
GUI rozhranie od amazonu (napísané v jave)
cvm
Hlavný proces GUI
KAF
Kindle amazon framework?
awesome
Desktopové prostredie, skriptovateľné v LUA
lipc
IPC protokol využívajúci D-Bus, podmnožina D-Bus, existuje open source implementácia
powerd
Daemon starajúci sa o napájanie
blanket
Proces starajúci sa o zobrazenie bootovacej obrazovky, screensavera, priebehu aktualizácie … Rôzne moduly sú implementované ako pluginy a existuje open source implementácia screensavera.
upstart
Init systém vytvorený spoločnosťou Canonical
LibElektra
Konfiguračné registry v stromovej štruktúre (niečo ako registry vo windowse)
kdb
Nástroj na prácu s LibElektra registrami.

Výpis htop vyzerá ako z viac-menej normálneho linuxového desktopu. Nájdeme tu paradoxne X.org server, čo je celkom zaujímavá voľba. Jednouchšie embedded systémy používajú väčšinou priamy prístup do framebufferu. Výkonnejšie zariadenia zase zvyknú používať kompozitor s podporou OpenGL ES. Prečo je použitý X.org?

Jednou z možných príčin je absencia grafickej akcelerácie na použitom SoC (Freescale i.MX 6). Druhou je nenažranosť GPU. Nedávno som sa hral so spotrebou môjho thinkpadu a prekvapujúco najnižšiu spotrebu som dosahoval pri spustenom X.org bez aplikácií využívajúcich grafickú akceleráciu. Ak som používal napríklad akcelerovaný emulátor terminálu Alacritty namiesto rxvt-unicode, spotreba bola o nejakú tú desatinu watu vyššia. Pri zapnutom waylande to už bolo viac o 0.3 W (prostredie sway).

Spustenie z konzoly

GUI sa štartuje skriptom /etc/upstart/lab126_gui. Zastaviť sa dá jednoducho príkazom stop lab126_gui.

Teraz stačí prejsť do adresára /mnt/us/koreader a spustiť lua skript reader.lua:

cd /mnt/us/koreader
./reader.lua

Výsledok vyzerá dobre. Čítačka funguje a pamäť je poloprázdna.

Pamäť bez frameworku
Obrázok 16: Pamäť bez frameworku

Spustenie z KUAL menu

Skript pre spustenie KOReadera implementuje ukončenie frameworku. Stačí povoliť položku v KUAL menu odstránením podmienky v extensions/koreader/menu.json.

Všetko okrem tlačidla power funguje bez problémov. V nasledujúcom texte sa budem venovať len oprave obsluhy tlačidla power.

Oprava power - lamer štýl

Tento spôsob považujem za slepú uličku, ale možno niekoho zaujme.

Situácia je taká, že nereaguje na tlačidlo power. Na začiatok je dobré zistiť, či sa udalosť generuje cez štandardný linuxový input subsystém. Aby som si to overil, skúsim najväčšiu blbosť: cat /dev/input/event0. Stlačím power a vypadne na mňa binárny humus. Tlačidlo teda mám a je pripojené na event0.

Do kódu inicializácie zariadenia pridávam:

self.input.open("/dev/input/event0")

Do handleKeyBoardEv pridávam:

print(ev.code)

Po spustení ./reader.lua a stlačení tlačidla vidím v konzole číslo 116. Ďalej do kódu inicializácie pridávam mapovanie udalosti 116 s internou udalosťou Power.

self.input = require("device/input"):new{
    device = self,
    event_map = {
        [116] = "Power",
    },
}

Interne sa táto udalosť konvertuje na PowerPress a PowerRelease.

Zostáva už len zaregistrovať udalosti do kódu isKindle a filtrovať udalosti ak je spustený screensaver (keďže teraz píšeme len softvérovú podporu, zostáva dotyková vrstva stále aktívna, bez filtrovania by sa dotykom vypol screensaver):

self.event_handlers["PowerRelease"] = function()
    if not self._entered_poweroff_stage then
        UIManager:unschedule(self.poweroff_action)
        -- resume if we were suspended
        if Device.screen_saver_mode then
            Device:outofScreenSaver()
            self:_afterResume()
        else
            self:_beforeSuspend()
            Device:intoScreenSaver()
            Device:suspend()
        end
    end
end
self.event_handlers["__default__"] = function(input_event)
    if not Device.screen_saver_mode then
        self:sendEvent(input_event)
    end
end

Po štarte KOReadera nabehne po stlačení tlačidlá power screensaver. Funkcionalita je viac-menej hotová, akurát sa čítačka nehibernuje. Nie je to úplne ideálne riešenie, ale na zablokovanie displaya a občasné utretie prachu postačí ;)

Oprava power - normálne riešenie

Najskôr začnem simuláciou udalostí. Utilita powerd_test slúži na simuláciu power tlačidla.

powerd_test
powerd_test: Utility to test powerd
Options:
  s          : Print status
  i          : Simulate input event
  p          : Simulate power button pressed event
  h          : Simulate power button held event
  l          : Simulate low batt low event
  d <value>  : Set defer sleep property to given value
  r          : Simulate a random series of events at random intervals.
               Max interval is 10s by default.
  b<optional>: Set fake battery level if a value is provided. Remember to
               there is no space between b and value.  If no value is
               provided, it interactively accepts values from you and sets
               fake battery level
  t <value>  : Max interval between events in seconds.
               Valid only when used with -r
  NOTE       : Only one of i,p,d, b and r can be used at one time

Príkaz powerd_test -p so zapnutým frameworkom uzamkne obrazovku, ale bez frameworku nerobí nič. Keďže nie sú dostupné zdrojové kódy, pozriem sa programu na zúbok pomocou dekompilátora ghidra.

powerd_test
Obrázok 17: powerd_test

Super nástroj je Search / Strings. Po vyhľadané výsledkov power mi udrelo do očí dbg_power_button_pressed. Po dvojkliku na referenciu som sa dostal k funkcii na screenshote.

Utilitka podľa všetkého spúšťa príkaz lipc-send-event com.lab126.powerd.debug dbg_power_button_pressed. Príkaz prebehne bez chyby, takže problém bude asi niekde inde. Pokračujem dekompiláciou programu powerd.

V ňom si všímam reťazce začínajúce sa na dbg_. Vidím tu zaujímavé reťazce dbg_mag_sensor_opened a dbg_mag_sensor_closed. Po spustení lipc-send-event com.lab126.powerd.debug dbg_mag_sensor_closed sa spustí screensaver a stav zariadenia sa zmení na Screen Saver:

powerd_test -s
Powerd state: Screen Saver
Remaining time in this state: Unknown
defer_suspend:0
suspend_grace:0
prevent_screen_saver:0
drive_mode_state:1
PRIMARY BATTERY
Battery Level: 100%
Last batt event at: 100%
Charging: Yes
Battery logging: On

Po spustení lipc-send-event com.lab126.powerd.debug dbg_mag_sensor_opened je zariadenie opäť v aktívnom stave:

powerd_test -s
Powerd state: Active
Remaining time in this state: 598.386396
…

Chyba bude niekde v spracovaní udalosti tlačidla. Podľa reťazcov nachádzam v dekompilátore nasledujúci kód:

iVar2 = LipcRegisterIntProperty(DAT_0003957c,"powerButton",0,&LAB_000145f0,0);

Existenciu property potvrdzuje aj výpis lipc-probe:

lipc-probe com.lab126.powerd
        w       Int     touchScreenSaverTimeout
        w       Int     deferSuspend
        w       Int     wakeUp
        r       Int     flRawIntensity
        w       Int     rtcWakeup
        r       Str     state
        w       Int     suspendGrace
        r       Str     battStateInfo
        w       Int     deferRestart
        w       Str     shutdownAlertResponse
        r       Int     battTemperature
        w       Int     addSuspendLevels
        rw      Str     logLevel
        r       Int     battLevel
        rw      Int     preventScreenSaver
        rw      Str     logMask
        w       Int     sendPendingResume
        rw      Int     flAuto
        rw      Int     flIntensity
        r       Int     flMaxIntensity
        w       Str     rtcWakeup2
        w       Int     abortSuspend
        r       Int     flTurboBrightnessIntensity
        w       Int     powerButton
        w       Int     flStartup
        r       Str     status
        r       Int     isLowTempState
        r       Int     isCharging

Volanie lipc-set-prop com.lab126.powerd powerButton 1 však nerobí nič. V zásade som neprišiel na nič zaujímavé okrem toho, že kód obsahuje množstvo ladiacich výpisov. V property však vidím logMask. Nastavujem preto lipc-set-prop com.lab126.powerd logMask "0xffff" a pozerám, čo sa deje v /var/log/messages. Nastavenie property powerButton vypíše nasledujúci kód:

220514:194019 powerd[5962]: E lipc:dbuserr:name=org.freedesktop.DBus.Error.ServiceUnknown:Receive Dbus error message (DBUS_MESSAGE_TYPE_ERROR): The name com.lab126.kaf was not provided by any .service files
220514:194019 powerd[5962]: D lipc:axstime:prop=frameworkStarted, source=com.lab126.kaf, ms=4:lipc property access time in milliseconds (PrvAccessPropertySync:access_properties.c:702)
220514:194019 powerd[5962]: I def:pbisplash::Splash screen is on.  Ignoring power button

Výpis relevantnej časti kódu z dekompilátora vyzerá nasledovne:

iVar2 = FUN_000167bc();
if (iVar2 != 0) {
  if (DAT_000395ec != (undefined **)0x0) {
    FUN_0001f0bc(DAT_000395ec);
    DAT_00038ac4 = 0xffffffff;
    DAT_000395ec = (undefined **)0x0;
    return 0;
  }
  pcVar4 = "active_handle_power_button";
  pcVar3 = "PowerButtonPress";
  goto LAB_0001ce18;
}
if ((DAT_00039450 & 0x800000) == 0) {
  return 0;
}
iVar2 = 1;
pcVar4 = "I def:pbisplash::Splash screen is on.  Ignoring power button";

Ak je iVar2 0, potom je vraj zobrazený screen saver. Zostáva preskúmať funkciu FUN_000167bc.

powerd
Obrázok 18: powerd

Kód najskôr zisťuje hodnoty registrov system/daemon/powerd/KAF_NAME a system/daemon/powerd/KAF_FRAMEWORK_STARTED. Pozrime sa na tieto hodnoty pomocou nástroja kdb:

kdb get system/daemon/powerd/KAF_NAME
com.lab126.kaf
kdb get system/daemon/powerd/KAF_FRAMEWORK_STARTED
frameworkStarted

Ďalej sa volá lipc. Volanie je ekvivalentné príkazu:

lipc-get-prop com.lab126.kaf frameworkStarted
com.lab126.kaf failed to access property frameworkStarted (0x3 lipcErrNoSuchSource)

Funkcia považuje za zobrazený splash screen ak framework nehlási vlastnosť frameworkStarted. Riešením je spustiť proces, ktorý sa bude odpovedať na property frameworkStarted. Vytvorím si jednoduchý súbor test.lua a spustím ho (lua test.lua):

require("liblipclua")

lipc_handle, error_message, error_number = lipc.init("com.lab126.kaf")

local readonly_property = lipc_handle:register_int_property("frameworkStarted", "r")
readonly_property.value = 1

while true do lipc.run_event_loop(math.huge) end

Po spustení sa však nič nezmenilo. Do pozornosti dávam vo výpise riadok return 0. Podľa dekompilátora funkcia vráti vždy 0 bez ohľadu na predchádzajúce volania. Dekompilácia optimalizovaného C kódu je zložitá. Výsledný kód nie je vždy korektný a obyčajne sa dá spoznať podľa nejakej blbosti, napríklad funkcie, ktorá vracia vždy konštantnú hodnotu. Toto je presne ten prípad. V disassembleri je však korektne viditeľné pokračovanie funkcie, ktoré načítava registre system/daemon/powerd/BLANKET_NAME a system/daemon/powerd/BLANKET_LOAD.

kdb get system/daemon/powerd/BLANKET_NAME
com.lab126.blanket
kdb get system/daemon/powerd/BLANKET_LOAD
load
lipc-get-prop com.lab126.blanket load
langpicker blankwindow usb splash

Ďalej sa testuje, či property load služby com.lab126.blanket obsahuje text splash. Služba blanket má zaujímavé property ako load a unload, pomocou ktorých sa dajú načítať, alebo odobrať pluginy:

lipc-probe com.lab126.blanket
        rw      Str     unload
        rw      Str     logMask
        rw      Str     load
        w       Str     uiQuery
        rw      Str     logLevel

Po odobratí splash (lipc-set-prop com.lab126.blanket unload splash) začne fungovať uspávanie tlačidlom power.

Z tohto kódu som vytvoril plugin pre KOReader, ktorý stačí uploadnúť do adresára koreader/plugins a reštartovať KOReader.

Teraz funguje všetko korektne vrátane obsluhy tlačidla power. Spotreba čítačky je približne rovnaká, ako so spusteným frameworkom.

Štatistiky batérie
Obrázok 19: Štatistiky batérie

Bonus tip - X11 aplikácie / Kterm

Pri hraní sa s KOReaderom som napísal ešte jeden malý plugin, ktorý umožňuje naštartovať X11 aplikácie.

Spustenie X11 aplikácie nie je až tak priamočiare, ako by sa mohlo zdať, pretože KOReader vykresľuje priamo na framebuffer. Po štarte aplikácie nesmie KOReader nič vykresľovať, ale to nie je až taký problém, pretože volanie os.execute blokuje vykonávanie až ukončenia aplikácie.

Väčším problémom je, že KOReader blokuje vstup. Okno terminálu síce nabehne, ale nebude mať prijímať žiadne udalosti dotyku. Problém som vyriešil jednoducho odpojením vstupných vstupov pred štartom terminálu a obnovením vstupov po štarte. Kód nakoniec nie je vôbec zložitý.

Nakoniec ešte ukážkové video:

Kterm

Bonus tip 2 - pripojenie ku Calibre ako "bezdrôtové zariadenie" cez USBNetwork

KOReader v štandardnej inštalácii obsahuje plugin pre spojenie s Calibre cez wifi. Po odstránení jednej podmienky a nastavení pevnej IP adresy / portu je možné zapnúť pripojenie na Calibre bez zapnutej WiFi.

Povolenie pripojenia
Obrázok 20: Povolenie pripojenia

Nastavenie pevného portu
Obrázok 21: Nastavenie pevného portu

Pri vypnutom KOReaderi je potrebné upraviť settings.reader.lua a pridať, alebo upraviť položky:

["calibre_wireless_url"] = {
    ["address"] = "192.168.15.243",
    ["port"] = 9090,
},
["inbox_dir"] = "/mnt/us/documents",

Aby bolo spojenie automatické, napísal som malý plugin, ktorý bude po pripojení USB kábla bude každú sekundu kontrolovať danú IP adresu a port. Ak je port otvorený, pripojí sa automaticky na Calibre. V praxi to vyzerá takto:

Kterm

Boot priamo do KOReaderu

Kindle bootuje veľmi dlho. Samotný systém do X.org serveru dokáže naštartovať za 10s, ale vstavaná aplikácia čítačky štartuje 2-3 minúty. Teoreticky by bolo možné deaktivovať službu gui cez upstart a štartovať priamo KOReader, vďaka čomu by bola čítačka použiteľná za asi 15s po reštarte. Reálne sú tu rôzne kontroly, či Kindle nabootoval a v prípade 3 neúspešných pokusov sa zasekne na obrazovke oznamujúcej nutnosť opravy. Pravdu povediac neviem, či v tomto režime nabehne vôbec SSH daemon a nechcem riskovať, že si úplne zablokujem prístup. Keby napriek tomu niekto chcel experimentovať, odporúčam pozrieť toto vlákno, kde je ukážka úpravy upstart skriptu.

Takže milé deti, neskúšajte to doma (aspoň nie, ak nemáte pripravený UART a nástroje na rozobratie).

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti, obrázek 1

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

22.5.2022 10:40 Pepan
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
To muselo dát práce a přitom ...
22.5.2022 12:29 pochvala
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
A pritom je to genialni! Konecne ligatury, deleni slov a rozumny kerning.
mirec avatar 23.5.2022 06:49 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Bolo s tým dosť práce, ale jednoducho čítačka, ktorá s custom fontom má niekoľko rokov bug kvôli ktorému si nepamätá pozíciu v kapitole a vždy pri otvorení knihy skočí na koniec kapitoly je pre mňa nepoužiteľná. Teoreticky by som mohol ďalej používať vstavané fonty ako doteraz, ale každý jeden má blbý ozdobný italic štýl, ktorý vyzerá na e-inku s nízkym DPI rozmazane a zle sa číta. Všetky ostatné rozdiely v renderingu sú len čerešnička na torte.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
22.5.2022 19:10 Miriam | blog: RychlovarnaKonvice
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
Kdysi jsem měla na Kindle čtečce Duokan, zvládal vykreslit i PDFka vzniklá skenováním.
23.5.2022 08:57 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
wtf, ja mam na kindlu ctecku predinstalovanou
mirec avatar 23.5.2022 09:14 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Však aj ja mám predinštalovanú, len ma už prestali baviť neustále bugy, občasné padanie na nedostatku RAM, spomalené reakcie ak beží na pozadí indexer. Keďže mám jailbreaknutý kindle, bolo otázkou pár sekúnd nainštalovať KOReader. Dal som tomu týždeň šancu, zvykol som si na ovládanie a môžem zodpovedne prehlásiť, že funguje omnoho lepšie. Nastaviteľné gestá sú pecka, CSS tweaky sú pri niektorých prasatách vydavateľoch fajn (viem si napríklad v menu zapnúť hyphenation aj keď to vydávateľ explicitne zakázal).

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
23.5.2022 12:21 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
nedostatku ram? wtf, kolik potrebujes ram na cteni knizky? neustale padani? jestli mi to za tech cca 10 let co mam (uz nekolikaty) kindle, spadlo destekrat, tak je to hodne - nepamatuji si ani jeden pripad

gesto mi staci jedno, otocit stranku :)

jailbreak? proc?

prijde mi, ze ctecku pouzivas nejak divne, nenahrazujes si cteckou tablet?
mirec avatar 23.5.2022 14:11 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Pri PDF potrebujem aspoň tých 20MB RAM. Štandardne má Kindle voľných cca 80MB RAM (po štarte kým ešte nie je fragmentovaná) ak nebeží na pozadí indexovanie, ktoré spotrebuje bežne 50-60MB RAM.

Gesto potrebujem napríklad pri návrate na pôvodnú pozíciu ak sú v knihe zle implementované poznámky pod čiarou. V kindle musím ťuknúť hore a stlačiť späť, ale s gestami je to jeden rýchly pohyb. Ďalej na gesto mám napríklad nakonfigurované nastavenie jasu, kvôli čomu sa mi zase nechce liezť do horného menu.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
23.5.2022 14:33 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
PDF??? takze si pletes ctectu s tabletem, PDF do ctecky nepatri, podpora je spis nouzova

na jas mam gesto vestavene od vyrobce (ne ze bych ho nekdy potreboval, mam jas v podstate trvale na minimu).
mirec avatar 23.5.2022 14:43 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Aké je gesto na nastavenie jasu v kindle?

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
23.5.2022 14:47 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
nahoru/dolu
mirec avatar 23.5.2022 14:54 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Akože tlačidlami? Ja mám dotykový model (PW2). Alebo swipe? Jedným prstom? Dvoma prstami? Troma prstami? V strede? Na niektorom z okrajov? Začať zdola a smerom nahor? Alebo niekde zo stredu? Skúšal som všetky možnosti, ktoré ma napadli, ale žiadna nemení jas. Je k tomu nejaká dokumentácia. Mimochodom firmvér mám najnovší.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
23.5.2022 15:07 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
normalne prstem nekde u kraje

tvuj firmware neznam, ja mam kindle nekolik let

mozna sis to rozbil tim jailbreakem :)
mirec avatar 23.5.2022 15:39 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Chápem, že je to pokus o vtip, ale aj tak prihodím pár informácií k jalbreaku.

Ľudia si predstavujú jailbreak ako ktovie ako hrozne invazívnu operáciu. Pri apple produktoch je to tak, ale Kindle je bežný linuxový desktop (prostredie Awesome + X11). Jailbreak je viac-menej len úprava upgrade skriptu, ktorá umožní updatovať kindle bez straty jailbreaku + dovolí inštaláciu rozšírení (tie sa tvária ako systémový upgrade).

Okrem jailbreaku mám nainštalovaný len USBNet hack a KOReader. KOReader je obyčajná binárka rozbalená na partícii kde sú ostatné dokumenty (tá, ktorá je viditeľná ako mass storage). USBNet je jeden upstart skript + busybox (inštalovaný zase mimo systémovej partície).

Okrem toho som ešte v blogu spomínal KUAL, čo je menu na spúšťanie doinštalovaných aplikácii. Ide o azw3 dokument s vloženým java appletom (Amazon má zverejnené aj SDK na vývoj Java appletov).

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Gréta avatar 25.5.2022 21:47 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

nedělá amazon kindle že ňák furt zobrazuje reklamy :O :O by to takle šlo zaříznout to si to nehlídaj :O :O

mirec avatar 26.5.2022 06:58 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Neviem ako je to teraz, ale v minulosti existovala možnosť kúpiť si bez reklamy (za vyššiu cenu), alebo si zaplatiť za to, aby tam nebola reklama. Ja mám bez reklamy.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
26.5.2022 07:44 Miriam | blog: RychlovarnaKonvice
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
A taky bylo možné na amazoní support, že to máš pro dítě a skáče ti tam erotická reklama a jestli by ti ho teda zadarmo nemohli odblocknout. Já měla s reklamou a takto jsem odblockovala.
29.5.2022 14:33 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
ano, skacou tam reklamy - jako screensaver

takze kdyz ctecku odlozis, a ona usne, objevi se na ni obalka nejake knihy, o ktere si mysli, ze by te mohla zajimat

v nejhorsim pripade zcela neskodna neobtezujici reklama, ale ja mam zkusenost, ze jsou to ve skutecnosti kvalitni doporuceni

behem pouzivani tam zadne reklamy nejsou
23.5.2022 15:08 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
ted si mi nasadil brouka do hlavy, ale nepamatuji se, ze by mel muj kindle nejaka tlacidla (nemam ho ted po ruce)
Prcek avatar 23.5.2022 10:31 Prcek | skóre: 43 | Jindřichův Hradec / Brno
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak to je hustej zápisek, díky moc, to muselo dát fakt dost práce.

Když už se tu narazilo na Kindle - chystám se k nákupu čtečky jako dárek manželce a absolutně se v tom nevyznám. Po nedávném článku na Rootu jsem zjistil, že existuje i něco jiného než Amazon Kindle :-). Teď řeším, jestli tedy koupit něco od Amazonu nebo např. PocketBook (nebo něco jiného?). Máte někdo osobní názor, či doporučení na konkrétní výrobek? Čtečka by měla sloužit k občasnému čtení "klasických" knih (žádné komiksy apod.). Díky moc.
Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!
23.5.2022 12:24 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
mam kindle, a jsem 100% spokojen

libi se mi, ze krome knizek stazenych odkudkoliv, muzu pouzivat i amazon obchod - nedelam to casto, ale obcas je moznost koupit si knizku na par kliknuti kdekoliv je wifi fajn - zvlast kdyz je clovek nekde na dovolene a nema pristup k beznym zdrojum
24.5.2022 07:25 nook
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
Muzete prestat s Kindly a PocketBooky ve smylu pdf ctecka? Neumi to poradne uz z principu - maly displej a slaby HW! To muzete tak pouzivat na rodokapsy - doslovne, roman do kapsy, nic vic :-)

Kdyz se bavime o pdf se vsi paradou - poznamky, zvyrazneni, prepojeni tak prichazi ke slovu 10" a vic a poradny HW. Takze iPad az je potreba barevny displej, nebo Onyx Boox, Remarkable az je libo e-ink. A neco to i stoji, pocitejte s 400€ a vic.

Pdf ctecky 2022
mirec avatar 24.5.2022 08:32 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

PDF používam skôr výnimočne a nemôžem povedať, že by som mal vyslovene problém s čítaním PDF (vždy to ale záleží na typu dokumentu, v mojom prípade je to väčšinou nejaký LaTeX s obrovskými okrajmi, ktorý má po orezaní okrajov má dostatočne veľké písmo).

Tieto veľké čítačky čo ja viem ... mal som, čakal som, že naživo to bude reagovať rýchlejšie. Radšej mám menšiu čítačku, tých 6" Kindle pre mňa veľkosť e-inku. Ešte by som bol rád, keby vydali čítačku s minimálnymi okrajmi, aby sa bez problémov vošla do vrecka (teraz je to vo vrecku dosť veľká tehla kvôli okrajom).

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Bystroushaak avatar 27.5.2022 19:57 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Existuje k2pdfopt.
mirec avatar 28.5.2022 08:13 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Bystroushaak avatar 28.5.2022 16:19 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Cool. Já jsem koreader chvíli používal na svojí čtečce a bylo to docela fajn, akorát se mi při každém updatu nějak dojebe a musím ho instalovat znova.
28.5.2022 13:33 }|{
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Ta stranka byl ergonomicky a emocni zazitek. Dekuji. Jdu si dat neurol a diazepam...
xsubway avatar 29.5.2022 12:00 xsubway | skóre: 13 | blog: litera_scripta_manet
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
:-) to už se často nevidí :-) ale první verze je z roku 2010, skoro bych řekl, že auto má nějaké html, css, design, atd. někde :-)
Max avatar 24.5.2022 09:20 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Kdysi jsem to procházel, známý chtěl pro syna. Nakonec mi tenkrát vyšlo jako rozumný "PocketBook 631 Touch HD". Když jsem to viděl, tak nevím, zda bych se spokojil s něčím horším / levnějším.
Zdar Max
Měl jsem sen ... :(
Max avatar 24.5.2022 09:22 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Jinak dodám, že to pdf žralo myslím obstojně. Ale o tom to asi není. Dnes už snad vše lze sehnat v konkrétním formátě, ne?
Zdar Max
Měl jsem sen ... :(
24.5.2022 11:20 t@fu
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Od nich spise PocketBook 1040 inkpad X, i kdyz rychlosti se na Onyx ci Remarkable nechyta. Ale zas na pasivni cteni to poslouzi, na anotace spise nouzove.
Max avatar 24.5.2022 20:37 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Ano, řešil jsem to jen pro čtení, kvůli ničemu jinému.
Zdar Max
Měl jsem sen ... :(
24.5.2022 11:31 }|{
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
Wow koukam, ze nove e-inky jsou pekne rychle. V podstate se da koukat i na video! Viz tohle.
mirec avatar 24.5.2022 12:53 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Dovolím si trochu rýpnuť, alebo schladiť nádeje.

Že sú rýchle to je fajn, ale kontrast je sotva 1:10. Životnosť je údajne pri bežnej kancelárskej práci 3 roky. E-ink je viac-menej mechanický a pigmentové zrnká sa vo vnútri buniek pri aktualizácii pomaly opotrebujú.

Celkom zaujímavé sú inak aj reflexné LCD, napríklad táto farebná potvora. V exteriéri môže byť fajn, ale na bežnú prácu by som to nechcel.

Mimochodom E-ink odrazí cca 40%-60% svetla. Teoreticky maximálna hodnota u bežných LCD je 25% kvôli polarizačnému filtru (2x prechod filtrom s 50% stratou). Existujú však LCD displaye bez polarizačného filtra, ktoré odrazia 50% a viac svetla so spotrebou, pri ktorej sa dá display napájať niekoľko rokov z CR2032.

Budúcnosť reflexívnych monitorov si predstavujem skôr v nejakej technológii založenej na LCD. Pri čítačkách očakávam razantný nástup farebných e-inkov. Väčšina z nich je momentálne riešená ako čiernobiely e-ink s RGB filtrom, čo zníži množstvo odrazeného svetla na 1/3. Existuje aj alternatívna technológia, ktorá využíva viacfarebné pigmenty - AcEP. Výhodou je, že nedochádza k zníženiu odrazeného svetla, ale obnova trvá desiatky sekúnd. Najnovšej generácii stačí podstatne menej času (viditeľné na videu v čase 0:55).

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
24.5.2022 15:04 .:.
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Reflexivne displeje mas napr. v Garmin navigaciach, samozrejme ide o exterier. Cim viac svetla tym lepsie. No a v tme si zapnes podsvietenie. Ale ako monitor na pracu sa to na OLED nemoze chytat.
mirec avatar 24.5.2022 15:32 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Reflexívne displaye sú celkom bežné aj v smart hodinkách. Mám napríklad pebble (super čitateľnosť, sharp memory LCD), alebo amazfit bip (LPM013M126A).

Ako monitor na prácu je reflexný display blbosť, ale na notebooku by nemusel byť zlý pre ľudí, ktorí často pracujú v exteriéri. Zaujímavý bol variant LCD, ktorý používal rozklad svetla na miniatúrnom optickom hranole. Nechce sa mi nad tým teraz rozmýšľať, ale možno by sa to dalo využiť na dosiahnutie lepšieho odrazu než teoretická 1/3 toho, čo pustí polarizačný filter.

Paradoxne ja pracujem veľa v exteriéri a aj tak som si kúpil Thinkpad P14s gen 2 s CSOT MNE001EA1-5. Inak je to vynikajúci LCD s PWM na vysokej frekvencii vďaka čomu nebliká ako moja stará T420 so 120Hz PWM.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
24.5.2022 18:52 .:.
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Pracuje sa aj na hybridnych displejoch umoznujuce priepustny aj odrazovy mod v OLED aj TFT variante.
JiK avatar 24.5.2022 17:54 JiK | skóre: 13 | blog: Jirkoviny | Virginia
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
je nejaky minimalni a co nejvic bezbolestny zasah ktery umozni na kindlu cist epub format? nebo jak to resite, kdyz nekde najdete neco v epub, konverzi?
Jirka Cech
mirec avatar 24.5.2022 18:09 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Minimálny zásah je jailbreak, skopírovanie 2 adresárov s KOReaderom a spustenie.

Inak calibre má automatickú konverziu. Epub je HTML + CSS3, amazon v azw3 (kf8) používa HTML + CSS3. Konverzia je viac-menej prebalenie do iného kontajneru. Nepodpora epubu je skôr politické rozhodnutie amazonu než technický problém.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
25.5.2022 12:23 _
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
konverzi, je naprosto bezbolestna

jestli se k procesu vybrat/najit/stahnout/nahrat do ctecky prida jeste konverze, je v podstate jedno

je to jeden klik pripadne se to da uplne zautomatizovat
7.6.2022 16:23 Kooala
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Od zacatku mesice ho Kindle podporuje nativne.
mirec avatar 7.6.2022 16:49 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Fakt? Teda videl som veľa videí o tom, že vraj to podporuje, ale nikto neukázal reálne otvorený epub na kindli. Naopak niekde som čítal, že sa to týka len nejakej aplikácie od Amazonu, ktorá konvertuje epub, alebo že akceptujú epub pri zaslaní e-mailom. Rád by som vedel teda, či skutočne otvorí epub po nahraní súboru cez mass storage. Nemám nový kindle, len starú PW2 na ktorú už nevychádzajú aktualizácie, takže si to nemôžem zistiť sám.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 7.6.2022 18:20 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti

Podľa fóra ani nové verzie nepodporujú epub:

> I've sent ePubs using Amazon send-to-kindle service that convert them to docs (AZW2 ?) and without cover !
> is this the ePub support people talk about ?
Yes. Since the converted epub lands on your device as a PDOC, it does not have a cover. See multiple complaints in various threads about this behaviour.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 1.6.2022 06:44 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Odpovědět | Sbalit | Link | Blokovat | Admin
Příloha:

Malé doplnenie po dlhšom čase používania ...

Bystroushaak spomínal problémy s aktualizáciou. Skúsil som teda hodiť zip do /mnt/us a spustiť ./bin/koreader-ext.sh update_koreader. Samozrejme som predtým zabudol zálohovať, ale našťastie aktualizácia prebehla v poriadku. Za mňa zatiaľ dobré.

Ďalšia cool vlastnosť je, že viem čítačku spustiť na desktope a viem si pozrieť, či nejaký epub nie je rozbitý. Pár krát sa mi na kindli stalo, že som sa ani k čítaniu nedostal, pretože dokument bol po konverzii v calibre mierne rozbitý. KOReader má zároveň možnosť ignorovať štýly, takže aj v prípade rozbitého dokumentu (čo sa mi zatiaľ nestalo) je tu aká-taká šanca opraviť to bez počítača.

No a nakoniec ešte taká drobnosť. Pri článkoch mám rád dvojstĺpcový layout a krátke riadky. Celkom fajn funkcia (screenshot v prílohe).

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Bystroushaak avatar 1.6.2022 09:00 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: KOReader na čítačke Amazon Kindle - inštalácia, skúsenosti
Bystroushaak spomínal problémy s aktualizáciou.
Já jsem to možná napsal trochu nešťastně. Nemyslel jsem aktualizaci koreaderu, ale čtečky. Když vydá kobo aktualizaci, tak koreader přestane fungovat a musí se reinstalovat.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.