PS3 psfreedom till U8100?

Diskussion i 'U8100/U8110 & U8500' startad av rbt, 17 sept 2010.

  1. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    Last edited: 18 sept 2010
  2. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Källkoden till U8110 kärnan finns på T-mobile UK's hemsida. Även om jag inte fått det bekräftat så tror jag att det är samma kärna som används på U8100 så det borde gå att utgå från den källkoden.

    Jag har dock inget PS3 så mitt intresse för detta är begränsat.
     
  3. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    tack för bidraget med källkod för pulse mini, som du säger bör den ivf hjälpligt gå att köra på U8100 för detta hack
     
  4. Marvin-Ior

    Marvin-Ior Kid Droid Medlem

    Blev medlem:
    15 jul 2010
    Inlägg:
    95
    Mottagna gillanden:
    0

    MINA ENHETER

    är det &så en zip fil som ska flashas in?? eller finns det ingen än?? tutorial?
     
  5. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    Nej det finns inget färdigt än

    Har kollat lite info om vad som ska göras, tydligen inte så mkt: (jag kan inget om att skapa android saker, men har korskompilerat för routrar på amatörnivå)

    Kod:
    make -C /path/to/droid/kernel/source M=/path/to/psfreedom/source ARCH=arm CROSS_COMPILE=/path/to/android_ndk/tree/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi- EXTRA_CFLAGS=-DENABLE_MSM72K_CONTROLLER modules
     
  6. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Även om jag inte har någon PS3 så kan jag iaf dela med mig med mina erfarenheter av att kompilera en egen kärna (så här långt)

    Jag har idag kompilerat och bootat med en kärna när jag utgått från pulse mini källkoden.

    En lurig sak är att .config inte verkar motsvara någon av konfigurationerna i arch/arm/configs/ och det framgår inte vilken man skall använda. Jag körde dock med den .config som följade med och fick en zImage.

    Den kärna jag fick är INTE identiskt med min U8100 kärna och även om jag lyckades boota med den så fastande den efter en stund med en frusen bootanimation.

    Nu har jag plockar ur kernel konfiggen ur min telefon (/proc/config.gz) och ska prova att kompilera från den. Mitt mål är att göra en kärna som har stöd för swap. Det verkar som om U8220 användarna upplevt ett lyft genom att köra med en swap-partition på SD-kortet.

    Om någon kör vidare med PS3Freedom projektet och kommer så långt som att man fått fram en zImage så kan jag vara behjälplig med tips om hur man skapar en boot.img utifrån den (det är lite pyssel).

    Men några tips till att börja med:
    1. Man behöver en linux maskin (går bra att köra en virtuell Ubuntu i VirtualBox)
    2. Man måste installera en s.k. toolchain för att kompilera ARM kod. Det finns en git repo här: http://android.git.kernel.org/?p=platform/prebuilt.git;a=summary

    Observera att man får vara beredd att googla en hel del och lära sig en del nya saker om man tänkt ro projektet i land.

    Och till rbt, just kompilera kärnan är inte alls som att kompilera android app:ar(java) utan en helt "vanlig" kompilering av en linuxkärna (c/c++). Har du korskompilerat lite förut så kan du säkert få kläm på detta också. Internet är full av information. Jag hade aldrig korskompilerat något (vad jag kan minnas) innan jag kompilerade min första Android kärna, det var dock inte till den här telefonen.
     
    Last edited: 21 sept 2010
  7. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    kallt_kaffe: kul att du följer upp :) tyvärr låter det lite illa om inte du som är "skilled" :cool: lyckas få till en kärna. Vad jag förstår är det ett absolut krav för att detta ska lyckas (moduler och stänga av något med USB-kontrollern)

    och, jo jag vet att det inte är java detta ska utvecklas i, surt att inte huawei/felia/expert följer kraven på att släppa källkod

    Edit2: Bahh, mitt försök vart totalt misslyckat, men så försöker jag på en FreeBSD som jag vet inte klarade korskompilering av OpenWRT (router os) utan endel fixande. Pallar inte installera en linuxhojj och få till hela /dev för detta just nu.

    Edit: För alla som är sugna på en PS3 slim 320GB + Move starter finns detta på elgiganten för 3400:- just nu
     
    Last edited: 21 sept 2010
  8. Renato

    Renato Kid Droid Medlem

    Blev medlem:
    18 aug 2010
    Inlägg:
    98
    Mottagna gillanden:
    0

    MINA ENHETER

    Där ser du kallt_kaffe bara 3400 Svenska Kronor..
    det är bara in och köpa. :D lol.. :teeth:

    Ok.. förlåt va tvungen att få ut det.. Forsätt ni.. :D
     
  9. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Nåja, jag räknar mig nog fortfarande som glad amatör men man lär sig nya saker hela tiden. Jag har lyckats kompilera en kärna nu som bootar men den tycker att batteriet är på noll och stänger av telefonen inom 30 sekunder. Det är något lurt för kernel-config:en hävdar att en handfull saker skall kompileras som moduler, bl.a. en driver till batteriet. Men till saken hör att det inte finns några moduler i filsystemet, varken i initrd.gz eller i /system. Jag ändrade alla =m till =y i .config men det hjälpte inte. Antagligen måste de vara moduler men hur de kopplas ihop med kärnan vet jag inte (ännu). Det verkar som jag stött på något nytt som jag måste lära mig.

    Huawei verkar ha ryckt upp sig och säger nu att de skall släppa källkoden till varje modell.
    Källa: http://www.huaweidevice.com/community/thread.jspa?threadID=288513&tstart=0&orderStr=9
    Men som det verkar så tror jag vi kan utgå från pulsi mini källkoden och vår egen /proc/config.gz men jag väntar otåligt på U8150 kärnan för jag vill fixa så att vi kan köra Android 2.2 på våra telefoner.

    Jag kör en virtuell Ubuntu för sånt här. Oftast när man letar guider till typ såna här saker så baseras de ofta på Ubuntu så det kan vara användbart att ha en installation liggande.

    Ja se där... Om någon köper en sådan åt mig så lovar jag att göra ett försök... ;)
     
    Last edited: 22 sept 2010
  10. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Ungarna skulle nog jubla men nja... Ett Wii och en 360 får räcka.
     
  11. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Jag börjar misstänka att msm_battery.ko inte används utan att det finns en annan batteri driver som inte kompileras som modul men att pulse mini koden inte är uppdaterad att fungera ihop med U8100. Denna rad finns nämligen i .config:
    CONFIG_HUAWEI_BATTERY=y

    Hur jag än vrider och vänder på saker och ting så får jag en frågetecken på batterisymbolen och den spelar en truddelutt och meddelar att telefonen kommer att stängas av, vilket också görs, trots att jag har usb-kabel ansluten. Det verkar inte bättre än att vi är beroende av att Huawei ska få sina tummar ur och släppa en mer uppdaterad källkod.
     
  12. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    Jag har lyckats kompilera något... dock trassel med psfreedom.ko, antagligen kärnan som bl.a. inte ens har en /system/lib/modules

    frågan är nu.. hur skapar jag en kärna jag kan lyfta till luren? vart hamnar sakerna och vad måste fixas med dem?
     
  13. Marvin-Ior

    Marvin-Ior Kid Droid Medlem

    Blev medlem:
    15 jul 2010
    Inlägg:
    95
    Mottagna gillanden:
    0

    MINA ENHETER

    det lilla jag läst är att ingen (kanske nån) telefon inte kan ladda när telefon är i freedom-läge... åsså vare nåt mer... kan ha varit wifi eller liknande... vet inte om det kan ha med att det ska agera ett usb-minne (som inte laddar ett batteri eller skickar ström)...

    ref. till nån wiki sida tror jag det var :P

    det står på många att "Your USB will now function as PSFreedom and PSFreedom alone"
    "Now psfreedom should be loaded as a module, you will see no difference, except for the loss of normal usb functions."
     
    Last edited: 23 sept 2010
  14. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Hmm, var ska jag börja... om du har kompilerat en kärna så är den färdiga kärnan: arch/arm/boot/zImage

    Vi kanske dock skall börja med några grundförutsättningar:

    (Jag kommer att förutsätta att du kör min custom ROM på telefon eftersom det underlättar en hel del (root:ad, busybox m.m.))

    1. Har du utgått från /proc/config.gz från din telefon när du kompilerat kärnan? Den .config som följer med pulse mini kärnan ger en kärna som "fryser" telefonen en bit in i bootprocessen.
    För att plocka ur configgen ur telefonen kör ett adb shell eller en terminal emulator och skriv:
    $ su
    # cp /proc/config.gz /sdcard

    Lyft sedan in config.gz i din utvecklingsmiljö och kör följande:
    $ zcat config.gz > .config

    Den kärna som man kompilerar med den config:en går att boota men kommer att stänga av telefon pga att den inte kan läsa batteristatus men jag om inte psfreedom behöver boota ända in i android för att fungera så tror jag vi kan komma runt det genom att få bootprocessen att vänta (i evighet) utan starta upp hela Android systemet.

    2. Behöver psfreedom boota ända in i Android? Dvs, ska man starta ngn app eller liknande eller är det bara själva linuxkärnan som behöver vara igång?

    Om den behöver boota in i Android så är vi rökta tills Huwaei släpper källkoden till vår kärna. Och här kan alla hjälpa till. Kontakta Huwaei via deras hemsida http://www.huaweidevice.com/worldwide/technicaIndex.do och kräv (artigt) att de släpper källkoden till linux kärnan för vår telefonmodell. Påpeka gärna att de bryter mot GPL om de inte gör det.

    ----

    Nu till det intressanta. När du har kompilerat en kärna så måste det paketeras med ett mindre filsystem, en s.k. initrd (initial ramdisk). I den finns grundläggande filstrukturen samt init.rc skriptet som monterar upp /system, /data och gör en massa annat skoj.

    Det du då behöver är detta: http://android.modaco.com/content/t...l-r1-bootbuilder-for-pulsemini-alpha-release/

    Läs min kommentar i post #12 i tråden och gör den föreslagna justeringen.

    Återigen så förutsätter jag att du kör min custom ROM och jag föreslår att du börjar med att packa upp och skapa om boot.img från den. Kolla i superboot .bat filen (finns en sticky i detta forum) för information om hur du bootar en boot.img utan att flasha den. Dvs ett relativt riskfritt sätt att testa en boot.img under en enstaka boot utan att ändra något på telefonen. Det är precis det superboot image:en gör. Den bootar med en alternativ ramdisk innehåller lite justeringar i init.rc som gör att den kopierar in superuser permissions appen och tillhörande binär.

    Det du nu kommer att märka är att den kommer inte att acceptera din nya boot-new.img och det beror på att kernel storleken är fel. Jämför original boot.img med din nya i en hex-editor (jag änvänder i.Hex).

    Byte 8,9,10,11 innehåller på en original boot.img 6c a4 24 00 om jag minns rätt. Detta är kernel storleken i omvänd byte ordning, dvs 0x0024a46c bytes.

    Ändra i din nya boot-new.img så att den får samma kernelstorlek som originalet. Testa att boota och nu borde telefonen starta precis som vanligt.

    ----

    Nu till det komplicerade, när du kompilerat din egen zImage så måste du (av någon anledning som jag inte vet) fylla ut med nollor i början och i slutet.

    Först skall den ha 2048 bytes med nollor i början:
    $ dd if=/dev/zero of=boot.img-kernel.gz bs=1 count=2048

    Sen fyller du på med din zImage
    $ cat zImage >> boot.img-kernel.gz

    Nu kollar du storleken på din boot.img-kernel.gz och omvandlar storleken till hex.

    Exempelvis blev storleken vid mitt senaste försök: 0x249860 bytes
    Nu skall den storleken avrundas till närmaste ovanstående som slutar på 0x800, dvs 0x24A800.

    Skillnaden:0x24A800-0x249860=0xFA0=4000 bytes

    Nu behövs en filler i slutet på 4000 bytes för att nå upp till den önskade storleken (återigen fråga mig inte varför men den accepterar inte filen annars).

    $ dd if=/dev/zero of=endfiller bs=1 count=4000
    $ cat endfiller >> boot.img-kernel.gz

    Skapa en ny boot-new.img med den nya kärnan.
    hexeditera den fördiga filen och ändra kernel storleken till den hexadecimala storleken zImage

    I detta exempel var zImage 2396256 bytes, dvs 0x249060 hexdecimalt. Glöm inte omvänd byte order så det blir då 60 90 24 00 när man knappar in det i hexeditorn...

    Om du har en kärna som bootar upp men stänger av pga att batteristatus är okänt så har du kommit så långt det går att komma med den källkod vi har tillgång till.

    Nästa steg blir isåfall att uppehålla bootprocessen men det tar vi i nästa lektion. :)
     
  15. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    Jag tror detta beror på vilken kärna man lyckas få ihop. Vad jag vet är alla "färdiga" versioner av psfreedom till telefoner hack av kärnor som inte är perfekta. Porten till TI84+ är t.ex. bara ett program man kör, den förändrar ingen funktion i räknaren. Tror samma sak gäller endel andra icke-telefoner.

    Med en perfekt kärna ska förhoppningsvis modulen för psfreedom gå att ladda när man önskar och sen laddas ur igen. Dock är det inget krav för mej, jag kan offra luren om jag slipper köpa något annat, jag slutar med mina tafatta försök när det går att jailbreaka ps3'an.
     
  16. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Grejen är att om man bara "fastbootar" den nya kärnan utan att flasha den så kan man ju ställa om telefonen i psfreedom läge när man känner för det. Det är ju bara att starta om så är den som vanligt igen eftersom man aldrig flashar den. Jag tror att man på vissa telefonmodeller löst det (tror det var en guide till HTC hero jag läste) genom att flasha psfreedom kärnan som recovery-image. Då kan enkelt välja när man vill starta upp den i psfreedom läge. Jag gissar att recovery-image egentligen inte är något annat än en alternativ boot.img.
     
  17. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    dumma dumma jag som inte kopierar svaret innan jag postar.. jaja jag får summera ihop det snabbt igen...

    Det enkla: Jo jag kör din ROM (tack för den :)), och ja jag kompierlade från min egen /proc/config.gz

    Psfreedom behöver rätt säkert bara linux, dalvik behöver inte ens starta (därav alla kassa portar av psfreedom). Något med usb-kontrollern görs (sätts i slave-läge vad nu det betyder), och sen ligger psfreedom.ko och lurar tills en ps3a startar och skickar sen något debug-jox.

    Vi får hoppas på en bra 2.1 eller 2.2 källkod från huawei, men det är inget jag sitter och väntar på.

    ----

    Tack för den utförliga info'n. Ska försöka detta när jag kommer hem, samt göra ett försök att mounta /system rw och skapa /system/lib/modules för att se om det kickar igång modulhanteringen i den befintliga kärnan.

    Tack för all hjälp hittills
     
  18. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    In min custom rom finns två script, rwsys och rosys som monterar om /system till read-write, resp, read-only.

    Ska man göra samma sak utan skripten så är det detta som gäller (prova gärna i terminal emulator om du vill testa ditt eget tålamod):
    mount -t yaffs2 -o rw,remount /dev/block/mtdblock4 /system

    Jag behöver kanske inte förklara varför jag gjorde två script för detta. ;)
     
  19. rbt

    rbt Teen Droid Medlem

    Blev medlem:
    17 sept 2010
    Inlägg:
    276
    Mottagna gillanden:
    22

    MINA ENHETER

    haha, nej förklaring är överflödig. Det kanske finns bättre emulator men en utmaning vore att skriva detta rätt med ConnectBot, scandinavian keyboard och tumvantar på tunnelbana eller buss. :teeth:
     
  20. kallt_kaffe

    kallt_kaffe Professional Droid Medlem

    Blev medlem:
    2 aug 2010
    Inlägg:
    2 682
    Mottagna gillanden:
    1 685
    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Xiaomi Mi Note 10
    Oavsett så är terminal emulator något du bara skall använda i värsta fall. Installera drivrutinerna på de virtuellan CD-ROM:en(om du inte redan gjort det) och kör "adb-windows.exe shell". Allt annat är att plåga sig själv i onödan. Dock på en enhet med hårdvarutangtbord, som min andra telefon, en hackad HTC TyTN II, så är det helt OK att köra via terminalemulator.