Jak vyvíjet pro Amazon Kindle – 1. Část: Kindle Linux

Kolega Jaromír si pro vás připravil seriál Jak vyvíjet pro Amazon Kindle.  Jelikož na Amazon Kindle kromě čtení knih se dají spouštět  i aplikace, pojďme se podívat, jak to funguje. Dnes se pokusíme krok za krokem dostat do Kindle Linuxu.

Kindle Development Kit

Amazon v rámci limited beta projektu již delší dobu umožňuje registraci vývojářů, kteří mají zájem o Kindle Development Kit (KDK) a slibuje, že vybraná část z nich obdrží KDK Rozhodování zda KDK obdržíte či nikoli se děje na základě popisu projektu, který specifikujete při vyplňování registrace.

Dle dostupných informací z různých technických českých i zahraničních fór a webů (např. http://www.ebookforum.cz, http://www.mobileread.com, http://forum.amazon-kindle.cz, http://www.slashgear.com, http://www.zdnet.com), která se vývoji na Kindle zabývají neznám nikoho, kdo by od Amazonu KDK projektu dostal odpověď, že byl vybrán a KDK obdržel. O to víc se komunity ohledně Kindlu snaží řešit vývoj neoficiální cestou.

Jak na to, si ukážeme v seriálu článků krok za krokem. Dopředu předesílám, budete potřebovat chuť experimentovat a nebát se zkoušet, hodit se budou znalosti OS Linux na uživatelské úrovni, trošku znalostí o sítích i znalosti o vývoji v Javě.

Pokusím se návody napsat tak, aby se i úplný laik neztratil a byl si schopen sám rozchodit přístup do Kindle Linuxu, nainstalovat si již přeložené aplikace a případně, aby se pokusil si i něco naprogramovat.

Upozornění

Chtěl bych předem upozornit, že veškeré úpravy, instalace a pokusy děláte s vlastním Kindlem na vlastní zodpovědnost a jste si vědomi případné možnosti ztráty záruky či poškození přístroje a za toto autor nebere žádnou zodpovědnost a veškeré případné opravy zařízení jsou jen vaším rizikem.

Pro vlastní funkčnost rozšíření USB Network rozšíření pro Kindle je třeba vypnout Wifi. Kindle by se pokoušel připojit se do sítě, kterou máte nastavenou a pokud by mu daný router či server přidělil IP adresu tak by docházelo ke konfliktu s adresou, kterou dostane přidělenu od virtuální síťové karty v rámci USB Network rozšíření, viz dále.

Co budete potřebovat stáhnout – přehled:

Jailbreak a rozšíření USB Network

Pro začátek budeme potřebovat do Kindle nainstalovat Jailbreak pro vaši verzi Kindlu. Návod jak na to přináší článek Souhrnný návod na vylepšení čtečky elektronických knih Amazon Kindle.

Pak budete potřebovat rošíření USB Network pro Kindle. Které stáhnete zde (soubor: kindle-usbnetwork-0.30.N.zip). Instalace je podobná jako v případě Jailbreaku či jakéhokoli jiného vylepšení Kindle.

Pro jednotlivé verze Kindle, instalujte vybraný balíček, dle následujícího přehledu:

  • K3 3G (US [B006]) – k3g
  • K3 WiFi ([B008]) – k3w
  • K3 3G (UK [B00A]) – k3gb

Balíček USB Network rozšíření je možné odinstalovat pomocí stejnojmenného souboru pro váš konkrétní typ Kindlu akorát s příponou uninstall.

USB Network rozšíření vám na Kindle nainstaluje složku usbnetwork, která je přístupná pokud Kindle připojíte přes USB a v ní lze nastavit např. automatické připojení Kindle v tomto režimu, tj. nikoli jako USB disk (ale o tom zas někdy jindy J).

Aktivace a deaktivace USB Network rozšíření na Kindle

Vezměte si Kindle, pokud jej nemáte připojený k počítači, připojte jej přes USB kabel. Kindle se připojí jako USB disk, dejte odpojit zařízení tak, aby se Kindle pouze nabíjel přes kabel, a vy jste s ním mohli manipulovat (číst knížky, psát příkazy, atp.). Přes Home tlačítko se přepněte do základní obrazovky. Z menu vyberte vyhledávání Menu->Search a zadejte následující příkaz ;debugOn (včetně středníku a dodržení velikosti písmen) a Enter (pozor klávesa Enter je ta s popisem zahnuté šipky pod klávesou Del vedle klávesy Sym.

To, že jste se přepnuli do ladícího režimu zkontrolujte pomocí příkazu ~help (včetně vlnovky na začátku). V případě správné instalace rozšíření USB-Network by se mělo po zadání tohoto příkazu zobrazit následující okno, viz otisk obrazovky:

Pro vlastní aktivaci USB Network funkčnosti zadejte příkaz ~usbNetwork (opět včetně vlnovky na začátku a dodržení velikosti písmen). Pokud máte Kindle připojený k počítači nebo jej připojíte, zobrazí se vám obrazovka s žádostí o instalaci ovladačů k novému USB zařízení.

Deaktivaci Kindle režimu USB Network provedete opět příkazem ~usbNetwork.

Ladící režim ukončíte zadáním příkazu ;debugOff (opět včetně středníku a dodržení velikosti písmen). Je dobré před zadáním příkazu ukončit veškerou činnost s Kindle, která je spojená s laděním (např. připojení do Linuxu).

Instalace ovladačů pro USB Network

Po zapnutí USB Network rozšíření se Kindle připojí k počítači jako úplně nové USB zařízení RNDIS/Ethernet Gadget.

Je potřeba pro něj nainstalovat ovladače, které je možné stáhnout zde (soubor linux.inf).

Postup instalace je pak následující (okno pro instalaci nového USB zařízení se zobrazuje standardně automaticky):

V prvním okně vyberte Instalace výběrem nebo z vlastního umístění a klikněte Next:

V dalším okně vyberte neprohledávat, vyberu ovladač k instalaci sám a klikněte Next:

V následujícím okně vyberte položku Network adapters a kliněte Next:

V následujícím okně klikněte Next, započne se instalace (animované kopírování ovladačů) a Windows vás může několikrát požádat, abyste potvrdili, že ovladač chcete i přesto, že není digitálně podepsaný a schválený, nainstalovat. Dejte povolit instalaci.

V posledním okně se zobrazí souhrn informací o nainstalovaném ovladači:

V tuto chvíli by měla být nova síťová karta (síťový adaptér) nainstalovaná.

Nastavení IP USB Network rozšířemí a ověření IP Kindle

Po nainstalování emulace sítě přes USB pomocí rozšíření USB Network je třeba virtuální síťovou kartu nastavit. Najdete ji mezi ostatními síťovými připojeními (ve Windows: Start -> Nastavení -> Síťová připojení):

Vyberte ji, poznáte ji podle jména zařízení (Linux USB Ethernet/RNDIS Gadget). A z kontextového menu (pravým tlačítkem myši) vyberte vlastnosti:

Vyberte z velkého boxu Internet Protokol (TCP/IP) a pomocí tlačítka vlastnosti:

Nastavte IP adresu na 192.168.2.1 (pokud vám adresa koliduje a máte ji například nastavenou jako výchozí IP routeru nebo serveru vyberte kteroukoli jinou z rozsahu 192.168.2.*, kromě 192.168.2.2), masku podsítě na 255.255.255.0, zbytek nechte prázdný. Potvrďte OK, další okno též OK.

Nyní nám zbývá pro jistotu si ověřit, že máme IP adresy pro síťovou kartu USB Network rozšíření a Kindle nastaveny správně. Pomůže nám např. program SoftPerfect Network Scanner, který se nemusí instalovat a má pouze cca 700 kB, který nám situaci pomůže ověřit:

Tedy pro nás zajímavá IP adresa Kindle, kterou budeme potřebovat dále je 192.168.2.2.

Připojení do Kindle Linuxu

Nyní máte zjištěnou adresu Kindle zařízení. Natavenou IP adresu síťové karty USB Network rozšíření. Tak se pojďme připojit do Kindle Linuxu. Spusťte si příkazový řádek (Windows: Start -> Spustit… -> zadáme: cmd a potvrdíme enter).

V příkazové řádce pak zkusíme ověřit, zda jsme IP adresu Kindle nastavili či zjistili správně, tedy zadáme příkaz ping <vaše IP adresa Kindle zařízení>, tedy: ping 192.168.2.2, zařízení by mělo odpovědět 4 pokusy o zaslání a příjem síťové komunikace:

Pokud je komunikace se zařízením v pořádku, pokusíme se přihlásit do Kindle Linuxu pomocí telnetu (telnte je stanradní současí instalace Windows, tedy není potřeba cokoli instalovat): telnet <vaše IP adresa Kindle zařízení>, tedy: telnet 192.168.2.2 a měla by se zobrazit následující obrazovka:

Gratulujeme, povedlo se vám přihlásit do Kindle Linuxu.

Pokud si chcete pohrát s Linuxem, doporučuji si na internetu vyhledat pár základních příkazů, ale těm se budeme věnovat příště, pro začátek můžete zkusit:

uname -a

Odpovědí vám bude verze Linuxu v Kindle, tedy něco takového:

Linux kindle 2.6.26-rt-lab126 #5 Sun Oct 10 13:46:42 PDT 2010 armv6l unknown

Linux opustíte příkazem exit. Doporučuji deaktivovat USB Network rozšíření příkazem ~usbNetwork a vypnout ladící režim pomocí ;debugOff [viz kapiotla Aktivace a deaktivace USB Network rozšíření na Kindle]. Kindle se opět připojí jak USB disk.

Co bude příště

Co s tím dále, najdete v dalším pokračování článku. Popíšeme si co kde v Kindle Linuxu najdete. Provedeme některá nastavení a nakopírování certifikátu určeného pro podepisování aplikací. Rozchodíme si na Kindle pár existujících aplikací a v dalších dílech si pak vytvoříme i aplikaci vlastní.

Autor článku: Jaromír Salamon

Jaromir Salamon

Tip na e-knihy

Komentáře 19 komentářů

Petr Napsal 20:38 / 1. 2. 2011

Jsem na ten návod moc zvědavý. S kamarádem jsme se pokoušeli zprovoznit projekt qindle (tedy portovat QT pro kindle), ale nepodařilo se nám ho korektně překompilovat. Zasekli jsme se na knihovnách dbus.

Jediné co se nám povedlo rozjet byl překlad commandline aplikací a kamarád úspěšně přeložil Midnight Commander pro kindle.

Jaromir Salamon Napsal 23:04 / 1. 2. 2011

O MC se musím taky pokusit, docela mi v Kindle Linuxu chyběl :-).

Kdyžtak prosím o zpětnou vazbu, kdyby něco nechodilo, jak je popsáno, abych to mohl zkusit prozkoumat a napravit, ale doufám, že když jsem ten návod zkoušel cca 20x, tak bude v pořádku.

OtikM Napsal 07:53 / 2. 2. 2011

Výborný článek, těším se na pokračování!

Luk Napsal 10:07 / 2. 2. 2011

Skvělý, že se do Kindlu pouštějí vývojáří. Snad vzniknou zajímavé aplikace. Těším se na pokračování a držím palce.

Petr: pokud by bylo možné, bylo by fajn pokud na foru napíšeš jak na MC 😉

Petr Napsal 21:52 / 2. 2. 2011

Ok, hodíme to do fóra. Princip byl ten, že jsme si stáhli linuxovou distribuci debian pro platformu ARM a na té to přeložili:-)

