Boot-area folosind NFS şi TFTP (actualizat)
Mai degrabă decât încet uzură flash NAND puteţi efectua boot mini2440 într-o reţea de încărcare kernel-ul folosind TFTP şi sistemul de operare de la o cotă de NFS. Acest lucru, de asemenea, face mult mai rapid pentru a testa modificările. Utilizarea Fedora 11 se poate utiliza pentru a instala YUM tftp, tftp-server şi a nfs-utils.
Am creat un folder / home/doug/mini2440/root_fs şi adaugă următoarea linie în / etc / exports pentru a permite r / g de acces de la 192.168.1 .*:
.. Extras şi sistemul de fişiere Angstrom ca rădăcină a / home/doug/mini2440/root_fs
Veţi avea nevoie pentru a edita / etc / xinetd.d / tftp pentru a seta TFTP. A mea este postat de mai jos pentru referinţă, cel puţin aveţi nevoie pentru a dezactiva = nr.
# Descriere: server-ul tftp serveşte fişiere utilizând transferul de fişiere trivial
# Protocol. Protocolul de tftp este adesea folosit pentru a iniţializa diskless
# Statii de lucru, descărcaţi fişiere de configurare a reţelei-conştient imprimante,
# Şi pentru a începe procesul de instalare pentru unele sisteme de operare.
Serviciu tftp
{
Dezactivează = nu
socket_type = dgram
protocol = udp
, aşteptaţi = yes
= ghidul de rădăcină
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
steaguri = IPv4
}
Am inceput apoi servicii:
service xinetd start / Sbin / serviciu xinetd start
Pentru a automatiza aceste cred că poţi să faci:
chkconfig xinetd pe
chkconfig nfs pe
Înainte am editat mediului uboot. Utilizaţi comanda setenv de a modifica sau adăuga intrări şi savenev atunci când aţi terminat. Am ajuns cu următorul text:
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 (nucleu), - (rădăcină)
=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 = rula setenv ifconfig ip = $ {ipaddr}: $ {Serverip}:: $ {netmask}: mini2440: eth0
ip =dhcp ifconfig_dhcp = rula ip = dhcp setenv ifconfig
=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 = rula 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
partition = nand0, 0
mtddevnum = 0
mtddevname = U-Boot
Notă Când setenv trebuie să omiteţi semnul =. Evident, veţi dori să modificaţi unele din prezentul pentru a se potrivi configuratiei dvs. de reţea. Aici laptop-ul meu este 192.168.1.10 si 192.168.1.100 este cutia mea pfsense care se atribuie 192.168.1.85 la mini2440 de DHCP.
La procesul de boot uboot sistemul va sa descarcati kernel-ului de peste TFTP şi apoi mount cota NFS.
Dacă aveţi DHCP în reţeaua dvs. ar trebui să Angstrom primi automat un IP. Puteţi sări peste restul, în acest caz!
Dacă doriţi o adresă statică aveţi posibilitatea să modificaţi / etc / network / interfaces. Mi-am schimbat pur şi simplu la DHCP static pentru eth0:
Şi după acest sistem de boot-at la amendă. În sfârşit am o notă care spune am şters link-ul simbolic / etc / resolve.conf şi înlocuieşte-l cu:
căutare locală
nameserver 192.168.1.100
Să fie avertizaţi că întregul are nevoie de mai sus să fie conforme cu firewall-ul şi SELinux, acesta nu va funcţiona altfel!
Am gasit urmatoarele link-uri utile:



