2024. június 27., csütörtök

Gyorskeresés

ZTE Blade USB hoszt mód

Írta: | Kulcsszavak: zte blade . usb host . otg

[ ÚJ BEJEGYZÉS ]

Nagyon sokan kérdezték tőlem, hogyan sikerült a ZTE Blade androidos késlékl az USB host módot engedélyeznem, ert közzéteszem ezt a személyes bejegyzést.

FONTOS! Ezen bejegyzés (NEM pedig cikk) elsősorban hozzáérknek ajánlott!
FONTOS! Az USB host mód egy erősen kísérleti mod! Ha aktiválva van, nem csatlakoztatható a mobil PC-hez!
FONTOS! Ha az USB host mód aktiválva van, akkor nem lehet erni a mobilt ADB-n és az SD kártya sem erhető PC-ről!
FONTOS! Bármilyen módosítás ett késtsünk rendszerünkről teljes backupot!
FONTOS! Aködésért, esetleges károkért (pl. téglásodás) NEM vállalok semmiféle felelősséget, csak sat felelősségre!
FONTOS! A témához NEM nyújtok semmiféle támogatást!

Kettő (!) USB billentyűzet és egy USB er egyszerre (!) csatlakozik egy Blade-hez

Az alábbiakban találhatjátok a proof-of-concept videót:

http://www.youtube.com/watch?v=B1ydScM0sXU

A következő bekezdésben a témában kesbé jártasaknak vázolnám az alapvető ismereteket.

FYI: a Blade (mint a többi androidos késlék) alapesetben kliens (slave) módban csatlakozik a számítógép USB host (master, szerver) vezérlőjéhez. A Blade SoC-a (System on Chip, típusa: Qualcomm MSM7227) hardverileg támogatja a host módú működést is (értsd: a mobil is viselkedhet USB hostként, mint egy PC, így USB periférkat csatlakoztathatunk hozzá, ha adott a szoftveres támogatás). A szoftveres támogatás alatt a megfelelő (USB host enabled/engedélyezett) Linux kernel, kernelmodulok és megosztott függvénykönyvtárak memóriába (illetve a NAND megfelelő könyvtáraiba) való betölsét (illetve felmásolását, erhetővé tétet) értem. Visszatérve a hardverhez: Az USB hosthoz a Blade esetében mindenképpen skséges egy speciális, Y-alakú USB-kábel (mivel a mobil USB host vezérlője nem biztos hogy szolgáltat a periférknak elegendő áramot). Ezt könnyen elkésthetjük, boltban azonban nehéz beszerezni (a leírását lásd lentebb).

Milyen USB periférk csatlakoztathatók?
- billentyűzet (a legtöbb vezetéklküli billentyűzet, er NEM működik!)
- er
- pendrive, külső merevlemez SATA/IDE-USB átalakítóval és extra árambetáplálással (elvileg működik, gyakorlatilag nekem nem sikerült működésre bírni), másik, kliens módban működő Blade :) , digitális fényképezőgép, egyéb USB Mass Storage osztályú USB eszköz
- botkormány
- gamepad
- speciális eszközzel (pl. DisplayLink): monitor (DVI), hangszóró, Ethernet, TV (HDMI), DVB-T adapter

A következő négy pontban összefoglalnám, mi skséges az USB host mód aktiválásához:

