2022. november 27., vasárnap

Gyorskeresés

Útvonal

Cikkek » IT-ipar rovat

A Raspberry Pi találkozik a felhővel

Gyorsítsuk PC segítségével a programfordítást, avagy elosztott fordítás különböző architektúrák között!

[ ÚJ TESZT ]

Kereszt-platform fordítófarm beállítása: RasPi

A RasPi konfigurálása

A most aktuális 2012-10-28-wheezy-raspbian rendszert vesszük alapul a munkánkhoz, ezt a hivatalos oldalról tölthetjük le. Mivel ez a leírás inkább közép-haladóknak szól, így nem részletezném túlságosan az alapvető lépéseket, azokról részletes információk találhatóak a már linkelt oldalakon.

Ezt a lemezt dd vagy Windows alól a Win32DiskImager programmal írhatjuk memóriakártyára. Végezzük el a szokásos használatba vételi lépéseket: kártyán lévő hely kihasználása, tuning és memória elosztás beállítások.

A rendszerben a 4.6-os gcc az alapértelmezett. Telepítsük fel a 4.7-eset. Erre a lépésre azért van szükség, mert a készen elérhető cross-compiler is 4.7-es.

sudo apt-get update

sudo apt-get install gcc-4.7*

Ezek után következik az icecc telepítése.

sudo apt-get install icecc icecc-monitor

Ha ezzel is megvagyunk, akkor állítsuk be, hogy az alapértelmezett gcc 4.6 helyett a 4.7 és az icecc is használható legyen:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/icecc 30

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/icecc 30

Ellenőrizzük, hogy az icecc lett-e az alapértelmezett, ha nem az, akkor válasszuk ki őt:

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

A konfigurációs fájlok módosításához valamilyen általunk ismert szerkesztőprogramra is szükség lesz, ha nem vagyunk jártasak a vi vagy a nano programok kezelésében, akkor telepíthetjük az mc-t:

sudo apt-get install mc

Állítsuk be az icecc demon szolgáltatás paramétereit:

sudo mcedit /etc/icecc/icecc.conf

A szerkesztőben a következő paramétereket érdemes megváltoztatni:

ICECC_NETNAME="iceccfarm"
ICECC_MAX_JOBS="1"
ICECC_ALLOW_REMOTE="yes"
ICECC_SCHEDULER_HOST="192.168.0.101"

Ezek lényege, hogy mi legyen a farm neve, 1 feladatot fogadjon egyszerre, távolról kapott feladatokkal is foglalkozhasson, mi a farm koordinátorának címe. A koordinátor gép normál pécén futó linux lesz, ennek beállításáról később lesz szó. Ha valaki más operációs rendszer használ a mindennapokban, az se ijedjen meg, lesz rá megoldás a leírásban.

A változtatás alkalmazásához indítsuk újra az icecc demon-t.

sudo service icecc restart

Ahhoz, hogy jól működjön a fordítás, még néhány környezeti változót is be kell állítani. Ezt érdemes a .bashrc végéhez fűzni, így nem kell állítgatni minden belépés után.

mcedit ~/.bashrc

export ICECC_CC=gcc-4.7
export ICECC_CXX=g++-4.7
export MAKEFLAGS=-j10
export USE_SCHEDULER=192.168.0.101
export ICECC_VERSION="armv6l:/home/pi/arm-native.tar.gz,i686:/home/pi/arm-cross-i386.tar.gz"

A MAKEFLAGS értékéül adott -j10 határozza meg, hogy hány párhuzamos szálon fordítson a gcc. Az ICECC_VERSION azt tartalmazza, hogy melyik platformot használó másik gépre melyik toolchain-t kell küldeni, hogy fordítani tudjon számunkra megfelelő eredményt. Ezeket még nem hoztuk létre, előbb az arm rendszerek számára készítsük el a következő parancs kiadásával:

icecc --build-native

Ez a következőhöz hasonló kimenetet fog mutatni:

adding file /usr/bin/gcc
adding file /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
adding file /lib/arm-linux-gnueabihf/libc.so.6
adding file /lib/ld-linux-armhf.so.3
adding file /lib/arm-linux-gnueabihf/libm.so.6
adding file /usr/bin/g++
adding file /usr/bin/as
adding file /usr/lib/libopcodes-2.22-system.so
adding file /usr/lib/libbfd-2.22-system.so
adding file /lib/arm-linux-gnueabihf/libdl.so.2
adding file /lib/arm-linux-gnueabihf/libz.so.1
adding file /lib/arm-linux-gnueabihf/libgcc_s.so.1
adding file /usr/bin/cc1=/usr/lib/gcc/arm-linux-gnueabihf/4.7/cc1
adding file /usr/lib/arm-linux-gnueabihf/libmpc.so.2
adding file /usr/lib/arm-linux-gnueabihf/libmpfr.so.4
adding file /usr/lib/arm-linux-gnueabihf/libgmp.so.10
adding file /usr/bin/cc1plus=/usr/lib/gcc/arm-linux-gnueabihf/4.7/cc1plus
adding file /usr/lib/gcc/arm-linux-gnueabihf/4.7/liblto_plugin.so
adding file /etc/ld.so.conf=/tmp/icecc_ld_so_confcEGZSC
creating e0a922d958057f5c638fc358305129a2.tar.gz

A toolchain egy véletlenszerűen generált néven kerül mentésre, ezt nevezzük át:

mv e0a922d958057f5c638fc358305129a2.tar.gz arm-native.tar.gz

Az x86 rendszerek számára normál gépen futó linux alól készítünk toolchaint, ami a most következő lépés lesz. Az ott elkészített toolchaint ne feledjük majd a RasPi-re felmásolni (arm-cross-i368.tar.gz néven).

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

  • Hőmérséklet mérő Pi

    Egy kis bevezető után bemutatom a hőmérséklet mérésének egyszerű megvalósítását Raspberry Pi-al.

Hirdetés

Copyright © 2000-2022 PROHARDVER Informatikai Kft.