Advertentie

Startpagina > NFS , TFTP , uboot > opstarten met behulp van NFS en TFTP (update)

Opstarten met behulp van NFS en TFTP (update)

In plaats van langzaam het dragen van uw NAND flash kunt u de mini2440 via een netwerk boot door het laden van de kernel met behulp van TFTP en het OS van een NFS-share. Dit maakt het ook veel sneller op veranderingen te testen. Met behulp van Fedora 11 die u kunt gebruiken om te YUM tftp, tftp-server-en nfs-utils te installeren.

yum install tftp tftp-server nfs-utils

Ik heb een map / home/doug/mini2440/root_fs en voegde de volgende regel aan / etc / export naar r / w toegang toestaan ​​van 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)

.. En haalde het Angstrom bestandssysteem als root / home/doug/mini2440/root_fs

Je moet / etc / xinetd.d / tftp bewerken setup TFTP. Mine is hieronder gepost voor referentie, je op zijn minst moet uit te schakelen = geen.

# Default: off
# Beschrijving: De tftp server bedient bestanden met behulp van het Trivial File Transfer
# Protocol. De tftp protocol wordt vaak gebruikt om diskless boot
# Werkstations, download configuratie-bestanden om het netwerk-aware printers,
# En om de installatie te starten voor een aantal besturingssystemen.
dienst 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
}

Ik heb toen begonnen met de diensten:

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

service xinetd start / Sbin / service xinetd start

Voor het automatiseren van deze denk ik dat je kunt doen:

chkconfig tftp op

chkconfig xinetd op

chkconfig nfs op

Vervolgens heb ik bewerkt het uboot omgeving. Gebruik de opdracht setenv te wijzigen of toe te voegen en savenev als u klaar bent. Ik eindigde met het volgende:

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, 115.200 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 = run setenv ifconfig ip = $ {ipaddr}: $ {ServerIP}:: $ {netmask}: mini2440: eth0
ip =dhcp ifconfig_dhcp = run setenv ifconfig ip = 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 = run 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, 115.200 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"
bestandsgrootte = 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

Let op wanneer je setenv u het = teken weglaten. Uiteraard wil je een aantal van deze verandering op uw netwerk setup aan te passen. Hier mijn laptop is 192.168.1.10 en 192.168.1.100 is mijn pfsense box die 192.168.1.85 is het toewijzen van de mini2440 door DHCP.

Wanneer u het systeem opstart uboot zal de kernel dan TFTP downloaden en vervolgens mount de NFS-share.

Als u een DHCP op uw netwerk Angstrom moet automatisch een IP. U kunt overslaan van de rest in dit geval!

Als je een statisch adres kunt u / etc / network / interfaces. Ik gewoon veranderd dhcp te statisch voor eth0:

iface eth0 inet static

En daarna het systeem opgestart prima. Ten slotte heb ik een nota die zegt dat ik verwijderde de symlink / etc / resolve.conf en vervangen door:

domeingebonden
zoeken de lokale
nameserver 192.168.1.100

Wees gewaarschuwd dat het de hele van bovenstaande behoeften te voldoen met uw firewall en SELinux worden, zal het niet anders werken!

Ik vond de volgende links nuttig:

TFTP

NFS

U-boot NFS / TFTP boot