1. Operációs rendszer és firmware Egyelőre csak Android 2.1 rendszeren működik a Blade esetében az USB host. Tet skséges egy rootolt 2.1-es Android. A modhoz Gen1-es firmware kell (a firmware generációkról lásd a személyes bejegyzést a Logout blogomban).
2. Megfelelő kernel Skséges lecserélni a boot partíció tartalmát Sven Killig boot.img lemezképére. Ez tartalmazza a (csak!) host módban működő kernelt. FIGYELEM! Ekkor kliens (slave) módban NEM fog működni a mobil! Ez azt jelenti, hogy pl. nem tudod pendriveként csatlakoztatni az SD-jét egy PC-hez. Megjegyzés: kettő USB host módú eszköz összekötéséhez speciális, elektronikával (mikrokontrollerrel) rendelkező USB-kábel + szoftveres támogatás skséges.
A téma szakértőinek: az USB host enabled kernel config fájljában fordítás ett engedélyezték az USB host módot, illetve esetlegesen belefordítottak néhány abszolút skséges modult. Mivel a kernel mérete gzippelve kisebb kell hogy legyen mint 3-4 MB a platform satosságai miatt, ert az ilyen modulok száma minimalizált. Ert van skség a következő pontban említett kernelmodulokra.
3. Kernelmodulok Ezután bebootolod az új kernellel a 2.1-es rendszert, majd terminál emulátorból (rootként) a kernelhez csatolsz kernelmodulokat (*.ko fájlok, ~ driverek a csatlakoztatandó USB periférkhoz: billentyűzet (igen, ahhoz is kell driver), er, pendrive, akár hangkártya, monitor, Ethernet-kártya stb. ; az utóbbi 3-4 periféria a Blade-nél nincs megfelelően implementálva -- értsd: elvileg működhetne, DE nincs meg a megfelelő szoftveres hátr aködéshez, így NEMködik). A kernelhez csatolást az insmod paranccsal lehet megtenni. A kernel objectek (innen a ko kiterjesztés) felfoghatók shared objectekként is (megosztott objektumfájlok, bináris (lefordított) függvénykönyvtárak, a windowsos terminológiában ilyenek a Dynamic Linking Library-k, azaz a dll fájlok.) A billentyűzet, erellyel működni fog, pendrive-ot nem sikerült mountolnom. A ko fájlokon túl skséges egyéb függvénykönyvtárak bemásolása is, általában a /system/lib/modules helyre (ezek shared object fájlok, a periférk kezeléséhez skséges speciális rutinokat tartalmazzák).
A futási időben a kernelkódhoz csatolt kernelmodulokat minden indításl csatlakoztatni kell: ert célszerű egy indításkor lefutó parancsfájlba (a /system/etc/init.d/ könyvtárba) ezt beírni. A system partíciót az írása ett rw opcióval remountoljuk.
4. Speciális Y-alakú kábel FYI: Y-alakú kábel: olyan különleges USB-kábel, aminek mindkét végén female USB-csatlakozó van, és erre rá van kötve egy male USB-dugó, DE csak elektromosan (tet csak a két slkábel csatlakozik). Az egyik USB-csatlakozóra kell kötni az USB perifért, asikra a mobilt a sat USB-kábelével, az Y-alakú kábel USB-dugóját pedig USB-s áramforráshoz (pl. a telefon töltőjéhez) kell csatlakoztatni.
Az Y-alakú elosztó kábelt egyszerre skséges csatlakoztatni a töltőhöz, a Blade-hez és az USB perifériához. Ha mindent jól csináll pl. egy USB billentyűzettel lehet vezérelni a mobilt. Az USB-s er is működik (de nincs kurzor, az er mozgatáskor nyílbillentyűk bináris karakterkódjait küldi, nincs kurzor implementálva). Ezekből akár többet is egyidőben a Blade-re csatlakoztathatsz, de nem szabad megfeledkezni a megfelelő árambetáplálásról! Már egy billentyűzetnél is skséges extra árambetáplálásrtsd: csatlakoztatott töltő), több eszköznél esetleg powered hub.

A fentebb említett boot.img, *.ko, és esetlegesen egyéb *.so fájlokat (függvénykönyvtárak) leltheted a következő weblapról (az img, ko, so kiterjesztésű fájlok lefordított binárisok, esetünkben ARM architektúrára (armeabi, armel), figyelembe véve a Blade jellegzetességeit):

http://sven.killig.de/android/Blade/usb_host/

Sven Killig esr Nexus One-ra csinálta meg az USB host mód aktiválását. Ajánlott mind a Nexus One, mind a Blade host mód leírásainak tanulmányozása. Ezeket megtalálhatók a fenti címen. Terszetesen a Blade esetében csak a Blade-hez közétett fájlokat szabad használni.

Újabb kernelhez (így 2.1-nél újabb Androidhoz) sajnos nem tudok semmilyen megoldást. Nyilván rom-ba nincs sok értelme USB host módot integrálni, mivel alapesetben ekkor csak hostként működik az eszköz. Az USB OTG (On-the-Go, dinamikus, hw-es váls a host/client módok között) rom-ba integrálásnak viszont több értelme lenne, azonban tudomásom szerint ez Blade-nél nincs megfelelően implementálva (bár a SoC minden bizonnyal támogatja).

A téma szakértőinek: Sven Killig honlapjáról lelthetők a kernel objectek forráskódjai (C és header fájlok), továbbá a kernel patchei is. Az eredeti 2.6.29-es Linux kernel forráskódja lelthető a gyártó honlapjáról. A megfelelő boot.img összeáltásához skség van további scriptekre is. Az USB-s beviteli eszközök közül kizárólag az ehci-hcd modulra támaszkodókködnek. Ert nem működnek a kizárólag HID protokollt használó, többségében vezetéklküli billentyűzetek/egerek.
Sat boot.img fordításához a ramdiszket egy szintén 2.6.29-es kernelt tartalmazó boot.img fájlunkból kicsomagolhatjuk. A kernelkód címe a boot.img-ben: 0x03000000.

