Qualcomm lahko izda izvorno kodo Snapdragon 845 v 6 tednih

Sistem na čipu Qualcomm Snapdragon 845 je bil objavljen že decembra in ga najdemo v vodilnih napravah, kot so Samsung Galaxy S9, Xiaomi Mi Mix 2S in OnePlus 6. Podjetje je potrdilo, da bo izvorna koda jedra izdana v približno 6 tednih.

Qualcommnajnovejši vrhunski sistem na čipu, the Qualcomm Snapdragon 845, je bil napovedal decembra na srečanju Snapdragon Tech Summit. The ponudbe čipov 4 jedra CPE Kryo 385 (A75 »zmogljivost«) in 4 Kryo 385 (A55 »učinkovitost«), najnovejši grafični procesor Adreno 630, Spectra 280 ISP, Hexagon 685 DSP, modem Snapdragon X20 LTE in nova varna procesna enota (SPU). Snapdragon 845 SoC je a elektrarna v merilih uspešnosti in je že na voljo v napravah, kot je Samsung Galaxy S9/S9+, Xiaomi Mi Mix 2S, in OnePlus 6. Razvijalci na naših forumih so hrepeneli po tem, da bi dobili v roke napravo z najnovejšo in najboljšo Qualcommovo različico, vendar je samo ena stvar, zaradi katere so nekateri razvijalce skrbi prihodnost razvoja na platformi: pomanjkanje javno dostopne izvorne kode za jedro, HAL, veje ogrodja in več o the Forumi CodeAurora.


Qualcomm in forumi CodeAurora

Če ste se kdaj vprašali, zakaj razvijalci na naših forumih raje delajo na napravah z nabori čipov Qualcomm kot na napravah z nabori čipov iz HiSilicon, Samsung, MediaTek, in drugi, je razlog prijaznost Qualcomma do skupnosti razvijalcev po meri. Android, iz katerega gradijo razvijalci ROM-a po meri, temelji na odprtokodnem projektu Android (AOSP). Google izdaja a javni del AOSP vendar tudi zasebno razvijajo dele Androida (zato, če danes zgradite ROM iz AOSP, ne boste dobili nobenega čudovite nove funkcije v Android P.) Za razvijalce ROM-a po meri je edina možnost, da združijo najnovejše funkcije platforme Android, počakati, da Google izda izvorno kodo s končno izdajo. Prodajalci naborov čipov pa imajo pogodbo z Googlom za zgodnji dostop do naslednje različice Androida— razcepijo se iz zasebnih repozitorijev AOSP, spremenijo svojo kodo nabora čipov, da je združljiva, in nato to kodo razdelijo proizvajalcem originalne opreme za izdelavo in distribucijo ROM-ov za njihove naprave.

Splošni postopek posodobitve za vsako izdajo Androida. Vir: Google.

Za upoštevanje splošne javne licence GNU (GPL), pod katero je licencirano jedro Linuxa, nabor čipov prodajalci in proizvajalci originalne opreme morajo izdati izvorno kodo jedra, vendar je to vse, kar morajo sprostitev. Izvorna koda jedra za Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+, Xiaomi Mi Mix 2S, in OnePlus 6 že na voljo, na primer. To je dovolj za razvijalce, da začnejo prenašati ROM-e po meri, ki temeljijo na AOSP, na te naprave, vendar samo dostop do izvorne kode jedra ne pomeni, da bo prenos enostaven LineageOS 15.1 na te naprave (čeprav se to spreminja zaradi Projekt Treble). Vsa specifična koda za nabor čipov za nove funkcije nabora čipov običajno ni na voljo v teh jedrih izdaje izvorne kode, kar je pričakovano, saj bi koda razkrila, kako lastniški nabor čipov deluje delo. Razvijalci imajo dostop do te kode v obliki vnaprej prevedenih binarnih datotek (imenovanih binarni veliki objekt ali BLOB), vendar je skoraj nemogoče združiti te BLOB-e z njihovim delom na AOSP ROM-u, ker ni dokumentacije o tem, kako bi to delo.

