1013
правок
Изменения
Создал страницу
= 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/>
Информация о нашем экземпляре 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/>