Hozzászólások

(#1) DarkL95


DarkL95
újonc

Szia! Nem tudod esetleg, hogy mikor jelenik meg GEN2 -es változatban? :U (cm 7.1/andro. 2.3.7 nightly)

(#2) Kori_27


Kori_27
csendes tag

Helló!
Utána olvastam a témának, és már létezik CyanogenMod-ra is, természetesen GEN2, a 2.6.32.9 verziójú kernel módosulata, ami mindkét módot támogatja. Ha egy gnd-re kacsolt ID pinnel rendelkező OTG kábelt kötünk a Blade-re, reboot után host, ha simát, reboot után slave (persze ha 2x egymás után azonosat kötünk rá, nincs reboot :D ) Na most az lenne a kérdésem, hogy esetleg nem tud-e valaki kernel-t módosítani, ugyanis azóta kijött a CM 7.1.0 stabil verzió, immár 2.6.35.7pref+ kernellel, és jó lenne, ha erre is létezne egy stabil, kiforrt kernel. Ugyanis nekem a t0mm13b féle újabb kernel sem müxik, és mivek annak a topicja meghalt, nem tudtam segítséget kérni... Ezért gondoltam rád/rátok, hátha vki egy kis szemrevételezés után hozzá tudna szólni. Esetleg külön instmoddal kell betölteni a modulokat itt is? Egyébként ha valaki bevállalná a kernelfejlesztést, esetleg beavatna annak rejtélyeibe, szívesen csatakozok a témához, le is tesztelem a kerneleket, ha valaki tud segíteni moddolásban, nagyon megköszönöm.
[Link a kernelhez]
-->Itt két fájlt találtok, a fejlesztő szerint mindkettőt installálni kell. Valaki ötlet, mit rontok el?

Android4ever, Blade a király!!! :DD

[ Szerkesztve ]

“Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja.” (Albert Einstein)

(#3) DarkL95


DarkL95
újonc

Köszönömm :R :R :R :R :R :R :R :R :R
És ja a Blade a király :DD

(#4) kmisi99


kmisi99
addikt

Ne már erre a telefonra minden van kár hogy eladtam az LG optimus 2x emre meg van kb semmi.

(#5) DarkL95


DarkL95
újonc

Ja ha nem települ fel, akkor próbáld meg úgy, hogy előtte dalvik catch wipe, ha feltelepítetted, akkor utána is nyomsz egyet! De megpróbálom én is!

(#6) DarkL95


DarkL95
újonc

Basszus most nézem, hogy az én kernelem jóval újabb mint ez...Azért megpróbáltam elindítani, de leállt az android figuránál, így visszaraktam a régi kernelt... Amúgy ha megáll a rendszerbetöltés az android figuránál (vagyis még bekapcsol) akkor biztos, hogy nincs elcseszve a teló!!! (tapasztaltam párszor :DD )

(#7) Kori_27


Kori_27
csendes tag

Tudom, nem a legújabb kernel, de csak ezt találtam... :( Nightly 175tel most tesztelgetem de nem akar nagyon működni, arra gondolok, talán instmod-dal terminal emulatorból külön be kéne rakni a modokat recovery-s telepítés után??? Valaki hozzáértő help plíííz :D Ja, és még egy hozzáértő emberkét is szeretnék megkérdezni, hogy nem lehetne-e rebuid-elni a legújabb 2.6.35.7-pref+ -os kernelt az ebből a kernelből kiszedett otg moddal? vagy vhogy belerakni a régebbi alapján? (sry ha hülyeséget mondok, fogggggalmam sincs mi van egy kernelben :DD )

“Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja.” (Albert Einstein)

(#8) Kori_27 válasza DarkL95 (#6) üzenetére


Kori_27
csendes tag

ja, akk még menthető :D. Ha a piros led elalszik, nyugivan... legvégső esetben is ott a bootloader. meg am ha a recoveryhez nem nyúlsz sosem cseszed el, még ha nincs is rajt rom, betölti a recoveryt.
Viszont én azon gondolkodtam, hogy ezek a bladecskék nem ROMostul potyognak ám le a gyártósorról, bizony fel kell flashelni őket, úgy, hogy totál semmi nincs rajtuk. Erre szolgálnak a hátulján a sim kártya mellett a lyukakban a kis réz pöttyöcskék. Valami olyasmi lehet, mint a régi nokiáknál az MBUS/FBUS kábel, amivel bootanim-ot is lehet cserélni meg flashelni meg minden, csak ott az akku alatt volt ilyen flasher csati (nézzétek csak meg, akár bladen, akár nokián, téglafonja úgyis van mindenkinek :D) Szóval egy szétbontott pengében meg kéne nézni a lábkiosztását a flasher portnak, meg kitalálni, milyen protokollt használ, mert így az el-TPT-zett darabok is menthetők lennének egy egyszerű hommade kábellel. Tapasztaltabbak hozzászólásait várom, esetleg, ha lesz pár érdeklődő, megér sztem egy új topicot is. Sok halott pengét lehetne így megmenteni, jó lenne, ha tudna vki segíteni.
Alább bemutatom amit eddig tudok ezen csatlakozók kivezetéséről.

Ez a kép a SIM-kártya tartóját , és a felette lévő négy pöttyöt illusztrálja, a vonalak mutatják melyik hova csatlakozik:

.*. * .* .*
..| ..\ ..\ .\
..{} .{} .{} .|
............./
..{}. {} .{}

Az akku feletti hatos csati, itt csak a tápellátást találtam, a többi gondolom a belső elektronikával van kapcsolatban.
* *
* * '''''''' USB +5Volt
* * '''''''' GND

USB melletti kettes csati:

* *
|.. \
D- D+ (USB data kivezetése)

UI: a pici pontok képeken csak helykitöltő szerepet szolgálnak (a sok spacet magától törli) ez ne zavarjon meg bennteket.

[ Szerkesztve ]

“Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja.” (Albert Einstein)

(#9) DarkL95


DarkL95
újonc

Egész jó ötlet!! (Nem is tudtam, hogy a SIM kártya alól is ki lehet nyerni áramot :D:D)
Ha nem nagy baj, nem a Pengén fogom tesztelgetni :DD , inkább (ahogy írtad) egy régi Nokiával :C

(#10) Kori_27


Kori_27
csendes tag

Nem pont az áramra gondoltam, mivel azt csak akkor tudsz szedni róla, ha USBre van kötve. Nekem az áram betáplálás jutott eszembe, hogy a hátlapba süllyesztek egy nagyon vékony, egy rétegű tekercset, és azt, ha a hátlap rajta van, ott vezetem bele. ha az asztallapba szontén egy nagyobb, vasmagos tekercset süllyesztek, lám máris megvan a vezeték nélküli töltő( csak leteszed és kész :D) no azért egy 5Volt stabilizátor nem árt... Na meg persze a téglaflashelés...

Háth igen, a fejlesztés drága. Esetleg ha olcsón hozzá tudnék jutni egy full téglás pengéhez, akk talán szórakoznék vele. Meg alapból a garisat nem szedem szét (most moddolom vissza Tmobosra, megy vissza hangszóró miatt :((( )

Amúgy megvan a kernel hibája, az a rohadt töltő csinált belőlem bolondot ;]
Ha fali töltőt érzékel, esze ágában sincs megnézni az USBt. Gépről adtam neki 5 voltot, máris észrevette a PEN-t, de most meg config fájlt hiányol, úgyhogy nem igazán vagyok előbbre, de így legaláb van egy kis pislákoló fényecske az alagútban (remélem a végén :D), amin el tudok indulni :C
Sokan nem igazán foglalkoznak vele, csak kísérleti szinten, mivel (ezek szerint xD) csak nekem jutott eszembe, hogy egy 9voltos elem egy fél amperes 5 voltos stabilizátorral simán elvisz PENt, billentyűzetet, egeret, nem kell konnektor. Így, ahogy a neve is mondja, tényleg on the go (úton is használható) :D Csak mindenki eldobja az ötletet, mert otthon úgy is van gép, minek konnektorról szarakodni.
Ha lesz érdemi eredmény, mindenképp kiírom.

Egyébként rá kell jönnöm, hogy a kici cuki occó kinai kisz telefon bizony milliónyi lehetőséget rejt, hihetetlen, mi van benne az árához képest. Ennyire moddolható teló kevés van ilyen árban... leginkább 1 xD ami a blade. USBn keresztül gyakorlatilag bármi megvalósítható, hisz driver van... Akár még, persze az is idő meg modding éjjelnappal :D, 480*800 HDMI kimenetet is lehetne belőle fabrikálni, ami azért nem lenne rossz. Na tessék, itt a végcél, jöhetnek az ősz hajszálak :))

[ Szerkesztve ]

“Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja.” (Albert Einstein)

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.