Annons

Hem > NFS , TFTP , UBOOT > Uppstart via NFS och TFTP (uppdaterad)

Starta med NFS och TFTP (uppdaterad)

Hellre än att sakta bär ut din NAND-flash kan du starta mini2440 i ett nätverk genom att läsa in kärnan med TFTP och OS från en NFS-utdelning. Detta gör det också mycket snabbare att testa förändringar. Använda Fedora 11 kan du använda YUM att installera tftp, TFTP-server och nfs-utils.

yum install tftp tftp-server nfs-utils

Jag skapade en mapp / home/doug/mini2440/root_fs och lade till följande rad i / etc / export så att R / W åtkomst från 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)

.. Och packat upp Ångström filsystemet som root till / home/doug/mini2440/root_fs

Du måste redigera / etc / xinetd.d / tftp att installera TFTP. Min är skrivit nedan som referens, du åtminstone måste ställa avaktivera = no.

# Standard: Av
# Beskrivning: TFTP-servern levererar filer med hjälp av Trivial File Transfer
# Protokollet. TFTP-protokollet används ofta för att starta disklösa
# Arbetsstationer, ladda ner konfigurationsfiler med network-medvetna skrivare
# Och för att starta installationen för vissa operativsystem.
tjänsten tftp
{
avaktivera = ingen
socket_type = dgram
Protokoll = udp
vänta = ja
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
}

Jag började då tjänsterna:

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

service xinetd start / Sbin / service xinetd start

För att automatisera Jag tror att du kan göra:

chkconfig TFTP på

chkconfig xinetd på

chkconfig NFS på

Nästa jag redigerade uboot miljö. Använd kommandot setenv för att ändra eller lägga till poster och savenev när du är klar. Jag slutade med följande:

MINI2440 # printenv
bootdelay = 3
baudrate = 115.200
: 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 = Kör setenv ifconfig ip = $ {ipaddr}: $ {ServerIP}:: $ {netmask}: mini2440: eth0
ip =dhcp ifconfig_dhcp = Kör 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 = Kör 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"
Filstorlek: 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

Notera när du setenv du måste ta bort tecknet =. Självklart kommer du vill ändra en del av detta för att passa dina nätverksinställningar. Här min laptop är 192.168.1.10 och 192.168.1.100 är min pfsense box som tilldelar 192.168.1.85 till mini2440 via DHCP.

När du startar systemet uboot hämtar kärnan över TFTP och sedan montera NFS-utdelning.

Om du har DHCP i ditt nätverk Ångström bör automatiskt få en IP. Du kan hoppa över resten i detta fall!

Om du vill ha en statisk adress du kan ändra / etc / network / interfaces. Jag bytte helt enkelt DHCP till statiskt för eth0:

iface eth0 inet static

Och efter det att systemet startat upp bra. Slutligen har jag en lapp som säger att jag bort den symboliska länken / etc / resolve.conf och ersatt det med:

domän lokala
Sök lokalt
nameserver 192.168.1.100

Var varnade för att hela den i högre måste vara kompatibel med din brandvägg och SELinux, fungerar det inte annars!

Jag hittade följande länkar till hjälp:

TFTP

NFS

U-boot NFS / starta upp via TFTP

