пятница, 12 февраля 2010 г.

Как установить кросскомпилятор для Popcorn (Sigma 86xx) на Ubuntu 9.10

Продолжение. Начало здесь

Данная заметка является вольным переводом статьи CrossCompiling for the NMT с небольшими дополнениями и уточнениями.

Для того, чтобы собрать программу под Networked Media Tank (а собирать мы будем midnight commander) нам нужно сначала установить кросскомпилятор.

Можно загрузить уже собраный Lundman, но, поскольку он был собран в другой конфигурации, программы, скомпилированные с его помощью, могут создавать "Floating point error"

Поэтому соберем кросскомпилятор самостоятельно.

Это не сложно.

Tребуется соединение с интернет.


  1. Определимся с корневым каталогом, где будет находится кросскомпилятор и проекты.
    Я создал каталог /home/akhromov/Staff и загрузил в него toolchain.

    $ mkdir /home/akhromov/Staff $ cd /home/akhromov/Staff $ wget http://www.networkedmediatank.com/download/firmware/nmt/gpl/smp86xx_toolchain.20080505.tar.bz2 $ tar -xjsf smp86xx_toolchain.20080505.tar.bz2 $ cd smp86xx_toolchain.20080505

  2. Установить следующие приложения:
    $ sudo apt-get install flex genromfs bison libncurses5-dev ncurses-base
    Если указанные пакеты или пакет присутствуют в системе, то никаких действий производиться не будет. Если какой либо пакет отсутствует, то он будет установлен.

  3. Установить GCC-3.4
    Меня предупреждал AntiHaos, что необходим компилятор GCC-3.4, но я по лени не проверил это. А Shtucer уже явно указал на мой косяк. Спасибо. Инструкцию поправил.
    $ wget http://ge.archive.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4-base_3.4.6-6ubuntu5_i386.deb $ wget http://ge.archive.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/cpp-3.4_3.4.6-6ubuntu5_i386.deb $ wget http://ge.archive.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4_3.4.6-6ubuntu5_i386.deb $ sudo dpkg -i gcc-3.4-base_3.4.6-6ubuntu5_i386.deb $ sudo dpkg -i cpp-3.4_3.4.6-6ubuntu5_i386.deb $ sudo dpkg -i gcc-3.4_3.4.6-6ubuntu5_i386.deb
    Порядок уствновки важен!

  4. Создать файл конфигурации.
    $ export CC=gcc-3.4 $ make menuconfig



    Ничего не менять, а сразу выбрать пункт < Exit >.
    Устанавливаем следующие параметры:
    Toolchain Options -> Kernel Headers -> (X) Linux 2.6.11.0 kernel headers
    Toolchain Options -> uClibc Version -> (X) uClibc 0.9.28.3
    Toolchain Options -> Binutils Version -> (X) binutils 2.15.91.0.2
    Toolchain Options -> GCC compiler version -> (X) gcc 4.0.4
    Остальные параметры я не менял.
    На вопрос: "Do you wish to save your new Buildroot configuration? "ответить < Yes >

  5. Запустить компиляцию toolchain
    $ make
    Система автоматически загрузит из интернет нужные пакеты и скомпилирует их.
    Весь процесс на Thinkpad x200s (процессор SL9400, RAM - 3GB) и 2-х мегабитным каналом в интернет занимает около получаса.


    Если все прошло правильно, то по завершении компиляции toolchain, Вы увидите в терминале следующее:
    . . . . . . . . . strip /home/akhromov/Staff/smp86xx_toolchain.20080505/toolchain_build_mipsel_nofpu/gdbclient-6.3/gdb/gdb install -c /home/akhromov/Staff/smp86xx_toolchain.20080505/toolchain_build_mipsel_nofpu/gdbclient-6.3/gdb/gdb /home/akhromov/Staff/smp86xx_toolchain.20080505/build_mipsel_nofpu/staging_dir/bin/mipsel-linux-uclibc-gdb ln -s ../../bin/mipsel-linux-uclibc-gdb \ /home/akhromov/Staff/smp86xx_toolchain.20080505/build_mipsel_nofpu/staging_dir/mipsel-linux-uclibc/bin/gdb creating toolchain-path.env... akhromov@x200s:~/Staff/smp86xx_toolchain.20080505$
  6. Проверка кросскомпилятора
    Для этого создадим тестовый каталог
    $ cd .. $ mkdir test $ cd test
    и в нем тестовый файл hello.c следующего содержания.
    #include <stdio.h>
    int main()
    {
      printf ("Hello Popcorn!\nThis cool!\n");
      return 0;
    }
    компилируем его
    $ source ../smp86xx_toolchain.20080505/toolchain-path.env $ mipsel-linux-gcc -static hello.c -o hello
    загружаем на наш nmt и в терминале запускаем:
    # ./hello Hello Popcorn! This cool! #
