Auteur Topic: Eggdrop bot compilen  (gelezen 5596 keer)

Offline flip

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 4
Eggdrop bot compilen
« Gepost op: 10 december 2008, 22:33:02 »
Ik ben voor het eerst aan het proberen een  "custom" application op mijn Synology DS107e te installeren, dit met behulp van iemand anders.

We hebben gebruik gemaakt van deze guide:
http://www.synology.com/enu/support/3rd ... ration.php

Daarin staat dat we een compiler nodig hebben. Deze is echter ~200MB groot en /dev/hda1/ (waar /usr/local/ op staat) is maar 256MB groot. Dus de compiler past er niet op. Fout bij het untarren: disk full.

We hebben toen besloten om de compiler maar op de harde schijf te zetten (/dev/hda3/). En dus ook in de volgende stap de paden in de env variabelen aan te passen. De volgende code hebben we regel voor regel in putty getyped:
CC=/volume1/toolchain/powerpc-linux/bin/powerpc-linux-gcc
LD=/volume1/toolchain/powerpc-linux/bin/powerpc-linux-ld
RANLIB=/volume1/toolchain/powerpc-linux/bin/powerpc-linux-ranlib
CFLAGS="-I/volume1/toolchain/powerpc-linux/include"
LDFLAGS="-L/volume1/toolchain/powerpc-linux/lib"
./configure

hierbij is dus /usr/local/ vervangen door /volum1/toolchain/

Bij het configureren van de eggdrop bot kregen we deze fout:
Citaat
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.
In de config.log staat onder andere:
Citaat
configure:1717: /volume1/toolchain/powerpc-linux/bin/powerpc-linux-gcc --version </dev/null >&5
/volume1/toolchain/powerpc-linux/bin/powerpc-linux-gcc: /volume1/toolchain/powerpc-linux/bin/powerpc-linux-gcc: 1: Syntax error: "(" unexpected
En onderaan: configure: exit 77

Dit is dus het configure log van de eggdrop bot.

Mijn vragen zijn nu:
* Is het nodig (of dringend aan te raden) om de toolchain toch in /usr/local/ zetten?
* hoe kan ik dit doen als mijn apparaat niet genoeg schijfruimte daar heeft (waarom wordt dit in de guide zo geadviseerd?)

* Iemand enig idee waarom het compilen niet werkt zo?