Tags: , Kategorier: NFS , TFTP , UBOOT Taggar: ,
  1. Anafor
    31 dec 2009 kl 08:02 | # 1

    Kära vänner,
    Jag har byggt en openembedded distrubition för mini2440. Jag har kopierat
    mini2440-base-image.tar.gz till min värddatorn och jag arrenged en NFS för gränsöverskridande
    byggnad. Det fungerar OK, men när jag kopierade och extrahera
    mini2440-console-image.tar.gz är mitt NFS svarar inte. Har du några
    råd till mig? Jag kopierade min minicom konsol meddelanden och bifogade den.

    Dessutom försökte jag med rootfs för NFS SISTEM nedan länk, men det är fortfarande inte
    svara.

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

    I2C: klar
    DRAM: 64 MB
    Flash: 2 MB
    NAND: Dålig blockera tabellen inte för chip 0
    Dåliga block tabellen finns inte för chip 0
    128 MiB
    Hittade Miljö förskjutning i OOB ..
    USB: S3C2410 USB Deviced
    I: seriell
    Ut: seriell
    Err: seriell
    MAC: 08:08:11:18:12:27
    Tryck på valfri tangent för att stoppa autoboot: 0
    dm9000 I / O: 0 × 20.000.300, id: 0x90000a46
    DM9000: körs i 16 bitars läge
    MAC: 08:08:11:18:12:27
    TFTP från server 192.168.1.10, vår IP-adress är 192.168.1.85
    Filnamn "uImage.bin".
    Ladda adress: 0 × 32 miljoner
    Laddar: kontrollsumma dåligt
    kontrollsumma dåligt
    T ################################################# ################
    ################################################## ###############
    #########
    gjort
    Bytes överförs = 2031220 (1efe74 hex)
    # # Starta upp kärnan från Legacy Bild på 32000000 ...
    Bildnamn: Angstrom/2.6.31 + git/mini2440
    Skapad: 2009-10-30 09:06:09 UTC
    Bildtyp: ARM Linux Kernel Image (okomprimerad)
    Data Storlek: 2031156 byte = 1,9 MB
    Ladda Adress: 30008000
    Entry Point: 30008000
    Verifiera Kontrollsumma ... OK
    Laddar Kernel bild ... OK
    OK

    Starta kärna ...

    Uppackning
    Linux version 2.6.31.1 (Sven @ kontoret) (gcc version 4.2.4) # 1 Fre 30 okt 17:04:01 CET 2009
    CPU: ARM920T [41.129.200] revideringen 0 (ARMv4T), sp = c0007177
    CPU: VIVT datacache, VIVT instruktion cache
    Maskin: MINI2440
    Minne politik: ECC funktionshindrade, datacache Återförda
    CPU S3C2440A (id 0 × 32.440.001)
    S3C24XX Klockor, (c) 2004 Simtec Elektronik
    S3C244X: Core 405,000 MHz, minnet 101,250 MHz, perifer 50,625 MHz
    KLOCKA: Långsam läge (1,500 MHz), snabb, MPLL på, UPLL på
    Byggt en zonelists i zon ordning, mobilitet gruppering på. Totalt sidor: 16.256
    Kärnans kommandorad: 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-tabell poster: 256 (ordning: 8, 1024 byte)
    Dentry cache hash-tabell poster: 8192 (ordning: 3, 32.768 byte)
    Inode-cache hash-tabell poster: 4096 (ordning: 2, 16.384 byte)
    Minne: 64 MB = 64 MB totalt
    Minne: 60640KB tillgänglig (3568K kod, 417K data, 132K init, 0K highmem)
    SLUB: Genslabs = 11, HWalign = 32, Order = 0-3, MinObjects = 0, CPU = 1, noder = 1
    NR_IRQS: 85
    IRQ: clearing avvaktan status 02000000
    IRQ: clearing subpending status 00000002
    Konsol: färg dummy enhet 80 × 30
    konsol [ttySAC0] aktiverat
    Kalibrera dröjsmål slinga ... 201,93 BogoMIPS (lpj = 504.832)
    Mount-cache hash-tabell poster: 512
    CPU: Testa skriv buffert koherens: ok
    NET: Registrerade protokoll familj 16
    MINI2440: Option string mini2440 = 0tb
    MINI2440: LCD [0:240 X320] 1:800 × 480 2:1024 × 768
    S3C2440: Börjar arkitektur
    S3C2440: IRQ Support
    S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Elektronik
    DMA-kanal 0 på c4808000, IRQ 33
    DMA-kanal 1 på c4808040, IRQ 34
    DMA-kanal 2 på c4808080, IRQ 35
    DMA-kanal 3 på c48080c0, IRQ 36
    S3C244X: Klocka Support, DVS off
    Bio: skapa platta vid 0
    usbcore: registrerade nya gränssnittet förare usbfs
    usbcore: registrerade nya gränssnittet förare nav
    usbcore: registrerade nya drivrutinen USB
    S3C-I2C S3C2440-I2C: slavadress 0 × 10
    S3C-I2C S3C2440-I2C: bussfrekvens satt till 98 KHz
    S3C-I2C S3C2440-I2C: I2C-0: S3C I2C-adapter
    NET: Registrerade protokoll familj 2
    IP-väg cache hash-tabell poster: 1024 (ordning: 0, 4096 byte)
    TCP etablerade hashtabell poster: 2048 (ordning: 2, 16.384 byte)
    TCP binda hashtabell poster: 2048 (ordning: 1, 8192 byte)
    TCP: Hash konfigurerad tabeller (etablerat 2048 binda 2048)
    TCP Reno registrerade
    NET: Registrerade protokoll familj 1
    JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    ROMFS MTD (C) 2007 Red Hat, Inc.
    msgmni har satts till 118
    ALG: Inget test för stdrng (krng)
    io scheduler noop registrerade
    io scheduler föregripande registrerade (standard)
    io scheduler deadline registrerade
    io scheduler CFQ registrerade
    Konsol: att byta till färg frame buffer-enhet 60 × 53
    fb0: s3c2410fb frame buffer-enhet
    S3C2440-uart.0: ttySAC0 på MMIO 0 × 50 miljoner (irq = 70) är en S3C2440
    S3C2440-uart.1: ttySAC1 på MMIO 0 × 50.004.000 (irq = 73) är en S3C2440
    S3C2440-uart.2: ttySAC2 på MMIO 0 × 50.008.000 (irq = 76) är en S3C2440
    BRD: modul laddad
    at24 0-0050: 1024 byte 24c08 EEPROM (skrivbara)
    dm9000 Ethernet Driver, V1.31
    eth0: dm9000e på c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (chip)
    S3C24XX NAND Driver, (c) 2004 Simtec Elektronik
    s3c24xx-NAND S3C2440-NAND: Tacls = 1, 9ns Twrph0 = 3 29ns, Twrph1 = 2 19ns
    s3c24xx-NAND S3C2440-NAND: NAND mjuk ECC
    NAND-enhet: Tillverkar-ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3 V 8-bit)
    Skapa 4 MTD partitioner på "NAND 128MiB 3,3 V 8-bitars":
    0 × 000000000000-0 × 000.000.040 tusen: "U-Boot"
    ftl_cs: FTL huvudet hittades inte.
    0 × 000000040000-0 × 000.000.060 tusen: "U-boot-env"
    ftl_cs: FTL huvudet hittades inte.
    0 × 000000060000-0 × 000.000.560 tusen: "kernel"
    ftl_cs: FTL huvudet hittades inte.
    0 × 000000560000-0 × 000.008.000 tusen: "root"
    ftl_cs: FTL huvudet hittades inte.
    ohci_hcd: USB 1,1 "Öppna" Host Controller (OHCI) Driver
    s3c2410-OHCI s3c2410-OHCI: S3C24XX OHCI
    s3c2410-OHCI s3c2410-OHCI: nya USB-buss registreras, överlåtas buss nummer 1
    s3c2410-OHCI s3c2410-OHCI: IRQ 42, io medlemmar 0 × 49 miljoner
    usb USB1: Konfiguration # 1 väljs från ett urval
    nav 1-0:1.0: USB-hubb hittade
    nav 1-0:1.0: 2 portar upptäcks
    usbcore: registrerade nya gränssnittet förare libusual
    S3C2440-usbgadget S3C2440-usbgadget: S3C2440: ökad FIFO till 128 byte
    möss: PS / 2 mus enhet gemensam för alla möss
    Ingång: GPIO-tangenter som / devices/platform/gpio-keys/input/input0
    S3C2440-ts S3C2440-ts: Start
    Skapad grupp ts filter len 12 djup 2 nära 10 tröska 6
    Skapad Median ts filter len 20 Djup 2 24 december
    Skapad Mean ts filter len 4 djup 2 tröska 65.535
    Skapad Linjär ts filter djup 2
    S3C2440-ts S3C2440-ts: 4 filter (s) initieras
    S3C2440-ts S3C2440-ts: lästs in
    Ingång: s3c2410 pekskärmen enligt / devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Elektronik
    s3c2410-RTC s3c2410-RTC: RTC funktionshindrade, återaktivering
    s3c2410-RTC s3c2410-RTC: RTC kärna: registrerade S3C som rtc0
    I2C / dev poster förare
    S3C2410 Watchdog Timer, (c) 2004 Simtec Elektronik
    s3c2410-WDT s3c2410-WDT: vakthund inaktiv, återställning funktionshindrade, aktiverat IRQ
    cpuidle: med guvernör stege
    sdhci: Secure Digital Host Controller Interface förare
    sdhci: Copyright (c) Pierre Ossman
    mappas kanal 0 till 0
    S3C2440-SDI S3C2440-SDI: avstängd.
    S3C2440-SDI S3C2440-SDI: initialisering gjort.
    Registrerade ledde enhet: LED1
    Registrerade ledde enhet: LED2
    Registrerade ledde enhet: led3
    Registrerade ledde enhet: led4
    Registrerade ledde enhet: bakgrundsbelysning
    usbcore: registrerade nya gränssnittet förare hiddev
    usbcore: registrerade nya gränssnittet förare usbhid
    usbhid: v2.6: USB HID kärna förare
    Advanced Linux Sound Architecture Driver version 1.0.20.
    Ingen enhet för DAI UDA134X
    Ingen enhet för DAI s3c24xx-I2S
    S3C24XX_UDA134X SoC ljuddrivrutinen
    UDA134X SoC Audio Codec
    asoc: UDA134X s3c24xx-I2S kartläggning ok
    ALSA enhetslistan:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP kubikmeter registrerade
    NET: Registrerade protokoll familj 17
    RPC: Registrerade UDP transport modul.
    RPC: Registrerade tcp transport modul.
    s3c2410-RTC s3c2410-RTC: Ställa systemklockan till 2009/12/19 00:36:25 UTC (1261182985)
    eth0: link ner
    IP-config: gissa netmask 255.255.255.0
    IP-config: Komplett:
    device = eth0, addr = 192.168.1.85, mask = 255.255.255.0, gw = 255.255.255.255,
    host = 192.168.1.85, domän =, NIS-domän = (none)
    bootserver = 255.255.255.255, rootserver = 192.168.1.10, rootpath =
    Letar upp hamnen i RPC 100003 / 2 på 192.168.1.10
    eth0: link up, 100Mbps, full duplex, LPA 0xCDE1
    Letar upp hamnen i RPC 100005 / 1 på 192.168.1.10
    VFS: Monterad root (NFS filsystem) på enheten 0:14.
    Frigöra init minne: 132K
    INIT: version 2,86 uppstart
    Var god vänta: Starta upp ...
    Starta udev
    Fylla dev cache
    Remontering rotfilsystem ...
    Okänt HZ värde! (90) Antag 100.
    ALSA: Återställa mixerinställningarna ...
    Konfigurera nätverkskort ... Ingen stat är närvarande för kort S3C24XXUDA134X
    / Usr / sbin / alsactl: parse: 1639: Kunde inte öppna filen '/ usr/share/alsa/init/00main ": Ingen sådan fil eller katalog
    Ingen stat är närvarande för kort S3C24XXUDA134X
    nfs: server 192.168.1.10 svarar inte, fortfarande försöker

  2. jmboy
    27 Maj 2010 kl 08:49 | # 2

    Hej alla,

    Jag har exakt samma beteende genom openembedded med NFS

    Jag antar att efter meddelandet "Ingen stat är närvarande för kort S3C24XXUDA134X" openembedded försöka reconfig Ethernet-gränssnitt och inte NFS-länk men jag vet inte vad jag ska göra för att undvika detta.
    Har någon hittat en lösning?
    tack för att hjälpa mig
    jmboy

  3. 8 aug 2010 kl 13:57 | # 3

    Hej
    Jag hade samma problem, var nätverket konfigureras och nfs-anslutning var förlorat.
    Jag kunde inte hitta webbadressen till lösningen att lägga här, men jag har fortfarande bytt fil på rootfs.
    Redigera filen / etc / init.d / networking på din rootfs
    hitta linjer som ser ut så här:
    echo-n "Konfigurera nätverksgränssnitt ..."
    ifup-ett
    ECHO "gjort."
    och kommentera ut andra raden för att ha något så här:
    echo-n "Konfigurera nätverksgränssnitt ..."
    # Ifup-ett
    echo "gjort."
    efter denna rootfs över NFS har inga problem. Åtminstone för mig.
    Det ser ut som fula alternativet, men hoppas att det kommer att hjälpa dig.

  4. 8 aug 2010 kl 14:18 | # 4

    Hej, ja, när jag kom över det här problemet bytte jag till en fast IP-adress. Det märkliga var när jag försökte samma sak på ett annat nätverk, konfigureras i ungefär samma sätt, jag behöver inte ändra något. Jag tänkte aldrig på vad skillnaden var. Tack för tjänsten Irakli.

  1. Inga trackbacks än.