Pubblicità

Home > NFS , TFTP , UBoot > Avvio con TFTP e NFS (aggiornato)

Avvio con TFTP e NFS (aggiornato)

Piuttosto che lentamente logorando il flash NAND è possibile avviare il mini2440 su una rete di caricamento del kernel usando TFTP e il sistema operativo da una condivisione NFS. Questo rende anche molto più veloce per testare le modifiche. Utilizzando Fedora 11 è possibile utilizzare yum per installare tftp, tftp-server e nfs-utils.

yum install tftp tftp-server nfs-utils

Ho creato una cartella / home/doug/mini2440/root_fs e ha aggiunto la seguente riga a / etc / exports per permettere r / w di accesso da 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, sync, no_root_squash)

.. Ed estratto il file system Angstrom come root / home/doug/mini2440/root_fs

Avrai bisogno di editare / etc / xinetd.d / tftp per impostare TFTP. Il mio è pubblicato sotto per riferimento, è almeno necessario impostare disable = no.

# Default: off
# Descrizione: Il server TFTP serve file utilizzando il trasferimento di file banale
# Protocollo. Il protocollo TFTP viene spesso utilizzato per avviare senza disco
# Postazioni di lavoro, scaricare i file di configurazione di network-aware stampanti,
# E per avviare il processo di installazione di alcuni sistemi operativi.
servizio tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
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
flags = IPv4
}

Poi ho iniziato i servizi:

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

service xinetd start / Sbin / service xinetd inizio

Per automatizzare queste penso che puoi fare:

chkconfig tftp su

chkconfig su xinetd

nfs chkconfig su

Avanti Ho modificato l'ambiente uboot. Utilizzare il comando setenv per modificare o aggiungere voci e savenev quando hai finito. Ho finito con le seguenti:

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 (kernel), - (root)
=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 = radice root_nfs = / dev / nfs rw nfsroot = $ {IPServer}: $ {} root_nfs
ip = ${ipaddr} : ${serverip} :: ${netmask} :mini2440:eth0 ifconfig_static = eseguire setenv ifconfig ip = $ {ipaddr}: $ {} IPServer:: $ {netmask}: mini2440: eth0
ip =dhcp ifconfig_dhcp = eseguire ip ifconfig setenv = dhcp
=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 = eseguire 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
file di avvio = "uImage"
filesize = 1E9088
fileaddr = 32000000
gatewayip = 192.168.1.100
netmask = 255.255.255.0
IPADDR = 192.168.1.85
IPServer = 192.168.1.10
bootcmd = tftp; bootm 32000000
partition = nand0, 0
mtddevnum = 0
mtddevname = u-boot

Nota quando si setenv non si devono riportare il segno =. Ovviamente dovrete cambiare alcune di queste in base alle proprie impostazioni di rete. Ecco il mio laptop è 192.168.1.10 e 192.168.1.100 è la mia casella di pfSense che è assegnare 192.168.1.85 al mini2440 da DHCP.

Quando si avvia il sistema uboot scaricare il kernel via TFTP e poi montare la condivisione NFS.

Se si dispone di DHCP sulla rete Angstrom dovrebbe ottenere automaticamente un indirizzo IP. Si può saltare il resto in questo caso!

Se vuoi un indirizzo statico è possibile modificare / etc / network / interfaces. Ho semplicemente cambiato dhcp statico per eth0:

iface eth0 inet static

E dopo questo il sistema avviato bene. Infine ho una nota che dice: ho cancellato il link simbolico / etc / resolve.conf e lo ha sostituito con:

dominio locale
ricerca locale
nameserver 192.168.1.100

Sappiate che il tutto di cui sopra deve essere compatibile con il firewall e selinux, non funzionerà altrimenti!

Ho trovato utili i seguenti link:

TFTP

NFS

U-boot NFS / TFTP avvio

