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

Relevanta dokument
Boot-loader. Carl Wernstedt

Templog / TempControl PC

The Intelligent Timer

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

DIG IN TO Administration av nätverk- och serverutrustning

Ett väldesignat & slimmat plånboksfodral från WE CHARGE. Tillverkat i konstskin. Snäpp i telefonen i det hårda skalet och låt plånboksfodralet skydda

SuperVario/PocketVario

Test i datorkunskap Hårdvara

MESI i Intel Core 2 Duo

Introduktion till Arduino

DIG IN TO Dator och nätverksteknik

MINIX NEO A2 Användarguide

Ibas forensics Mobila enheter

Handi version 3.10 Revisionshistorik

OBS!!! Anslut ej USB kabeln till dator eller GPS innan du först har installerat drivrutinerna för USB kabeln i din dator.

Datorsystem Laboration 2: Minnesmappade bussar

ANVÄNDARMANUAL. Besök vår hemsida för mer information om våra produkter:

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

Användar Guide. är ett varumärke av Google Inc.

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Manual Sportident Onlinekontroll via GPRS

UBIQUITI Powerstation5 - Config

Förpackningen innehåler

Setup-programmet. Dokumentartikelnummer: December 2005

Introduktion till Arduino

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Konfigurera Routern manuellt

BIPAC-711C2 / 710C2. ADSL Modem / Router. Snabbstart Guide

Tentamen PC-teknik 5 p

Tentamen PC-teknik 5 p Lösningar och kommentarer

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Hjälpprogrammet Setup Användarhandbok

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

iphone app - Users Net2 AN1116-SE Allmänt Starta Appen

Föreläsning 4 IS1300 Inbyggda system

Installationsmanual 501 GPS Tracker

Operativsystem Introduktion

PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Innehåll. 1 Inledning 3

WAGO IO System Service Seminar. Diagnostik

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

Hjälpprogrammet Setup Användarhandbok

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Manual för Fristående system för temperatur och luftfuktighetsmätning

NT-1 Bluetooth Stereo Headset med NFC

Avståndsmätare. Digitala System EITA Grupp 7. Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors

Instruktion: Trådlöst nätverk för privata enheter

AVR Studio 4 Och AVRFLASH

Design av inbyggda system

Modbus över Ethernet. WAGO Contact SA TSS STR

Instruktion: Trådlöst utbildningsnät orebro-utbildning

Hjälpprogrammet Setup Användarhandbok

Programmering av Vector Carbon GPS Kompass. Vector Carbon 30/8/2011 v1.1

MINIX NEO A1+ Användar Manual

Din manual CANON LBP

Hjälpprogrammet Setup

RollerMouse Free3 Wireless. Användarhandbok

HP UC-högtalartelefon. Användarhandbok

Blue Key Digitala projekt VT

BRUKSANVISNING APPlicator kontaktlåda för ios & Android*

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD

DIG IN TO Dator och nätverksteknik

Goda råd till de som ska utföra ett liknande projekt (från KMM 2016)

iloq P10S-programmeringsenhet Manual

INSTALLATION OCH KONFIGURATION AV PROGRAM PICBASIC PRO - MICRO CODE STUDIO PLUS - EPIC PLUS

Onslip360 Att komma igång Bambora-terminal

Bruksanvisning. Elektronisktförstoringsglas. Snow 7 HD. Artikelnummer: I-0045

Design av inbyggda system

Styrsystem. SoMachine TM241 / 251. Kom-igång med SoMachine projekt. Skapad: Rev

Nemo96 HD och Nemo96 HD+ firmware uppdatering

Installationsmanual CAT12 CE Moderkort

Portabelt Bluetooth Ljudsystem Med PLL FM Radio TRA-800BT. Svensk Instruktions Manual

Inför laborationen "Öppna din dator"

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Onslip360 Att komma igång Bambora-terminal

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

Konfigurera Routern manuellt

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Procedurer för att ändra standardplats för programinstallation i Windows XP

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Installationshjälp CentOS 5 ENTerprise

Introduktion till hårdvara, mjukvara och operativsystem

Styrplatta och tangentbord

55200 Inspelningsbar microfon

RollerMouse Pro3 Användarhandbok


KOMMA IGÅNG GUIDE MODBUS Med WAGOs styrsystem

Infobric AB CENTRALENHET. Användarmanual

Instruktion för hantering av Scoreboard

Andromeda. Användning och Installation

Introduktion till syntesverktyget Altera Max+PlusII

DIG IN TO Administration av nätverk- och serverutrustning

Instruktioner för att uppdatera mjukvara i Amazone Amatron 3 monitorn

Innehåll i detta dokument

55201 Digitalkamera med video

Programmera Avant 5 med PC mjukvara


Transkript:

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

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.

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

Processor De flesta kör ARM Intel StrongARM/XScale Vanligast Texas Instruments OMAP Mobiltelefoner Samsung

Acer n30 Samsung S3C2410 TFT-skärm 320x200 Bluetooth USB device och host Utbyggbarhet

Acer n30 Det mesta är inbyggt i processorn LCD Touch USB Host/Device 3 Serieportar SD/MMC Ljud Det enda som saknas är Bluetooth

Samsung S3C2410 Finns redan en Linux-port till processorn HP Ipaq H1940 Dokumentation finns på Samsungs WWW Processorspecifikationer Referensdesign Application Notes Exempelkod

Acer n30 + Linux = sant? Det finns en sportslig chans att lyckas

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

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

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

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

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

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

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

Resultat Config EINT8, both edges EINT9, both edges EINT10, both edges Output Output Output Output EINT15, both edges EINT16, both edges EINT17, both edges Input Input XMON nxpon YMON nypon Function USB power? Blue LED Thumbwheel Pressed Thumbwheel Down Thumbwheel Up SD write protect switch Touch Touch Touch Touch

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

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

Alternativa kommunikationsvägar Andra sätt att få ut information Ett alternativ är IrDA Morse via lysdiod Ljud ut som på ipod

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

RS232 NBoot v2.1 Apr 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:4061 2) Boot delay: 15 seconds 4) Reset TOC to default 5) Startup image: DOWNLOAD NEW 6) Program RAM image into Boot Media: ENABLED 8) Kernel Debugger: ENABLED 9) Format Boot Media for BinFS A) DOWNLOAD From: SDMMC B) Support BinFS: ENABLED D) DOWNLOAD image now F) Low-level FORMAT Boot Media L) LAUNCH existing Boot Media image R) Read Configuration W) Write Configuration Right Now X) DOWNLOAD image to boot media, then LAUNCH it off the media ---------------------------------------

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

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

Boota Linux Lite mer användbar bootloader Konfigurera serieporten Skriv ut lite meddelanden

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

Boota Linux Bild på skräp på skärmen IMG_0952.jpg

Boota Linux Fast det fungerar inte Stäng av DMA Rensa cachen Linux bootar! Bara seriekonsol Hårdkodad minnesstorlek Okänd maskintyp Inget rootfilsystem

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

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

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

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, };

.lcdcon2 = S3C2410_LCDCON2_VBPD(1) S3C2410_LCDCON2_LINEVAL(319) S3C2410_LCDCON2_VFPD(2) S3C2410_LCDCON2_VSPW(1), Konfigurera hårdvaran Mer specifik information om hårdvaran static 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),

Fungerar ju Bild på Linux som bootat IMG_0954.jpg

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

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

Ä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

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

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

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

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

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

Windows CE Bootloader msdn.microsoft.com xda-developers.com Strukturer TOCEntry ROMHDR PTABLE PartEntry XIPEntry Bygg en Linux-image i samma format

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

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

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

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

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

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

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/