Verder zag heb ik iets gelezen over ipkg / optware en dat ik daarmee een hele lijst (http://ipkg.nslu2-linux.org/feeds/optwa ... /unstable/) van applicaties zo op het apparaat kan downloaden (die dan ook gelijk werken).

Ook heb ik gelezen over een bootstrap (http://www.maartendamen.com/node/12) waarvan ik niet precies weet wat het is en het lijkt me riskant. Volgende de tabel in de guide heb ik ook geen ARM processor, maar misschien zijn er ook wel bootstraps voor PowerPC processors.


Hoe ik nu bezig ben, is dat de eenvoudigste manier om eggdrop werkend te krijgen of is ipkg of iets anders makkelijk? Kan ik ergens de laatste eggdrop bot 1.6.19 downloaden voor mijn Synology DS107e ?

Bedankt voor de hulp !

P.S. ik heb dit in het algemene forum gezet omdat ik vast loop op het goed installeren van de compiler en het compilen zelf.

Offline merty

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 21
  • Berichten: 130
Re: Eggdrop bot compilen
« Reactie #1 Gepost op: 11 december 2008, 08:58:44 »
Hmm...veel vragen maar krijg de indruk dat je je niet echt hebt ingelezen over hoe het proces nu werkt en wat toolchains zijn e.d. Zou je toch vragen om nog eens rustig de dingen bekijken en je af te vragen *wat* je gaat uitvoeren *voordat* je het doet.

Anyway, wat antwoorden:

1. De error die je ziet is dezelfde die je krijgt als je een programma voor de verkeerde platform aan het draaien bent. Ik hoop dat je niet geprobeerd hebt om de toolchain van Synology op je diskstation zelf te installeren. Wellicht open deur, maar waar Synology het over heeft in 3party doc, is het installeren van de toolchains op een aparte, intel/AMD based, linux machine . Het is een cross compiler, dus je compileerd het op een linux bak, en gooit dan de executables/libraries op je diskstation.

2. Ja, het plaatsen in /usr/local/ is cruciaal. Het kan ergens anders geinstalleerd worden, maar met alleen die environment variabelen veranderen kom je er niet mee. Geloof me, je wordt niet blij met het uitzoekwerk hoe je dat wel goed krijgt, en voor je het weet pakt de compiler 'stiekem' programma's van je gcc omgeving op je linux bak. Gewoon in /usr/local/ laten is het makkelijkst.

3. Ooit aan een softlink gedacht (ln -s) ? Op zo'n manier regelt men al jaren op unix omgevingen het 'probleem' van het toewijzen van directories en de fysieke locatie van die directories. Creeer dus gewoon een softlink /usr/local/ die naar /volume-weet-ik-veel/de-directory wijst.

4. Cross-compileren vereist meer kennis dan de wetenschap dat je 'configure' en daarna 'make all' moet intypen. Vaak zijn configure en makefiles gemaakt om op het platform zelf gecompileerd te worden, aan jou de schone taak om configure en makefiles aan te passen opdat ze dat niet doen.

5. Als je een DS107e hebt, draai je op een PowerPC (ppc) Freescale 8241 CPU -synology wiki (ook wel eens gerefereerd naar de '603e'  core die deze CPU heeft) Alle andere toolchains, utilities die verwijzen naar iets anders niet gebruiken, niet proberen te installeren en links laten liggen.

6. Optware feed van NSLU2 is eigenlijk bedoeld als verzamelplaats van aangepaste sources opdat het kan cross compilen voor een simpele nas server - de 'NSLU2' van netgear - , maar is inmiddels uitgebreid naar heel wat platformen, inclusief de drie verschillende platformen van Synology. De target die je voor de 107e moet kiezen is die van de ds101g+ <= let op de 'g' toevoeging hier!.

7. De optware feeds kunnen ook zo gecompileerd worden opdat ze simpele kant-en-klare-pakketjes vormen die alleen geinstalleerd hoeven te worden. Door een 'toolchain' - niet te verwarren met de Synology toolchains - script te draaien voor het juiste platform krijg je de beschikking over paar programma'tjes die deze pakketjes automatisch kunnen ophalen, afhankelijkheden op lossen en automatisch installeren, vergelijkbaar met debian commandline package manager. Dit moeten ze natuurlijk wel ergens kunnen ophalen, daarom heb je verschillende package feeds. Een van de bekendste is die van Maarten Damen, echter deze zijn voor ARM based Diskstations. Meestal is degene die het toolchain script schrijft ook degene die de package feed beschikbaar stelt.

8. Gebruik wiki of google om de toolchain voor jouw platform te vinden check: http://www.nslu2-linux.org/wiki/DS101/DS101BootStrap

9. In de feed zit ook gcc. Dus je zou een complete gcc-omgeving kunnen installeren op je diskstation hiermee, maar gezien het krappe geheugen in een 107e zou ik dat niet aanraden.

10. Eggdrop zit niet in de feed. Check de NSLU2 pages en sourcepackages hoe je eventueel je eigen package kan maken met de eggdrop sources.

Groeten,

Remco

Offline flip

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 4
Re: Eggdrop bot compilen
« Reactie #2 Gepost op: 11 december 2008, 11:51:07 »
Bedankt remco voor je reactie.

Mijn post geeft misschien de indruk dat ik het niet gelezen heb, ik heb het wel gelezen maar niet begrepen.
Dat de toolchain op een aparte machine moet is me nu pas duidelijk!

Wij gaan met jou antwoorden aan de slag en hopelijk krijgen we het werkend.

Ik vergat nog te vragen, kan iemand bevestigen of ik veilig de map /usr/local/powerpc-linux/ (die op mijn diskstation /dev/hda1/ staat) kan verwijderen? Ik weet namelijk niet of deze map al bestond (met eventueel belangrijkte bestanden) voordat ik de synology toolchain uitpakte.

Offline flip

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 4
Re: Eggdrop bot compilen
« Reactie #3 Gepost op: 13 december 2008, 03:26:52 »
ik heb de directory /usr/local/powerpc-linux/ verwijderd en tot nu toe nog niks ongewoons meegemaakt.

De bot lijkt nu te werken (met hulp van iemand anders).
In het engels uitgelegd zodat het voor meer mensen toegankelijk is (via google ofzo)

Preparations:
* Get the synology toolchain
* Get a computer with linux on it for compiling
* Get TCL source
* Get eggdrop source
* Get the Synology 3rd-party apps integration guide
* Make sure to turn on SSH (or telnet) and use something like putty to put the compiled files on your diskstation later

Note that things may slightly be different. Make sure you get the right files! and use common sense (read manuals first).

(( ON YOUR COMPILE BOX, NOT THE DISKSTATION ))
0) Create directory "/tmp/eee" and cd into it
1) Get "gcc334_glibc233_ppc_2.4.tar.gz"
2) Unpack it in "/tmp/eee"
3) Get "tcl8.5.5-src.tar.gz"
4) In "/tmp/eee", unpack tcl8.5.5-src.tar.gz
5) Go into "/tmp/eee/tcl8.5.5/unix"
6) Create file "makemyday" with following content (do not include "-----"):
-----
CC=/tmp/eee/powerpc-linux/bin/powerpc-linux-gcc
LD=/tmp/eee/powerpc-linux/bin/powerpc-linux-ld
RANLIB=/tmp/eee/powerpc-linux/bin/powerpc-linux-ranlib
CFLAGS="-I/tmp/eee/powerpc-linux/include"
LDFLAGS="-L/tmp/eee/powerpc-linux/lib"
./configure
--host=powerpc-unknown-linux
--target=powerpc-unknown-linux
--build=i686-pc-linux
--prefix=/tmp/eee/dist
-----
7) Run "sh makemyday"
8) edit Makefile and remove "fixstrtod.o" from the line that begins with "COMPAT_OBJS"
9) Run "make".
10) Run "make install". This will give you an error, but ignore it.
11) Go into "/tmp/eee"
12) Get "eggdrop1.6.19.tar.bz2"
13) Unpack it into "/tmp/eee"
14) Go into /tmp/eee/eggdrop1.6.19"
15) Create file "makemyegg"  with following content (do not include "-----"):
-----
CC=/tmp/eee/powerpc-linux/bin/powerpc-linux-gcc
LD=/tmp/eee/powerpc-linux/bin/powerpc-linux-ld
RANLIB=/tmp/eee/powerpc-linux/bin/powerpc-linux-ranlib
CFLAGS="-I/tmp/eee/powerpc-linux/include"
LDFLAGS="-L/tmp/eee/powerpc-linux/lib"
./configure
--host=powerpc-unknown-linux
--target=powerpc-unknown-linux
--build=i686-pc-linux
--prefix=/tmp/eee/dist/eggdrop
--with-tcllib=/tmp/eee/dist/lib/libtcl8.5.so
--with-tclinc=/tmp/eee/tcl8.5.5/generic/tcl.h
-----
16) Run "sh makemyegg"
17) Edit the file "/tmp/eee/eggdrop1.6.19/src/eggdrop.h", find the line "typedef int socklen_t;" and change it to "// typedef int socklen_t;"
18) Run "make config"
19) Edit Makefile and replace "egg_test_run = EGG_LANGDIR=$(top_srcdir)/language ./$(EGGEXEC) -v" with "egg_test_run = echo"
20) Go into "/tmp/eee/dist" and run "tar cvjf eggdist.tar.bz2 eggdrop lib"
21) Copy the file eggdist.tar.bz2 to your Synology Diskstation (put it in "/")
(( ON THE DISKSTATION ))
22) Run "cd /; tar xvjf eggdist.tar.bz2"
23) Go into "/eggdrop/" and edit "eggdrop.conf" so it fits your needs.
24) Run "./eggdrop"
25) DONE!


 

Eggdrop op de 209+II: wie heeft het?

Gestart door berryBoard Overige 3rd party packages

Reacties: 3
Gelezen: 4618
Laatste bericht 06 mei 2011, 10:36:22
door ronaldvh
Eggdrop Installatie (IRC Bot)

Gestart door Martijn85Board Optware / IPKG / Telnet

Reacties: 0
Gelezen: 4277
Laatste bericht 03 februari 2012, 13:10:15
door Martijn85
eggdrop bot

Gestart door chattyBoard Optware / IPKG / Telnet

Reacties: 10
Gelezen: 4200
Laatste bericht 20 april 2024, 17:00:29
door Birdy