Как я стал ведущим разработчиком в проекте kexecboot

Все началось с того, что я купил себе КПК Sharp Zaurus SL C-1000. Внезапно обнаружилось, что для него есть либо удобная, но старая "прошивка" на базе Qtopia и ядра 2.4 (Cacko), либо много разных новых на базе X11 и ядра 2.6 (pdaXrom, OpenZaurus, Angstrom и т.д.), но страдающих типичными болезнями OpenSource и десктопного X11.

В тот момент как раз на базе наработок OpenZaurus и нескольких других создавалась OpenEmbedded. Сам проект OpenZaurus предлагалось заменить дистрибутивом Angstrom. По сути, Angstrom на тот момент был "прошивкой", над которой работало больше всего народу. Но, в репозиториях было довольно мало скомпилированных пакетов (оно вроде и сейчас так), тогда как в "рецептах" OE было значительно больше софта. Поэтому я решил поставить OE и собрать себе недостающее (кажется, Gnumeric и xournal). Начал собирать, начали появляться вопросы. Чтобы их решать, начал часто общаться на канале разработчиков OE в irc.

В процессе выяснилось, что стандартная схема разбивки NAND в Zaurus не позволит запихать в раздел с программами все, что мне надо. Пришлось собирать и ставить u-boot, поскольку штатный загрузчик не позволял изменить разбивку NAND. Результатом совместного творчества с другими заинтересованными людьми стала поддержка u-boot для Zaurus в OE.

Там же я и столкнулся с изначальным автором kexecboot. В проекте нужно было дописать парсер командной строки ядра (/proc/cmdline), чтобы передавать параметр mtdparts следующему ядру. Задачка была довольно простая (в университете на лабораторных работах примерно такое делают). Потом было что-то еще и еще. Потом мне дали права коммита в репозиторий. А потом автор проекта ушел заниматься научной работой и пропал на полгода. Так что, дальнейшим развитием проекта пришлось заниматься мне. Собственно, лог git'а все это наглядно показывает.

Примерно в то же время kexecboot "засветился" в Zubuntu - порт Ubuntu для ARM на Zaurus'ы. Автор Zubuntu (Omegamoon) сделал несколько очень важных вещей и, что самое главное, дал понять, что у kexecboot есть весьма неплохая ниша. Он позволяет разработчикам дистрибутивов не задумываться о том, что умеет и что не умеет загрузчик той или иной "железки".

В Canonical какое-то время проявляли живой интерес к проекту. Товарищ Michael Casadevall достаточно часто появлялся на нашем канале в irc и даже сделал несколько патчей. Но, потом у меня родился ребенок, и я на долгие 6 месяцев перестал заниматься проектом и пропал из irc. При этом все нововведения так и остались в другом бранче. Это негативно повлияло на проект, Michael Casadevall занялся разработкой своей альтернативы.

На фоне этого разочарования я довольно активно поработал с октября по декабрь прошлого года. А потом снова долгая стагнация. Пока я не увидел, что CE Linux Forum принимает заявки на финансирование проектов в сфере embedded linux. Но об этом я напишу в следующий раз :)