Идолон дает хорошее предложение.В теории то, что там написано, правда.На практике это немного более привлекательно.Я портирую Android Kernel уже несколько месяцев.Моя цель состояла в том, чтобы на моей плате был пользовательский процессорный модуль S5PV210 с моим пользовательским вводом / выводом.У меня есть исходный код для Samsung Galaxy Tab и несколько Android-смартфонов Samsung, а также несколько версий (Froyo, Gingerbread) для оценочной платы Samsung (SMDKV210 для процессора S5PV210).К вашему сведению, S5PC110 является близкой производной.Вот что я узнал.Несмотря на то, что все драйверы устройств должны быть построены очень модульно и независимо друг от друга, и вы сможете заменить их на аналогичные устройства, как это сделала компания Samsung, это не совсем так.Один из примеров - об управлении питанием.Во многих низкоуровневых драйверах, связанных с аппаратными устройствами, это вызывает некоторую специфическую процедуру для других аппаратных устройств, таких как микросхема управления питанием.Таким образом, когда вы меняете выбор драйверов в «make xconfig» или «make menuconfig», он удаляет исходный код того, что вам не нужно, и добавляет тот, который вам нужен, но все же есть другие модули, которые вызываютфункция низкого уровня, которую вы удалили.При сборке вы получите тонны неразрешенных внешних компонентов, поскольку вы удалили микросхему управления питанием, которой нет у вашего оборудования, но она используется в исходном коде, с которого вы начали.Я просмотрел несколько исходных кодов устройств Samsung, и они разветвились очень рано.Они были адаптированы различными командами, и было бы много работы по переходу с одного устройства на другое из одного комплекта исходного кода.
Вот как мне это удалось: я купил оценочную плату S5PV210 с уже перенесенным ядром Android (Gingerbread).Все вопросы управления питанием и взаимозависимые вопросы уже устранены.Затем, сформировав рабочий комплект, я мог бы поменять нужное мне устройство (то, которое нельзя купить без обязательства в 100 тыс. Единиц в год), не зацикливаясь на взаимозависимости.Тогда я мог бы даже изменить разрешение ЖК-дисплея (с 800x480 до 1024x768), сенсорного экрана, сотового модема и т. Д. И т. Д. Все это занимает около месяца работы только с одним парнем (мной).
Начиная с Galaxytab или другого коммерческого устройства, я потратил месяцы головных болей без каких-либо полезных результатов, кроме того, что я усвоил.
Есть одно требование, чтобы преуспеть в моем подходе.Вы должны знать оборудование, на котором вы работаете.Например, вам нужно знать, какой сенсорный экран у вашего оборудования (набор микросхем) для выбора драйвера и где он подключен, чтобы подключить его к нужному устройству (USB, последовательный порт и т. Д.).То же самое для всех других устройств (микросхема управления питанием, клавиатура, подсветка, ЖК-дисплей и т. Д.)
Надеюсь, что это полезно, чтобы дать вам представление о выполняемой работе и о том, как вы можете ее выполнить.