Qualcomm успява да пусне изходния код на Snapdragon 845 след 6 седмици

Системата върху чипа Qualcomm Snapdragon 845 беше обявена през декември и се намира на водещи устройства като Samsung Galaxy S9, Xiaomi Mi Mix 2S и OnePlus 6. Компанията потвърди, че изходният код на ядрото ще бъде пуснат след около 6 седмици.

Qualcommнай-новата система на чип от висок клас, the Qualcomm Snapdragon 845, беше обяви на Snapdragon Tech Summit през декември. The предложения за чипсет 4 Kryo 385 (A75 „производителност“) и 4 Kryo 385 (A55 „ефективност“) CPU ядра, най-новият графичен процесор Adreno 630, Spectra 280 ISP, Hexagon 685 DSP, модемът Snapdragon X20 LTE и нов Secure Processing Unit (SPU). Snapdragon 845 SoC е a мощност в бенчмаркове и вече се предлага в устройства като Samsung Galaxy S9/S9+, Xiaomi Mi Mix 2S, и OnePlus 6. Разработчиците във форумите ни жадуваха да се сдобият с устройство с най-новото и най-доброто на Qualcomm, но има само едно нещо, което направи някои разработчиците се тревожат за бъдещето на разработката на платформата: Липсата на публично достъпен изходен код за ядрото, HAL, разклонения на рамката и други на Форуми на CodeAurora.


Qualcomm и форумите на CodeAurora

Ако някога сте се чудили защо разработчиците на нашите форуми предпочитат да работят на устройства с чипсети Qualcomm пред устройства с чипсети от HiSilicon, Samsung, MediaTek, и други, причината е дружелюбното отношение на Qualcomm към общността за потребителски разработки. Android, от който разработчиците на персонализирани ROM изграждат, е базиран на проекта с отворен код на Android (AOSP). Google пуска a публична част от AOSP но те също така разработват части от Android частно (ето защо, ако изградите ROM от AOSP днес, няма да получите нищо от фантастични нови функции в Android P.) За разработчиците на персонализирани ROM, единственият избор, който имат, за да обединят най-новите функции на платформата на Android, е да изчакат Google да пусне изходния код с окончателното издание. Доставчиците на чипсети обаче имат споразумение с Google за получаване на ранен достъп до следващата версия на Android— те се разклоняват от частните хранилища на AOSP, модифицират кода на своя чипсет, за да бъде съвместим, и след това разпространяват този код на OEM производители, за да изграждат и разпространяват ROM за техните устройства.

Общ процес на актуализиране за всяко издание на Android. източник: Google.

За да спазва GNU General Public License (GPL), под който е лицензирано ядрото на Linux, чипсетът доставчиците и OEM производителите са длъжни да пуснат изходния код на ядрото, но това е всичко, от което се изисква освобождаване. Изходният код на ядрото за Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+, Xiaomi Mi Mix 2S, и OnePlus 6 вече са налични, например. Това е достатъчно за разработчиците, за да започнат да пренасят персонализирани ROM, базирани на AOSP, на тези устройства, но само наличието на достъп до изходния код на ядрото не означава, че ще бъде лесно за пренасяне LineageOS 15.1 към тези устройства (макар че това се променя благодарение на Проект Treble). Целият специфичен за чипсет код за нови функции на чипсет обикновено не е наличен в тези ядра издания на изходния код, което се очаква, тъй като кодът ще разкрие характеристиките на собствения чипсет работа. Разработчиците имат достъп до този код под формата на предварително компилирани двоични файлове (наречени Binary Large Object или BLOB), но той е почти невъзможно е да се комбинират тези BLOB с тяхната работа върху AOSP ROM, тъй като няма документация как това би работа.

За щастие на разработчиците, тук са полезни форумите на Qualcomm CodeAurora (CAF). В CAF Qualcomm пуска публичните части на своя специфичен код за чипсета по начин, който го прави наистина лесно за разработчиците на ROM да изградят за платформата, без да се налага да знаят как функционира новият чипсет работа. Разработчиците просто трябва да разклонят публични части на новите хранилища на платформата (като hardware/qcom/display и vendor/qcom-opensource/bluetooth) и го комбинирайте с предварително компилираните двоични файлове и в общи линии просто ще работи в по-голямата си част. Qualcomm пусна своя специфичен код за чипсет на CAF за предишни SoC, като например Qualcomm Snapdragon 820/821 и Snapdragon 835, и обикновено в рамките на дни след обявяването на чипсета! Въпреки това е било 5 месеца тъй като Snapdragon 845 беше обявен, и ние го направихме все още предстои да видите обичайния изходен код на компанията да пада под клона sdm845.

Търсене в CAF за изходен код, свързан с Qualcomm Snapdragon 835 SoC

Забавеното пускане на sdm845 източници в CAF накара някои разработчици да се притесняват, че Qualcomm ще бъде изоставяне на форума, на практика ставайки като MediaTek, като споделя само източници със своите партньори, а не с общност. Разработчиците, с които говорихме, са загрижени, че това би било пагубно за персонализираната разработка на ROM на устройства от компании като Xiaomi, тъй като източниците на CAF често са необходими за изграждане на стабилни ROM за Snapdragon на Xiaomi устройства. Свързахме се с Qualcomm, за да разберем какво се случва и най-накрая имаме добри новини, които да споделим: CAF не е изоставен, просто отпадането на кода на Qualcomm Snapdragon 845 няма да се случи, докато Qualcomm не обяви новите си мобилни платформи. Причината? Защото течове.


Форум на CodeAurora и изтичане на чипове на Qualcomm

Когато инженерите на Qualcomm работят върху нови функции на платформата за своите чипсети, рядко се случва да разработят тези функции само с един чипсет в ума. Възможно е неиздаваните чипсети да използват същия софтуер, който се намира във вече обявените чипсети като Snapdragon 845. Въпреки че компаниите често използват кодови имена, за да предотвратят течове, дори това не предотвратява напълно течове. Например подробности за неиздаваните Qualcomm Snapdragon 670 бяха открити в CAF от Роланд Кванд от WinFuture. По-късно разбрахме от CAF, че Qualcomm Snapdragon 670 е такъв се преименува на Qualcomm Snapdragon 710. Qualcomm не е потвърдила съществуването на Snapdragon 670/Snapdragon 710, но благодарение на препратките в CAF вече знаем много за предстоящия чипсет.

По този начин, за да предотврати появата на подобни течове, Qualcomm избра да забави пускането на изходния код за Snapdragon 845. Казаха ни, че компанията няма да пусне изходния код за чипсета до обявяването на новите мобилни платформи. След след около 6 седмици, компанията ще може да пусне източниците на sdm845 на CAF. Представител на Qualcomm се извини за забавянето на изходния код, заявявайки, че компанията преразглежда техните конвенции за именуване на чипсети в код, така че да могат да пуснат код за вече обявени чипсети, като същевременно избягват течове.