49
 Linux på en Windows-PDA Christer Weinigel Weinigel Ingenjörsbyrå AB

Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Linux på en Windows-PDA

Christer WeinigelWeinigel Ingenjörsbyrå AB

Page 2: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Vill ha en Linux-PDA

● Vad finns det att välja på?– Gamla HP Ipaq– Sharp Zaurus

● Ingen går att köpa längre.

Page 3: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Windows CE-PDA?

● Många att välja på

● Hitta en som borde gå att få in Linux på– Dokumentation– Linux-stöd– Vettig design– Billig

Page 4: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Processor

● De flesta kör ARM

● Intel StrongARM/XScale– Vanligast

● Texas Instruments OMAP– Mobiltelefoner

● Samsung

Page 5: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Acer n30

● Samsung S3C2410● TFT-skärm 320x200● Bluetooth● USB device och host

– Utbyggbarhet

Page 6: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Acer n30

● Det mesta är inbyggt i processorn– LCD– Touch– USB Host/Device– 3 Serieportar– SD/MMC– Ljud

● Det enda som saknas är Bluetooth

Page 7: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Samsung S3C2410

● Finns redan en Linux-port till processorn– HP Ipaq H1940

● Dokumentation finns på Samsungs WWW– Processorspecifikationer– Referensdesign– Application Notes– Exempelkod

Page 8: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Acer n30 + Linux = sant?

Det finns en sportslig chans att lyckas

Page 9: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Acer n30

● Köpte ett GPS-paket● Liten och söt● Testar med Windows CE

– Microsoft är bra på att göra patiens-spel– Stödet för USB Host i Windows CE är uselt

● Kass GPS-mjukvara

Page 10: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Bilder

● Bilder på hårdvaran– IMG_0934.jpg– IMG_0939.jpg

Page 11: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Inuti Acer n30

● Skruva isär och identifiera komponenter– Kristall 12.000– Processor: Samsung S3C2410– RAM: 2x Samsung 32MiByte SDRAM – Flash: Samsung 32MiByte NAND-flash– Ljud-codec: Philips UDA1380– RS232: Texas MA3243C

Page 12: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Inuti Acer n30

● Okända komponenter– TFT: Maxmega TD035STEB1– Bluetooth? Samsung BTTZ0902SA

● Kontaktkudde mot metall, förmodligen radio● Broadcom har liknande kretsar och samarbetar

med Samsung

– Microcontroller: Texas MSP430 1111A● Finns dokumentation på kretsen● Mjukvaran kan vara precis vad som helst

Page 13: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

JTAG

● JTAG är en standard för “in circuit testing”● Kan användas för debugging● Kan styra alla I/O-pinnar● JTAG för Microcontroller

– Mät på pinnarna och jämför med databladet

● JTAG för processor– Svårt att mäta på en BGA, men det verkar

sannolikt

Page 14: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Undersök Windows CE

● CMD.exe och telnetd för Windows CE– Går att logga in och spara output

● Toolchain för Windows CE/arm– Buggig, men fungerar bra nog

● Läs på om Windows CE

Page 15: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Undersök Windows CE

● regdump– mmap av registren in i en applikation– Dumpa innehållet

● regdump och visa förändringar – Läs register under en tid och visa vilka bitar

som har ändrat sig

● changes– Scanna igenom alla register och visa vad som

ändrar på sig

Page 16: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Resultat

Config FunctionEINT8, both edges EINT9, both edges  USB power? EINT10, both edges Output Output Output Output  Blue LED EINT15, both edges  Thumbwheel Pressed EINT16, both edges  Thumbwheel Down EINT17, both edges  Thumbwheel Up Input  SD write protect switch Input XMON  TouchnXPON  TouchYMON  TouchnYPON  Touch

Page 17: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Mer resultat

● COM1 – finns på RS232-kretsen● COM2 – IrDA● COM3 – Bluetooth● I2C är aktiv hela tiden● Backlight styrs av GPB1 och TIMER0● Batteriet verkar inte vara direkt kopplat

till processorn

Page 18: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

RS232

● Serieportar är bra– Lätt att konfigurera och använda– Finns på de flesta processorer– Kan behöva nivåkonvertering– Inte alltid så enkelt

● Den här gången stod det nästan “RS232” på en krets och det var uppenbart.

● Ibland behöver man leta ordentligt efter testpunkter

Page 19: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Alternativa kommunikationsvägar

● Andra sätt att få ut information– Ett alternativ är IrDA– Morse via lysdiod– Ljud ut som på iPod

Page 20: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

RS232