Petr Napsal 22:05 / 2. 2. 2011

Tak ten Midnight Commander naleznete zde:

http://www.mobileread.com/forums/showthread.php?p=1239193#post1239193

Také je zde Ajax Term, tedy terminál v internetovém prohlížeči;)

elka_cz Napsal 16:34 / 3. 2. 2011

Jak tohle zprovoznit pod Windows 7? Ten inf to „nežere“

jipech Napsal 05:51 / 4. 2. 2011

Netušíte někdo, co mohu dělat špatně? USB Network zdá se mám nainstalovaný (když dám ~help objeví se), ale když pak Kindle připojím (jak v XP tak v 7), přihlásí se mi jen jako USB zařízení. Děkuji

jipech Napsal 11:04 / 4. 2. 2011

Odpovím si sám. Pomohlo odinstalovat a znovu nainstalovat USB Network. Je možné, že byl problém s tím, že jsem USB Network instaloval již dříve a mezitím jsem přístroj počešťoval atd.
Pro Elka_CZ: Zkontroluj si, jestli stažený soubor nemá skrytou příponu txt. To jest, zde je to opravdu linux.inf a ne linux.inf.txt. Taky jsem s tím asi pět minut bojoval 😉

jipech Napsal 11:08 / 4. 2. 2011

Pro Linuxáře. Připojení v Linuxu jest velmi snadné (jak jsem zjistil). Po připojení Kindle (s nahozeným usbNetwork) si pomocí dmesg ověřite, že se Kindle představil (usbcore: registered new interface driver cdc_ether). Pak nahodíte síť ifconfig usb0 192.168.2.100 (možná jako root nebo přes sudo). No a už stačí napsat telnet 192.168.2.2 a jste tam. Před odpojením Kindlu je dobré síť shodit ifconfig usb0 down

