Изменения

Перейти к: навигация, поиск

Raspberry Pi

2911 байт добавлено, 13:10, 5 сентября 2015
Создал страницу
= Raspberry Pi =
Информация о нашем экземпляре Raspberry Pi:

$ uname -a
Linux puffin 3.2.0-4-rpi #1 Debian 3.2.51-1+rpi1 armv6l GNU/Linux
$ cat /etc/debian_version
7.8

== distcc ==
Компиляция на Raspberry Pi чего-либо сложнее "Hello World!" может занимать приличное количество времени, и естественным желанием является ускорение этого процесса. Решением данной проблемы может служить распределённая (кросс)-компиляция для Raspberry Pi, что и будет рассмотрено далее.

=== Сервер ===
Здесь мы рассмотрим настройку <code>distccd</code> на машинах, которые будут помогать нашему Raspberry Pi в нелёгкой задаче компиляции.

Во-первых, ставим <code>distccd</code>:

$ apt-get install distcc

Клонируем набор утилит (англ. ''toolchain'')<ref name="git-clone-depth">Опция <code>--depth=1</code> предписывает клонировать только последний коммит с брэнча, без клонирования всей истории.</ref>:

$ git clone --depth=1 https://github.com/raspberrypi/tools.git rpi-tools
$ sudo mv rpi-tools /opt/

Тогда путь к toolchain'у будет следующий:

/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

Теперь указываем <code>distccd</code> путь к утилитам. Меняем <code>/etc/init.d/distcc</code>:

RPI_BIN_PATH=/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:$RPI_BIN_PATH

=== Клиент (Raspberry Pi) ===
Клиентом выступает наш Raspberry Pi.

Ставим <code>distcc</code>:

$ apt-get install distcc

Тестирование распределённой сборки будем делать на утилите [http://hisham.hm/htop/index.php?page=main htop]:
$ wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz
$ tar -zxf htop-1.0.3.tar.gz
$ cd htop-1.0.3

Указываем путь к компиляторам:

$ export CXX=/usr/lib/distcc/arm-linux-gnueabihf-g++ CC=/usr/lib/distcc/arm-linux-gnueabihf-gcc

=== Изменение уровня логирования ===
Для изменения уровня логирования <code>distccd</code> необходимо поменять значение опции <code>--log-level</code>. Это можно сделать в <code>/etc/init.d/distcc</code>:

DAEMON_ARGS="--pid-file=/var/run/$NAME.pid --log-level debug --log-file=/var/log/$NAME.log --daemon"

== Сноски ==
<references/>

Навигация