Anuncio

Inicio > NFS , TFTP , UBoot > Arranque con TFTP y NFS (actualizado)

Arranque con TFTP y NFS (actualizado)

En lugar de llevar a cabo poco a poco su flash NAND puede arrancar el mini2440 través de una red mediante la carga del kernel a través de TFTP y el sistema operativo desde un recurso compartido NFS. Esto también hace que sea mucho más rápido para probar los cambios. Utilizando Fedora 11 se puede utilizar yum para instalar tftp, tftp-server y nfs-utils.

yum install tftp tftp-server nfs-utils

He creado una carpeta / home/doug/mini2440/root_fs y añadió la siguiente línea a / etc / exports para permitir r / w acceso de 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)

.. Y extrajeron el sistema de archivos como root para Angstrom / home/doug/mini2440/root_fs

Tendrá que editar el archivo / etc / xinetd.d / tftp para configurar TFTP. La mía es publicado a continuación como referencia, necesita por lo menos para establecer disable = no.

# Default: off
# Descripción: El servidor tftp sirve los archivos mediante la transferencia de archivos trivial
# Protocolo. El protocolo TFTP a menudo se utiliza para arrancar sin disco
# Estaciones de trabajo, descargar archivos de configuración de red y que están las impresoras,
# Y para iniciar el proceso de instalación de algunos sistemas operativos.
servicio tftp
{
disable = no
socket_type = dgram
protocol = udp
esperar = yes
user = root
sbin / in.tftpd servidor = / usr / bin / in.tftpd
home / doug / mini2440 / kernel server_args =-s / home / doug / mini2440 kernel /
per_source = 11
cps = 100 2
flags = IPv4
}

Entonces comencé a los servicios de:

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

service xinetd start / Sbin / service xinetd start

Para automatizar estos creo que se puede hacer:

chkconfig tftp en

chkconfig en xinetd

chkconfig nfs en

A continuación edité el medio ambiente uboot. Utilice el comando setenv para modificar o agregar entradas y savenev cuando haya terminado. Terminé con lo siguiente:

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 (el núcleo), - (raíz)
=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 / rootdelay mmcblk0p2 = 2
mnt / nfs root_nfs = / mnt / nfs
= / dev / nfs rw nfsroot = ${serverip} : ${root_nfs} set_root_nfs setenv = raíz root_nfs = / dev / nfs rw nfsroot = $ {} IPDeServidor: $ {} root_nfs
ip = ${ipaddr} : ${serverip} :: ${netmask} :mini2440:eth0 ifconfig_static = marcha setenv ip ifconfig = $ {} ipaddr: $ {IPDeServidor}: $ {} máscara de red: mini2440: eth0
ip =dhcp ifconfig_dhcp = ejecutar 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 = marcha 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
bootfile = "uImage"
Tamaño: 1E9088
fileaddr = 32000000
gatewayip = 192.168.1.100
netmask = 255.255.255.0
ipaddr = 192.168.1.85
IPDeServidor = 192.168.1.10
bootcmd = tftp; bootm 32000000
partición = nand0, 0
mtddevnum = 0
mtddevname = u-boot

Tenga en cuenta cuando se setenv ha de omitir el signo =. Obviamente, usted quiere cambiar algo de esto para adaptarse a la configuración de su red. Aquí mi portátil es 192.168.1.10 y 192.168.1.100 es mi caja de pfSense, que es la asignación de 192.168.1.85 a la mini2440 por DHCP.

Al arrancar el sistema uboot descargar el núcleo más TFTP y luego montar la compartición NFS.

Si tiene DHCP en la red Angstrom automáticamente una IP. Usted puede saltarse el resto en este caso!

Si usted quiere una dirección estática puede cambiar / etc / network / interfaces. Simplemente cambió de dhcp estático para eth0:

iface eth0 inet estática

Y después de esto el sistema de arrancado bien. Por último tengo una nota que dice que eliminar el enlace simbólico / etc / resolve.conf y lo reemplazó con:

dominio local
búsqueda local
servidor de nombres 192.168.1.100

Ten en cuenta que la totalidad de la de las necesidades por encima de ser compatible con el firewall y SELinux, no va a funcionar de otra manera!

Encontré los siguientes enlaces útiles:

TFTP

NFS

U-boot NFS / TFTP de arranque

