Reklama

Strona główna > NFS , TFTP , UBoot > Uruchamianie za pomocą NFS i TFTP (aktualizacja)

Uruchamianie za pomocą NFS i TFTP (aktualizacja)

Zamiast powoli sobie swoje flash NAND można uruchomić mini2440 przez sieć ładowania jądra za pomocą TFTP i OS z udziału NFS. To również sprawia, że ​​znacznie szybciej, aby sprawdzić zmiany. Korzystanie z Fedory 11 można używać YUM zainstalować tftp, tftp-server i nfs-utils.

yum install tftp tftp-server nfs-utils

Stworzyłem folder / home/doug/mini2440/root_fs i dodaje następującą linię do / etc / exports aby r / w dostęp od 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)

.. I ekstrahowano systemu plików Angstrom jako root / home/doug/mini2440/root_fs

Musisz wyedytować plik / etc / xinetd / tftp do konfiguracji TFTP. Kopalnia jest delegowany poniżej odniesienia, to przynajmniej trzeba ustawić disable = no.

# Domyślnie: wyłączone
# Opis: serwer tftp służy pliki przy użyciu Trivial File Transfer
# Protokołu. Protokół tftp jest często używany do ładowania bezdyskowych
# Stacji roboczych, pobrać pliki konfiguracyjne do drukarek sieciowych dostępnych,
# I, aby rozpocząć proces instalacji systemu operacyjnego.
usługi tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = pierwiastek
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
}

I wtedy rozpoczął usługi:

init.d / nfs start / Etc / init.d / nfs początek

service xinetd start / Sbin / service xinetd początek

Aby zautomatyzować te Myślę, że można zrobić:

chkconfig tftp na

chkconfig xinetd na

chkconfig nfs na

Next i edytowane środowiska uboot. Użyj komendy setenv zmienić lub dodać wpisy i savenev kiedy skończysz. I zakończył się z następujących czynności:

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-ni: 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 korzeń root_nfs = / dev / nfs rw nfsroot = $ {serverip}: $ {root_nfs}
ip = ${ipaddr} : ${serverip} :: ${netmask} :mini2440:eth0 ifconfig_static = bieg ip ifconfig setenv = $ {ipaddr}: $ {serverip}: $ {netmask}: mini2440: eth0
ip =dhcp ifconfig_dhcp = bieg 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 = bieg set_root_nfs; setenv bootargs $ {bootargs_base} $ {bootargs_init} $ {mini2440} $ {root_nfs} $ {ifconfig}
=mini2440-nand mtdids = nand0 = mini2440-ni
=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
BootFile = "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
partycji = nand0, 0
mtddevnum = 0
mtddevname = u-boot

Uwaga, kiedy setenv musisz pominąć znaku =. Oczywiście będziemy chcieli zmienić część tej dostosowane do konfiguracji sieci. Oto mój laptop jest 192.168.1.10 i 192.168.1.100 jest moje pole pfsense który jest przypisanie 192.168.1.85 do mini2440 przez DHCP.

Podczas uruchamiania uboot system pobrać jądra TFTP, a następnie zamontuj udział NFS.

Jeśli masz DHCP w sieci Angstrom powinien automatycznie pobrać adres IP. Można pominąć resztę w tym przypadku!

Jeśli chcesz statyczny adres można zmienić / etc / network / interfaces. I po prostu zmienił dhcp do statycznego dla eth0:

iface eth0 inet static

I po tym system uruchomiłeś grzywny. Wreszcie mam komunikatu, który mówi, że usunięty dowiązanie symboliczne / etc / resolve.conf i zastąpił go:

domeny lokalne
lokalne wyszukiwanie
nameserver 192.168.1.100

Pamiętaj, że cały wyżej musi być zgodny z zaporą i selinux, to nie będzie działać w inny sposób!

Znalazłem następujący Linki pomocne:

TFTP

NFS

U-boot NFS / startowe TFTP

