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.
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 .*:
.. 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.
# 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:
service xinetd start / Sbin / service xinetd starten
Zur Automatisierung dieser Ich glaube, Sie tun können:
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:
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:
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:
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:



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
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
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.
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.