Na srečo za razvijalce, tukaj pridejo prav Qualcommovi forumi CodeAurora (CAF). Na CAF Qualcomm objavi javne dele svoje kode, specifične za nabor čipov, na način, ki resnično razvijalcem ROM-a je enostavno zgraditi za platformo, ne da bi morali vedeti, kakšne so funkcije novega nabora čipov delo. Razvijalci morajo le fork the javne dele repozitorijev nove platforme (kot je hardware/qcom/display in vendor/qcom-opensource/bluetooth) in ga združite z vnaprej prevedenimi binarnimi datotekami in bo v bistvu večinoma delovalo. Qualcomm je izdal svojo specifično kodo za nabor čipov na CAF za prejšnje SoC-je, kot je Qualcomm Snapdragon 820/821 in Snapdragon 835, in običajno v nekaj dneh po objavi nabora čipov! Vendar je bilo 5 mesecev odkar je bil najavljen Snapdragon 845, in ga imamo še videti, da običajna izvorna koda podjetja pade pod vejo sdm845.

Iskanje CAF za izvorno kodo v zvezi s Qualcomm Snapdragon 835 SoC

Zakasnjena izdaja virov sdm845 v CAF je povzročila, da so nekateri razvijalci zaskrbljeni, da bo Qualcomm opustijo forum in dejansko postanejo kot MediaTek, saj delijo vire samo s svojimi partnerji in ne skupnosti. Razvijalci, s katerimi smo govorili, so zaskrbljeni, da bi to škodovalo razvoju ROM-a po meri v napravah od podjetij, kot je Xiaomi, saj so viri CAF pogosto potrebni za izdelavo stabilnih ROM-ov za Xiaomijev Snapdragon naprave. Obrnili smo se na Qualcomm, da bi izvedeli, kaj se dogaja, in končno imamo nekaj dobrih novic za deliti: CAF ni opuščen, padec kode Qualcomm Snapdragon 845 se ne bo zgodil, dokler Qualcomm ne objavi svojih novih mobilnih platform. Razlog? Zaradi puščanje.


Forum CodeAurora in puščanje čipov Qualcomm

Ko Qualcommovi inženirji delajo na novih funkcijah platforme za svoje nabore čipov, se redko zgodi, da te funkcije razvijejo le z enim naborom čipov v mislih. Možno je, da neizdani nabori čipov uporabljajo isto programsko opremo, ki jo najdete v že napovedanih naborih čipov, kot je Snapdragon 845. Medtem ko podjetja pogosto uporabljajo kodna imena za preprečevanje uhajanja, tudi to ne prepreči popolnoma uhajanja. Na primer podrobnosti o neobjavljenem Qualcomm Snapdragon 670 so našli v CAF Roland Quandt iz WinFuture. Pozneje smo iz CAF izvedeli, da je bil Qualcomm Snapdragon 670 preimenovan v Qualcomm Snapdragon 710. Qualcomm ni potrdil obstoja Snapdragon 670/Snapdragon 710, vendar zahvaljujoč referencam v CAF že vemo veliko o prihajajočem naboru čipov.

Zato se je Qualcomm odločil, da odloži izdajo izvorne kode za Snapdragon 845, da bi preprečil uhajanje, kot je to. Povedali so nam, da podjetje ne bo izdalo izvorne kode za nabor čipov do objave novih mobilnih platform. Po približno 6 tednov od zdaj, bo podjetje lahko izdalo vire sdm845 na CAF. Predstavnik Qualcomma se je opravičil za zamudo pri izdaji izvorne kode in izjavil, da podjetje pregleduje njihove konvencije o poimenovanju naborov čipov v kodi, tako da lahko izdajo kodo za že napovedane nabore čipov, hkrati pa se izogibajo puščanje.