Tags: , Kategorie: NFS , TFTP , UBoot Tagi: ,
  1. Anafor
    31 grudnia 2009 w 08:02 | # 1

    Drodzy Przyjaciele,
    Mam zbudować openembedded distrubition dla mini2440. Skopiowałem
    mini2440-base-image.tar.gz do komputera PC i arrenged NFS na krzyż
    budynku. To działa OK, ale gdy skopiowany i wyodrębnić
    mini2440-console-image.tar.gz, mój NFS nie odpowiada. Czy masz jakieś
    porady dla mnie? Skopiowałem moje wiadomości minicom konsoli i przyłączoną.

    Również próbowałem z rootfs NFS sistem poniżej link, ale nadal nie jest
    odpowiedzi.

    U-Boot 1.3.2-mini2440 (06 październik 2009 - 12:51:09)

    I2C: ready
    DRAM: 64 MB
    Flash: 2 MB
    NAND: Bad tabeli blok nie dla układu 0
    Bad tabeli blok nie dla układu 0
    128 MiB
    Znaleziono Środowiska przesunięcie w OOB ..
    USB: USB Deviced S3C2410
    W: serial
    Out: serial
    Err: serial
    MAC: 08:08:11:18:12:27
    Naciśnij dowolny klawisz, aby zatrzymać autoboot: 0
    dm9000 i / o: 0 × 20000300, id: 0x90000a46
    DM9000: działa w trybie 16 bit
    MAC: 08:08:11:18:12:27
    TFTP z serwera 192.168.1.10, nasz adres IP jest 192.168.1.85
    Nazwa "uImage.bin".
    Adres obciążenia: 0 × 32000000
    Ładowanie: kontrolną złe
    suma kontrolna źle
    T ################################################# ################
    ################################################## ###############
    #########
    zrobić
    Przesłanych bajtów = 2031220 (1efe74 hex)
    # # Uruchamianie jądra z obrazu Legacy na 32000000 ...
    Nazwa obrazu: Angstrom/2.6.31 + git/mini2440
    Utworzony: 2009-10-30 09:06:09 UTC
    Rodzaj Obrazu: Obraz jądra ARM Linux (bez kompresji)
    Rozmiar danych: 2031156 Bytes = 1,9 MB
    Adres obciążenia: 30008000
    Punkcie wejścia: 30008000
    Weryfikacja sumy kontrolnej ... OK
    Trwa ładowanie zdjęcia Kernel ... OK
    OK

    Począwszy od jądra ...

    Dekompresowanie
    Linux w wersji 2.6.31.1 (sven @ office) (wersja gcc 4.2.4) # 1 Pią Paź 30 17:04:01 CST 2009
    CPU: ARM920T [41129200] wersja 0 (ARMv4T), cr = c0007177
    CPU: VIVT pamięci podręcznej danych, VIVT pamięci podręcznej instrukcji
    Maszyna: MINI2440
    Polityka pamięci: ECC osób niepełnosprawnych, writeback cache danych
    CPU S3C2440A (id 0 × 32440001)
    Zegary S3C24XX, (c) 2004 Elektronika Simtec
    S3C244X: rdzeń 405,000 MHz, pamięć 101,250 MHz, 50,625 MHz obwodowych
    CLOCK: tryb wolny (1.500 MHz), szybki, MPLL na, UPLL na
    Wbudowany 1 zonelists w celu Zone, grupowanie mobilności. Wszystkich stron: 16256
    Linii poleceń jądra: 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 tabeli hash wpisy: 256 (kolejność: 8, 1024 bajtów)
    Dentry cache tabeli hash wpisów: 8192 (zamówienie: 3, 32768 bajtów)
    Inode-cache tabeli hash wpisów: 4096 (kolejność: 2, 16384 bajtów)
    Pamięć: 64MB = 64MB całości
    Pamięć: 60640KB dostępne (3568K kod, 417K danych, 132k init, 0K mechanizmu Highmem)
    SLUB: Genslabs = 11, HWalign = 32, Order = 0-3, MinObjects = 0, CPU = 1, Nodes = 1
    NR_IRQS: 85
    irq: rozliczania czasu stanu 02000000
    irq: rozliczeń subpending statusu 00000002
    Konsola: urządzenie obojętne kolor 80 x 30
    konsoli [ttySAC0] enabled
    Kalibracja pętli opóźnienia ... 201,93 BogoMips (LPJ = 504832)
    Mount-cache tabeli hash wpisów: 512
    CPU: napisz Testowanie spójności bufora: ok
    NET: Zarejestrowani rodziny protokół 16
    MINI2440: string Opcja mini2440 = 0tb
    MINI2440: LCD [0:240 x320] 1:800 2:1024 × 480 × 768
    S3C2440: Inicjalizacja architektury
    S3C2440: Wsparcie IRQ
    S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
    Kanał DMA 0 w c4808000, irq 33
    1 kanału DMA w c4808040, irq 34
    Kanał DMA 2 na c4808080, irq 35
    DMA 3 w c48080c0, irq 36
    S3C244X: Wsparcie Zegar, DVS off
    bio: tworzenie płyty na 0
    usbcore: zarejestrowanych nowych usbfs sterownik interfejsu
    usbcore: zarejestrowany nowy hub sterownik interfejsu
    usbcore: siedziba nowego urządzenia sterownik usb
    S3C-i2c S3C2440-i2c: adres slave 0 × 10
    S3C-i2c S3C2440-i2c: ustawić częstotliwość magistrali do 98 KHz
    S3C-i2c S3C2440-i2c: i2c-0: S3C I2C adapter
    NET: Zarejestrowani rodziny protokołów 2
    IP trasy tabeli mieszania pamięci podręcznej wpisy: 1024 (kolejność: 0, 4096 bajtów)
    TCP ustanowione tabeli hash wpisów: 2048 (kolejność: 2, 16384 bajtów)
    TCP wiązania tabeli hash wpisów: 2048 (kolejności: 1, 8192 bajtów)
    TCP: Hash tabele skonfigurowany (założona 2048 wiążą 2048)
    TCP Reno zarejestrowany
    NET: Zarejestrowani rodziny Protokół 1
    JFFS2 wersji 2.2. (NAND) © 2001-2006 Red Hat, Inc
    ROMFS MTD (C) 2007 Red Hat, Inc
    msgmni została ustawiona na 118
    alg: Brak testu stdrng (krng)
    io scheduler noop zarejestrowanych
    io scheduler wyprzedzających zarejestrowanych (domyślnie)
    io scheduler termin rejestracji
    io scheduler CFQ zarejestrowanych
    Konsola: przejście na kolor urządzenia bufora ramki 60 × 53
    fb0: rama s3c2410fb urządzenie buforowe
    S3C2440-uart.0: ttySAC0 w MMIO 0 × 50000000 (irq = 70) jest S3C2440
    S3C2440-uart.1: ttySAC1 w MMIO 0 × 50004000 (irq = 73) jest S3C2440
    S3C2440-uart.2: ttySAC2 w MMIO 0 × 50008000 (irq = 76) jest S3C2440
    brd: moduł załadowany
    at24 0-0050: 1024 bajtów 24C08 EEPROM (zapisu)
    dm9000 Ethernet Driver, V1.31
    eth0: dm9000e w c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (chip)
    S3C24XX NAND Driver, (c) 2004 Simtec Electronics
    s3c24xx-ni-ni S3C2440: Tacls = 1, 9ns Twrph0 = 3 29ns, Twrph1 = 2 19ns
    s3c24xx-ni-ni S3C2440: NAND miękkie ECC
    Urządzenie NAND: ID Producent: 0xec, Chip ID: 0xf1 (Samsung 128 MB NAND 3,3 V 8-bit)
    Tworzenie 4 MTD partitions on "NAND 128 MB 3,3 V 8-bit":
    0 × 000000000000-0 × 000000040000: "u-boot"
    ftl_cs: header FTL nie znaleziono.
    0 × 000000040000-0 × 000000060000: "u-boot-env"
    ftl_cs: header FTL nie znaleziono.
    0 × 000000060000-0 × 000000560000: "kernel"
    ftl_cs: header FTL nie znaleziono.
    0 × 000000560000-0 × 000008000000: "root"
    ftl_cs: header FTL nie znaleziono.
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: nowe USB zarejestrowany, przypisany do autobusu numer 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0 × 49000000
    usb usb1: configuration # 1 do wyboru od 1 wybór
    hub 1-0:1.0: USB hub znalezionych
    hub 1-0:1.0: 2 porty wykryte
    usbcore: zarejestrowanych nowych libusual sterownik interfejsu
    S3C2440-usbgadget S3C2440-usbgadget: S3C2440: zwiększenie FIFO do 128 bajtów
    myszy: PS / 2 urządzenia myszy wspólne dla wszystkich myszy
    Wejście: gpio-klucze / devices/platform/gpio-keys/input/input0
    S3C2440-ts S3C2440-ts: Uruchamianie
    Utworzono grupy ts filtr len 12 głębokość 2 blisko 10 próg 6
    Utworzono Mediana ts filtr len 20 głębokość 02 grudnia 24
    Utworzono Mean ts filtr len 4 głębokości 2 próg 65535
    Utworzono Linear ts głębokość filtra 2
    S3C2440-ts S3C2440-ts: 4 filtr (y) zainicjowany
    S3C2440-ts S3C2440-ts: pomyślnie załadowany
    Wejście: s3c2410 TouchScreen jak / devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-rtc s3c2410-rtc: rtc wyłączone, ponowne włączenie
    s3c2410-rtc s3c2410-rtc: rtc core: zarejestrowanych S3C jak rtc0
    i2c / dev kierowcy wpisy
    S3C2410 Watchdog Timer, (c) 2004 Elektronika Simtec
    s3c2410-WDT s3c2410-WDT: watchdog nieaktywne, reset osób niepełnosprawnych, irq włączony
    cpuidle: przy użyciu drabiny gubernatora
    sdhci: Secure Digital Host Controller Interfejs kierowcy
    sdhci: Copyright (c) Pierre Ossman
    mapowane kanał 0 do 0
    S3C2440-sdi S3C2440-SDI: wyłączony.
    S3C2440-sdi S3C2440-SDI: inicjalizacji zrobić.
    Zarejestrowani doprowadziły urządzenia: LED1
    Zarejestrowani doprowadziły urządzenia: LED2
    Zarejestrowani doprowadziły urządzenia: LED3
    Zarejestrowani doprowadziły urządzenia: LED4
    Zarejestrowani urządzenia LED: podświetlenie
    usbcore: zarejestrowanych nowych hiddev sterownik interfejsu
    usbcore: zarejestrowanych nowych usbhid sterownik interfejsu
    usbhid: v2.6: USB rdzeń sterownika HID
    Advanced Linux Sound Architecture Driver Version 1.0.20.
    Żadne urządzenie do DAI UDA134X
    Żadne urządzenie do DAI s3c24xx-I2S
    S3C24XX_UDA134X Audio driver SoC
    UDA134X SoC Audio Codec
    asoc: UDA134X s3c24xx-I2S mapowanie ok
    Lista urządzeń ALSA:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP sześciennych zarejestrowanych
    NET: Zarejestrowani rodziny protokół 17
    RPC: Zarejestrowani moduł transportowy udp.
    RPC: Zarejestrowani moduł transportowy tcp.
    s3c2410-rtc s3c2410-rtc: zegar systemowy ustawienia 19.12.2009 00:36:25 UTC (1261182985)
    eth0: link down
    IP Config: Guessing netmask 255.255.255.0
    IP Config: Complete:
    device = eth0, addr = 192.168.1.85, maska ​​= 255.255.255.0, gw = 255.255.255.255,
    host = 192.168.1.85, domena = nis-domain = (none),
    bootserver = 255.255.255.255, rootserver = 192.168.1.10, rootpath =
    Patrząc na port RPC 100003 / 2 na 192.168.1.10
    eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
    Patrząc na port RPC 100005 / 1 na 192.168.1.10
    VFS: Mounted root (NFS) na 0:14 urządzenia.
    Uwolnienie startowych pamięci: 132k
    INIT: version 2.86 rozruch
    Proszę czekać: uruchamianie ...
    Uruchamianie udev
    Zapełnianie dev cache
    Zamontowaniem głównego systemu plików ...
    Nieznany wartość HZ! (90) Załóżmy, że 100.
    ALSA: Przywracanie ustawień miksera ...
    Konfiguracja interfejsów sieciowych ... Żaden kraj nie jest obecny na karty S3C24XXUDA134X
    / Usr / sbin / alsactl: parse: 1639: Nie można otworzyć pliku "/ usr/share/alsa/init/00main ': Nie ma takiego pliku ani katalogu
    Żaden kraj nie jest obecny na karty S3C24XXUDA134X
    nfs: serwer nie odpowiada 192.168.1.10, nadal próbuje

  2. jmboy
    27 maja 2010 na 08:49 | # 2

    Witam wszystkich,

    Mam dokładnie takie samo zachowanie używając openembedded z NFS

    Przypuszczam, że po wyświetleniu komunikatu "Żadne państwo nie jest obecny na karty S3C24XXUDA134X" openembedded spróbować reconfig Ethernet i nie NFS łącze, ale nie wiem co zrobić, aby tego uniknąć.
    czy ktoś znalazł rozwiązanie?
    dzięki za pomoc
    jmboy

  3. 08 sierpnia 2010 na 13:57 | # 3

    Cześć
    Miałem ten sam problem, sieć została skonfigurowana i połączenia NFS zaginął.
    Nie mogłem znaleźć adres URL rozwiązanie post tutaj, ale mam jeszcze zmienić plik na rootfs.
    edytować plik / etc / init.d / networking na rootfs
    znaleźć linie, które wyglądają tak:
    echo-n "Konfiguracja interfejsów sieciowych ..."
    ifup-
    echo "done."
    i zakomentować drugiej linii, aby coś takiego:
    echo-n "Konfiguracja interfejsów sieciowych ..."
    # Ifup-
    echo "done."
    po tym rootfs przez NFS nie ma problemów. Przynajmniej dla mnie.
    To wygląda jak brzydkie obejście, ale nadzieję, że pomoże.

  4. 08 sierpnia 2010 na 14:18 | # 4

    Cześć, tak, gdy natknąłem się na ten problem i zmienić na stałe adres IP. Dziwną rzeczą było, gdy próbowałem to samo w innej sieci, skonfigurowane w bardzo podobny sposób, i nie trzeba nic zmieniać. I nigdy nie zorientowali się, co różnica była. Dzięki za wiadomość Irakli.

  1. Brak trackbacków.