Samba cross-compilen voor mipsel-linux

Pagina: 1
Acties:
  • 140 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • titan_pi8
  • Registratie: Januari 2004
  • Laatst online: 26-03 22:14
Hallow,

Ik heb zoals anderen in het Routerhacking topic een routertje met linux erop gemaakt. Ik wil hier nu een printer/scanner server van maken dus moet er onder andere samba en sane op. Nu wil ik samba cross compileren vanaf mijn desktop maar dat lukt me na enkele dagen non stop proberen nog altijd niet.
Ik heb mijn cross compilation toolchain al. Die heb ik met behulp van 'buildroot' gemaakt. Ik heb dus de sources van samba (3.0.20) en daar doe je normaal ./configure. Maar voor te cross compilen moet dat zijn: ./configure --prefix=/path/waar/je/wilt --host=doelarchitectuur --target=doelarchitectuur --build=i686-linux

--build en --target zijn volgens mij ook optioneel.
doelarchitectuur is in mijn geval mipsel-linux.

Het configure script begint dan en kiest de juiste compiler. Hij geeft ook aan dat hij aan het cross compilen is (Checking whether we are cross compiling... yes). Maar na enkele minuten stop het script met deze error: cannot run test program while cross compiling.

Wat doe ik fout? Hoe kan ik samba cross compilen?

Acties:
  • 0 Henk 'm!

  • Wilke
  • Registratie: December 2000
  • Laatst online: 07:58
Ah, ik gok dat samba zelf wat tests uitvoert na het compilen, om te zien of de executables goed werken. Bij cross-compilen kan dat uiteraard niet omdat de executables niet op hetzelfde systeem kunnen draaien. Dat configure dit niet doorheeft, is een "fout" van het Samba-team lijkt me.

Zie bv. hier (helaas geen oplossing). Er is vast een of andere switch voor configure, bv. --without-test of whatever, waarmee je dat stuk kunt overslaan?

[ Voor 16% gewijzigd door Wilke op 23-08-2005 14:36 ]


Acties:
  • 0 Henk 'm!

  • titan_pi8
  • Registratie: Januari 2004
  • Laatst online: 26-03 22:14
Er is volgens mij geen switch om de tests over te slaan. En ik ken er niet genoeg van om zelf de configure.in file of het configure script te gaan aanpassen. Ook op de samba IRC kanalen kunnen ze mij niet verder helpen.

Ik heb nu versie 2.2.9 van samba en die is tot nu toe perfect aan het compileren. Ik weet niet of er veel verschil tussen 2 en 3 zit, maar ik heb enkel printer sharing nodig dus ik hoop dat dat voldoende is.

Het zou nog altijd het beste zijn als er een oplossing zou zijn om versie 3 te cross compilen dus als iemand nog wat tips heeft...

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • VROEM!
  • Registratie: Februari 2000
  • Laatst online: 13-04 22:25

VROEM!

broembroem!

Misschien kun je op je router een NFS mount maken die je vanuit je desktop exporteert. Vervolgens laat je je router het compileerwerk doen. Op die manier is waarschijnlijk het cross compilen te omzeilen en heb je -weliswaar na langer rekenen- toch je samba installatie :)

ieeeepppppp :P


Acties:
  • 0 Henk 'm!

  • titan_pi8
  • Registratie: Januari 2004
  • Laatst online: 26-03 22:14
Dan moet ik eerst nog een compiler enzo op die router krijgen :? ...

Acties:
  • 0 Henk 'm!

Anoniem: 13546

Misschien dat je kunt overwegen om Debian te installeren op dat ding, Debian levert namelijk wel mipsel packages. Voor Samba, zie:
http://packages.debian.or...e5a&arch=mipsel&type=main

Je kunt ook NFS mounten en dan dpkg aangeven dat ie op een niet-standaard locatie moet installeren.

Acties:
  • 0 Henk 'm!

  • titan_pi8
  • Registratie: Januari 2004
  • Laatst online: 26-03 22:14
