Anzeige

Startseite > NFS , TFTP , UBOOT > Booten mit NFS und TFTP (updated)

Booten mit NFS und TFTP (updated)

Anstatt langsam Tragen Sie Ihre NAND-Flash Sie die mini2440 über ein Netzwerk durch das Laden der Kernel über TFTP und das Betriebssystem von einer NFS-Freigabe booten können. Dies macht es auch viel schneller auf Veränderungen zu testen. Mit Fedora 11 können Sie YUM zu tftp, tftp-server und nfs-utils installieren.

yum install tftp tftp-server nfs-utils

Ich habe einen Ordner / home/doug/mini2440/root_fs und fügte hinzu, die folgende Zeile in / etc / exports to r / w Zugriff von 192.168.1 erlauben .*:

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)

.. Und extrahiert die Angstrom-Dateisystem als root / home/doug/mini2440/root_fs

Sie müssen / etc / xinetd.d / tftp, um das Setup TFTP bearbeiten. Meine unten als Referenz veröffentlicht, brauchst du wenigstens auf disable = no setzen.

# Default: off
# Description: Der TFTP-Server dient Dateien mit Hilfe des Trivial File Transfer
# Protokoll. Der TFTP-Protokoll wird oft verwendet, um das Booten
# Workstations, laden Konfigurationsdateien Netzwerk-aware Drucker,
# Und die Installation für einige Betriebssysteme zu starten.
service 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
}

Dann begann ich die Dienste:

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

service xinetd start / Sbin / service xinetd starten

Zur Automatisierung dieser Ich glaube, Sie tun können:

chkconfig tftp auf

chkconfig xinetd auf

chkconfig nfs auf

Next i bearbeitet die uboot Umwelt. Verwenden Sie den Befehl setenv ändern oder fügen Sie Einträge und savenev wenn Sie fertig sind. Ich landete mit den folgenden:

MINI2440 # printenv
BootDelay = 3
Baudrate = 115200
: 18 : 12 : 27 ethaddr = 8.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 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, 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
Bootdatei = "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

Beachten Sie, wenn Sie setenv Sie das = Zeichen weglassen müssen. Offensichtlich Sie wollen etwas von dieser Änderung zu Ihrem Netzwerk Einstellungen anzupassen. Hier mein Laptop 192.168.1.10 und 192.168.1.100 ist mein pfsense Box, die Zuweisung von 192.168.1.85 ist es, die mini2440 von DHCP.

Wenn Sie das System starten uboot lädt den Kernel über TFTP und montieren Sie die NFS-Freigabe.

Wenn Sie DHCP in Ihrem Netzwerk haben Angstrom sollte automatisch eine IP. Sie können den Rest in diesem Fall überspringen!

Wenn Sie eine statische IP-Adresse möchten Sie ändern können / etc / network / interfaces. Ich habe einfach geändert dhcp zu statisch für eth0:

iface eth0 inet static

Und nach diesem System hochgefahren ist in Ordnung. Schließlich habe ich eine Notiz, die ich löschte den symlink / etc / resolve.conf und ersetzte sie durch, sagt:

der lokalen Domäne
Suche lokalen
nameserver 192.168.1.100

Seien Sie gewarnt, dass die gesamten von oben muss konform mit Ihrer Firewall und SELinux werden, wird es nicht anders funktionieren!

Ich fand die folgenden Links hilfreich:

TFTP

NFS

U-Boot-NFS / TFTP-Boot

