DeprecatedPortingGuideS5PC110 » History » Revision 3
Revision 2 (Paul Kocialkowski, 02/29/2012 12:34 PM) → Revision 3/18 (Paul Kocialkowski, 11/18/2012 10:35 AM)
h1. PortingGuideS5PC110 *This guide assumes your phone has a S5PC110/Exynos 3110 SoC* h2. Prerequisites Upstream status of the device Before porting your * is the device to Replicant, you must make sure it complies with the following: on CM already? * Already supported by CyanogenMod (or, worst-case scenario, by is there a CM non-official CyanogenMod port) rom with code? * CyanogenMod support for this device is available for one of Replicant versions (pick the latest) what to import? * The phone is GSM: Replicant doesn't support CDMA phones yet vendor setting * It is likely to be usable without blobs nor firmwares and with Replicant replacements h2. Investigating consideratino regarding 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. when writing from scratch During h2. Investigate 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. side h2. Getting everything ready In order to prepare everything for the Replicant port: * Install CyanogenMod on the phone extract-files.sh * Install the [[BuildDependencies]] * Get the sources: [[GettingReplicantSources]] * Read Replicant developer guide: [[DeveloperGuide]] * Learn how to do debug: [[GettingLogs]] [[GDBDebugging]] service manual h2. Get the source and build a kernel image * getting replicant sources * 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