Dragi prieteni,
Am construi o distrubition openembedded pentru mini2440. Eu am copiat
mini2440-base-image.tar.gz la PC-ul gazda mea şi am arrenged un NFS pentru asistenţa
clădire. Acesta funcţionează OK, dar când am copiat şi extract de
mini2440-console-image.tar.gz, NFS meu nu răspunde. Aveţi vreo
sfat pentru mine? Am copiat mesajele mele minicom consola si-l ataşat.
De asemenea, am încercat cu rootfs pentru NFS Sistem de mai jos link-ul, dar nu este încă
răspunde.
U-Boot 1.3.2-mini2440 (06 octombrie 2009 - 12:51:09)
I2C: gata
DRAM: 64 MB
Flash: 2 MB
NAND: tabel bloc Bad nu a fost găsit pentru cip 0
Tabel bloc Bad nu a fost găsit pentru cip 0
128 MiB
De Mediu a constatat diferenţa în OOB ..
USB: USB S3C2410 Deviced
In: serial
Out: serial
Err: serial
MAC: 08:08:11:18:12:27
Hit orice tastă pentru a opri autoboot: 0
dm9000 I / O: 0 × 20000300, id: 0x90000a46
DM9000: rulează în modul de 16 biti
MAC: 08:08:11:18:12:27
TFTP de pe server 192.168.1.10; adresa noastra IP este 192.168.1.85
Nume "uImage.bin".
Adresa de încărcare: 0 × 32000000
Se incarca: checksum bad
checksum bad
T ################################################# ################
################################################## ###############
#########
făcut
Bytes transferat = 2031220 (1efe74 hex)
# # Boot-area kernel-ul de la Image Legacy la 32000000 ...
Nume Imagine: Angstrom/2.6.31 + git/mini2440
Creat: 2009-10-30 09:06:09 UTC
Tip imagine: ARM Imagine Linux Kernel (necomprimat)
Date Dimensiune: 2031156 Bytes = 1.9 MB
Adresa de încărcare: 30008000
Punctul de intrare: 30008000
Verificarea Checksum ... OK
Se incarca imaginea de kernel ... OK
Bine
Începând cu nucleu ...
Uncompressing
Linux versiunea 2.6.31.1 (Sven @ birou) (gcc versiunea 4.2.4) # 1 Vineri 30 octombrie 2009 17:04:01 CST
CPU: ARM920T [41129200] revizuire 0 (ARMv4T), cr = c0007177
CPU: VIVT date cache, cache de instrucţiuni VIVT
Masina: MINI2440
Politica de memorie: ECC cu handicap, date writeback cache
CPU S3C2440A (id-ul 0 × 32440001)
Ceasuri S3C24XX, (c) 2004 Simtec Electronics
S3C244X: 405.000 MHz core, memorie 101.250 MHz, periferice 50.625 MHz
CLOCK: Mod de Slow (1.500 MHz), rapid, pe MPLL, UPLL pe
Construit 1 zonelists pentru Zona, gruparea de mobilitate pe. Total pagini: 16256
Linia de comandă nucleu: 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 intrări hash de masă: 256 (comandă: 8, 1024 de octeţi)
Dentry cache intrări hash de masă: 8192 (ordine: 3, 32768 bytes)
Inode-cache hash intrări de masă: 4096 (ordine: 2, 16384 bytes)
Memorie: 64MB = 64MB totale
Memorie: 60640KB disponibil (cod 3568K, 417K de date, 132k init, 0K highmem)
SLUB: Genslabs = 11, HWalign = 32, Ordonanţa = 0-3, MinObjects = 0, CPU = 1, Noduri = 1
NR_IRQS: 85
IRQ: starea de compensare până la 02000000
IRQ: starea de compensare subpending 00000002
Consola: dispozitiv de culoare dummy 80 × 30
consolă [ttySAC0] activat
Bucla întârziere Calibrarea ... 201.93 BogoMIPS (lpj = 504832)
Mount-cache hash intrări de masă: 512
CPU: Testarea scrie coerenta tampon: ok
NET: protocol de familie inregistrat 16
MINI2440: string Opţiunea mini2440 = 0tb
MINI2440: LCD [0:240 X320] 1:800 × 480 × 768 2:1024
S3C2440: Arhitectura Iniþializare
S3C2440: IRQ Asistenţă
S3C24XX DMA driver, (c) 2003-2004,2006 Simtec Electronics
DMA canal 0 la c4808000, irq 33
DMA canalul 1 la c4808040, irq 34
DMA 2 canale la c4808080, irq 35
DMA canalul 3 la c48080c0, irq 36
S3C244X: Suport cu ceas, DVS off
bio: creaţi placa la 0
usbcore: usbfs înregistrat nouă interfaţă conducător auto
usbcore: înregistrat noua interfaţă driver hub
usbcore: înregistrat nou driver de dispozitiv USB
s3c-I2C s3c2440-I2C: adresa slave 0 × 10
s3c-I2C s3c2440-I2C: frecvenţa stabilite de autobuz la 98 KHz
s3c-I2C s3c2440-I2C: I2C-0: S3C I2C adaptor
NET: protocol de familie inregistrat 2
IP ruta cache intrări hash de masă: 1024 (ordine: 0, 4096 bytes)
TCP stabilit intrări hash de masă: 2048 (ordine: 2, 16384 bytes)
TCP obligati intrări hash de masă: 2048 (ordine: 1, 8192 bytes)
TCP: Hash tabele configurate (2048 stabilit obligati 2048)
TCP reno înregistrat
NET: protocol de familie inregistrat o
JFFS2 versiunea 2.2. (NAND) © 2001-2006 Red Hat, Inc
ROMFS MTD (C) 2007 Red Hat, Inc
msgmni a fost setat la 118
ALG: Nici un test pentru stdrng (krng)
io scheduler noop înregistrat
io scheduler anticipate înregistrat (implicit)
io limită scheduler înregistrat
io scheduler cfq înregistrat
Consola: trecerea la culoarea dispozitiv buffer de cadre 60 × 53
fb0: s3c2410fb tampon dispozitiv cadru
s3c2440-uart.0: ttySAC0 la MMIO 0 × 50000000 (IRQ = 70) este un S3C2440
s3c2440-uart.1: ttySAC1 la MMIO 0 × 50004000 (IRQ = 73) este un S3C2440
s3c2440-uart.2: ttySAC2 la MMIO 0 × 50008000 (IRQ = 76) este un S3C2440
BRD: Modul încărcat
at24 0-0050: 1024 byte 24c08 EEPROM (scriere)
dm9000 Ethernet Driver, V1.31
eth0: dm9000e la c486e300, c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (cip)
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c24xx-NAND s3c2440-NAND: Tacls = 1, 9ns Twrph0 = 3 29ns, Twrph1 = 2 19ns
s3c24xx-NAND s3c2440-NAND: NAND moale ECC
Dispozitiv NAND: ID Producator: ID-ul 0xec, Chip: 0xf1 (Samsung NAND 128MiB 3,3 V 8-biţi)
Crearea 4 partiţii MTD pe "NAND 128MiB 3,3 V 8-bit":
0 × × 000000000000-0 000000040000: "U-Boot"
ftl_cs: FTL antet nu a fost găsit.
0 × × 000000040000-0 000000060000: "U-Boot-ENV"
ftl_cs: FTL antet nu a fost găsit.
0 × × 000000060000-0 000000560000: "nucleu"
ftl_cs: FTL antet nu a fost găsit.
0 × × 000000560000-0 000008000000: "rădăcină"
ftl_cs: FTL antet nu a fost găsit.
ohci_hcd: USB 1.1 "Open" Host Controller (OHCI) Driver
s3c2410-OHCI s3c2410-OHCI: S3C24XX OHCI
s3c2410-OHCI s3c2410-OHCI: USB autobuz nou înregistrate, numărul atribuit un autobuz
s3c2410-OHCI s3c2410-OHCI: IRQ 42, io MEM 0 × 49000000
usb usb1: de configurare # 1 ales de la 1 alegere
hub 1-0:1.0: USB hub găsite
hub 1-0:1.0: 2 porturi detectate
usbcore: înregistrat noua interfaţă driver libusual
s3c2440-usbgadget s3c2440-usbgadget: S3C2440: FIFO, crescând la 128 octeţi
soareci: PS / 2 mouse-ului comun pentru toate soareci
intrare: GPIO-keys ca / devices/platform/gpio-keys/input/input0
s3c2440-ts s3c2440-ts: Pornirea
Creat grup ts filtrul de len 12 adâncime 2 aproape 10 treiera 6
Creat mediană ts filtrul de len 20 adâncime 2 dec 24
Creat medie ts filtrul de len 4 adâncime 2 treiera 65535
Creat liniare ts filtrul de adâncime 2
s3c2440-ts s3c2440-TS: 4 filtru (e) iniţializată
s3c2440-ts s3c2440-TS: încarcă cu succes
de intrare: s3c2410 TouchScreen ca / devices/virtual/input/input1
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c2410-RTC s3c2410-RTC: RTC cu handicap, care să permită re-
s3c2410-RTC s3c2410-RTC: RTC de bază: s3c înregistrat ca rtc0
I2C / dev intrările de drivere
S3C2410 timer-ul watchdog, (c) 2004 Simtec Electronics
s3c2410-WDT s3c2410-WDT: watchdog inactiv, resetare cu handicap, irq activat
cpuidle: folosind scara guvernator
sdhci: Secure Digital Host Controller Interface conducător auto
sdhci: Copyright (c) Pierre Ossman
mapate canal 0 - 0
s3c2440-SDI s3c2440-SDI: cu reglaj electric jos.
s3c2440-SDI s3c2440-SDI: de iniţializare făcut.
Dispozitiv inregistrat a condus: led1
Dispozitiv inregistrat a condus: led2
Dispozitiv inregistrat a condus: led3
Dispozitiv inregistrat a condus: led4
Dispozitiv inregistrat a condus: lumina de fundal
usbcore: înregistrat noua interfaţă driver hiddev
usbcore: înregistrat noua interfaţă driver usbhid
usbhid: v2.6: USB HID driver de bază
Avansate de Linux Sound Architecture pilotului Versiune 1.0.20.
Nr dispozitiv pentru DAI UDA134X
Nr dispozitiv de DAI s3c24xx-i2s
S3C24XX_UDA134X SoC Audio conducător auto
UDA134X SoC Audio Codec
ASOC: UDA134X s3c24xx-i2s cartografiere ok
ALSA dispozitiv listă:
# 0: S3C24XX_UDA134X (UDA134X)
TCP cubi înmatriculate
NET: protocol de familie inregistrat 17
RPC: inregistrat udp modul de transport.
RPC: inregistrat tcp modul de transport.
s3c2410-RTC s3c2410-RTC: sistem de ceas setare pentru a 2009-12-19 00:36:25 UTC (1261182985)
eth0: legătură într-jos
IP-Config: netmask 255.255.255.0 ghiceşti
IP-Config: complet:
dispozitiv = eth0, adr = 192.168.1.85, masca = 255.255.255.0, GW = 255.255.255.255,
gazdă = 192.168.1.85, = domeniu, INS-domeniu = (none),
bootserver = 255.255.255.255, rootserver = 192.168.1.10, rootpath =
Privind în sus portul de RPC 100003 / 2 pe 192.168.1.10
eth0: legătură într-up, 100Mbps, full-duplex, APL 0xCDE1
Privind în sus portul de RPC 100005 / 1 privind 192.168.1.10
VFS: rădăcină montat (sistem de fişiere NFS) pe 0:14 dispozitiv.
Eliberarea de memorie init: 132k
INIT: versiunea 2.86 boot
Vă rugăm să aşteptaţi: boot ...
Pornind de udev
Popularea cache dev
Puteţi monta sistemul de fişiere rădăcină ...
Necunoscut HZ valoare! (90) Presupunem 100.
ALSA: Restaurarea setărilor mixer ...
Configurarea interfeţelor de reţea ... nr de stat este prezent pentru carte de S3C24XXUDA134X
/ Usr / sbin / alsactl: analiza: 1639: Nu pot deschide fisierul '/ usr/share/alsa/init/00main': Nici un astfel de fişier sau director
Nici un stat nu este prezent pentru carte de S3C24XXUDA134X
NFS: serverul nu răspunde 192.168.1.10, încă mai încearcă
Max toată lumea,
Am exact acelasi comportament folosind openembedded cu NFS
Presupun că după mesajul "Nici un stat nu este prezent pentru carte de S3C24XXUDA134X" openembedded încerca să reconfig interfaţă ethernet şi NFS nu reuşeşte legătură într-dar nu ştiu ce să facă pentru a evita acest lucru.
are cineva găsit o soluţie?
Vă mulţumim pentru ajutor mine
jmboy
Hi
Am avut aceeaşi problemă, reţeaua a fost reconfigurate şi NFS conexiunea a fost pierdut.
Nu am putut găsi URL-ul din soluţia de a posta aici, dar eu încă mai trebuie schimbat fişier de pe rootfs mea.
editaţi fişierul / etc / init.d / networking pe rootfs dvs.
găsi o linie care arata asa:
echo-n "Configurarea interfeţelor de reţea ..."
ifup-a
echo "făcut".
şi comentaţi linia a doua de a avea ceva de genul:
echo-n "Configurarea interfeţelor de reţea ..."
# Ifup-a
echo "făcut".
după această rootfs peste NFS nu are probleme. Cel puţin pentru mine.
Acest lucru arata ca urât soluţie, dar sperăm că vă va ajuta.
Bună, da, cand am dat peste această problemă, am schimbat la o adresă IP fixă. Lucru ciudat a fost atunci când am încercat acelaşi lucru pe o altă reţea, configurat destul de mult în acelaşi fel, nu am nevoie pentru a schimba ceva. Nu am dat seama ce diferenta a fost. Vă mulţumim pentru Irakli post.