Эта статья изначально является переводом статьи http://wiki.debian.org/DebianOnFreeRunner
Вы можете установить Debian на свой OpenMoko FreeRunner и использовать эту систему, чтобы полностью удовлетворить свои требования к телефону. Так, вы сможете использовать почти все доступные для Debian пакеты всего лишь одним вызовом 'apt-get install'. Это всё тот же самый функциональный дистрибутив, который вы знаете со своего компьютера или сервера.
Этот установщик относительно новый и, возможно, содержит ошибки. Вы используете его на свой собственный страх и риск.
Если вы хотите немного больше узнать о своей новой системе Debian, вы можете читать установочный скрипт и выполнять шаги вручную. Это также позволит большую гибкость при разметке внутренней памяти, выборе пакетов и настройке.
На данный момент, только набор ПО с freesmartphone.org упаковано для Debian, то есть frameworkd и zhone. Illume будет доступен, когда выйдет следующая сборка Enlightment. Но это не значит, что вы не сможете использовать свой любимый набор ПО (например, SHR) в Debian, он просто должен быть упакован кем-то ещё.
Вы можете попробовать установку на Neo1973, но на свой страх и риск. Вам почти наверняка придётся менять параметры настройки, но вы можете найти нужные значения в официальном образе FSO для вашего устройства.
Если у вас нет кард-ридера, чтобы сделать резервную копию вашей MicroSD-карточки, вы можете скопировать её содержимое, включая разметку диска, посредством сети. Вам нужен будет загруженный Freerunner с доступом к сети (USB, беспроводная сеть и т.п.) и *nix-машина. Убедитесь, что выключен автопереход в спящий режим.
Если вы хотите, чтобы с резервной копии можно было восстановиться позже, запустите следующее с вашего Freerunner:
dd if=/dev/mmcblk0 | ssh user@backup.server "gzip -9 | dd of=sdcard.tgz"
Это создаст сжатую копию карточки, проводя сжатие на сервере резервного копировани (при условии, что он мощнее 400MHz). Чтобы восстановиться, запустите следующее с сервера резервного копирования:
dd if=sdcard.tgz | gzip -d | ssh root@freerunner.address dd of=/dev/mmcblk0
Как всегда, дважды проверьте синтаксис для 'dd'.
Рекомендация - устанавливайте систему на карту как можно большего объема - штатная карточка у меня переполнилась после установки оболочки и локализации.
Для установки Debian на MicroSD-карту вам понадобится любой Linux, уже запущенный во внутренней памяти. Все официальные образы (2007.2, 2008.8, FSO Milestone 2) должны быть исправны. Вообще, установка была проверена только на свежем uBoot (от 2008-08-05), так что рекомендуется обновить его. Убедитесь, что ваш FreeRunner подключён к Интернет через USB либо беспроводную сеть.
Войдите в систему на вашем FreeRunner, скачайте и запустите установочный скрипт:
$ wget http://pkg-fso.alioth.debian.org/freerunner/install.sh $ chmod +x install.sh $ ./install.sh Auto-Installer for Debian on the Openmoko FreeRunner (GTA02) v1.0 ----------------------------------------------------------------- Copyright 2008 Joachim Breitner <nomeata@debian.org> Copyright 2008 Luca Capello <luca@pca.it> This program is licensed under the terms of GNU General Public License either version 2, or (at your option) any later version. Usage: [variable1 variable2 ...] ./install.sh stage1 [stage2 ...] Variables: HOSTNAME the name of the machine (default to debian-gta02) SD_DEVICE the character device to access the microSD card (default to /dev/mmcblk0) SD_PART1_FS the filesystem for the first microSD card partition, i.e. the one containing the uImage.bin (default to ext2, possible values are ext2/vfat) INST_DIR the directory where the microSD card partitions will be mounted to (default to /mnt/debian) INST_MIRROR the Debian mirror used during installation, it should be set to a mirror nearby that carries armel binaries for unstable and experimental (default to http://ftp2.de.debian.org/debian) APT_RECOMMENDS control if APT should install recommends by default (default to false, possible values are false/true) DASH_BINSH configure dash as default /bin/sh (default to true, possible values are true/false) Stages: all Runs all the stages in the following order: testing time partition mount debian apt fso configuration kernel unmount testing Verifys that everything is in place for this installer to work time Fetches the current time from ntp.fu-berlin.de via rdate partition Partitions and formats the microSD card found in /dev/mmcblk0 (WARNING, this will destroy all the data on the microSD card) mount Mounts microSD card partitions under /mnt/debian debian Installs a basic Debian system, including an SSH server apt Sets up APT repositories fso Installs packages required to use the Zhone GUI configuration Configures various parts of the system, such as the X server kernel Downloads and installs kernel image and modules unmount Unmounts the Debian filesystem mounted at /mnt/debian Unsupported or buggy stages, use at your own risk: uboot Configures the U-Boot environment to boot Debian (it needs to run between the debian and the unmount stage) For more information, go to http://wiki.debian.org/DebianOnFreeRunner
Пожалуйста, прочитайте это введение для создания общего представления о том, что будет происходить. Вы можете запустить установщик с помощью
$ ./install.sh all
или, если хотите использовать зеркало,
$ INST_MIRROR=http://ftp.cc.debian.org/debian ./install.sh all
Учтите, что запуск 'all' включает в себя разметку диска, описанную выше, что уничтожит все данные на microSD-карте. Вас предупредили.
Перед установкой прочтите внимательно следующее! По-умолчанию, файловая система, создаваемая install.sh для загрузочного раздела, есть ext2, но uBoot требует, чтобы загрузочный раздел был в fat. У вас есть две возможности:
I) Изменить ваш uBoot (как описано ниже) для загрузки прямо с ext2
ИЛИ
II) Сделать, чтобы загрузочный раздел был vfat, запустив - рекомендация ведущих ФрииРунереводов
SD_PART1_FS=vfat ./install.sh all
Теперь вам не нужно возиться с изменением 'заводских' настроек U-Boot каждый раз при рестарте телефона.
А сейчас наберитесь терпения ненадолго, пока скрипт скачивает, устанавливает и настраивает всё, что нужно. Как только это пройдёт без ошибок, вам нужно будет подстроить среду uBoot.
Из-за временных ошибок (например, проблем с сетью), вы можете перезайти в установку, указав пункты, которые вы хотите запустить:
./install.sh debian apt fso configuration kernel unmount
Это на вашей ответственности - убедиться, что инсталлятор находит установку соответствующей предыдущим шагам, особенно в отношении смонтированных файловых систем.
Установочный скрипт настраивает dash как оболочку по-умолчанию (т.е. /bin/sh). Если вы всё же предпочитаете bash как /bin/sh, поставьте его, запустив
DASH_BINSH=false ./install.sh all
во время установки, либо, при установленном Debian, с помощью
dpkg-reconfigure dash
На этом месте, если вы хотите запускать Debian из внутренней памяти вместо microSD-карты, смотрите /MovingToFlash (ещё не переведено)
Если вы установили Debian с vfat в качестве загрузочного раздела, вы можете использовать стандартный пункт "Boot from SD (fat+ext2)" с NAND uBoot и пропустить эту главу. Если нет, вам необходимо изменить среду uBoot. Выполнение этого вручную приветствуется, настраивайте так, как вам больше нравится. Как бы то ни было, мы предоставляем скрипт, который настраивает uBoot так, что:
Чтобы запустить скрипт, вам нужны:
Теперь вы можете настроить uBoot следующими командами, запущенными от рута:
wget http://pkg-fso.alioth.debian.org/freerunner/configure-uboot.sh chmod +x configure-uboot.sh ./configure-uboot.sh
Вместо данного скрипта configure-uboot.sh вы также можете взять этот configure-uboot.sh, который ускорит загрузку, используя quiet-mode. Он также добавляет дополнительный параметр загрузки для загрузки без quiet-mode для нужд тестирования.
Не используйте этот скрипт с устройством, отличным от FreeRunner!
Как только установка закончена, система Debian будет загружаться с SD-карты по-умолчанию. Чтобы загрузить вашу нормальную систему, выберите "Boot Flash" в меню загрузки. После загрузки вы должны увидеть запущенный Zhone, и (теоретически) будете способны совершать и принимать телефонные звонки, отправлять и получать SMS, иметь доступ к телефонной книге на SIM-карте и пользоваться GPS.
Не будет запущен Illume, но вы можете выдвигать (и задвигать) экранную клавиатуру кнопкой AUX. С клавиатуры вы можете запустить xterm с помощью комбинации Alt-Ctrl-x, а затем переключаться между этими двумя приложениями с помощью Alt-Tab. Начиная с этого места, нет больше ничего особенного в вашем телефоне – это Debian-система!
Некоторые идеи, которые можно осуществить:
apt-get update -o Acquire::PDiffs=false
или насовсем изменить предпочтения, добавив строку
Acquire::PDiffs "false";
в файл /etc/apt/apt.conf (быть может, создав этот файл)
Когда что-то не работает, помогите нам, пожалуйста, проверив в первую очередь, работает ли оно с официальным образом FSO. Если нет, то это, видимо, не специфический баг Debian, что должно быть доложено на http://trac.freesmartphone.org/
Хотя некоторых пакетов ещё нет в официальном репозитории Debian, вы можете использовать баг-трекер, чтобы оповестить об ошибках, желательно с помощью программы reportbug. Мы найдём их, и пакеты, скорее всего, будут добавлены в репозиторий, а ошибки исправлены.
Когда вы отправляете отчёт об ошибке, пожалуйста:
This package is not yet in Debian but it will be soon, please see http://wiki.debian.org/pkg-fso
Ввод PIN-кода (уже исправлено)
Для нужд разработки вам могут понадобиться приложения FSO на настольном компьютере. Для этого добавьте следующие строки в sources.list:
deb http://pkg-fso.alioth.debian.org/debian unstable main deb-src http://pkg-fso.alioth.debian.org/debian unstable main
И установите брелок:
apt-get update apt-get install pkg-fso-keyring
Вы можете разрабатывать и тестировать приложения для Debian на своём настольном компьютере (точно так же вы можете запустить на нём Zhone, если угодно). Если приложение платформо-независимо (например, python-приложение), вы можете просто установить его на свой FreeRunner. Для зависимых от архитектуры приложений вы можете использовать qemubuilder.
Чтобы собрать приложение для armel с помощью qemubuilder, вы можете использовать эту инструкцию:
KERNEL_IMAGE=/var/cache/pbuilder/armel/vmlinuz-2.6.26-1-versatile ARCH=armel BASEPATH=/var/cache/pbuilder/armel/base.qemu MEMORY_MEGS=256 MIRRORSITE=http://mirror.yandex.ru/debian/
Debian на FreeRunner сделан командой pkg-fso. Мы предоставляем специфические для телефона пакеты и создали установочный скрипт. Если у вас есть вопросы, вы можете связаться с нами:
phonebookTupleToNumber assert ntype in ( 129, 145, 208 ), "unknown type %i" % ntype. Будет полезно, если вы выясните, что это за номер, и предложите в http://trac.freesmartphone.org/ добавить его в список.