● Vad kan man få ut via RS232?● Många enheter har en bootmonitor som

man kan få igång med lite magi– Testpunkt– Knappkombination

● Slå på n30 med power-knappen inne

Page 21: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

RS232NBoot v2.1Apr 28 2004 16:09:42

SMDK2410 Bootloader Version 3.1 Built Sep 3 2004 16:43:32

Ethernet Boot Loader Configuration:---------------------------------------1) BLUETOOTH : Write MAC Address and Security Code MAC Address :00:02:78:38:C6:BE Security Code :4B61:7576:5462:7849:5468:5136:512B:40612) Boot delay: 15 seconds4) Reset TOC to default5) Startup image: DOWNLOAD NEW6) Program RAM image into Boot Media: ENABLED8) Kernel Debugger: ENABLED9) Format Boot Media for BinFSA) DOWNLOAD From: SDMMC

B) Support BinFS: ENABLEDD) DOWNLOAD image nowF) Low-level FORMAT Boot MediaL) LAUNCH existing Boot Media imageR) Read ConfigurationW) Write Configuration Right NowX) DOWNLOAD image to boot media, then LAUNCH it off the media---------------------------------------

Page 22: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Boota Linux

● Bootloader: HARET– Finns bara binärer på nätet och de fungerar

inte för mig– Finns lite gammal källkod– Nyare versioner fungerar på n30

● Skriv något eget: boot.exe– Börja enkelt: mmap av register och blinka

med den blå lysdioden

Page 23: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Boota Linux

● Lite svårare– Allokera minne– Kopiera lite kod till minnet– Krascha Windows CE

● Stäng av alla interrupt

– Hoppa till den fysiska adressen– Blinka med blå lysdiod

Page 24: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Boota Linux

● Lite mer användbar bootloader– Konfigurera serieporten– Skriv ut lite meddelanden

Page 25: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Boota Linux

● Lite bättre version– Läs en zImage från disk– Allokera minne >32MiByte och lägg den där– Bygg upp en struktur som pekar ut

minnesblocken– Bootloader som pusslar ihop de olika

minnesblocken till <32MiByte– Hoppa till zImage– Se “Uncompressing Kernel”

Page 26: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Boota Linux

● Bild på skräp på skärmen– IMG_0952.jpg

Page 27: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Boota Linux

● Fast det fungerar inte– Stäng av DMA– Rensa cachen

● Linux bootar!– Bara seriekonsol– Hårdkodad minnesstorlek– Okänd maskintyp– Inget rootfilsystem

Page 28: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Linux på riktigt

● Modifiera bootloadern så att den sätter upp en tag-struktur– Machine Type

● Gör att samma kärna kan användas på flera olika enheter

– Hur mycket RAM som finns i systemet– Kommandorad– Peka ut en ramdisk-image

Page 29: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Fungerande system

● Kan boota Linux-kärna och ramdisk● Kan logga in via serieporten● Program för att dumpa registren igen● Hitta några pinnar som jag inte kunde

hitta under Windows CE– Power-knapp– Reset-knapp

● Styra pinnar och se vad som händer

Page 30: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Linux kan redan

● Ben Dooks har gjort mycket jobb på Samsung S3C2410-stödet i Linux 2.6

● Arnaud Patard har skrivit en hel del drivrutiner, bland annat för LCD

● HP Ipaq H1940

Page 31: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Lägg till hårdvara

● Struktur som beskriver vilken hårdvara som finns

linux/arch/arm/mach-s3c2410/mach-n30.c

static struct platform_device *n30_devices[] = { &s3c_device_lcd,};

Page 32: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Konfigurera hårdvaran