Heb ik al geprobeerd, en dat wou niet werken. Waarom weet ik niet maar dpkg gaf vreemde foutmeldingen. Vooral exit status 64.

Nu staat er een ander rootfs op met ipkg. Dat lijkt mij veelbelovend. Nu nog een ipkg mipsel package vinden of (toch) proberen te maken van samba en dan zou dat moeten lukken...

  • JeroenE
  • Registratie: Januari 2001
  • Niet online
titan_pi8 schreef op woensdag 24 augustus 2005 @ 19:11:
Nu staat er een ander rootfs op met ipkg. Dat lijkt mij veelbelovend. Nu nog een ipkg mipsel package vinden of (toch) proberen te maken van samba en dan zou dat moeten lukken...
Voor openwrt (alternatieve firmware voor oa de Linksys routers) zijn veel packages beschikbaar. De meeste zijn te vinden via de tracker. Dit zijn ook mipsel packages; wellicht kan je deze gebruiken.

Acties:
  • 0 Henk 'm!

  • nzyme
  • Registratie: November 2001
  • Laatst online: 16-04 09:01

nzyme

terror

een kleine toevoeging aan dit topic (ondanks dat het een oudje is):
het gaat niet alleen bij samba hierop verkeerd maar ook bijv. php en proftpd (dacht ik) gaan hierop stuk :?

de configure script geeft verder geen opties om die checks te skippen.

| Hardcore - Terror |


Acties:
  • 0 Henk 'm!

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 30-03 09:22

irondog

alle dingen moeten onzin zijn

Ik heb geen probleem met het cross-compilen van samba. Ik gebruik hier een uClibc crosscompiler en de gegenereerde binaries draaien in principe niet op de host pc.

code:
1
2
3
4
$ tar xvf /bla/samba-3.0.20b.tar.gz
$ cd samba-3.0.20b/source
$ ./configure CC=/usr/local/crosscompile/bin/i386-linux-gcc --host=i386 --disable-cups
$ make


Ik krijg wel deze warning:
code:
1
checking configure summary... configure: WARNING: cannot run when cross-compiling


Bovendien moest ik in twee files een aantal minieme wijzigingen aanbrengen om te werken met mijn crosscompiler:
code:
1
2
3
lib/time.c:
> gettimeofday(tval,NULL);
< gettimeofday(tval);
Hellraizer schreef op woensdag 26 oktober 2005 @ 15:12:
een kleine toevoeging aan dit topic (ondanks dat het een oudje is):
het gaat niet alleen bij samba hierop verkeerd maar ook bijv. php en proftpd (dacht ik) gaan hierop stuk :?

de configure script geeft verder geen opties om die checks te skippen.
Je kunt checks netjes skippen. Maak daartoe een config.site bestand en geen daarin de autoconf waarden die je wil injecteren. Exporteer de CONFIG.SITE omgevingsvariable en wijs deze naar de plaats van het config.site bestand.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]


Acties:
  • 0 Henk 'm!

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 30-03 09:22

irondog

alle dingen moeten onzin zijn

Hellraiser, zo sla je de check voor strdup bijvoorbeeld over:
code:
1
2
3
4
5
6
7
$ echo 'ac_cv_func_strdup=yes' > config.site
$ export CONFIG_SITE=/home/gerte/samba-3.0.20b/source/config.site
$ ./configure CC=/usr/local/crosscompile/bin/i386-linux-gcc --host=i386 --disable-cups

[snip]
checking for strdup... (cached) yes
[snip]


De check voor de aanwezigheid van strdup() wordt overgeslagen (omdat deze zogenaamd al positief gechecked is).

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]


Acties:
  • 0 Henk 'm!

  • ColdSTone|IA
  • Registratie: December 2002
  • Laatst online: 28-12-2017

ColdSTone|IA

lui..

Niet geheel relevant aan je vraag, maar misschien toch handig om te weten: er is in een van die topics al ergens geconcludeerd dat samba met 16mb RAM niks wordt, ik kan de exacte post zo snel niet vinden, die zou je zelf ff kunnen opzoeken.
Pagina: 1