Publicitate

Pagina principală > NFS , TFTP , UBOOT > Boot-area folosind NFS şi TFTP (actualizat)

Boot-area folosind NFS şi TFTP (actualizat)

Mai degrabă decât încet uzură flash NAND puteţi efectua boot mini2440 într-o reţea de încărcare kernel-ul folosind TFTP şi sistemul de operare de la o cotă de NFS. Acest lucru, de asemenea, face mult mai rapid pentru a testa modificările. Utilizarea Fedora 11 se poate utiliza pentru a instala YUM tftp, tftp-server şi a nfs-utils.

yum install tftp tftp-server nfs-utils

Am creat un folder / home/doug/mini2440/root_fs şi adaugă următoarea linie în / etc / exports pentru a permite r / g de acces de la 192.168.1 .*:

doug / mini2440 / root_fs 192.168.1.1 / 24 ( rw, sync ,no_root_squash ) / Home / Doug / mini2440 / root_fs 192.168.1.1 / 24 (rw, sincronizare, no_root_squash)

.. Extras şi sistemul de fişiere Angstrom ca rădăcină a / home/doug/mini2440/root_fs

Veţi avea nevoie pentru a edita / etc / xinetd.d / tftp pentru a seta TFTP. A mea este postat de mai jos pentru referinţă, cel puţin aveţi nevoie pentru a dezactiva = nr.

# Default: off
# Descriere: server-ul tftp serveşte fişiere utilizând transferul de fişiere trivial
# Protocol. Protocolul de tftp este adesea folosit pentru a iniţializa diskless
# Statii de lucru, descărcaţi fişiere de configurare a reţelei-conştient imprimante,
# Şi pentru a începe procesul de instalare pentru unele sisteme de operare.
Serviciu tftp
{
Dezactivează = nu
socket_type = dgram
protocol = udp
, aşteptaţi = yes
= ghidul de rădăcină
sbin / in.tftpd server = / usr / sbin / in.tftpd
home / doug / mini2440 / kernel server_args =-s / home / Doug / mini2440 / kernel
per_source = 11
cps = 100 2
steaguri = IPv4
}

Am inceput apoi servicii:

init.d / nfs start / Etc / init.d / nfs start

service xinetd start / Sbin / serviciu xinetd start

Pentru a automatiza aceste cred că poţi să faci:

chkconfig TFTP pe

chkconfig xinetd pe

chkconfig nfs pe

Înainte am editat mediului uboot. Utilizaţi comanda setenv de a modifica sau adăuga intrări şi savenev atunci când aţi terminat. Am ajuns cu următorul text:

MINI2440 # printenv
bootdelay = 3
baudrate = 115200
: 18 : 12 : 27 ethaddr = 08:08: 11: 18: 12: 27
usbtty = cdc_acm
=mini2440-nand:256k @ 0 ( u-boot ) ,128k ( env ) ,5m ( kernel ) ,- ( root ) mtdparts = mtdparts = mini2440-NAND: 256k @ 0 (U-boot), 128k (ENV), 5m (nucleu), - (rădăcină)
=0tb mini2440 = mini2440 = 0tb
=ttySAC0, 115200 noinitrd bootargs_base = console = ttySAC0, 115200 noinitrd
= / sbin / init bootargs_init = init = / sbin / init
= / dev / mtdblock3 rootfstype =jffs2 root_nand = root = / dev / mtdblock3 rootfstype = jffs2
= / dev / mmcblk0p2 rootdelay = 2 root_mmc = root = / dev / mmcblk0p2 rootdelay = 2
mnt / nfs root_nfs = / mnt / nfs
= / dev / nfs rw nfsroot = ${serverip} : ${root_nfs} set_root_nfs = setenv root_nfs root = / dev / nfs rw nfsroot = $ {Serverip}: $ {root_nfs}
ip = ${ipaddr} : ${serverip} :: ${netmask} :mini2440:eth0 ifconfig_static = rula setenv ifconfig ip = $ {ipaddr}: $ {Serverip}:: $ {netmask}: mini2440: eth0
ip =dhcp ifconfig_dhcp = rula ip = dhcp setenv ifconfig
=dhcp ifconfig = ip = dhcp
set_bootargs_mmc = setenv bootargs $ {bootargs_base} $ {bootargs_init} $ {mini2440} $ {root_mmc}
set_bootargs_nand = setenv bootargs $ {bootargs_base} $ {bootargs_init} $ {mini2440} $ {root_nand}
set_bootargs_nfs = rula set_root_nfs; setenv bootargs $ {bootargs_base} $ {bootargs_init} $ {mini2440} $ {root_nfs} {$ ifconfig}
=mini2440-nand mtdids = nand0 = mini2440-NAND
=ttySAC0, 115200 noinitrd init = / sbin / init mini2440 =0tb ip =192.168.1.85 root = / dev / nfs rw nfsroot =192.168.1.10: / home / doug / mini2440 / root_fs bootargs = console = ttySAC0, 115200 noinitrd init = / sbin / init mini2440 = 0tb ip = 192.168.1.85 root = / dev / nfs rw nfsroot = 192.168.1.10: / home / Doug / mini2440 / root_fs
bootfile = "uImage"
filesize = 1E9088
fileaddr = 32000000
gatewayip = 192.168.1.100
netmask = 255.255.255.0
ipaddr = 192.168.1.85
Serverip = 192.168.1.10
bootcmd = tftp; bootm 32000000
partition = nand0, 0
mtddevnum = 0
mtddevname = U-Boot

