Archive

Posts Tagged ‘pstk’

PSTK projekt pt.6 - final?

January 1st, 2009 No comments

Mrežni disk dela!!

Trenutno ves proces izgleda približno takole... zboota se linux, mounta sd kartico, mounta zunanji disk v "mnt/" mapo na sd kartici, mounta "/dev/" in "/proc" na sd kartico, temu sledi chroot in zažene se smbd. Potem client mounta smb share, in ima dostop do podatkov.

Kaj (še) ne dela?

  • po tem ko umountaš sm share, se smbd sesuje... -> fixed z eno while skripto ki restarta smbd
  • smbd dela samo v interactive mode-u z debug level 2 (ali več?) ... zakaj? nevem... nočem vedet
  • če dostopaš do preveč podatkov, ali naenkrat bereš kak velik file, cela ploščica zmrzne... popolnoma... in se do nje ne da dostopati niti preko usb(serijskega) kabla... zakaj.. nevem (še?)... reset pomaga
  • ni še avtomatizirano, in niti ne bo... zakaj? ker če kej crkne, ne vidim kaj, niti ne morem ustavit, brez da bi ponovno uploadal cel romfs
  • random error sporočila, ki ali upačasnijo ali ustavijo pretok podatkov.. nevem zakaj... sam ni tok pogosto.. torej se bo zgodilo samo med presentacijo... pred in po njej pa ne :/

Grdi hacki so zakon! :D

PSTK projekt pt.5 - samba

January 1st, 2009 No 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

PSTK projekt pt.4 - nova verzija

December 21st, 2008 No comments

Ja, ratal mi je! :) Trenutno na plati laufa "Release 2008-11-13"

Za dosežt to stanje je blo potrebno pofixat priložen vmware image, ga mal popravt, dodat zraven nove kompajlerje (oz. kar cel toolchain), ki se ga je celo dalo dobiti na proizvajalčevi strani, a ni delal, pa ga je blo treba mal popravt, symlink tu pa tam, par dodatnih programčkov (ki se jih da najti trenutno le v arhivu ene mailing liste), še par symlinkov, par chmodov, nov uClinux, nov kernel, en patch, drugi patch (ta dva sta uradna), še en s tiste mailing liste, in zadeva se skompajla!

Webcam še vedno ne dela... stv680 kliče neko funkcijo, ki se nahaja v nečem (ne da se mi spet gledat za nazaj), kar se noče skompajlat1... bom pogledal jutri (ker je zdaj ura 4:17 zjutraj).

Uspelo mi je tudi brati vrednosti z dveh potenciometrov prek ADC, brati vrednosti s tipk, in prižigati in ugašati ledice. usb-storage dela, dostop do sd kartice pa je možen le prek sd-micro readerja na proc-boardu, prek normalnega sd readerja na dodatni plošči pa ne (medtem ko je v boot-loaderju ravno obratno). Mreža dela, ping tudi, busybox se (zazdaj) še lepo skompajla z nekaj dodatnimi (torej ne-default) programčki.

Tko da ja... sleep time for me! Jutr pa naprej...

PS:

emily mulaz # ps aux| grep xterm| wc -l
34
emily mulaz #
  1. ps: zadeva ne samo da se noče skompajlat, ampak celo scorrupta source, tako da po tem ko se sesuje compile, in se spet izključi podporo za to, se noče več skompajlat kernel sploh... tako da treba potem nanovo postaviti uClinux-dist, kernel, in use patche

Google in pomoč pri napakah na sistemu

December 21st, 2008 No comments

Včasih ko se v terminalu izpiše kaka napaka.. jo samo skopiramo v google, in (če imamo srečo) takoj najdemo rešitev...  Če ne, je rešitev tam nekje, na drugi, tretji strani... Če imamo še manj sreče, samo preberemo ugotovitve kaj/kdo je kriv za to, in ni rešitve...

In potem pride moj problem... :)

error

Ja... dejansko samo moj tekst :/

Tko da ja.. :) gremo popravljat še to.

Categories: elektro stuff, faks, rant Tags: , , ,

PSTK projekt pt.3 - ethernet in httpd

December 6th, 2008 No comments

Mreža dela!!!

Pojavljal se je error "Error: phyInit wrong id2 (161b != 161a)" (ki ga btw niti google ne najde lepo), ki mi ga je ratalo pofixat (z enim zelo grdim hackom, ki lahko da bo za sabo povlekel še kaj) :D

v ./drivers/2.6.x/lpc2468eth/lpc2468eth.c okoli 896-e vrstice se nahaja:

  regValue = readPhy(PHY_PHYIDR2);
  if ( (regValue & 0xffff) != 0x161a)
  {
    printk("  Error: phyInit wrong id2 (%x != %x)\n", regValue, 0x161a);
    return -ENODEV;
  }

V 'if'-u sem popravil 0x161a v 0x161b. v "PHY_PHYIDR2" (vrednost katerega je nekje visje v fajlu) kaže na nek naslov kjer je shranjen nek vendor ID in podoben crap... tko da upam da ne bo prehudo.

Po uploadu flasha in rebootu, se mreža postavi.

Potem sem vključil še httpd, skompajal, uploadal vse spet na ploščo, na sd kartici naredil nek testni index.html, in zadeva (ja vem.. presenetljivo) prikaže tisti html. Kje išče index.html ne vem... nisem še brskal po kodi (ker bom itak najbrž dal gor boa-o). Uglavnem.. kr dela :)