Теперь наш кросскомпилятор готов для работы.

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

четверг, 11 февраля 2010 г.

Как добавить новый раздел диска в Ubuntu 9.10

Изначально диск на x200s был разбит следующим образом:



Recovery partition - фишка от IBM для восстановления системы.

На разделе диска (/dev/sda5), куда я установил Ubuntu 9.10 заканчивается место.

К счастью на диске есть один незадействованный раздел (/dev/sda8) размером 83 Gib. Я смонтирую его в каталог /home и перенесу на него данные пользователя.

Пользователь (User): akhromov входит в группу (Group): akhromov.

Итак:

  1. Отформатировать /dev/sda8

    $ sudo mkfs -c -t ext4 /dev/sda8
  2. Скопировать данные на новую партицию

    $ sudo mkdir /mnt/tmp $ sudo mount /dev/sda8 /mnt/tmp $ sudo mkdir /mnt/tmp/akhromov $ sudo chown akhromov:akhromov /mnt/tmp/akhromov $ cp -r /home/akhromov/.* /mnt/tmp/akhromov $ sudo umount /dev/sda8 $ sudo mv /home/akhromov /mnt/tmp
  3. Отредактировать /etc/fstab
    Для этого запустить редактор

    $ sudo nano /etc/fstab
    и добавить в fstab следующие строчки:

    # Монтирование каталога /home
    /dev/sda8 /home ext4 defaults 1 2

  4. Перезагрузиться
    Если при старте Gnome появляется сообщение типа
    could not update ICEauthority file /home/tip/.ICEauthority
    то нужно поправить права доступа к корневому каталогу пользователя:
    $ chown akhromov:akhromov /home/akhromov
  5. Удалить старые данные
    Если все работает нормально, то через пару дней можно удалить старый home, сохраненный в каталоге /mnt/tmp:

    $ cd /mnt $ sudo rm -r tmp

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

пятница, 5 февраля 2010 г.

Motorola Milestone - ещё одно устройство в моей сети.

Как внезано произошла линуксинизация телефонов. Помнятся первые попытки создания таких устройств. Провальные. Сейчас эти устройства мало кто вспомнит, а некоторые фирмы-разработчики почили в бозе.

И вот, на тебе. Все делают Android.

Microsoft "предостерегает", потому что Android уже сейчас мощный конкурент еще не вышедшего WinMobile7.

Microsoft "любит", потому что Android со своей нестандартной Java подрывает позиции Java ME и Java SE, как конкурента .NET.

Microsoft "ненавидит", потому что "харизма" от MS перетекла сначала в Apple, а теперь направляется в Google Android.

И "думает" как вести войну на два фронта. Есть предположения, что по стратегическим планам Microsoft WinMobile 6,5 должна убить Android, а "Семерка" разберется с iPhone. Если это так, то в MS действительно все малохольные.

Это ж сколько денег мимо кассы проплывает.

А имя Google действительно стоит денег, раз в него поверило столько производителей.

Кстати говоря, в начале года Microsoft и Apple объединились и начали военную команию против Google. Пока на самого Большого Брата впрямую не нападают, а лупят его саттелитов в лице HTC за нарушение патентов.

Не питаю никакой любви ни к кому из этой троицы. Чем больше они будут лупить друг друга, тем лучше нам будет.

Обзоры про android и про Motorola Milestone можно посмотреть здесь:





Все недоделки связаны в основном с реализацией поддержки русского языка.
Дело в том, что ее почти нет в телефоне.
  1. Русификация аппаратной клавиатуры.

    Телефон русифицируется программой ruKeyboard
    Телефон можно русифицировать "по транслиту" или "ЙЦУКЕН".
    При русификации "транслитом" что клавише С соответсвует буква "Ц", а клавише F - соответсвенно буква "Ф". И так далее.
    Буквы, не уместившиеся на клавиатуру, набираются последовательным нажатием клавиш:
    "Ч" - C, H
    "Ь" - Q, Q
    "Я" - Y, A
    "Э" - J, E
    И так далее...

    В общем, такого изврата я еще не видел. Но работает. И даже удобно, когда привыкаешь.
    Не ясно, правда как набирать буквосочетания "ую" (например в словах "кую красную маракую").
    Традиционно надписи русских букв "ЙЦУКЕН" сделаны синим цветом. В темноте их не видно, потому, что не "просвечиваются". Потому что "всю контабанду делают в Одессе, на Малой Арнаутской".

  2. Телефонная книга.
    Можно настроить на автоматическую синхронизацию с Google контакты. Работает эта функция хорошо и быстро.
    Последнее время Google добавляет новые поля в контакт. Правда не все они синхронизируются с Android. Будем надеятся, что эта функциональность в ближайшее время будет развита.
    Минусы:
    • Отсутствует группировка контактов по первой букве в соответствии с русским алфавитом.
    • Отсутствует изменение способа сортировки - фамилия, имя, компания и т.п.
    • Мало полей в странице контакта.
      Вообще, полей в карточке контакта великое множество. Посмотреть их можно сделав импорт контактов из web gmail. Но большинство их не доступно для изменения через web интерфейс или через интерфес Android
    • Не все поля контакта синхронизируются.

  3. SMS
    На русском до адресата не доходят. Точнее доходят, но без текста.
    Есть сторонняя программа: Handcent SMS, которая решает эту проблему. Заодно красивостей прибавляет.

  4. USB разъем - проприетарный.
    Такой же как у нокий.
    Если бы свой сделали, еще можно понять. Но зачем нокиевский копировать?! Поди еще и роялти за использование отчисляют. Я тут тень на плетень навел.
    Всем миром договорились, что это будет единый стандартный разъем для мобильных телефонов для синхронизации и зарядки. Чем старый mini-USB не устраивал? Судя по всему там, на диком западе, тоже коррупция и сплошная бездуховность.

  5. Экран, тачскрин.
    Экран большой контрастный, высокого разрешения.
    Минусы:
    • на ярком солнце не видно ничего (пробовал пользовать на Эльбрусе);
    • если не заблокировать экран и начать вертеть аппарат в руках, он сам будет набирать телефоны из адресной книги.
      Мой совет: держа в руках телефон, прячте свои эмоции, забудьте слова "идиот", "пидорас", вводите в лексикон: "классный", "молодец" и т.п.;
    • Если руки влажные, сенсорная чувствительность экрана снижается
  6. Микрофон
    Очень направленный. Если повернуть телефон даже немного в сторону от рта, собеседник ничего не слышит.
  7. Браузер
    Браузер используется свой. Он работоспособный, но мне не понравился. Жду Mozila Firefox.

  8. Камера
    Область применения - фотографии для блогов, фотокопии документов. Как замена фотоаппарату - вариант сомнительный. Я снимал на Эльбрусе, где много солнца. Все равно снимки никакие. Вот пример.



    Много шума, резкость плохая.

Ощущения от реализации andriod такие. Взяли весь современный список функций смартфона, кинули в банку, тщательно перемешали, засыпали в квадратную форму и очень хорошо утрамбовали. Но:
  • То что сделано - сделано очень неплохо.
  • Гуглу верят - поэтому будет поддержка разработчиков.
  • Открытая платформа. Хочешь - пиши сам, что хочешь.
  • Баги, надеюсь, исправят.
В самом деле это убийца iPhone? На мой взгляд - нет. У них пока разные ниши. iPhone - это телефон для метросексуалов, блондинок и людей у которых есть более важное занятие, чем настраивать телефон.

Android - более технократический гаджет. Его будут покупать в первую очередь те, кому интересно копаться в программах. Кроме того в Android встроен GPS. Владельцы автомашин могут тоже подтянуться.

А вообще-то, пока Google не знает в чем преимущество Android перед iPhone, кроме технологического. Я бы на их месте сделал бы шаблоны с предустановленным софтом для разных категорий покупателей: для девушек, для автомобилистов, для домохозяек, для комерсантов. И выпустил приложение по примеру Firefox, позволяющее собирать коллекции из софта. Это было бы дело.

По состоянию на 8 марта 2010 года телефона в официальной продаже нет. Но можно оформить заказ на сайте www.kupimoto.com
Список наиболее полезных ресурсов сети, посвященных android.

Секретные Коды

КодФункция
*#06#IMEI
*#*#4636#*#*Информация и статистика
*#*#8350#*#*Voice Dialer Logging Disabled
*#*#8351#*#*Voice Dialer Logging Enabled
*#*#7262626#*#*FieldTest
**05*<puk Code>*<enter a new pin>*<confirm the new pin>#PUK Unlock (from emergency dial screen)
*#*#2846579#*#*TestingSettingsBroadcastReceiver defined in AndroidManifest.mk (Settings.apk)
*#*#8255#*#*GTalkDiagnosticsBroadcastReceiver defined in AndroidManifest.mk (Talk.apk)

Кроме того в сети много книг по разработке на платформе Android

Вот некоторые из тех, что можно найти на сайте 4PDA и некоторых других.

Внимание! Вы не можете скачивать эти книги, если у Вас нет на них прав!
Если нет подходящей темы, открывайте новую.