Notă Când setenv trebuie să omiteţi semnul =. Evident, veţi dori să modificaţi unele din prezentul pentru a se potrivi configuratiei dvs. de reţea. Aici laptop-ul meu este 192.168.1.10 si 192.168.1.100 este cutia mea pfsense care se atribuie 192.168.1.85 la mini2440 de DHCP.

La procesul de boot uboot sistemul va sa descarcati kernel-ului de peste TFTP şi apoi mount cota NFS.

Dacă aveţi DHCP în reţeaua dvs. ar trebui să Angstrom primi automat un IP. Puteţi sări peste restul, în acest caz!

Dacă doriţi o adresă statică aveţi posibilitatea să modificaţi / etc / network / interfaces. Mi-am schimbat pur şi simplu la DHCP static pentru eth0:

iface eth0 inet static

Şi după acest sistem de boot-at la amendă. În sfârşit am o notă care spune am şters link-ul simbolic / etc / resolve.conf şi înlocuieşte-l cu:

domeniu locale
căutare locală
nameserver 192.168.1.100

Să fie avertizaţi că întregul are nevoie de mai sus să fie conforme cu firewall-ul şi SELinux, acesta nu va funcţiona altfel!

Am gasit urmatoarele link-uri utile:

TFTP

NFS

U-boot NFS / TFTP de boot

