Home > elektro stuff, faks, geek stuff, rant > PSTK projekt pt.5 - samba

PSTK projekt pt.5 - samba

January 1st, 2009 Leave a comment Go to comments

Danes je 1.1. 2009, ura je skoraj 6.00 zjutraj in končno se je skompajlala samba :)

Kaj je bilo potrebno za to narest?

  • SSL - V samem uClinux-dist-u obstaja možnost da med konfiguracijo izbereš da bi rad imel tudi ssl.... A tako kot v prešnji (in naslednji) verziji mapa openssl kaže na libssl mapo, a le-ta je prazna.  V to mapo treba skopirat source za openssl-0.9.8c, in popatchat z patchi, ki se nahajajo na arhivu neke neuradne mailing liste1. Potem treba v konfiguraciji vklopiti libssl in z malo sreče se zadeva (ssl) skompajla.
  • Potem pa vključimo še podporo za sambo... vtipkaš 'make' čakaš, čakaš, čakaš... po tem ko je kernel, busybox in še kaj zraven skompajlanega, configure skripta od automake ugotovi da c compilerne zna sproducirati binaryja. Očitno arm-linux-gcc sprejema druge 'ukaze' kot 1686-pc-linux-gnu-gcc, skripta tega ne ve, in prijavi napako.
    V "uClinux-dist/user/samba/source" se nahaja file "configure", v katerem se okoli 2900-e vrstice nahaja nek malo večji if stavek, katerega 'else' nastavi spremenljivko "ac_file=''", torej na 'prazno'. torej takoj za tem elseom (in seveda "fi"-jem) treba napisat " ac_file='a.out' ". To naj bi popravilo zadevo... a je očitno ne... Tukaj je potem potreben še precej grd hack: nekaj vrstic nižje (L2927) se v čudno razvrščenih oklepajih nahajata dva "exit 77;". Namesto exita sem tu napisal "echo 'bla'; "2
  • Spet kompajlaš... in zadeva crkne pri kompajlanju "libaddns" (del sambe).  Bla bla... grd error.. nekaj narobe v "../include/talloc.h". Potem sem pogledal v uClinux-dist tanov (torej 2008, za katerega še ni EmbeddedArtists patchev), in videl da tam tega fajla sploh ni, ker se en podoben nahaja v "../lib/talloc/talloc.h", zato sem prvega (iz mape "include") izbrisal.  (Preden sem to ugotovil sem poskušal tudi z prepisom "libaddns" mape z vsebino iz novejšega uCdist-a, a mislim da to ni uplivalo na nič, ker mislim da je libaddns ostal nespremenjen).

Samba se po tem avtomagično skompajla, in romfs iz 3.5mb naraste na 8.1mb. Pri poskusu boota z sd kartice (ker ima nand_boot še večje probleme.. o tem kdaj drugič) pa zadeva poklekne pod velikostjo. Tako da bom sedaj (torej po tem ko grem spat, se zbudim, in ko se stemni), poskušal vse skupaj zakrpati še z gršim hackom :D *evil look*
Ravnokar se kompajla image brez sambe z "chroot"-om, image s sambo pa se nahaja na usb ključku, kmalu se pa bo na sd_micro/tf kartici :)

Če mi uspe, bom napisal... če ne.. back to the drawing board!

ps: nevem če sem že pisal o tem, ampak ta plošča ma eno precej zanimivo (pa čeprav slabo) lastnost. Ker se na začetku pomnilnik nahaja boot loader, ki je lokacijsko 8v spominu) ločen od slike kernela in romfsja, bi človek pričakoval da je tudi njegovo delovanje 'ločeno' od ostanka podatkov na čipu... A žal ni tako. Funkcija mmc_init, ki inicializira sd/mmc kartico, dela SAMO, če je na čipu _delujoč_ sistem... Torej, po tem ko se ni hotlo zbootat z 8mb velkim romfsjem s sambo (pa čeprav je sam kernel ostal isti kot prej), noče več incializirat sd kartice, tako da je za upload slike potrebno uporabiti ymodem protokol prek minicoma na borih 38.400bps. It feels like being on dialup again :)

  1. ne najdem zdej linka od liste, ampak sem našel patche - openssl-0_9_8c-uclinux-disttar.tar.gz
  2. jaz sem zamenjal samo drugi 'exit',  a tudi če sta oba ponovem samo 'echo' mislim da ne bi smelo biti problemov
  1. No comments yet.
  1. No trackbacks yet.