David Napsal 16:29 / 7. 2. 2011

Na celé věci není ani tak zajímavé připojení přes USB network (v Linuxu bez problému), to je jen mezikrok k tomu hlavnímu: ssh přístup přes wi-fi !
A to včetně scp/sftp. Automaticky hned po zapnutí wi-fi, bez nutnosti zadávat příkazy na pidiklávesnici.
Žádné připojování kabelem, stačí jen přes síť nakopírovat soubory a na Kindlu provést rescan pomocí launchpadu.

Jaromir Salamon Napsal 11:58 / 8. 2. 2011

Davide, to je další z mých plánů napsat návod na SSH přes wifi :-). Ono totiž se plácat přes telnet namísto SFTP je na houby a ano zadávání příkazů na klávesnici mne taky irituje. Akorát kdyby bylo víc času to pěkně sepsat… 🙂

Xlendi Napsal 19:00 / 16. 2. 2011

Tak mám poměrně triviální problém. Pod Win7 nejsem schopen „eject“ Kindle tak, aby se dal použít. Počítače (oba, co mám doma) se tváří, že byl Kindle visunut, ale na Kindle je pořád obrazovka s nabíjením. Pamatuju si, že v práci jsem jednou potřeboval zároveň nabíjet a číst a tam to pod Win XP šlo bez problémů. Máte někdo nápad?