Tags: , Categorii: NFS , TFTP , UBOOT Tag-uri: ,
  1. Anafor
    31 decembrie 2009 la 08:02 | # 1

    Dragi prieteni,
    Am construi o distrubition openembedded pentru mini2440. Eu am copiat
    mini2440-base-image.tar.gz la PC-ul gazda mea şi am arrenged un NFS pentru asistenţa
    clădire. Acesta funcţionează OK, dar când am copiat şi extract de
    mini2440-console-image.tar.gz, NFS meu nu răspunde. Aveţi vreo
    sfat pentru mine? Am copiat mesajele mele minicom consola si-l ataşat.

    De asemenea, am încercat cu rootfs pentru NFS Sistem de mai jos link-ul, dar nu este încă
    răspunde.

    U-Boot 1.3.2-mini2440 (06 octombrie 2009 - 12:51:09)

    I2C: gata
    DRAM: 64 MB
    Flash: 2 MB
    NAND: tabel bloc Bad nu a fost găsit pentru cip 0
    Tabel bloc Bad nu a fost găsit pentru cip 0
    128 MiB
    De Mediu a constatat diferenţa în OOB ..
    USB: USB S3C2410 Deviced
    In: serial
    Out: serial
    Err: serial
    MAC: 08:08:11:18:12:27
    Hit orice tastă pentru a opri autoboot: 0
    dm9000 I / O: 0 × 20000300, id: 0x90000a46
    DM9000: rulează în modul de 16 biti
    MAC: 08:08:11:18:12:27
    TFTP de pe server 192.168.1.10; adresa noastra IP este 192.168.1.85
    Nume "uImage.bin".
    Adresa de încărcare: 0 × 32000000
    Se incarca: checksum bad
    checksum bad
    T ################################################# ################
    ################################################## ###############
    #########
    făcut
    Bytes transferat = 2031220 (1efe74 hex)
    # # Boot-area kernel-ul de la Image Legacy la 32000000 ...
    Nume Imagine: Angstrom/2.6.31 + git/mini2440
    Creat: 2009-10-30 09:06:09 UTC
    Tip imagine: ARM Imagine Linux Kernel (necomprimat)
    Date Dimensiune: 2031156 Bytes = 1.9 MB
    Adresa de încărcare: 30008000
    Punctul de intrare: 30008000
    Verificarea Checksum ... OK
    Se incarca imaginea de kernel ... OK
    Bine

    Începând cu nucleu ...

    Uncompressing
    Linux versiunea 2.6.31.1 (Sven @ birou) (gcc versiunea 4.2.4) # 1 Vineri 30 octombrie 2009 17:04:01 CST
    CPU: ARM920T [41129200] revizuire 0 (ARMv4T), cr = c0007177
    CPU: VIVT date cache, cache de instrucţiuni VIVT
    Masina: MINI2440
    Politica de memorie: ECC cu handicap, date writeback cache
    CPU S3C2440A (id-ul 0 × 32440001)
    Ceasuri S3C24XX, (c) 2004 Simtec Electronics
    S3C244X: 405.000 MHz core, memorie 101.250 MHz, periferice 50.625 MHz
    CLOCK: Mod de Slow (1.500 MHz), rapid, pe MPLL, UPLL pe
    Construit 1 zonelists pentru Zona, gruparea de mobilitate pe. Total pagini: 16256
    Linia de comandă nucleu: console = ttySAC0, 115200 noinitrd init = / sbin / init mini2440 = 0tb ip = 192.168.1.85 root = / dev / nfs rw nfsroot = 192.168.1.10: / hd
    PID intrări hash de masă: 256 (comandă: 8, 1024 de octeţi)
    Dentry cache intrări hash de masă: 8192 (ordine: 3, 32768 bytes)
    Inode-cache hash intrări de masă: 4096 (ordine: 2, 16384 bytes)
    Memorie: 64MB = 64MB totale
    Memorie: 60640KB disponibil (cod 3568K, 417K de date, 132k init, 0K highmem)
    SLUB: Genslabs = 11, HWalign = 32, Ordonanţa = 0-3, MinObjects = 0, CPU = 1, Noduri = 1
    NR_IRQS: 85
    IRQ: starea de compensare până la 02000000
    IRQ: starea de compensare subpending 00000002
    Consola: dispozitiv de culoare dummy 80 × 30
    consolă [ttySAC0] activat
    Bucla întârziere Calibrarea ... 201.93 BogoMIPS (lpj = 504832)
    Mount-cache hash intrări de masă: 512
    CPU: Testarea scrie coerenta tampon: ok
    NET: protocol de familie inregistrat 16
    MINI2440: string Opţiunea mini2440 = 0tb
    MINI2440: LCD [0:240 X320] 1:800 × 480 × 768 2:1024
    S3C2440: Arhitectura Iniþializare
    S3C2440: IRQ Asistenţă
    S3C24XX DMA driver, (c) 2003-2004,2006 Simtec Electronics
    DMA canal 0 la c4808000, irq 33
    DMA canalul 1 la c4808040, irq 34
    DMA 2 canale la c4808080, irq 35
    DMA canalul 3 la c48080c0, irq 36
    S3C244X: Suport cu ceas, DVS off
    bio: creaţi placa la 0
    usbcore: usbfs înregistrat nouă interfaţă conducător auto
    usbcore: înregistrat noua interfaţă driver hub
    usbcore: înregistrat nou driver de dispozitiv USB
    s3c-I2C s3c2440-I2C: adresa slave 0 × 10
    s3c-I2C s3c2440-I2C: frecvenţa stabilite de autobuz la 98 KHz
    s3c-I2C s3c2440-I2C: I2C-0: S3C I2C adaptor
    NET: protocol de familie inregistrat 2
    IP ruta cache intrări hash de masă: 1024 (ordine: 0, 4096 bytes)
    TCP stabilit intrări hash de masă: 2048 (ordine: 2, 16384 bytes)
    TCP obligati intrări hash de masă: 2048 (ordine: 1, 8192 bytes)
    TCP: Hash tabele configurate (2048 stabilit obligati 2048)
    TCP reno înregistrat
    NET: protocol de familie inregistrat o
    JFFS2 versiunea 2.2. (NAND) © 2001-2006 Red Hat, Inc
    ROMFS MTD (C) 2007 Red Hat, Inc
    msgmni a fost setat la 118
    ALG: Nici un test pentru stdrng (krng)
    io scheduler noop înregistrat
    io scheduler anticipate înregistrat (implicit)
    io limită scheduler înregistrat
    io scheduler cfq înregistrat
    Consola: trecerea la culoarea dispozitiv buffer de cadre 60 × 53
    fb0: s3c2410fb tampon dispozitiv cadru
    s3c2440-uart.0: ttySAC0 la MMIO 0 × 50000000 (IRQ = 70) este un S3C2440
    s3c2440-uart.1: ttySAC1 la MMIO 0 × 50004000 (IRQ = 73) este un S3C2440
    s3c2440-uart.2: ttySAC2 la MMIO 0 × 50008000 (IRQ = 76) este un S3C2440
    BRD: Modul încărcat
    at24 0-0050: 1024 byte 24c08 EEPROM (scriere)
    dm9000 Ethernet Driver, V1.31
    eth0: dm9000e la c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (cip)
    S3C24XX NAND Driver, (c) 2004 Simtec Electronics
    s3c24xx-NAND s3c2440-NAND: Tacls = 1, 9ns Twrph0 = 3 29ns, Twrph1 = 2 19ns
    s3c24xx-NAND s3c2440-NAND: NAND moale ECC
    Dispozitiv NAND: ID Producator: ID-ul 0xec, Chip: 0xf1 (Samsung NAND 128MiB 3,3 V 8-biţi)
    Crearea 4 partiţii MTD pe "NAND 128MiB 3,3 V 8-bit":
    0 × × 000000000000-0 000000040000: "U-Boot"
    ftl_cs: FTL antet nu a fost găsit.
    0 × × 000000040000-0 000000060000: "U-Boot-ENV"
    ftl_cs: FTL antet nu a fost găsit.
    0 × × 000000060000-0 000000560000: "nucleu"
    ftl_cs: FTL antet nu a fost găsit.
    0 × × 000000560000-0 000008000000: "rădăcină"
    ftl_cs: FTL antet nu a fost găsit.
    ohci_hcd: USB 1.1 "Open" Host Controller (OHCI) Driver
    s3c2410-OHCI s3c2410-OHCI: S3C24XX OHCI
    s3c2410-OHCI s3c2410-OHCI: USB autobuz nou înregistrate, numărul atribuit un autobuz
    s3c2410-OHCI s3c2410-OHCI: IRQ 42, io MEM 0 × 49000000
    usb usb1: de configurare # 1 ales de la 1 alegere
    hub 1-0:1.0: USB hub găsite
    hub 1-0:1.0: 2 porturi detectate
    usbcore: înregistrat noua interfaţă driver libusual
    s3c2440-usbgadget s3c2440-usbgadget: S3C2440: FIFO, crescând la 128 octeţi
    soareci: PS / 2 mouse-ului comun pentru toate soareci
    intrare: GPIO-keys ca / ​​devices/platform/gpio-keys/input/input0
    s3c2440-ts s3c2440-ts: Pornirea
    Creat grup ts filtrul de len 12 adâncime 2 aproape 10 treiera 6
    Creat mediană ts filtrul de len 20 adâncime 2 dec 24
    Creat medie ts filtrul de len 4 adâncime 2 treiera 65535
    Creat liniare ts filtrul de adâncime 2
    s3c2440-ts s3c2440-TS: 4 filtru (e) iniţializată
    s3c2440-ts s3c2440-TS: încarcă cu succes
    de intrare: s3c2410 TouchScreen ca / ​​devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-RTC s3c2410-RTC: RTC cu handicap, care să permită re-
    s3c2410-RTC s3c2410-RTC: RTC de bază: s3c înregistrat ca rtc0
    I2C / dev intrările de drivere
    S3C2410 timer-ul watchdog, (c) 2004 Simtec Electronics
    s3c2410-WDT s3c2410-WDT: watchdog inactiv, resetare cu handicap, irq activat
    cpuidle: folosind scara guvernator
    sdhci: Secure Digital Host Controller Interface conducător auto
    sdhci: Copyright (c) Pierre Ossman
    mapate canal 0 - 0
    s3c2440-SDI s3c2440-SDI: cu reglaj electric jos.
    s3c2440-SDI s3c2440-SDI: de iniţializare făcut.
    Dispozitiv inregistrat a condus: led1
    Dispozitiv inregistrat a condus: led2
    Dispozitiv inregistrat a condus: led3
    Dispozitiv inregistrat a condus: led4
    Dispozitiv inregistrat a condus: lumina de fundal
    usbcore: înregistrat noua interfaţă driver hiddev
    usbcore: înregistrat noua interfaţă driver usbhid
    usbhid: v2.6: USB HID driver de bază
    Avansate de Linux Sound Architecture pilotului Versiune 1.0.20.
    Nr dispozitiv pentru DAI UDA134X
    Nr dispozitiv de DAI s3c24xx-i2s
    S3C24XX_UDA134X SoC Audio conducător auto
    UDA134X SoC Audio Codec
    ASOC: UDA134X s3c24xx-i2s cartografiere ok
    ALSA dispozitiv listă:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP cubi înmatriculate
    NET: protocol de familie inregistrat 17
    RPC: inregistrat udp modul de transport.
    RPC: inregistrat tcp modul de transport.
    s3c2410-RTC s3c2410-RTC: sistem de ceas setare pentru a 2009-12-19 00:36:25 UTC (1261182985)
    eth0: legătură într-jos
    IP-Config: netmask 255.255.255.0 ghiceşti
    IP-Config: complet:
    dispozitiv = eth0, adr = 192.168.1.85, masca = 255.255.255.0, GW = 255.255.255.255,
    gazdă = 192.168.1.85, = domeniu, INS-domeniu = (none),
    bootserver = 255.255.255.255, rootserver = 192.168.1.10, rootpath =
    Privind în sus portul de RPC 100003 / 2 pe 192.168.1.10
    eth0: legătură într-up, 100Mbps, full-duplex, APL 0xCDE1
    Privind în sus portul de RPC 100005 / 1 privind 192.168.1.10
    VFS: rădăcină montat (sistem de fişiere NFS) pe 0:14 dispozitiv.
    Eliberarea de memorie init: 132k
    INIT: versiunea 2.86 boot
    Vă rugăm să aşteptaţi: boot ...
    Pornind de udev
    Popularea cache dev
    Puteţi monta sistemul de fişiere rădăcină ...
    Necunoscut HZ valoare! (90) Presupunem 100.
    ALSA: Restaurarea setărilor mixer ...
    Configurarea interfeţelor de reţea ... nr de stat este prezent pentru carte de S3C24XXUDA134X
    / Usr / sbin / alsactl: analiza: 1639: Nu pot deschide fisierul '/ usr/share/alsa/init/00main': Nici un astfel de fişier sau director
    Nici un stat nu este prezent pentru carte de S3C24XXUDA134X
    NFS: serverul nu răspunde 192.168.1.10, încă mai încearcă

  2. jmboy
    27 mai 2010 la 08:49 | # 2

    Max toată lumea,

    Am exact acelasi comportament folosind openembedded cu NFS

    Presupun că după mesajul "Nici un stat nu este prezent pentru carte de S3C24XXUDA134X" openembedded încerca să reconfig interfaţă ethernet şi NFS nu reuşeşte legătură într-dar nu ştiu ce să facă pentru a evita acest lucru.
    are cineva găsit o soluţie?
    Vă mulţumim pentru ajutor mine
    jmboy

  3. 08 august 2010 la 13:57 | # 3

    Hi
    Am avut aceeaşi problemă, reţeaua a fost reconfigurate şi NFS conexiunea a fost pierdut.
    Nu am putut găsi URL-ul din soluţia de a posta aici, dar eu încă mai trebuie schimbat fişier de pe rootfs mea.
    editaţi fişierul / etc / init.d / networking pe rootfs dvs.
    găsi o linie care arata asa:
    echo-n "Configurarea interfeţelor de reţea ..."
    ifup-a
    echo "făcut".
    şi comentaţi linia a doua de a avea ceva de genul:
    echo-n "Configurarea interfeţelor de reţea ..."
    # Ifup-a
    echo "făcut".
    după această rootfs peste NFS nu are probleme. Cel puţin pentru mine.
    Acest lucru arata ca urât soluţie, dar sperăm că vă va ajuta.

  4. 08 august 2010 la 14:18 | # 4

    Bună, da, cand am dat peste această problemă, am schimbat la o adresă IP fixă. Lucru ciudat a fost atunci când am încercat acelaşi lucru pe o altă reţea, configurat destul de mult în acelaşi fel, nu am nevoie pentru a schimba ceva. Nu am dat seama ce diferenta a fost. Vă mulţumim pentru Irakli post.

  1. Nu Urmăritori încă.