Tags: , Categorías: NFS , TFTP , UBoot Tags: ,
  1. ANAFOR
    31 de diciembre 2009 a las 08:02 | # 1

    Queridos amigos,
    Me he construido un distrubition OpenEmbedded para mini2440. He copiado
    mini2440-base-image.tar.gz a mi PC anfitrión y yo arrenged un NFS para cruzar
    edificio. Funciona bien, pero al copiar y extraer el
    mini2440-console-image.tar.gz, mi NFS no responde. ¿Tiene usted alguna
    consejo para mí? He copiado mis mensajes de la consola minicom y la ató.

    También he intentado con rootfs para NFS sistem enlace a continuación, pero todavía no es
    de responder.

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

    I2C: listo
    DRAM: 64 MB
    Flash: 2 MB
    NAND: tabla de bloques malos que no se encuentra para el chip 0
    Tabla de bloques malos que no se encuentra para el chip 0
    128 MiB
    Medio Ambiente encuentra compensado en OOB ..
    USB: USB S3C2410 deviced
    En: serial
    Salida: de serie
    Err: serial
    MAC: 08:08:11:18:12:27
    Presione cualquier tecla para parar autoboot: 0
    dm9000 de E / S: 0 × 20000300, ID: 0x90000a46
    DM9000: se ejecuta en modo de 16 bits
    MAC: 08:08:11:18:12:27
    Desde un servidor TFTP 192.168.1.10, nuestra dirección IP es 192.168.1.85
    "UImage.bin 'nombre de archivo.
    Dirección de carga: 0 × 32000000
    Cargando: suma de comprobación incorrecta
    suma de comprobación incorrecta
    T ################################################# ################
    ################################################## ###############
    #########
    hecho
    = 2031220 bytes transferidos (1efe74 hex)
    # # El arranque del núcleo de la imagen heredada a 32000000 ...
    Título: Angstrom/2.6.31 + git/mini2440
    Creado: 10/30/2009 09:06:09 UTC
    Tipo de imagen: la imagen del núcleo ARM Linux (sin comprimir)
    Tamaño de datos: 2031156 Bytes = 1,9 MB
    Dirección de carga: 30008000
    Punto de entrada: 30008000
    Verificación de la suma de comprobación ... OK
    Kernel de carga de la imagen ... OK
    Aceptar

    A partir del kernel ...

    Descompresión
    Linux versión 2.6.31.1 (Sven @ oficina) (versión de gcc 4.2.4) # 1 Vie Oct 30 17:04:01 CST 2009
    CPU: ARM920T [41129200] la revisión 0 (ARMv4T), cr = c0007177
    CPU: VIVT caché de datos, caché de instrucciones VIVT
    La máquina: MINI2440
    La política de la memoria: ECC discapacitados, la reescritura de la caché de datos
    CPU S3C2440A (0 × 32440001 id)
    Relojes S3C24XX, (c) 2004 Simtec Electronics
    S3C244X: Núcleo 405.000 MHz, 101.250 MHz de memoria, periféricos 50,625 MHz
    RELOJ: Modo lento (1.500 MHz), rápido, en MPLL, UPLL en
    Construyó una zonelists con el fin de la zona, que agrupa a la movilidad en. Total de páginas: 16.256
    Núcleo de línea de comandos: 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 entradas de la tabla hash: 256 (orden: 8, 1024 bytes)
    Dentry entradas de la caché de tabla hash: 8192 (orden: 3, 32768 bytes)
    Caché inode-entradas de la tabla hash: 4096 (orden: 2, 16384 bytes)
    Memoria: 64 MB = 64 MB totales
    Memoria: 60640KB disponibles (código de 3568K, los datos de 417K, 132K init, 0K highmem)
    SLUB: Genslabs = 11, HWalign = 32, Orden = 0-3, MinObjects = 0, CPU = 1, Nodos = 1
    NR_IRQS: 85
    irq: el estado de compensación pendientes 02000000
    irq: limpieza de estado subpending 00000002
    Consola: color del dispositivo simulado 80 × 30
    consola [ttySAC0] enabled
    Retraso de la calibración de bucle ... 201,93 BogoMIPS (LPJ = 504832)
    Montaje de caché-entradas de la tabla hash: 512
    CPU: pruebas de escritura buffer de coherencia: ok
    Familiares registrados protocolo 16: NET
    MINI2440: cadena de opciones mini2440 = 0tb
    MINI2440: LCD [0:240 x320] 1:800 2:1024 × 480 × 768
    S3C2440: arquitectura Inicialización
    S3C2440: Apoyo IRQ
    S3C24XX DMA Conductor, (c) 2003-2004,2006 Simtec Electronics
    Canal DMA 0 a c4808000, irq 33
    El canal DMA 1 a c4808040, irq 34
    DMA en el canal 2 c4808080, irq 35
    DMA canal 3 en c48080c0, irq 36
    S3C244X: Apoyo del reloj, de DVS
    bio: crear losa a 0
    usbcore: usbfs registrados nuevo controlador de interfaz de
    usbcore: registro nuevo centro de controlador de interfaz
    usbcore: registro nuevo controlador de dispositivo USB
    S3C-i2c S3C2440-i2c: esclavo dirección 0 × 10
    S3C-i2c S3C2440-i2c: establecer la frecuencia de bus a 98 KHz
    S3C-i2c S3C2440-i2c: i2c-0: S3C adaptador I2C
    Familiares registrados protocolo 2: NET
    IP entradas de caché de ruta de tabla hash: 1024 (fin de: 0, 4096 bytes)
    TCP establece las entradas de tabla hash: 2048 (orden: 2, 16384 bytes)
    TCP se unen entradas de la tabla hash: 2048 (orden: 1, 8192 bytes)
    TCP: Las tablas hash configurado (establecido 2048 se unen 2048)
    TCP Reno registrados
    Familiares registrados protocolo 1: NET
    JFFS2 la versión 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    De ROMFS MTD (C) 2007 Red Hat, Inc.
    msgmni se ha establecido en 118
    ALG: No hay ninguna prueba de stdrng (krng)
    io scheduler noop registrados
    io planificador anticipada registrados (por defecto)
    io plazo planificador registrados
    io planificador CFQ registrados
    Consola: el cambio de color del dispositivo de memoria de vídeo de 60 × 53
    fb0: Marco s3c2410fb dispositivo de amortiguación
    S3C2440-uart.0: ttySAC0 a 0 × 50000000 MMIO (irq = 70) es un S3C2440
    S3C2440-uart.1: ttySAC1 a 0 × 50004000 MMIO (irq = 73) es un S3C2440
    S3C2440-uart.2: ttySAC2 a 0 × 50008000 MMIO (irq = 76) es un S3C2440
    brd: módulo de carga
    AT24 0-0050: 1024 bytes EEPROM 24c08 (escritura)
    dm9000 Ethernet Driver, v1.31
    eth0: dm9000e en c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (chip)
    S3C24XX NAND conductor, (c) 2004 Simtec Electronics
    s3c24xx NAND-NAND S3C2440: Tacls = 1, 9ns Twrph0 = 3 29ns, 19ns Twrph1 = 2
    s3c24xx NAND-NAND S3C2440: NAND suave ECC
    Dispositivo NAND: Identificación Fabricante: ID 0xec, Chip: 0xf1 (Samsung 128MB NAND 3,3 V 8-bit)
    La creación de 4 particiones MTD en "NAND 128MB 3,3 V de 8-bits":
    0 × × 000000000000-0 000000040000: "U-Boot"
    ftl_cs: cabecera de la LFT no se encuentra.
    0 × × 000000040000-0 000000060000: "u-boot-env"
    ftl_cs: cabecera de la LFT no se encuentra.
    0 × × 000000060000-0 000000560000: "kernel"
    ftl_cs: cabecera de la LFT no se encuentra.
    0 × × 000000560000-0 000008000000: "root"
    ftl_cs: cabecera de la LFT no se encuentra.
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: nuevo bus USB registrado, autobús asignado el número 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0 × 49000000
    usb usb1: configuración # 1 elegido de una elección
    centro 1-0:1.0: USB hub encontrado
    centro 1-0:1.0: 2 puertos detectados
    usbcore: registrado libusual nuevo controlador de interfaz de
    S3C2440, S3C2440 usbgadget-usbgadget: S3C2440: FIFO cada vez mayor a 128 bytes
    los ratones PS / 2 ratón común para todos los ratones
    entrada: GPIO-claves como / devices/platform/gpio-keys/input/input0
    S3C2440 S3C2440-ts-ts: A partir
    Creado grupo ts filtro len 12 de profundidad cerca de 2 10 6 umbral
    Creado mediana ts filtro len una profundidad de 20 02 de diciembre 24
    Creado media ts filtro len cuatro profundidad de dos umbrales 65535
    Creado lineal ts filtro de profundidad 2
    S3C2440 S3C2440-ts-ts: 4 filtro (s) inicializa
    S3C2440 S3C2440-ts-ts: cargado con éxito
    de entrada: Pantalla táctil como s3c2410 / devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-rtc s3c2410-rtc: rtc con discapacidad, volver a habilitar
    s3c2410-rtc s3c2410-rtc: rtc fundamentales: S3C registrado como rtc0
    i2c / dev entradas de controlador
    S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
    s3c2410-wdt s3c2410-WDT: vigilancia inactiva, reset con discapacidad, irq habilitado
    CpuIdle: el uso de escalera gobernador
    sdhci: Secure Digital Controlador de host controlador de interfaz
    sdhci: Copyright (c) Pierre Ossman
    canal de mapeado 0-0
    S3C2440 S3C2440-SDI-SDI: apagado.
    S3C2440 S3C2440-SDI-SDI: inicialización del hecho.
    Dispositivo registrado led: LED1
    Dispositivo registrado led: LED2
    Dispositivo registrado led: LED3
    Dispositivo registrado led: LED4
    Dispositivo registrado led: luz de fondo
    usbcore: registrado hiddev nuevo controlador de interfaz de
    usbcore: registrado usbhid nuevo controlador de interfaz de
    usbhid: v2.6: USB HID conductor central
    Advanced Linux Sound Architecture Driver Versión 1.0.20.
    No hay ningún dispositivo de DAI UDA134X
    No hay ningún dispositivo de DAI s3c24xx-i2S
    S3C24XX_UDA134X SoC controlador de audio
    UDA134X SoC Audio Codec
    ASOC: UDA134X s3c24xx-i2S mapas ok
    ALSA lista de dispositivos:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP cúbicos registrados
    Familiares registrados protocolo 17: NET
    RPC: módulo de registro de transporte UDP.
    RPC: módulo de registro de transporte TCP.
    s3c2410-rtc s3c2410-rtc: ajuste del reloj del sistema a 19/12/2009 00:36:25 UTC (1261182985)
    eth0: link abajo
    IP-Config: la máscara de red 255.255.255.0 Adivinar
    IP-Config: Completa:
    device = eth0, addr = 192.168.1.85, la máscara = 255.255.255.0, gw = 255.255.255.255,
    host = 192.168.1.85, dominio =, nis-domain = (ninguno),
    bootServer = 255.255.255.255, rootserver = 192.168.1.10, rootpath =
    Mirando hacia arriba del puerto de RPC 100003 / 2 en 192.168.1.10
    eth0: link arriba, 100 Mbps, full-duplex, lpa 0xCDE1
    Mirando hacia arriba del puerto de RPC 100005 / 1 de 192.168.1.10
    VFS: raíz montado (sistema de archivos NFS) en doce y catorce dispositivo.
    La liberación de memoria de inicio: 132K
    INIT: la versión 2.86 el arranque
    Por favor, espere: el arranque ...
    Udev partida
    Poblar caché dev
    Remontar sistema de archivos raíz ...
    HZ valor desconocido! (90) asumirá el 100.
    ALSA: Restauración de los ajustes del mezclador ...
    Configuración de interfaces de red ... Ningún Estado está presente para la tarjeta de S3C24XXUDA134X
    / Usr / sbin / alsactl: analizar: 1639: No se puede abrir el archivo '/ usr/share/alsa/init/00main': No such file or directory
    Ningún Estado está presente para la tarjeta de S3C24XXUDA134X
    nfs: no en el servidor 192.168.1.10 responder, todavía tratando de

  2. jmboy
    27 de mayo 2010 a las 08:49 | # 2

    Hola a todos,

    Tengo exactamente el mismo comportamiento con OpenEmbedded con NFS

    Supongo que después de que el mensaje "Ningún Estado está presente para la tarjeta de S3C24XXUDA134X" OpenEmbedded tratar de reconfiguración Ethernet y enlace falla NFS, pero no sé qué hacer para evitar esto.
    ¿alguien se ha encontrado una solución?
    gracias por ayudarme
    jmboy

  3. 08 de agosto 2010 a las 13:57 | # 3

    Hola
    Tuve el mismo problema, la red se reconfigura y la conexión NFS se perdió.
    No he podido encontrar la URL de la solución para publicar aquí, pero todavía me ha cambiado el archivo en mi rootfs.
    editar el archivo / etc / init.d / networking en su rootfs
    encontrar las líneas que se ven así:
    echo-n "Configuración de interfaces de red ..."
    ifup-a
    echo "hecho."
    y comentar la segunda línea para tener algo como esto:
    echo-n "Configuración de interfaces de red ..."
    # Ifup-a
    echo "hecho."
    después de esta rootfs a través de NFS no tiene ningún problema. Al menos para mí.
    Esto parece feo solución, pero esperamos que le ayude.

  4. 08 de agosto 2010 a las 14:18 | # 4

    Hola, sí, cuando me encontré con este problema he cambiado a una dirección IP fija. Lo extraño fue cuando intenté lo mismo en una red diferente, configurada en casi la misma forma, no necesitas cambiar nada. Nunca supe cuál era la diferencia. Gracias por el mensaje Irakli.

  1. Aún no hay trackbacks.