mulaz@emily ~ $ curl http://192.168.1.100/
<html>
<h1>a dela?</h1></html>
mulaz@emily ~ $

No ja... more results to come :)

PSTK projekt pt.2

December 2nd, 2008 No comments

Ura je nekaj čez 11... sedim na predavanjih iz pstk, in po 40ih minutah uploada mi je ratal zagnat uClinux (sicer verzijo iz leta 2005, ampak tudi to je bolje kot tisto včeraj).

in še rezultat:

**********************************************
* LPC2468 OEM Board from Embedded Artists AB *
*              EA-version: 1.4               *
*          www.EmbeddedArtists.com           *
**********************************************
Booting (may take some time)...
U-Boot 1.1.6 (Feb 17 2007 - 09:10:30)
DRAM:  32 MB
Flash:  2.5 MB
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
Booting from NAND FLASH (may take some seconds)
First loads linux.bin and then romfs.bin
NAND read: device 0 offset 0x0, size 0x200000
 2097152 bytes read: OK
NAND read: device 0 offset 0x200000, size 0x400000
 4194304 bytes read: OK
## Starting application at 0xA0008000 ...
Linux version 2.6.11.8-hsc0 (root@eadevenv) (gcc version 2.95.3 20010315 (release)
   (ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux X8
CPU: Philips-lpc24xx [24000000] (ARMv3)
Machine: LPC24xx, NXP
Warning: bad configuration page, trying to continue
Built 1 zonelists
Kernel command line: root=/dev/ram initrd=0xA1800000,4000k console=ttyS0,38400N8
PID hash table entries: 256 (order: 8, 4096 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 26632KB available (1531K code, 163K data, 76K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
Freeing initrd memory: 4000K
NET: Registered protocol family 16
NetWinder Floating Point Emulator V0.97 (double precision)
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
þttyS0 at MMIO 0x0 (irq = 6) is a 16550A
ttyS1 at MMIO 0x0 (irq = 7) is a 16550A
io scheduler noop registered
io scheduler deadline registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Creating 1 MTD partitions on "ROM":
0x00000000-0x00200000 : "ROMfs"
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
RAMDISK: romfs filesystem found at block 0
RAMDISK: Loading 2725KiB [1 disk] into ram disk... done.
VFS: Mounted root (romfs filesystem) readonly.
Freeing init memory: 76K
Welcome to
          ____ _  _
         /  __| ||_|
    _   _| |  | | _ ____  _   _  _  _
   | | | | |  | || |  _ \| | | |\ \/ /
   | |_| | |__| || | | | | |_| |/    \
   |  ___\____|_||_|_| |_|\____|\_/\_/
   | |
   |_|
For further information check:

http://www.uclinux.org/

Board specific drivers by Embedded Artists AB

http://www.EmbeddedArtists.com<

(Release 2007-04-30: Check for updates)

Using /drivers/lpc2468eth.ko
strToInt: illegal character :
strToInt: illegal character :
strToInt: illegal character emac: found MAC address in u-boot env. = 00:1a:f1:00:02:0c:
  Error: phyInit wrong id2 (161b != 161a)
insmod: cannot insert `/drivers/lpc2468eth.ko': No such device (-1): No such device
Using /drivers/lpc2468mmc.ko
  Error: Memory card could not be found
insmod: cannot insert `/drivers/lpc2468mmc.ko': Resource temporarily unavailable (-1):
    Resource temporarily unavailable
Using /drivers/lcd.ko
  Error: No LCD connected? (R49=3100 != 0x10).
insmod: cannot insert `/drivers/lcd.ko': No such device (-1): No such device
Using /drivers/adc.ko
Using /drivers/i2c.ko
Using /drivers/pwm.ko
Using /drivers/sfr.ko
Using /drivers/udc.ko
Using /drivers/rtc.ko
Using /drivers/spi.ko
mount: Mounting /dev/mmca1 on /mnt/mmc failed: No such device or address
SIOCSIFADDR: No such device
SIOCGIFFLAGS: No such device
init: Booting to single user mode
#
# cd /dev
# ls
mmca3    ttyp2    zero     ptypb    pwm06    console  ptyp6    pwm04
rom8     ptypd    ttyS1    rom0     ptyp7    rom7     pwm16    tty0
ttyS0    ptypa    random   ptyp0    ptyp3    lcd      pca9532  ptyp8
mmca     ttyp1    rom5     ttyp3    cua1     ptyp1    pwm13    tty
ttypb    ptypf    tty1     ttyp0    spi      pwm05    ptyp4    ptypc
urandom  ram1     ttypa    adc0     adc1     pwm03    ram0     pwm11
ptype    pwm01    rom4     rtc      mem      ttypc    kmem     tty3
ttyp8    ptyp9    cua0     ptyp2    ttyp7    ttyp6    eem      pwm14
ttyp5    mmca1    rom3     adc3     ttypd    pwm15    ttyp4    adc2
rom6     rom1     ttyp9    mmca2    rom9     rom2     null
pwm12    ttypf    tty2     ttype    ptyp5    sfr      pwm02
#

Progress je :) Mam še par ur predavanj.. ravno prav da skmpajlam še novejšo verzijo, po možnosti še s kakim dodatnim programom in si izmislim kaj koristnega, kar bi lahko s tem naredil :)

Categories: elektro stuff, faks, Ostalo Tags: , ,