Tags: , Categorie: NFS , TFTP , UBoot Tags: ,
  1. Anafor
    31 Dicembre 2009 alle 08:02 | # 1

    Cari amici,
    Devo costruire un distrubition OpenEmbedded per mini2440. Ho copiato
    mini2440-base-image.tar.gz al mio pc host e io arrenged un NFS per il cross
    edificio. Funziona bene, ma quando ho copiato ed estrarre il
    mini2440-console-image.tar.gz, il mio NFS non risponde. Avete qualche
    consiglio da darmi? Ho copiato i miei messaggi consolle minicom e attaccato.

    Inoltre ho provato con rootfs per NFS sistem link qui sotto, ma non è ancora
    risponde.

    U-Boot 1.3.2-mini2440 (6 Ott 2009 - 12:51:09)

    I2C: pronto
    DRAM: 64 MB
    Flash: 2 MB
    NAND: tavolo Bad blocco non trovato per il chip 0
    Tabella blocco difettoso non trovato per il chip 0
    128 MiB
    Ambiente trovato compensazione in OOB ..
    USB: S3C2410 USB ad apparecchiature
    In: serial
    Out: serial
    Err: serial
    MAC: 08:08:11:18:12:27
    Premere un tasto qualsiasi per fermare autoboot: 0
    dm9000 I / O: 0 × 20000300, id: 0x90000a46
    DM9000: esecuzione in modalità 16 bit
    MAC: 08:08:11:18:12:27
    TFTP dal server 192.168.1.10, il nostro indirizzo IP è 192.168.1.85
    'UImage.bin' nome del file.
    Carico indirizzo: 0 × 32000000
    Caricamento in corso: checksum
    checksum
    T ################################################# ################
    ################################################## ###############
    #########
    fatto
    = 2031220 byte trasferiti (1efe74 hex)
    # # Avvio kernel da immagine Legacy a 32000000 ...
    Nome immagine: Angstrom/2.6.31 + git/mini2440
    Creato: 2009-10-30 09:06:09 UTC
    Tipo di immagine: ARM dell'immagine del kernel Linux (non compresso)
    Dimensione Dati: 2031156 Byte = 1,9 MB
    Carico Indirizzo: 30008000
    Punto di ingresso: 30008000
    Verifica del Checksum ... OK
    Immagine kernel Loading ... OK
    OK

    A partire del kernel ...

    Decompressione
    Linux versione 2.6.31.1 (sven @ ufficio) (gcc version 4.2.4) # 1 Ven 30 Ott 2009 17:04:01 CEST
    CPU: ARM920T [41129200] revisione 0 (ARMV4T), cr = c0007177
    CPU: VIVT cache dei dati di cache istruzioni VIVT
    Macchina: MINI2440
    Memoria politica: ECC disabili, writeback della cache dei dati
    CPU S3C2440A (id 0 × 32440001)
    Orologi S3C24XX, (c) 2004 Simtec Elettronica
    S3C244X: nucleo 405,000 MHz, 101,250 MHz, memoria, periferiche 50,625 MHz
    OROLOGIO: modalità lenta (1.500 MHz), veloce, MPLL su, su UPLL
    Costruito 1 zonelists per Zona, il raggruppamento mobilità. Pagine totali: 16256
    Kernel riga di comando: console = ttySAC0, 115200 noinitrd init = / sbin / init = mini2440 0tb ip = 192.168.1.85 root = / dev / nfs rw nfsroot = 192.168.1.10: / hd
    Voci PID hash table: 256 (ordine: 8, 1024 byte)
    Dentry voci della tabella di hash della cache: 8192 (ordine: 3, 32768 bytes)
    Inode-cache voci hash table: 4096 (ordine: 2, 16384 bytes)
    Memoria: 64 MB = 64 MB totali
    Memoria: 60640KB disponibili (codice 3568K, dati 417K, 132K init, 0K highmem)
    SLUB: Genslabs = 11, HWalign = 32, Ordine = 0-3, MinObjects = 0, le CPU = 1, Nodi = 1
    NR_IRQS: 85
    irq: stato di compensazione in attesa 02000000
    irq: compensazione subpending stato 00000002
    Console: dummy dispositivo a colori 80 × 30
    console [ttySAC0] enabled
    Ritardo ciclo calibrare ... 201,93 BogoMIPS (lpj = 504832)
    Monte-cache hash table voci: 512
    CPU: test tampone coerenza scrivere: ok
    NET: famiglia di protocolli registrati 16
    MINI2440: string Opzione mini2440 = 0tb
    MINI2440: LCD [0:240 x320] 1:800 2:1024 × 480 × 768
    S3C2440: architettura Inizializzazione
    S3C2440: Supporto IRQ
    S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Elettronica
    DMA canale 0 a c4808000, irq 33
    Canale DMA 1 a c4808040, irq 34
    DMA canale 2 a c4808080, irq 35
    DMA canale 3 a c48080c0, irq 36
    S3C244X: Supporto Orologio, DVS off
    bio: creare lastra a 0
    usbcore: usbfs registrati nuovi driver di interfaccia
    usbcore: registrati nuovi hub driver di interfaccia
    usbcore: registrati nuovi driver di periferica usb
    S3c-i2c S3C2440-i2c: indirizzo slave 0 × 10
    S3c-i2c S3C2440-i2c: frequenza di bus a 98 KHz
    S3c-i2c S3C2440-i2c: i2c-0: S3C adattatore I2C
    NET: famiglia di protocolli Registrati 2
    IP via le voci della tabella hash della cache: 1024 (ordine: 0, 4096 byte)
    TCP stabilito voci hash table: 2048 (ordine: 2, 16384 bytes)
    TCP voci della tabella si legano hash: 2048 (ordine: 1, 8192 byte)
    TCP: tabelle hash configurato (fondata 2048 legano 2048)
    TCP reno registrati
    NET: famiglia di protocolli Registrati 1
    Jffs2 versione 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    ROMFS MTD (C) 2007 Red Hat, Inc.
    msgmni è stato impostato a 118
    alg: Nessuna prova per stdrng (krng)
    io scheduler noop registrati
    io scheduler di anticipazione registrati (default)
    io termine scheduler registrati
    io scheduler CFQ registrati
    Console: il passaggio a dispositivo a colori frame buffer 60 × 53
    fb0: dispositivo telaio s3c2410fb tampone
    S3C2440-uart.0: ttySAC0 a MMIO 0 × 50000000 (irq = 70) è un S3C2440
    S3C2440-uart.1: ttySAC1 a MMIO 0 × 50004000 (irq = 73) è un S3C2440
    S3C2440-uart.2: ttySAC2 a MMIO 0 × 50008000 (irq = 76) è un S3C2440
    BRD: modulo caricato
    at24 0-0050: 1024 byte EEPROM 24c08 (scrivibile)
    dm9000 Ethernet Driver V1.31
    eth0: dm9000e a c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (chip)
    S3C24XX NAND Driver, (c) 2004 Simtec Elettronica
    s3c24xx-nand S3C2440-nand: Tacls = 1, 9ns Twrph0 = 3 29ns, 19ns Twrph1 = 2
    s3c24xx-nand S3C2440-nand: NAND morbido ECC
    NAND device: ID Produttore: 0xec, ID di chip: 0xf1 (Samsung NAND 128MiB 3,3 V a 8-bit)
    La creazione di 4 partizioni MTD su "NAND 128MiB 3,3 V 8-bit":
    0 × × 000000040000 000000000000-0: "u-boot"
    ftl_cs: intestazione FTL non trovato.
    0 × × 000000060000 000000040000-0: "u-boot-env"
    ftl_cs: intestazione FTL non trovato.
    0 × × 000000560000 000000060000-0: "kernel"
    ftl_cs: intestazione FTL non trovato.
    0 × × 000008000000 000000560000-0: "root"
    ftl_cs: intestazione FTL non trovato.
    ohci_hcd: USB 1.1 Controller 'Apri' Host (OHCI) Driver
    S3C2410-ohci S3C2410-ohci: S3C24XX OHCI
    S3C2410-ohci S3C2410-ohci: nuovo bus USB registrati, l'autobus numero assegnato 1
    S3C2410-ohci S3C2410-ohci: irq 42, io mem 0 × 49000000
    usb usb1: configurazione # 1 scelto da 1 scelta
    hub 1-0:1.0: USB hub trovato
    hub 1-0:1.0: 2 porte rilevato
    usbcore: registrati nuovi libusual driver di interfaccia
    S3C2440-usbgadget S3C2440-usbgadget: S3C2440: FIFO aumentando a 128 byte
    mouse: PS / 2 device del mouse comune per tutti i mouse
    Ingresso: GPIO-chiavi come / devices/platform/gpio-keys/input/input0
    S3C2440 S3C2440-ts-ts: avvio
    Creato gruppo ts filtro len 12 profondità 2 chiuderanno 10 trebbiare 6
    Creato mediana ts filtro len 20 profondità 2 24 dicembre
    Creato media ts filtro len 4 profondità 2 trebbiare 65535
    Creato lineare ts filtro profondità 2
    S3C2440 S3C2440-ts-ts: 4 filtro (s) inizializzata
    S3C2440 S3C2440-ts-ts: caricato con successo
    Ingresso: S3C2410 touchscreen come / devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Elettronica
    S3C2410-rtc S3C2410-rtc: rtc disabili, la riattivazione
    S3C2410-rtc S3C2410-rtc: rtc principali: S3c registrato come rtc0
    i2c / dev voci conducente
    S3C2410 Watchdog Timer, (c) 2004 Simtec Elettronica
    S3C2410-WDT S3C2410-WDT: cane da guardia inattiva, reset disabili, irq abilitato
    cpuidle: con scala governatore
    sdhci: Secure Digital controller driver Host Interface
    sdhci: Copyright (c) Pierre Ossman
    mappato il canale 0-0
    S3C2440-sdi S3C2440-sdi: spento.
    S3C2440-sdi S3C2440-sdi: inizializzazione fatto.
    Registrato dispositivo led: LED1
    Registrato dispositivo led: LED2
    Registrato dispositivo led: LED3
    Registrato dispositivo led: LED4
    Registrato dispositivo led: retroilluminazione
    usbcore: registrati nuovi hiddev driver di interfaccia
    usbcore: registrati nuovi usbhid driver di interfaccia
    usbhid: v2.6: USB HID driver core
    Advanced Linux Sound Driver Architecture Versione 1.0.20.
    Nessun dispositivo per DAI UDA134X
    Nessun dispositivo per DAI s3c24xx-I2S
    S3C24XX_UDA134X SoC Audio conducente
    UDA134X SoC Audio Codec
    Asoc: UDA134X s3c24xx-I2S mappatura ok
    ALSA device list:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP cubo registrati
    NET: famiglia di protocolli registrati 17
    RPC: Registrato modulo di trasporto UDP.
    RPC: Registrato modulo di trasporto TCP.
    S3C2410-rtc S3C2410-rtc: sistema orologio impostazione 2009/12/19 00:36:25 UTC (1261182985)
    eth0: link down
    IP-Config: Indovinare netmask 255.255.255.0
    IP-Config: completo:
    device = eth0, addr = 192.168.1.85, mask = 255.255.255.0, gw = 255.255.255.255,
    host = 192.168.1.85, dominio =, nis-domain = (nessuno),
    bootserver = 255.255.255.255, rootserver = 192.168.1.10, rootpath =
    Alzando gli occhi porto di RPC 100003 / 2 su 192.168.1.10
    eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
    Alzando gli occhi porto di RPC 100005 / 1 su 192.168.1.10
    VFS: Mounted radice (nfs filesystem) su 0:14 dispositivo.
    Liberando la memoria init: 132K
    INIT: versione 2,86 l'avvio
    Attendere: avvio ...
    Udev di partenza
    Popolamento della cache dev
    Rimontaggio root file system ...
    HZ valore sconosciuto! (90) Assumiamo 100.
    ALSA: Ripristino delle impostazioni del mixer ...
    Configurazione delle interfacce di rete ... Non è stato presente per la scheda S3C24XXUDA134X
    / Usr / sbin / alsactl: analizzare: 1639: Impossibile aprire il file '/ usr/share/alsa/init/00main': No such file or directory
    Nessuno stato è presente per la scheda S3C24XXUDA134X
    nfs: server di 192.168.1.10 non risponde, ancora cercando

  2. jmboy
    27 MAGGIO 2010 a 08:49 | # 2

    Ciao a tutti,

    Ho esattamente lo stesso comportamento con OpenEmbedded con NFS

    Suppongo che dopo il messaggio "Nessuno Stato è presente per la scheda S3C24XXUDA134X" OpenEmbedded provare a riconfigurare l'interfaccia ethernet e non riesce collegamento NFS, ma non so cosa fare per evitare questo.
    qualcuno ha trovato una soluzione?
    grazie per avermi aiutato
    jmboy

  3. 8 Agosto 2010 alle 13:57 | # 3

    Ciao
    Ho avuto lo stesso problema, la rete è stato riconfigurato e la connessione NFS è stata persa.
    Non riuscivo a trovare l'URL della soluzione a postare qui, ma ho ancora cambiato file sul mio rootfs.
    modificare il file / etc / init.d / networking sul tuo rootfs
    trovare linee simili a questa:
    echo-n "Configurazione delle interfacce di rete ..."
    ifup-a
    echo "fatto".
    e commentare seconda linea per avere qualcosa come questo:
    echo-n "Configurazione delle interfacce di rete ..."
    # Ifup-a
    echo "fatto".
    dopo questo rootfs su NFS non ha problemi. Almeno per me.
    Questo appare come brutto soluzione ma spero che vi aiuterà.

  4. 8 Agosto 2010 alle 14:18 | # 4

    Ciao, sì, quando mi sono imbattuto in questo problema ho cambiato a un indirizzo IP fisso. La cosa strana è stata quando ho provato la stessa cosa su una rete diversa, configurata in più o meno allo stesso modo, non ho bisogno di cambiare nulla. Non ho mai capito quale fosse la differenza. Grazie per la Irakli post.

  1. Nessun trackback ancora.