2012. április 4., szerda

Compile: tun.ko modul

Folytatva a tegnap elkezdett - nevezzük sorozatnak -, tovább mélyedtem a C660 Cyanogenmod rejtelmeibe. Hirtelen ötlettől vezérelve - és mert nem találtam más használható megoldást - fordítottam egy kernel modult.
Előzetesként annyit, hogy szerettem volna vpnc klienst használni (VPNC Widget), de tun.ko kernel modul hiányában nem tudtam életre kelteni. Kutatásaim során eljutottam a tun.ko installer applikációhoz, ami arra hivatott, hogy telepítse, illetve betöltse a megfelelő modult a telefonhoz. A weboldal szerint támogatva van a Cyanogenmod-ot futtató C660 is. Természetesen ez a megoldás nem működött, ugyanis a letöltött modul kernel pánikot okozott és minden egyes vpn indításkor újraindította a telefont.
Ekkor jött az ötlet, hogy mi lenne ha megpróbálnék fordítani egy saját tun.ko modult.

Ami kell hozzá:

- Linux (én ezt használom, de működhet Windows-on is) - Ubuntu 10.04 LTS
- Az LG specifikus CM kernel forrása
- Code Sourcery ARM EABI Toolchain
- Egy erős gép vagy sok türelem :-)

1. Szerezzünk egy kernel forrást. A fent hivatkozott link-en található az LG specifikus CM kernel Git repository-ja. Egyszerűen kattintsunk Downloads linkre és töltsük le forrást (~100MB)

2. Telepítsük az arm C++ fordítót. Letöltve a .bin kiterjesztésű linux-os telepítőt, majd ezt elindítva tehetjük meg. Fordítás előtt még szükséges beállítani a compiler-t:

export CCOMPILER=[extraction directory]/bin/arm-none-eabi-

3. Lépjünk be a kernel forrás root könyvtárába:

cd ~/Fejlesztés/android/kernel/CyanogenMod-lge-kernel-msm7x27-40c44bb

4. Kell szereznünk egy megfelelő config-ot amit legegyszerűbben az éppen futó telefonról tehetjük meg:

adb pull /proc/config.gz /home/user_name/android/kernel/cm-kernel/config.gz
zcat config.gz > .config

5. Most már minden készen áll arra, hogy konfiguráljuk a kernel forrását:

 make ARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig

Ha ennél a pontnál hibaüzenetet kapunk, valószínűleg nincsenek telepítve a fejlesztéshez szükséges csomagok. Tehát:

sudo apt-get install build-essential libncurses5-dev

6. Innentől olyan mintha egy akármilyen linux kernelét konfigurálnánk.
Device drivers --> Network device support --> Universal TUN/TAP device driver support
Itt nyomjunk egy 'M'-et, hogy modulként készítse el a fordító. Ha ezzel megvagyunk exit és save configuration.

7. A kernel fordítása:

make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`

8. Ha hiba nélkül lefut, akkor a kész tun.ko modult a kernel-source-dir/drivers/net könyvtárban találjuk.


A modul telepítése:

adb push tun.ko /sdcard
mount -w -o remount /system
cp /sdcard/tun.ko /system/lib/modules/
mount -r -o remount /system

Reboot után élvezhetjük a friss, ropogós tun.ko modult. :-)

2012. április 3., kedd

LG Optimus Pro - Magyar fizikai billenytűzet kiszotás CM alatt.

Megvettem életem első (na jó második, ha az Xperia X10 Mini Pro-t is számolom) full querty billentyűzetes Androidos telefonját.
Természetesen a gyári ROM-nak vannak hiányosságai. Például az egyik legidegesítőbb, hogy 10 percenként feldob egy ablakot, hogy "Kevés a rendszermemória".
Mivel nagy CyanogenMod rajongó vagyok, feltettem a legfrissebb CM 7.2RC1-et ami a C660-ra készült. Vannak hiányosságai, de használható, stabil és jobban kihasználja a rendelkezésre álló kevés memóriát.
A legfontosabb "hiba" amit javítottam a fizikai billentyűzet kiosztása, ami alapból angol querty.

A következőt csináltam:
- Fogtam a nandroid backup-ot amit az eredeti LG ROM-ról csináltam és kimásoltam az system.img-ből a következő fájlokat: kbd_pp2106.kcm.bin és kbd_pp2106.kl. Az előbbi a key kódokat, míg az utóbbi a tényleges kiosztást tartalmazza.
- Biztonsági mentést csináltam a meglévő fájlokról és "telepítettem" az új magyar kiosztást tartalmazó fájlokat.
mount -w -o remount /system (hogy tudjunk írni a ROM-ba)
cd /system/usr/keychars/
cp kbd_pp2106.kcm.bin kbd_pp2106.kcm.bin.orig
cp /az_uj_fileok_helye/kbd_pp2106.kcm .
cd /system/usr/keylayout/
cp kbd_pp2106.kl kbd_pp2106.kl.orig
cp /az_uj_fileok_helye/kbd_pp2106.kl .

- Reboot után máris élvezhetjük a rendesen működő magyar kiosztású fizikai billentyűzetet.

A fájlok elérhetők itt.

2010. április 24., szombat

Breakfast, Lunch, Dinner

A mai nap is úgy telt mint a többi. Felkeltem reggel, beszéltem a családdal - mert ugye ilyenkor lehet "emberi időben" elérni a családot - majd lementem elfogyasztani a szokásos "continental breakfast" reggelit. Ez nem más mint pirítós kenyér vajjal és jam-el, kis kör alakú - talán kukoricás - félbevágott zsömléhez hasonló pékárú sajtkrémmel, valamint gyümölcssaláta mindenféle jófajta déligyümölccsel. Megmondom őszintén, hogy ez a fajta reggeli arra jó, ha az ember egy-két éjszakát tölt a hotelban, azonban az ötödik nap után kicsit kezd megcsömörleni tőle az ember. De sebaj, marad a jól bevált kész szendvics a Walmart-ból $2.98-ért. Ma is találtam egy "olasz mix"-et, ami úgy néz ki, hogy egy hosszában félbevágott hotdog-kifli, benne centi vastag olasz felvágott, sajt és saláta. Nem túl fantáziadús, de éhhalál és kóros pénztárcasoványság ellen tökéletes, hiszen két vacsorát kitesz.
Ebédre van jól bejáratott "homestyle chicken & shells". Mikor először ettem, a biztonság kedvéért megkérdeztem, hogy a shells ugye a tésztát jelenti a levesben, ugyanis irtózom mindenféle tengeri herkentyűtől. Mikor kihozták a levest, kellemes meglepetéssel nyugtáztam, hogy kísértetiesen hasonlít édesanyám húslevesére, azzal a különbséggel, hogy itt sós kekszet adnak mellé, nem kenyeret. "B terv" gyanánt kapható még cézár saláta, ami akkora adag $9-ért, hogy alig bírja megenni az ember, valamint fej nagyságú "hyatt place charburger", fél kiló chips-el, amit ha megeszik az ember, garantáltan nem kell ennie vacsorát.
Mindezeken felül, az Amerikában ragadt hazánk fiának túlélőkészletéből nem hiányozhat a Nutri-Grain elnevezésű, mennyei ízű csemege, mely a Target-ben $2.50-ért kapható, csak most!

2010. április 23., péntek

Seattle's Best

Üdvözlet kedves olvasó.

Ha ezeket a sorokat olvasod, az azt jelenti, hogy végre blog írására adtam a fejem.
A sors úgy hozta, hogy két üzleti út között sikeresen kinnt ragadtam az Egyesült Államokban. Múlt vasárnap mentem volna haza kis családomhoz, de az Izlandi, kimondhatatlan nevű Eyjafjallajökull vulkán keresztül húzta a számításaimat. Jelenleg Minnesota államban, Minneapolisban tengetem a napjaimat egy reptérhez közeli hotelban. Mindig is szerettem volna több idő tölteni a "szabadság földjén", a filmekből jól ismert Amerikában. Most végre van időm közelebbről is szemügyre venni az itteni életet.
Ha az ember több időt tölt itt, rájön, hogy sok mindent másképp csinálnak. Sokkal ésszerűbben és logikusabban mint Európában. Lássunk egy példát: a kávé. Ízléses papírpohárban, "utazós" tetővel és egy kis darab kartonpapírral, amit a pohárra húzva nem égeti szét a kezünket a felforrósodott pohár.



A hotel a reptér mellett van, ami azt eredményezi, hogy a leszálló gépek az ember feje felett két emelet magasan húznak el. A repülő elhaladtával az ember még hallja a hajtóművek által megperzselt levegő zaját...