Tags: , Kategorien: NFS , TFTP , UBOOT Tags: ,
  1. Anafor
    31. Dezember 2009 um 08:02 | # 1

    Liebe Freunde,
    Ich habe eine openembedded distrubition für mini2440 bauen. Ich habe kopiert
    mini2440-base-image.tar.gz meinen Host-PC und I arrenged ein NFS für Cross
    Gebäude. Es funktioniert OK, aber wenn ich kopiert und extrahieren Sie die
    mini2440-console-image.tar.gz, mein NFS nicht reagiert. Haben Sie
    Rat für mich? Ich kopierte meine minicom Nachrichten auf der Konsole und befestigte es.

    Auch habe ich versucht mit rootfs für NFS sistem folgenden Link, aber es ist immer noch nicht
    reagiert.

    U-Boot 1.3.2-mini2440 (6. Oktober 2009 - 00.51.09)

    I2C: ready
    DRAM: 64 MB
    Flash: 2 MB
    NAND: Bad-Block-Tabelle nicht für die Chip-0 gefunden
    Bad-Block-Tabelle nicht für die Chip-0 gefunden
    128 MiB
    Gefunden Umwelt in OOB Offset ..
    USB: USB S3C2410 Vorrichtungsteile
    In: serial
    Out: serial
    Err: serial
    MAC: 08:08:11:18:12:27
    Drücken Sie eine Taste, um autoboot stoppen: 0
    DM9000 i / o: 0 × 20000300, id: 0x90000a46
    DM9000: running in 16-Bit-Modus
    MAC: 08:08:11:18:12:27
    TFTP vom Server 192.168.1.10, unsere IP-Adresse ist 192.168.1.85
    Dateiname 'uImage.bin ".
    Laden-Adresse: 0 × 32000000
    Loading: checksum bad
    Prüfsumme bad
    T ################################################# ################
    ################################################## ###############
    #########
    erledigt
    Bytes übertragen = 2031220 (1efe74 hex)
    # # Booting kernel von Legacy Bild auf 32000000 ...
    Bild Name: Angstrom/2.6.31 + git/mini2440
    Erstellt: 2009-10-30 09.06.09 UTC
    Bild-Typ: ARM Linux Kernel-Image (unkomprimiert)
    Daten Größe: 2031156 Bytes = 1,9 MB
    Last Address: 30008000
    Entry Point: 30008000
    Überprüfen Prüfsumme ... OK
    Loading Kernel Image ... OK
    OK

    Ab Kernel ...

    Uncompressing
    Linux-Version 2.6.31.1 (sven @ office) (gcc version 4.2.4) # 1 Fri 30. Oktober 17.04.01 CET 2009
    CPU: ARM920T [41129200] Revision 0 (ARMv4T), cr = c0007177
    CPU: VIVT Daten-Cache, VIVT Befehls-Cache
    Machine: MINI2440
    Speicher-Politik: ECC deaktiviert, Data-Cache Writeback
    CPU S3C2440A (id 0 × 32440001)
    S3C24XX Uhren, (c) 2004 Simtec Electronics
    S3C244X: Kern 405,000 MHz, 101,250 MHz Speicher, Peripherie 50,625 MHz
    CLOCK: Slow-Modus (1,500 MHz), schnell, MPLL auf, UPLL auf
    Eingebautem 1 zonelists in Zone um, Mobilität Gruppierung auf. Insgesamt Seiten: 16256
    Kernel command line: 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-Hash-Tabelle Einträge: 256 (Bestellung: 8, 1024 Byte)
    Dentry Hashtabelle Einträge: 8192 (Bestellung: 3, 32768 bytes)
    Inode-Cache-Hash-Tabelle Einträge: 4096 (Bestellung: 2, 16384 bytes)
    Speicher: 64MB = 64MB insgesamt
    Speicher: 60640KB verfügbar (3568K-Code, 417K Daten, 132K init, 0K Highmem)
    SLUB: Genslabs = 11, HWalign = 32, Order = 0-3, MinObjects = 0, CPUs = 1, Knoten = 1
    NR_IRQS: 85
    irq: Clearing ungeklärten Status 02000000
    irq: Clearing subpending Status 00000002
    Console: Farbe Dummy Gerät 80 × 30
    Konsole [ttySAC0] aktiviert
    Kalibrieren Verzögerungsschleife ... 201,93 BogoMIPS (lpj = 504832)
    Mount-Hashtabelle Einträge: 512
    CPU: Testen Schreib-Puffer-Kohärenz: ok
    NET: Registered-Protokoll Familie 16
    MINI2440: Option string mini2440 = 0TB
    MINI2440: LCD [0:240 x320] 1:800 × 480 × 768 2:1024
    S3C2440: Initialisierung Architektur
    S3C2440: IRQ-Unterstützung
    S3C24XX DMA-Treiber, (c) 2003-2004,2006 Simtec Electronics
    DMA-Kanal 0 bei c4808000, irq 33
    DMA-Kanal 1 bei c4808040, irq 34
    DMA-Kanal 2 bei c4808080, irq 35
    DMA-Kanal 3 bei c48080c0, irq 36
    S3C244X: Clock Support, DVS off
    Bio: create Platte bei 0
    usbcore: registered neue Schnittstelle Fahrer usbfs
    usbcore: registered neue Schnittstelle Fahrer-Hub
    usbcore: registrierte neuen Gerätetreiber usb
    S3C-i2c S3C2440-i2c: Slave-Adresse 0 × 10
    S3C-i2c S3C2440-i2c: Bus-Frequenz einstellen zu 98 KHz
    S3C-i2c S3C2440-i2c: i2c-0: S3C I2C-Adapter
    NET: Registered-Protokoll Familie 2
    IP-Route Hashtabelle Einträge: 1024 (Reihenfolge: 0, 4096 bytes)
    TCP gegründet Hash-Tabelle Einträge: 2048 (Bestellung: 2, 16384 bytes)
    TCP binden Hash-Tabelle Einträge: 2048 (Reihenfolge: 1, 8192 bytes)
    TCP: Hash-Tabellen konfiguriert (gegründet 2048 binden 2048)
    TCP Reno registriert
    NET: Registered-Protokoll Familie 1
    JFFS2 Version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    Romfs MTD (C) 2007 Red Hat, Inc.
    msgmni hat auf 118 gesetzt
    alg: Kein Test für stdrng (krng)
    io scheduler noop registriert
    io scheduler vorausschauende registriert (default)
    io scheduler Frist registriert
    io scheduler cfq registriert
    Console: Umstellung auf Farbe Frame-Buffer-Einrichtung 60 × 53
    fb0: s3c2410fb Frame Buffer Device
    S3C2440-uart.0: ttySAC0 bei MMIO 0 × 50000000 (irq = 70) ist ein S3C2440
    S3C2440-uart.1: ttySAC1 bei MMIO 0 × 50004000 (irq = 73) ist ein S3C2440
    S3C2440-uart.2: ttySAC2 bei MMIO 0 × 50008000 (irq = 76) ist ein S3C2440
    brd: Modul geladen
    bei 24 0-0050: 1024 Byte EEPROM 24C08 (beschreibbar)
    DM9000 Ethernet Driver, V1.31
    eth0: DM9000E bei c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (Chip)
    S3C24XX NAND-Treiber, (c) 2004 Simtec Electronics
    s3c24xx-nand S3C2440-nand: Tacls = 1, 9ns Twrph0 = 3 29ns, Twrph1 = 2 19ns
    s3c24xx-nand S3C2440-nand: NAND weichen ECC
    NAND-Gerät: Hersteller ID: 0xec, Chip-ID: 0xF1 (Samsung NAND 128 MB 3,3 V 8-bit)
    Erstellen 4 MTD-Partitionen auf "NAND 128 MB 3,3 V 8-bit":
    0 × × 000000000000-0 000000040000: "u-boot"
    ftl_cs: FTL-Header nicht gefunden.
    0 × × 000000040000-0 000000060000: "u-boot-env"
    ftl_cs: FTL-Header nicht gefunden.
    0 × × 000000060000-0 000000560000: "kernel"
    ftl_cs: FTL-Header nicht gefunden.
    0 × × 000000560000-0 000008000000: "root"
    ftl_cs: FTL-Header nicht gefunden.
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: neue USB-Bus registriert, zugeordnet Buslinie 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0 × 49000000
    usb usb1: configuration # 1 von 1 Wahl gewählt
    Nabe 1-0:1.0: USB-Hub gefunden
    Nabe 1-0:1.0: 2 Ports erkannt
    usbcore: registered neue Schnittstelle Fahrer libusual
    S3C2440-usbgadget S3C2440-usbgadget: S3C2440: Erhöhung FIFO zu 128 Byte
    Mäuse: PS / 2 Maus-Gerät gemeinsam für alle Mäuse
    Eingang: GPIO-Tasten / devices/platform/gpio-keys/input/input0
    S3C2440-ts-ts S3C2440: Ab
    Erstellt Gruppe ts-Filter len 12 Tiefe 2 schließen 10 dreschen 6
    Erstellt Median ts Filter len 20 Tiefe 2 24 Dezember
    Erstellt Mittlere ts Filter len 4 Tiefe 2 dreschen 65535
    Erstellt Linear ts Filter Tiefe 2
    S3C2440-ts-ts S3C2440: 4 Filter (s) initialisiert
    S3C2440-ts-ts S3C2440: erfolgreich geladen
    Eingang: s3c2410 TouchScreen as / devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-rtc s3c2410-rtc: rtc deaktiviert, wieder aktiviert
    s3c2410-rtc s3c2410-rtc: rtc core: registered S3C als rtc0
    i2c / dev Einträge Fahrer
    S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
    s3c2410-wdt s3c2410-WDT: Watchdog nicht aktiv, Reset deaktiviert, aktiviert irq
    CPUIdle: mit Gouverneur Leiter
    sdhci: Secure Digital Host Controller Interface-Treiber
    sdhci: Copyright (c) Pierre Ossman
    zugeordneten Kanal 0 bis 0
    S3C2440-sdi S3C2440-sdi: heruntergefahren.
    S3C2440-sdi S3C2440-sdi: Initialisierung durchgeführt.
    Registered LED-Gerät: LED1
    Registered führte Gerät: LED2
    Registered führte Gerät: LED3
    Registered führte Gerät: LED4
    Registered führte Gerät: Hintergrundbeleuchtung
    usbcore: registered neue Schnittstelle Fahrer hiddev
    usbcore: registered neue Schnittstelle Fahrer usbhid
    usbhid: v2.6: USB HID core-Treiber
    Advanced Linux Sound Architecture Driver Version 1.0.20.
    Kein Gerät für DAI UDA134X
    Kein Gerät für DAI s3c24xx-i2s
    S3C24XX_UDA134X SoC-Audio-Treiber
    UDA134X SoC Audio Codec
    asoc: UDA134X s3c24xx-i2s Mapping ok
    ALSA device list:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP Kubikmeter registriert
    NET: Registered-Protokoll family Schon 17
    RPC: Registered UDP-Transport-Modul.
    RPC: Registered TCP-Transport-Modul.
    s3c2410-rtc s3c2410-rtc: Einstellung Systemuhr auf 2009.12.19 00.36.25 UTC (1261182985)
    eth0: link unten
    IP-Config: Guessing netmask 255.255.255.0
    IP-Config: Complete:
    device = eth0, addr = 192.168.1.85, Maske = 255.255.255.0, GW = 255.255.255.255,
    host = 192.168.1.85, domain =, nis-domain = (none),
    bootserver = 255.255.255.255, Rootserver = 192.168.1.10, rootpath =
    Looking up port of RPC 100003 / 2 auf 192.168.1.10
    eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
    Looking up port of RPC 100005 / 1 auf 192.168.1.10
    VFS: Mounted root (NFS-Dateisystem) auf dem Gerät 0.14.
    Die Befreiung init Speicher: 132K
    INIT: version 2,86 Booten
    Bitte warten: Booten ...
    Starting udev
    Füllen dev Cache
    Remontage Root-Dateisystem ...
    Unknown HZ-Wert! (90) Nehmen Sie an 100.
    ALSA: Wiederherstellen Mixer-Einstellungen ...
    Konfiguration der Netzwerkschnittstelle ... Kein Staat ist für die Karte S3C24XXUDA134X präsentieren
    / Usr / sbin / alsactl: parse: 1639: Unable to file '/ usr/share/alsa/init/00main' open: No such file or directory
    Kein Staat ist für die Karte S3C24XXUDA134X präsentieren
    nfs: server 192.168.1.10 nicht reagiert, versucht immer noch

  2. jmboy
    27. Mai 2010 um 08:49 | # 2

    Hallo alle zusammen,

    Ich habe genau das gleiche Verhalten mit mit NFS openembedded

    Ich vermute, dass, nachdem die Meldung openembedded versuchen, Ethernet-Schnittstelle und nicht NFS Link reconfig "Kein Staat gegenwärtig für Karten S3C24XXUDA134X ist", aber ich weiß nicht, was zu tun, um dies zu vermeiden.
    hat jemand eine Lösung gefunden?
    Dank für die Hilfe
    jmboy

  3. 8. August 2010 um 13:57 | # 3

    Hallo
    Ich hatte dasselbe Problem, war Netzwerk umkonfiguriert und NFS-Verbindung wurde verloren.
    Ich konnte nicht gefunden URL der Lösung hier zu posten, aber ich habe noch Datei auf meinem rootfs geändert.
    edit Datei / etc / init.d / networking auf Ihrer rootfs
    Sie Linien, die wie folgt aussehen:
    echo-n "Konfigurieren von Netzwerk-Schnittstellen ..."
    ifup-a
    echo "done."
    und kommentieren zweite Zeile, so etwas zu haben:
    echo-n "Konfigurieren von Netzwerk-Schnittstellen ..."
    # Ifup-a
    echo "done."
    Nach diesem rootfs über NFS hat keine Probleme. Zumindest für mich.
    Das sieht hässlich Problemumgehung ab, aber hoffe, es wird Ihnen helfen.

  4. 8. August 2010 um 14:18 Uhr | # 4

    Hallo, ja, wenn ich über dieses Problem kam ich geändert, um eine feste IP-Adresse. Das Merkwürdige war, als ich dasselbe in einem anderen Netzwerk, in so ziemlich die gleiche Weise konfiguriert versuchte, habe ich nicht nötig, etwas zu ändern. Ich habe nie herausgefunden, was der Unterschied war. Danke für den Beitrag Irakli.

  1. Bisher keine Trackbacks.