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:
- USB Network rozšíření pro Kindle
- Ovladače pro RNDIS Linux USB Ethernet
- Program pro ověření IP adresy
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
Komentáře (20)
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.
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.
Výborný článek, těším se na pokračování!
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 😉
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:-)
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;)
Jak tohle zprovoznit pod Windows 7? Ten inf to „nežere“
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
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 😉
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
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.
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… 🙂
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?
Ve Win 7 je to fakt na prd, ale lze přes (Tento) Počítač, pravé tl. na jednotce Kindlu, je volba.. 🙂 která funguje.
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.
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“ 🙂
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?
@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
Tak ted byly dva svatky, ale darecek se nekonal.. 🙁
Zdravím do diskuze. Na mé čtečce ke vší smůle nejde zapnout ladění USB ani síť. Mám zjevně nějaký obyčejný model Kindle SY69JL. Dá se nějak dostat i do této čtečky? Díky předem za jakoukoliv informaci ☺️