Tags: , Categorieën: NFS , TFTP , uboot Tags: ,
  1. Anafor
    31 december 2009 om 08:02 | # 1

    Beste vrienden,
    Ik heb bouwen van een OpenEmbedded distrubition voor mini2440. Ik heb gekopieerd
    mini2440-base-image.tar.gz naar mijn host-pc en ik arrenged een NFS voor het kruis
    gebouw. Het werkt OK, maar als ik gekopieerd en extract van de
    mini2440-console-image.tar.gz, is mijn NFS reageert niet. Heeft u
    advies voor mij? Ik kopieerde mijn minicom console berichten en de bijgevoegde het.

    Ook heb ik geprobeerd met rootfs voor NFS sistem onderstaande link, maar het is nog steeds niet
    reageert.

    U-Boot 1.3.2-mini2440 (van de 06 oktober 2009 - 12:51:09)

    I2C: klaar voor
    DRAM: 64 MB
    Flash: 2 MB
    NAND: Bad block tabel niet gevonden voor de chip 0
    Slechte blokken tabel niet gevonden chip 0
    128 MiB
    Gevonden Milieu offset in OOB ..
    USB: USB S3C2410 Deviced
    In: serial
    Out: serial
    Err: serial
    MAC: 08:08:11:18:12:27
    Druk op een toets om te stoppen autoboot: 0
    dm9000 i / o: 0 × 20000300, id: 0x90000a46
    DM9000: hardlopen in 16 bits modus
    MAC: 08:08:11:18:12:27
    TFTP van de server 192.168.1.10; onze IP-adres is 192.168.1.85
    Bestandsnaam 'uImage.bin'.
    Load adres: 0 × 32000000
    Laden: checksum bad
    checksum bad
    T ################################################# ################
    ################################################## ###############
    #########
    gedaan
    Bytes transferred = 2031220 (1efe74 hex)
    # # Booten kernel uit Legacy Afbeelding op 32000000 ...
    Image Name: Angstrom/2.6.31 + git/mini2440
    Gemaakt op: 2009-10-30 09:06:09 GMT
    Image Type: ARM Linux Kernel Image (zonder compressie)
    Gegevens Grootte: 2031156 bytes = 1,9 MB
    Load Adres: 30008000
    Entry Point: 30008000
    Verifiëren Checksum ... OK
    Laden Kernel Image ... OK
    OK

    Vanaf kernel ...

    Decomprimeren
    Linux versie 2.6.31.1 (sven @ office) (gcc versie 4.2.4) # 1 vr okt 30 17:04:01 CET 2009
    CPU: ARM920T [41129200] revisie 0 (ARMv4T), cr = c0007177
    CPU: VIVT data cache, VIVT instructie cache
    Machine: MINI2440
    Geheugen beleid: ECC uitgeschakeld, Data cache writeback
    CPU S3C2440A (id 0 × 32440001)
    S3C24XX Klokken, (c) 2004 Simtec Electronics
    S3C244X: kern 405.000 MHz, het geheugen 101.250 MHz, perifere 50.625 MHz
    CLOCK: Slow-modus (1.500 MHz), snel, MPLL op, UPLL op
    Ingebouwde een zonelists in Zone orde, mobiliteit groeperen op. Totaal aantal pagina's: 16.256
    Kernel command line: console = ttySAC0, 115.200 noinitrd init = / sbin / init mini2440 = 0tb ip = 192.168.1.85 root = / dev / nfs rw nfsroot = 192.168.1.10: / hd
    PID hash table entries: 256 (volgorde: 8, 1024 bytes)
    Dentry cache hash table entries: 8192 (volgorde: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (volgorde: 2, 16384 bytes)
    Geheugen: 64 MB = 64 MB totaal
    Geheugen: 60640KB beschikbaar (3568K code, 417K data, 132K init, 0K highmem)
    SLUB: Genslabs = 11, HWalign = 32, Order = 0-3, MinObjects = 0, CPU = 1, Nodes = 1
    NR_IRQS: 85
    irq: clearing in afwachting van de status van 02000000
    irq: clearing subpending de status 00000002
    Console: kleur dummy-apparaat 80 x 30
    console [ttySAC0] enabled
    Kalibreren van vertraging loop ... 201,93 BogoMIPS (LPJ = 504832)
    Mount-cache hash table entries: 512
    CPU: Testen schrijf buffer coherentie: ok
    NET: Registered protocol familie 16
    MINI2440: Optie snaar mini2440 = 0tb
    MINI2440: LCD [0:240 X320] 1:800 × 480 × 768 2:1024
    S3C2440: initialiseren architectuur
    S3C2440: IRQ Ondersteuning
    S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
    DMA-kanaal 0 op c4808000, irq 33
    DMA-kanaal 1 op c4808040, irq 34
    DMA-kanaal 2 op c4808080, irq 35
    DMA-kanaal 3 op c48080c0, irq 36
    S3C244X: Klok Support, DVS uit
    bio: maak plaat op 0
    usbcore: geregistreerde nieuwe interface driver usbfs
    usbcore: geregistreerde nieuwe interface driver hub
    usbcore: geregistreerde nieuwe stuurprogramma usb
    S3C-I2C s3c2440-I2C: slave-adres 0 × 10
    S3C-I2C s3c2440-I2C: bus frequentie in te stellen tot 98 KHz
    S3C-I2C s3c2440-I2C: i2c-0: S3C I2C adapter
    NET: Registered protocol familie 2
    IP-route cache hash table entries: 1024 (volgorde: 0, 4096 bytes)
    TCP opgericht hash table entries: 2048 (volgorde: 2, 16384 bytes)
    TCP binden hash table entries: 2048 (volgorde: 1, 8192 bytes)
    TCP: geconfigureerde Hash tabellen (opgericht 2048 te binden 2048)
    TCP reno geregistreerde
    NET: Registered protocol familie een
    JFFS2 versie 2.2. (NAND) © 2001-2006 Red Hat, Inc
    Romfs MTD (C) 2007 Red Hat, Inc
    msgmni is ingesteld op 118
    alg: Geen test voor stdrng (krng)
    io scheduler noop geregistreerde
    io scheduler anticiperend geregistreerd (standaard)
    io scheduler deadline geregistreerd
    io scheduler CFQ geregistreerde
    Console: overschakelen naar kleur framebuffer apparaat 60 × 53
    fb0: s3c2410fb framebuffer apparaat
    s3c2440-uart.0: ttySAC0 op MMIO 0 × 50000000 (irq = 70) is een S3C2440
    s3c2440-uart.1: ttySAC1 op MMIO 0 × 50004000 (irq = 73) is een S3C2440
    s3c2440-uart.2: ttySAC2 op MMIO 0 × 50008000 (irq = 76) is een S3C2440
    BRD: module geladen
    AT24 0-0050: 1024 byte 24c08 EEPROM (beschrijfbare)
    dm9000 Ethernet Driver, v1.31
    eth0: dm9000e op c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (chip)
    S3C24XX NAND Driver, (c) 2004 Simtec Electronics
    s3c24xx-nand-nand s3c2440: Tacls = 1, 9NS Twrph0 = 3 29ns, 19ns Twrph1 = 2
    s3c24xx-nand-nand s3c2440: NAND zacht ECC
    NAND-apparaat: Fabrikant ID: 0xec, Chip ID: 0xf1 (Samsung NAND-128MB 3,3 V 8-bit)
    Het creëren van 4 MTD partities op "NAND 128MB 3,3 V 8-bit":
    0 × 000000000000-0 × 000000040000: "u-boot"
    ftl_cs: FTL header niet gevonden.
    0 × 000000040000-0 × 000000060000: "u-boot-env"
    ftl_cs: FTL header niet gevonden.
    0 × 000000060000-0 × 000000560000: "kernel"
    ftl_cs: FTL header niet gevonden.
    0 × 000000560000-0 × 000008000000: "root"
    ftl_cs: FTL header niet gevonden.
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: nieuwe USB-bus geregistreerd, toegewezen bus nummer 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0 × 49000000
    usb USB1: configuratie # 1 gekozen uit een keuze
    hub 1-0:1.0: USB-hub gevonden
    naaf 1-0:1.0: 2 poorten gedetecteerd
    usbcore: geregistreerde nieuwe interface driver libusual
    s3c2440-usbgadget s3c2440-usbgadget: S3C2440: verhoging van FIFO tot 128 bytes
    muizen: PS / 2 muis device gemeenschappelijk voor alle muizen
    ingang: GPIO-toetsen als / devices/platform/gpio-keys/input/input0
    s3c2440-ts-ts s3c2440: Starting
    Gemaakt groep ts filter len 12 diepte 2 afsluiten 10 dors 6
    Gemaakt Median ts filter len 20 diepte 2 dec 24
    Gemaakt Mean ts filter len 4 diepte 2 dors 65535
    Gemaakt Lineaire ts filter diepte 2
    s3c2440-ts-ts s3c2440: 4 filter (s) geïnitialiseerd
    s3c2440-ts-ts s3c2440: succesvol geladen
    input: s3c2410 touchscreen / devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-rtc s3c2410-RTC: RTC met een handicap, re-enabling
    s3c2410-rtc s3c2410-RTC: RTC kern: geregistreerde S3C als rtc0
    i2c / dev inzendingen driver
    S3C2410 Watchdog timer, (c) 2004 Simtec Electronics
    s3c2410-WDT s3c2410-WDT: watchdog niet actief, reset met een handicap, irq ingeschakeld
    cpuidle: met behulp van gouverneur ladder
    sdhci: Secure Digital Host Controller Interface driver
    sdhci: Copyright (c) Pierre Ossman
    in kaart gebracht kanaal 0-0
    s3c2440-SDI s3c2440-SDI: down aangedreven.
    s3c2440-SDI s3c2440-SDI: initialisatie gedaan.
    Registered led device: LED1
    Registered led device: LED2
    Registered led device: LED3
    Registered led device: led4
    Registered led device: backlight
    usbcore: geregistreerde nieuwe interface driver hiddev
    usbcore: geregistreerde nieuwe interface driver usbhid
    usbhid: v2.6: USB HID kern-driver
    Advanced Linux Sound Architecture Driver Version 1.0.20.
    Geen apparaat voor DAI UDA134X
    Geen apparaat voor DAI s3c24xx-I2S
    S3C24XX_UDA134X SoC Audio driver
    UDA134X SoC Audio Codec
    ASOC: UDA134X s3c24xx-I2S mapping ok
    ALSA-apparaat lijst:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP kubieke geregistreerde
    NET: Registered protocol familie 17
    RPC: Geregistreerde udp transport module.
    RPC: Registered tcp transport module.
    s3c2410-rtc s3c2410-RTC: instelling systeem klok op 2009-12-19 00:36:25 UTC (1261182985)
    eth0: downlink
    IP-Config: Guessing netmask 255.255.255.0
    IP-Config: Complete:
    device = eth0, addr = 192.168.1.85, masker = 255.255.255.0, gw = 255.255.255.255,
    host = 192.168.1.85, domain =, NIS-domein = (geen),
    bootServer = 255.255.255.255, rootserver = 192.168.1.10, rootpath =
    Het opzoeken van de haven van RPC 100003 / 2 op 192.168.1.10
    eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
    Het opzoeken van de haven van RPC 100005 / 1 op 192.168.1.10
    VFS: Mounted root (nfs bestandssysteem) op het apparaat 00:14.
    Het vrijmaken van init geheugen: 132K
    INIT: versie 2.86 opstarten
    Please wait: het opstarten van ...
    Beginnend udev
    Vullen dev cache
    Opnieuw gemonteerd root file system ...
    Onbekend HZ waarde! (90) Stel dat 100.
    ALSA: herstellen van mixer-instellingen ...
    Configureren van netwerkinterfaces ... Geen enkele staat is aanwezig card S3C24XXUDA134X
    / Usr / sbin / alsactl: parse: 1639: Unable to file '/ usr/share/alsa/init/00main' open: Onbekend bestand of map
    Geen staat is aanwezig card S3C24XXUDA134X
    nfs: server 192.168.1.10 reageert niet, nog steeds proberen

  2. jmboy
    27 mei 2010 om 08:49 | # 2

    Hallo allemaal,

    Ik heb precies hetzelfde gedrag met behulp van OpenEmbedded met NFS

    Ik veronderstel dat na het bericht "Geen enkele staat is aanwezig card S3C24XXUDA134X" OpenEmbedded proberen te ethernet-interface en verzuimt NFS koppeling reconfig, maar ik weet niet wat te doen om dit te vermijden.
    heeft iemand een oplossing gevonden?
    bedankt voor je hulp
    jmboy

  3. 08 augustus 2010 om 13:57 | # 3

    Hi
    Ik had hetzelfde probleem, het netwerk werd geconfigureerd en NFS is verbroken.
    Ik kon het niet vinden URL van de oplossing om hier post, maar ik heb nog steeds gewijzigde bestand op mijn rootfs.
    Bewerk het bestand / etc / init.d / networking op uw rootfs
    vind lijnen die er als volgt uitzien:
    echo-n "Configureren van netwerkinterfaces ..."
    ifup-a
    echo "gedaan."
    en commentaar uit tweede lijn om iets als dit hebben:
    echo-n "Configureren van netwerkinterfaces ..."
    # Ifup-a
    echo "gedaan."
    Na deze rootfs over NFS heeft geen problemen. Tenminste voor mij.
    Dit ziet eruit als lelijke oplossing, maar hoop dat het zal helpen.

  4. 08 augustus 2010 om 14:18 | # 4

    Hallo, ja, toen kwam ik dit probleem dat ik veranderd in een vast IP-adres. Het vreemde was toen ik hetzelfde op een ander netwerk, geconfigureerd in vrijwel dezelfde manier geprobeerd, heb ik niet nodig om iets te veranderen. Ik heb nooit bedacht wat het verschil was. Bedankt voor de post Irakli.

  1. Nog geen trackbacks.