Iklan

Depan > NFS , TFTP , UBOOT > Boot menggunakan NFS dan TFTP (diperbaharui)

Boot menggunakan NFS dan TFTP (diperbaharui)

Daripada mengenakan keluar perlahan-lahan Anda NAND flash Anda dapat boot MINI2440 melalui jaringan dengan memuat kernel menggunakan TFTP dan OS dari berbagi NFS. Hal ini juga membuat lebih cepat untuk menguji perubahan. Menggunakan Fedora 11 Anda dapat menggunakan YUM untuk menginstal tftp, tftp-server dan nfs-utils.

yum install tftp tftp-server nfs-utils

Saya membuat sebuah folder / home/doug/mini2440/root_fs dan menambahkan baris berikut ke / etc / exports untuk memungkinkan r / w akses dari 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)

.. Dan diekstraksi sistem file Angstrom sebagai root untuk / home/doug/mini2440/root_fs

Anda akan perlu mengedit / etc / xinetd.d / tftp untuk setup TFTP. Tambang ini diposting di bawah ini untuk referensi, Anda setidaknya perlu mengatur disable = no.

# Default: off
# Description: server tftp melayani file menggunakan file transfer sepele
# Protokol. Protokol tftp sering digunakan untuk boot diskless
# Workstation, file konfigurasi download ke printer jaringan-aware,
# Dan untuk memulai proses instalasi untuk beberapa sistem operasi.
layanan tftp
{
disable = no
socket_type = dgram
protokol = udp
menunggu = yes
user = akar
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
}

Saya kemudian memulai layanan:

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

service xinetd start / Sbin / service xinetd start

Untuk mengotomatisasi ini saya pikir Anda dapat melakukan:

chkconfig tftp pada

chkconfig xinetd on

chkconfig nfs pada

Berikutnya saya diedit lingkungan uboot. Gunakan perintah setenv untuk mengubah atau menambahkan entri dan savenev ketika Anda selesai. Saya berakhir dengan berikut:

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 (kernel), - (akar)
=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 = jalankan ifconfig ip setenv = $ {ipaddr}: $ {serverip}:: $ {netmask}: MINI2440: eth0
ip =dhcp ifconfig_dhcp = menjalankan 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 = menjalankan 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"
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
partisi = nand0, 0
mtddevnum = 0
mtddevname = u-boot

Perhatikan ketika Anda setenv Anda harus menghilangkan tanda =. Jelas Anda akan ingin mengubah beberapa ini sesuai konfigurasi jaringan anda. Berikut laptop saya adalah 192.168.1.10 dan 192.168.1.100 adalah pfsense kotak saya yang menugaskan 192.168.1.85 ke MINI2440 oleh DHCP.

Bila Anda boot sistem akan uboot mendownload kernel lebih dari TFTP dan kemudian mount NFS berbagi.

Jika Anda memiliki DHCP pada jaringan Anda Angstrom otomatis harus mendapatkan IP. Anda dapat melewatkan sisanya dalam kasus ini!

Jika Anda ingin alamat statis Anda dapat mengubah / etc / network / interfaces. Aku hanya berubah dhcp statis untuk eth0:

IFACE eth0 inet static

Dan setelah ini sistem boot up baik. Terakhir saya punya catatan yang mengatakan saya menghapus symlink / etc / resolve.conf dan diganti dengan:

domain lokal
pencarian lokal
nameserver 192.168.1.100

Jadilah memperingatkan bahwa seluruh kebutuhan di atas harus sesuai dengan firewall dan SELinux Anda, itu tidak akan bekerja sebaliknya!

Saya menemukan Link berikut membantu:

TFTP

NFS

U-boot NFS / TFTP booting

