android-4.0 with openvz kernel [message #52015] |
Mon, 27 April 2015 08:15 |
|
Привет!
Хочу поделится наработками и получить пожелания-отзывы.
Ядро openvz было расширено зарлатками для работы android. livecd iso со сборкой выложено на Google Drive. Получилось 16 частей.
На iso два ядра: 32 и 64 бит, загрузка для
VirtualBox и на нативном железе. То есть в отличии от стандартного
android-x86 присутствует полный набор модулей ядра от openvz.
system и ramdisk только перепакованы. Ничего докачивать не надо (типа
haundini). Каталог android-4.0-r1 можно переписать на любой раздел с
ext2/ext3, прописать в загрузчик конфигурацию с iso и получить
загрузку android, когда изменения сохраняются межде перезагрузками.
initrd -- лишь немного модифицированный initrd от gentoo. Поэтому может грузить стандартно с раздела или подкаталога на разделе. Если прописать к параметрам doshell, то вместо загрузки системы получим shell в initrd (с Midnight Commander).
android может запускаться в chroot параллельно X-сам.
Практичкски все приложения работают. Проблема (стандартная) только с проигрыванием локального видео на CPU от AMD (с Intel вроде должен работать).
Пробовал собрать сам userspace, но он получается немного не таким, как собранные бинарники от android-x86. Например, при начальном старте выскакивает менюшка с просьбой выбрать приложение, которое что-то там должно обработать.
Для работы переключателся ввода рус/англ(CAPSLOK) в VirtualBox пришлось заменить system/usr/keychars/Generic.kcm на содержимое Generic_ru.kcm
Вообще, в исходниках присутствуют игры (quake), но почему-то не попадают в образ. Хотелось бы также, чтоб на iso присутствовало API-demo как в android-3.2
В планах попробовать наложить на ядро заплатки от cells
http://systems.cs.columbia.edu/projects/cells/build/
Эти заплатки (для framebuffer и android drivers) позволят запускать android в контейнере.
Если получится портировать, то эти заплатки реализуют для каждого контейнера свой framebuffer. Фактичекски, контейнеры станут почти похожи на VM.
Версия ядра изменена с 2.6.32 на 3.26.32, чтоб можно было использовать в CT0 дистры типа calculate с glibc, которая хочет ядро 3.12+
android-4.0-r1.iso.00
https://googledrive.com/host/0B35PjbLHNzyqOWU0ZjFSeWZ0UTA
android-4.0-r1.iso.01
https://googledrive.com/host/0B35PjbLHNzyqSEZoZkxBaHlIRDA
android-4.0-r1.iso.02
https://googledrive.com/host/0B35PjbLHNzyqNFBrV05WSlVXREE
android-4.0-r1.iso.03
https://googledrive.com/host/0B35PjbLHNzyqOW1hZU15RGNEbnM
android-4.0-r1.iso.04
https://googledrive.com/host/0B35PjbLHNzyqQWQ1RzBXbHBYWHM
android-4.0-r1.iso.05
https://googledrive.com/host/0B35PjbLHNzyqSkxMWXpweHFBb0U
android-4.0-r1.iso.06
https://googledrive.com/host/0B35PjbLHNzyqTWI0Q0c3Ul9IclU
android-4.0-r1.iso.07
https://googledrive.com/host/0B35PjbLHNzyqbjhwNFpFWVI2MkE
android-4.0-r1.iso.08
https://googledrive.com/host/0B35PjbLHNzyqZEF3b01NM3RSb28
android-4.0-r1.iso.09
https://googledrive.com/host/0B35PjbLHNzyqUmc2VExJTjVzbk0
android-4.0-r1.iso.10
https://googledrive.com/host/0B35PjbLHNzyqU1IteUNlT2dETFk
android-4.0-r1.iso.11
https://googledrive.com/host/0B35PjbLHNzyqYUh6RFV2UzBfN1E
android-4.0-r1.iso.12
https://googledrive.com/host/0B35PjbLHNzyqZVd1eGU5OFpOVkE
android-4.0-r1.iso.13
https://googledrive.com/host/0B35PjbLHNzyqVUxCSE11dXBfUTg
android-4.0-r1.iso.14
https://googledrive.com/host/0B35PjbLHNzyqVjRvbGZMbmU1VnM
android-4.0-r1.iso.15
https://googledrive.com/host/0B35PjbLHNzyqQnRhOWI5Q1hDTGs
ebuild ядра с patch's для android:
openvz_android_kernel_ebuild.tar.bz2
https://googledrive.com/host/0B35PjbLHNzyqZVNxdHFFckxoNWs ,
|
|
|
|
Re: android-4.0 with openvz kernel [message #52019 is a reply to message #52015] |
Tue, 28 April 2015 09:28 |
|
В связи с открытием долго ожидаемого ядра 3.10 от Parallels рад, что смогу начать портировать свои наработки для ядра RHEL7 (android и livecd)
Оригинальное ядро от RHEL7 работает с android, но без контейнеров это не очеь интересно.
PS: надо будет спросить у команды разработчиков совет по портированию наработок cells на это ядро. В cells использовалось ядро 3.1 и для виртуализации framebuffer они ввели ещё какой-то namespace. Вопрос в том: похожая функиональность (device namespace) уже как-то реализована в openvz, а если нет -- то как её интегрировать в openvz?
|
|
|
Re: android-4.0 with openvz kernel [message #52021 is a reply to message #52018] |
Tue, 28 April 2015 09:48 |
|
Проект cells сделал мобильный с урезанной контейнеризацией: на телефоне с модифицированной прошивкой работают два контейнера (больше не тянет) с android. На страничке cells есть видео с демо.
Относительно openvz: виртуализация framebuffer превращает контейнеры в номральную VM, между которыми можно спокойно переключатся. Не надо специально устанавливать в контейнеры VNC. Для меня это плюс.
Запуск Andoid в контейнере -- тоже неплохо. Ведь и обьчные дистры можно запускать в chroot. Одноко ведь сколько сил положили на разработку контейнеров.
PS: про cells узнал из новости на habrahabr. В ней один из ведущих разработчиков openvz (зашифрованный ником) поведал, что под его руководством два стажировщика из Питербурга повторили достижение cells. Они тоже не стали использовать ядро openvz (типа сложно портировать), а использовали ядро от cells (3.1)
PPS: версия android в cells: 4.3
|
|
|
Re: android-4.0 with openvz kernel [message #52022 is a reply to message #52019] |
Tue, 28 April 2015 10:28 |
|
> PS: надо будет спросить у команды разработчиков совет по портированию наработок cells на это ядро.
пишите тогда сразу в рассылку - devel@openvz.org
лучше сразу подписаться на лист, потому что письма с адресов, не подписанных на рассылку, проходят премодерацию.
Подписаться можно здесь - lists.openvz.org
|
|
|
Re: android-4.0 with openvz kernel [message #52029 is a reply to message #52022] |
Wed, 29 April 2015 14:42 |
|
> лучше сразу подписаться на лист, потому что письма с адресов, не подписанных на рассылку, проходят премодерацию.
Подписался достаточно давно, а вот digest только сейчас начал приходить.
PS: размер git-хранилица ядра 3.10 от openvz примерно 800Мб. История изменений -- от сотворения мира (2.6.12). Качал git ядра от cells -- тоже самое, только покороче (до версии 3.1)
|
|
|