вторник, 6 апреля 2010 г.

Cross compiling midnight commander for nmt (Sigma SMP86XX) (Часть 1)

Собственно появилось желание установить новую версию mc на HDX-1000 и время разобраться в процессе кросс-компиляции.

Я буду проделывать все шаги от начала - почти полного незнания того, как делается кросс-копиляция, до, надеюсь, рабочего midnight commander.

Полного и исчерпывающего how to я нигде не нашел. Попытаюсь устранить пробел.


Хочу поблагодарить разработчиков и мейнтейнеров проекта midnight commander с которыми мне довелось пообщаться, а именно andrew_b, il.smind, repolainen, slavazanko за доброе отношение и желание помочь.
Итак, сначала Устанавливаем toolchain (кросс компилятор) для Sigma 86xx

Здесь отвлечемся и просто уточним процесс сборки из исходников программы в linux.

Собственно весь процесс сборки изображен на диаграмме слева.

Почти для всех программ этот процесс одинаков.

Когда мы собираем программу или библиотеку мы последовательно выполняем три шага


$ ./configure [param-1]...[param-n]
$ make
$ make install


Выполнение по шагам этой инструкции предполагает отсутствие ошибок. Составляя эту инструкцию, я все проделывал самолично и, думаю, значительно минимизировал их количество. Но, все таки, в вашей сборке могут выявиться ошибки, которые не возникли в моей конфигурации. Причин, почему это происходит, достаточно.
  • Во первых сам проект midnight commander далеко не тривиальный;

  • Все проекты созданы разными людьми, которые иногда и не осознавали как их творение будет использоваться;

  • Зачастую, разработчики не парятся тестированием своих проектов на совместимость с кросскомпиляцией;

  • Китайцы, которые реализовали устройство на китайской платформе Syabas, куда мы будем кросскомпилировать midnight commander, учились не в академгородке.

Есть еще пара десятков причин. Но не будем заморачиваться. Как правило, все проблемы решаются.

Теперь договоримся о структуре каталогов для ведения проекта.
Для сборки toolchain мы использовали каталог Staff. Он у нас и дальше будет корнем проекта.
А все библиотеки и сам midnight commander будут располагаться в каталогах ниже Staff по иерархии.
Ну вот теперь все готово. Вперед!

  1. Скомпилировать zlib

  2. Скомпилировать libpng

  3. Скомпилировать slang-2.2.2

  4. Скомпилировать gettext-0.16

  5. Скомпилировать libiconv-1.13.1

  6. Скомпилировать glib-2.22.5

  7. Скомпилировать midnight commander



Если нет подходящей темы, открывайте новую.

Пока еще:


Если есть желание помочь - велкам. В форуме есть все мои наработки.

Если лениво все это проделывать, то можно просто скачать
дистрибутив: mc-4.7.1-mipsel.tar.bz.
и библиотеки: mc-4.7.1-mipsel-libs.tar.bz

понедельник, 5 апреля 2010 г.

Китайский бизнес.

Поскольку я сейчас пытаюсь портировать midnight commander на платфрму popcorn, я очень внимательно читаю всякие сайты, могущие дать мне необходимую информацию.

И внимание мое случайно привлекла цифра закачек firmware с сайта о HDX-1000

Этих закачек там примерно 25000. Значит можно условно считать, что столько аппаратов было продано.
Цена одного аппарата около 200$ Себестоимость железок около 30 баксов (моя потолочная оценка).

Таким образом доход компании получается 25000 * 170 = 4 250 000$ на этом устройстве.

Эта компания имеет только один headliner-ский продукт. Время жизни его 2 года.
Таким образом годовой доход компании 2 125 000$.

Общее число сотрудников компании около 120 со средней зарплатой 700$ (опять моя потолочная оценка с учетом налогов и комунальных расходов).
Таким образом накладные расходы составляют 1 008 000$.

Очищенная прибыль компании составляет 1 117 000$.

Что то в России нет желающих такие железяки делать.
Вот такая арифметика из пальца.