Tags: , Kategori: NFS , TFTP , UBOOT Tags: ,
  1. Anafor
    Desember 31, 2009 at 08:02 | # 1

    Dear Friends,
    Saya telah membangun sebuah distrubition openembedded untuk MINI2440. Saya telah menyalin
    MINI2440-base-image.tar.gz ke pc host saya dan saya arrenged NFS untuk cross
    bangunan. Ia bekerja OK, tetapi ketika saya menyalin dan ekstrak
    MINI2440-konsol-image.tar.gz, saya NFS tidak menanggapi. Apakah Anda memiliki
    saran untuk saya? Saya menyalin konsol minicom saya pesan dan menempelkannya.

    Juga saya mencoba dengan rootfs untuk NFS SISTEM link di bawah ini, tapi masih belum
    menanggapi.

    U-Boot 1.3.2-MINI2440 (6 Oktober 2009 - 12:51:09)

    I2C: siap
    DRAM: 64 MB
    Flash: 2 MB
    NAND: blok tabel Bad tidak ditemukan untuk chip 0
    Tabel blok buruk tidak ditemukan untuk chip 0
    128 MiB
    Lingkungan Ditemukan offset dalam OOB ..
    USB: USB S3C2410 Deviced
    Dalam: serial
    Out: serial
    Err: serial
    MAC: 08:08:11:18:12:27
    Menekan tombol apa saja untuk menghentikan autoboot: 0
    dm9000 i / o: 0 × 20000300, id: 0x90000a46
    DM9000: berjalan di 16 bit mode
    MAC: 08:08:11:18:12:27
    TFTP dari server 192.168.1.10; alamat IP kita adalah 192.168.1.85
    Filename 'uImage.bin'.
    Memuat alamat: 0 × 32000000
    Memuat: checksum yang buruk
    checksum yang buruk
    T ################################################# ################
    ################################################## ###############
    #########
    dilakukan
    Byte yang ditransfer = 2031220 (1efe74 hex)
    # # Boot kernel dari Gambar Legacy di 32000000 ...
    Gambar Nama: Angstrom/2.6.31 + git/mini2440
    Dibuat: 2009/10/30 09:06:09 UTC
    Tipe Gambar: ARM Linux Kernel Gambar (terkompresi)
    Data Ukuran: 2031156 Bytes = 1,9 MB
    Beban Alamat: 30008000
    Entry Point: 30008000
    Memverifikasi Checksum ... OK
    Memuat Kernel Gambar ... OK
    OK

    Mulai kernel ...

    Uncompressing
    Linux versi 2.6.31.1 (sven @ kantor) (gcc version 4.2.4) # 1 Thu 30 Okt 2009 17:04:01 CST
    CPU: ARM920T [41129200] revisi 0 (ARMv4T), cr = c0007177
    CPU: Data VIVT cache, cache instruksi VIVT
    Mesin: MINI2440
    Memori kebijakan: ECC dinonaktifkan, data cache yang writeback
    CPU S3C2440A (id 0 × 32440001)
    Jam S3C24XX, (c) 2004 Simtec Elektronik
    S3C244X: inti 405,000 MHz, memori 101,250 MHz, 50,625 MHz perifer
    JAM: modus Lambat (1.500 MHz), cepat, MPLL pada, UPLL pada
    Dibangun 1 zonelists dalam rangka Zone, pengelompokan mobilitas. Jumlah halaman: 16256
    Perintah baris kernel: console = ttySAC0, 115200 noinitrd init = / sbin / MINI2440 init = ip = 192.168.1.85 0tb akar = / dev / nfs rw nfsroot = 192.168.1.10: / hd
    PID entri tabel hash: 256 (urutan: 8, 1024 byte)
    Dentry Cache entri tabel hash: 8192 (order 3, 32768 bytes)
    Inode-cache entri tabel hash: 4096 (order: 2, 16384 bytes)
    Memori: 64MB = 64MB Total
    Memori: 60640KB tersedia (kode 3568K, data 417K, 132K init, highmem 0K)
    Slub: Genslabs = 11, HWalign = 32, Orde = 0-3, MinObjects = 0, CPU = 1, Nodes = 1
    NR_IRQS: 85
    irq: Status kliring tertunda 02000000
    irq: Status 00000002 kliring subpending
    Console: warna boneka perangkat 80 × 30
    konsol [ttySAC0] diaktifkan
    Mengkalibrasi keterlambatan lingkaran ... 201,93 BogoMips (LPJ = 504.832)
    Gunung-cache entri tabel hash: 512
    CPU: Pengujian menulis buffer koherensi: ok
    NET: keluarga protokol Terdaftar 16
    MINI2440: Opsi String MINI2440 = 0tb
    MINI2440: LCD [0:240 X320] 1:800 × 480 × 768 2:1024
    S3C2440: arsitektur Memasang
    S3C2440: IRQ Dukungan
    S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Elektronik
    DMA channel 0 pada c4808000, irq 33
    DMA channel 1 di c4808040, irq 34
    DMA saluran 2 di c4808080, irq 35
    DMA saluran 3 di c48080c0, irq 36
    S3C244X: Dukungan Jam, dvs dari
    bio: membuat slab pada 0
    usbcore: usbfs antarmuka driver yang terdaftar baru
    usbcore: registered antarmuka hub driver baru
    usbcore: terdaftar baru driver perangkat usb
    s3c-i2c S3C2440-i2c: budak alamat 0 × 10
    s3c-i2c S3C2440-i2c: Frekuensi bus diatur ke 98 KHz
    s3c-i2c S3C2440-i2c: adaptor S3C I2C: i2c-0
    NET: keluarga protokol terdaftar 2
    Rute IP Cache entri tabel hash: 1024 (order: 0, 4096 byte)
    TCP entri tabel hash: 2048 (order: 2, 16384 bytes)
    TCP mengikat entri tabel hash: 2048 (urutan: 1, 8192 byte)
    TCP: tabel Hash dikonfigurasi (didirikan 2048 mengikat 2048)
    TCP reno terdaftar
    NET: keluarga protokol terdaftar 1
    JFFS2 versi 2.2. (NAND) © 2001-2006 Red Hat, Inc
    ROMFS MTD (C) 2007 Red Hat, Inc
    msgmni telah diatur untuk 118
    ALG: Tidak ada tes untuk stdrng (krng)
    io scheduler noop terdaftar
    io scheduler antisipatif terdaftar (default)
    io scheduler tenggat terdaftar
    io scheduler cfq terdaftar
    Console: beralih ke perangkat frame buffer warna 60 × 53
    fb0: s3c2410fb bingkai penyangga perangkat
    S3C2440-uart.0: ttySAC0 di MMIO 0 × 50000000 (irq = 70) adalah S3C2440
    S3C2440-uart.1: ttySAC1 di MMIO 0 × 50004000 (irq = 73) adalah S3C2440
    S3C2440-uart.2: ttySAC2 di MMIO 0 × 50008000 (irq = 76) adalah S3C2440
    BRD: modul dimuat
    at24 0-0050: 1024 byte EEPROM 24C08 (writable)
    dm9000 Ethernet Driver, V1.31
    eth0: dm9000e di c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (chip)
    S3C24XX NAND Driver, (c) 2004 Simtec Elektronik
    s3c24xx-nand nand S3C2440-: Tacls = 1, 9ns Twrph0 = 3 29ns, 19ns Twrph1 = 2
    s3c24xx-nand nand S3C2440-: NAND lembut ECC
    NAND perangkat: ID Produsen: 0xec, ID Chip: 0xf1 (Samsung NAND 128MiB 3,3 V 8-bit)
    Membuat partisi MTD pada 4 "NAND 128MiB 3,3 V 8-bit":
    0 × × 000000000000-0 000000040000: "u-boot"
    ftl_cs: FTL header tidak ditemukan.
    0 × × 000000040000-0 000000060000: "u-boot-env"
    ftl_cs: FTL header tidak ditemukan.
    0 × × 000000060000-0 000000560000: "kernel"
    ftl_cs: FTL header tidak ditemukan.
    0 × × 000000560000-0 000008000000: "root"
    ftl_cs: FTL header tidak ditemukan.
    ohci_hcd: 'Open' USB 1.1 Host Controller (OHCI) Driver
    s3c2410-OHCI s3c2410-OHCI: S3C24XX OHCI
    s3c2410-OHCI s3c2410-OHCI: baru terdaftar bus USB, bus ditugaskan nomor 1
    s3c2410-OHCI s3c2410-OHCI: irq 42, io mem 0 × 49000000
    usb USB1: # 1 Konfigurasi dipilih dari 1 pilihan
    hub 1-0:1.0: USB hub ditemukan
    hub 1-0:1.0: 2 port terdeteksi
    usbcore: registered antarmuka libusual driver baru
    S3C2440-usbgadget S3C2440-usbgadget: S3C2440: meningkatkan FIFO untuk 128 byte
    tikus: PS / 2 mouse perangkat umum untuk semua tikus
    masukan: GPIO-tombol sebagai / devices/platform/gpio-keys/input/input0
    S3C2440-ts-ts S3C2440: Memulai
    Membuat grup ts menyaring len 12 kedalaman 2 menutup 10 mengirik 6
    Dibuat Median Filter ts len 20 kedalaman 2 Desember 24
    Dibuat ts menyaring rata-rata kedalaman 2 len 4 mengirik 65535
    Dibuat Linear Filter ts kedalaman 2
    S3C2440-ts-ts S3C2440: 4 filter (s) diinisialisasi
    S3C2440-ts-ts S3C2440: berhasil dimuat
    masukan: s3c2410 Touchscreen sebagai / devices/virtual/input/input1
    S3C24XX RTC, (c) 2004,2006 Simtec Elektronik
    s3c2410-RTC RTC s3c2410-: RTC cacat, mengaktifkan kembali
    s3c2410-RTC RTC s3c2410-: RTC inti: s3c terdaftar sebagai rtc0
    i2c / dev entri sopir
    Watchdog Timer S3C2410, (c) 2004 Simtec Elektronik
    s3c2410-wdt s3c2410-wdt: pengawas tidak aktif, reset cacat, irq diaktifkan
    cpuidle: menggunakan tangga Gubernur
    sdhci: Host Controller Driver Secure Digital Antarmuka
    sdhci: Copyright (c) Pierre Ossman
    dipetakan saluran 0 to 0
    S3C2440-SDI-SDI S3C2440: powered bawah.
    S3C2440-SDI-SDI S3C2440: inisialisasi dilakukan.
    Terdaftar dipimpin perangkat: LED1
    Terdaftar dipimpin perangkat: led2
    Terdaftar dipimpin perangkat: led3
    Terdaftar dipimpin perangkat: led4
    Terdaftar dipimpin perangkat: backlight
    usbcore: registered antarmuka hiddev driver baru
    usbcore: registered antarmuka usbhid driver baru
    usbhid: v2.6: USB HID sopir inti
    Lanjutan Linux Suara Arsitektur Driver Versi 1.0.20.
    Tidak ada perangkat untuk DAI UDA134X
    Tidak ada perangkat untuk DAI s3c24xx-I2S
    S3C24XX_UDA134X SoC Audio Driver
    UDA134X SoC Audio Codec
    asoc: UDA134X s3c24xx-I2S pemetaan ok
    ALSA daftar perangkat:
    # 0: S3C24XX_UDA134X (UDA134X)
    TCP kubik terdaftar
    NET: keluarga protokol Terdaftar 17
    RPC: Terdaftar udp modul transportasi.
    RPC: Terdaftar tcp modul transportasi.
    s3c2410-RTC RTC s3c2410-: pengaturan sistem clock untuk 2009-12-19 00:36:25 UTC (1261182985)
    eth0: link down
    IP-Config: netmask 255.255.255.0 Menebak
    IP-Config: Lengkap:
    device = eth0, addr = 192.168.1.85, mask = 255.255.255.0, 255.255.255.255 gw =,
    host = 192.168.1.85, domain =, nis-domain = (tidak ada),
    bootserver = 255.255.255.255, rootserver = 192.168.1.10, ROOTPATH ​​=
    Mendongak port RPC 100003 / 2 pada 192.168.1.10
    eth0: link up, 100Mbps, full-duplex, LPA 0xCDE1
    Mendongak port RPC 100005 / 1 pada 192.168.1.10
    VFS: Mounted akar (nfs filesystem) pada 0:14 perangkat.
    Membebaskan memori init: 132K
    INIT: version 2.86 booting
    Please wait: boot ...
    Mulai udev
    Mengisi tembolok dev
    Remounting root file system ...
    HZ diketahui nilai! (90) Asumsikan 100.
    ALSA: Memulihkan pengaturan mixer ...
    Konfigurasi antarmuka jaringan ... Tidak ada negara yang hadir untuk kartu S3C24XXUDA134X
    / Usr / sbin / alsactl: parse: 1639: Tidak dapat membuka file '/ usr/share/alsa/init/00main': Tidak ada berkas atau direktori
    Tidak ada negara hadir untuk kartu S3C24XXUDA134X
    nfs: server 192.168.1.10 tidak menanggapi, masih mencoba

  2. jmboy
    Mei 27, 2010 at 08:49 | # 2

    Hi semua,

    Saya memiliki perilaku yang sama persis dengan NFS menggunakan openembedded

    Saya kira bahwa setelah pesan "Tidak ada negara yang hadir untuk kartu S3C24XXUDA134X" openembedded mencoba untuk reconfig ethernet interface dan gagal menghubungkan NFS tetapi saya tidak tahu apa yang harus dilakukan untuk menghindari hal ini.
    telah ada yang menemukan solusi?
    terima kasih untuk membantu saya
    jmboy

  3. Agustus 8, 2010 at 13:57 | # 3

    Hai
    Aku punya masalah yang sama, jaringan itu koneksi ulang dan NFS hilang.
    Saya tidak bisa menemukan URL dari solusi untuk posting di sini, tapi saya masih memiliki file di rootfs berubah saya.
    mengedit file / etc / init.d / networking di rootfs Anda
    temukan baris yang terlihat seperti ini:
    echo-n "Konfigurasi antarmuka jaringan ..."
    ifup-a
    echo "dilakukan."
    dan komentar baris kedua untuk memiliki sesuatu seperti ini:
    echo-n "Konfigurasi antarmuka jaringan ..."
    # Ifup-a
    echo "dilakukan."
    setelah ini rootfs dari NFS tidak memiliki masalah. Setidaknya bagi saya.
    Ini tampak seperti solusi jelek tapi berharap ini akan membantu Anda.

  4. Agustus 8, 2010 at 14:18 | # 4

    Hi, ya, ketika saya datang di masalah ini saya diubah ke alamat IP tetap. Yang aneh adalah ketika saya mencoba hal yang sama pada jaringan yang berbeda, dikonfigurasi dalam cukup banyak cara yang sama, saya tidak perlu mengubah apa pun. Aku tidak pernah tahu apa perbedaan itu. Terima kasih atas Irakli posting.

  1. Tidak ada trackbacks yet.