● Mer specifik information om hårdvaranstatic struct s3c2410fb_mach_info n30_lcdcfg = { .width = 240, .height = 320, .xres = {240,240,240}, .yres = {320,320,320}, .bpp = {16,16,16},

.lpcsel = 0x06, .fixed_syncs = 1, .regs = { .lcdcon1 = S3C2410_LCDCON1_TFT16BPP | S3C2410_LCDCON1_TFT | S3C2410_LCDCON1_CLKVAL(0x0A),

.lcdcon2 = S3C2410_LCDCON2_VBPD(1) | S3C2410_LCDCON2_LINEVAL(319) | S3C2410_LCDCON2_VFPD(2) | S3C2410_LCDCON2_VSPW(1),

.lcdcon3 = S3C2410_LCDCON3_HBPD(39) | S3C2410_LCDCON3_HOZVAL(239) | S3C2410_LCDCON3_HFPD(2),

Page 33: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Fungerar ju

● Bild på Linux som bootat– IMG_0954.jpg

Page 34: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Bygg en ramdisk

● OpenEmbedded– Stor och klumpig

● Gör nåt eget– Jobbigt– Jag har gjort det för många gånger redan

● Buildroot– Avknoppning från uClibc-projektet

Page 35: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Mer hårdvara

● Lägg till mer hårdvarustöd– USB HOST

● Standard OHCI● USB-tangentbord

– USB Device– SD/MMC– NAND-flash

● Bara read/only än så länge, jag vågar inte skriva till flash än

Page 36: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Ännu mer hårdvara

● Touchen strulade, drivrutinen var inte riktigt färdig– Drivrutinshackande– Instabil touch med samma inställningar som

för H9140– Dumpa register under Windows CE igen och

försök lista ut hur det gör där– Stabil touch

Page 37: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Microcontroller

● Mät på microcontrollern– En I2C-buss– ...tror jag– Verkar vara en klocka och data– Mät lite mer– Enklare än vad jag trodde– Windows CE läser från en enda adress– Får tillbaka en byte med procent batteri kvar

● Testa samma sak under Linux

Page 38: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Status efter två veckor

● Mycket hårdvara fungerar● Det som saknas är

– Ljud● ljudchipet har en I2C-buss och en I2S-buss● Processorn har en I2C-buss och en I2C-buss● Hur svårt kan det vara?

– Skrivning till NAND-flash● Inte svårt, men jag vågar inte

– Sleep mode● Svårt

Page 39: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Skriva till Flash

● Få igång JTAG● Löd på en JTAG-kabel

– IMG_1062.jpg– jtag.jpg

● Titta på lite olika JTAG-program● Till slut blev det sjflash från Samsungs

sidor– Kass kod men gick fort att modifiera

Page 40: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Skriva till Flash

● Dumpa innehållet i flash från Linux● Dumpa innehållet i flash via JTAG● Lista ut att GPC5 styr Write Protect● Radera och skriv en tom sida

Page 41: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Windows CE Bootloader

● Börja titta på vad den inbyggda bootloadern gör

● Titta på meddelanden från serieporten● Uppgradera Windows CE med hjälp av

bootloadern● Titta på meddelanden på serieporten● Hitta motsvarande värden i Flash och i

Windows CE-imagen

Page 42: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Windows CE Bootloader

● msdn.microsoft.com● xda-developers.com● Strukturer

– TOCEntry– ROMHDR– PTABLE– PartEntry– XIPEntry

● Bygg en Linux-image i samma format

Page 43: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Laga drivrutiner

● Förut så litade jag på att Windows CE hade initierat allt

● Nu var jag tvungen att fixa drivrutinerna så att de klarar av att initiera hårdvaran själva

● Skapa ett JFFS2-filsystem i resten av flash

Page 44: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Sleep mode

● Bra om PDAn kan sova● Ska klara sig nån vecka på en laddning

och normalt användande● Disassemblera den existerande

bootloadern– Den väcker up RAM – Hoppar till 0x20100

● Lägg lite kod på samma plats som hoppar till rätt ställe i Linux-kärnan

Page 45: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Ljud

● Läs datablad● Modifiera en existerande drivrutin● Inse att ljudchipet inte alls pratar I2C utan

bitbangar via några andra pinnar● Fungerande ljud till slut

Page 46: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Resultat

● Jag har en fungerande Linux-PDA● Allt fungerar● Tyvärr så säljs inte Acer n30 längre

Page 47: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Saker man kan handla

● Acer n35– Samma grunddesign– Ett halvdussin pinnar som har andra

funktioner– Bluetooth är utbytt mot en GPS-mottagare

● Navman PiN 570– 99% samma design som Acer n35

● Båda går att handla idag

Page 48: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Sammanfattning

● Så mycket känd hårdvara som möjligt● Plocka isär och identifiera hårdvaran● Läs datablad● Mät, oscilloskop, mätinstrument● Serieportar är bra● JTAG● Undersök befintliga system● Tänk

Page 49: Christer Weinigel Weinigel Ingenjörsbyrå AB– IMG_0934.jpg – IMG_0939.jpg Inuti Acer n30 Skruva isär och identifiera komponenter – Kristall 12.000 – Processor: Samsung S3C2410

   

Länkar

● Min Acer n30-sida– http://zoo.weinigel.se/n30/

● Handhelds n30-wiki– http://handhelds.org/moin/moin.cgi/AcerN30

● XDA-Developers, HTC-hackande– http://www.xda-developers.com/