Project

General

Profile

DeprecatedPortingGuideS5PC110 » History » Revision 6

Revision 5 (Denis 'GNUtoo' Carikli, 12/16/2012 02:36 PM) → Revision 6/18 (Denis 'GNUtoo' Carikli, 12/16/2012 02:38 PM)

h1. PortingGuideS5PC110 

 *This guide assumes your phone has a S5PC110/Exynos 3110 SoC* 

 h2. Prerequisites 

 Before porting your device to Replicant, you must make sure it complies with the following: 
 * Already supported by CyanogenMod (or, worst-case scenario, by a non-official CyanogenMod port) 
 * CyanogenMod support for this device is available for one of Replicant versions (pick the latest) 
 * The phone is GSM: Replicant doesn't support CDMA phones yet 
 * It is likely to be usable without blobs nor firmwares and with Replicant replacements 

 h2. Investigating the phone hardware 

 Before doing anything, you will need to know the codename of the device. You can find it out on "CyanogenMod Wiki":http://wiki.cyanogenmod.org/ or on "CyanogenMod download page":http://get.cm/. 
 For instance, the "Nexus S":http://wiki.cyanogenmod.org/wiki/Nexus_S codename is: @crespo@. 

 First thing to consider before starting a port, when all of the above is assumed, is to see how many non-free components are required by CyanogenMod. 
 The easiest way to do this is to spot the device repository in "CyanogenMod repos":https://github.com/CyanogenMod/ and look for the @extract-files.sh@ or @proprietary-blobs.txt@ file. 
 For instance, the list of non-free components for the "Nexus S":https://github.com/CyanogenMod/android_device_samsung_crespo is "extract-files.sh":https://github.com/CyanogenMod/android_device_samsung_crespo/blob/ics/extract-files.sh 

 From that list, spot what is related to what hardware component (audio, camera, sensors, gps, modem, etc): that gives an idea of the amount of work required to add support for the phone. 

 During the port, you might need to find precise infos about the hardware that is in the phone. A good to do this is by looking at the kernel defconfig for the device, another way is to download the Service Manual for the device. 

 h2. Getting everything ready 

 In order to prepare everything for the Replicant port: 
 * Install CyanogenMod on the phone 
 * Install the [[BuildDependencies]] 
 * Get the sources: [[GettingReplicantSources]] 
 * Read Replicant developer guide: [[DeveloperGuide]] 
 * Learn how to do debug: [[GettingLogs]] [[GDBDebugging]] 

 

 h2. Get the source and build a kernel image 

 * adding the 3rd party repos if any 
 * add kernel: where the find the kernels? 
   - official feeds 
   - the ones on GIT (teamhacksung, better ask CM people) 
   - 3rd party projects 
 * add kernel to product files on vendor/replicant 

 * change ro.modversion on product vendor file 

 h2. Various hardware and software fixes to get things working. 

 h3. 


 To get software video decoding (OMX stuff): 
 * remove OMX libs for hardware video decoding 
 * remove libstagefrighthw.so 
 like that: http://gitorious.org/replicant/device_samsung_crespo/commit/c8edb6539977c8820d665691d53c33892cfa4fdd