ROlda Napsal 21:48 / 27. 2. 2011

Ve Win 7 je to fakt na prd, ale lze přes (Tento) Počítač, pravé tl. na jednotce Kindlu, je volba.. 🙂 která funguje.

ROlda Napsal 14:52 / 1. 3. 2011

Kdy se můžeme těšit na 2. díl? Už se moc těším na ssh přístup přes wi-fi (vč. sftp) i Midnight Commander, R.

Honza Napsal 12:56 / 2. 3. 2011

Návod na SFTP je zveřejněný zde
http://forum.amazon-kindle.cz/prenos-souboru-pres-sftp-t230.html
Jenom ho bude asi třeba trochu „učesat“ 🙂

G.T. Napsal 22:21 / 9. 4. 2011

Vypadá, že 2. dílu se nedočkáme … mohl by někdo vytvořit návod jak nakopírovat certifikát určený pro podepisování aplikací do kindlu?

siris Napsal 09:52 / 11. 4. 2011

@G.T. druhý díl mám 2 měsíce napsaný, ale nepovedlo se mi zatím podepsat aplikaci tak, aby skutečně fungovala a od té doby jsem se k tomu nedostal. Takže se k tomu co nejdřív vrátím a článek publikuju. Pokud vydržíte, pokusím se o to ještě tento týden.

Jaromír

ROlda Napsal 19:52 / 10. 5. 2011

Tak ted byly dva svatky, ale darecek se nekonal.. 🙁

Přidejte nový komentář:

Položky ve formuláři označené * jsou povinné