Raspberry Pi — различия между версиями

Материал из CADR
Перейти к: навигация, поиск
(Создал страницу)
 
(Сервер: Дополнил раздел)
Строка 30: Строка 30:
 
  RPI_BIN_PATH=/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
 
  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
 
  PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:$RPI_BIN_PATH
 +
 +
Правим настройки <code>distccd</code> в файле <code>/etc/default/distcc</code>:
 +
 +
STARTDISTCC="true"
 +
ALLOWEDNETS="172.16.1.0/16"
 +
LISTENER="0.0.0.0"
 +
JOBS="2"
 +
 +
Перезапускаем сервис:
 +
 +
  $ sudo service distcc restart
  
 
=== Клиент (Raspberry Pi) ===
 
=== Клиент (Raspberry Pi) ===

Версия 13:24, 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, что и будет рассмотрено далее.

Сервер

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

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

$ apt-get install distcc

Клонируем набор утилит (англ. toolchain)[1]:

$ 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

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

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

Правим настройки distccd в файле /etc/default/distcc:

STARTDISTCC="true"
ALLOWEDNETS="172.16.1.0/16"
LISTENER="0.0.0.0"
JOBS="2"

Перезапускаем сервис:

 $ sudo service distcc restart

Клиент (Raspberry Pi)

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

Ставим distcc:

$ apt-get install distcc

Тестирование распределённой сборки будем делать на утилите 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

Изменение уровня логирования

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

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

Сноски

  1. Опция --depth=1 предписывает клонировать только последний коммит с брэнча, без клонирования всей истории.