ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Загрузка rootfs через NFS  (Прочитано 8591 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Ziminets

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 64
Загрузка rootfs через NFS
« : 24 Июня, 2013, 17:27:36 »

Подскажите какие переменные окружения нужно задать в U_Boot, чтобы загрузить КФС через NFS?
Использую Ваш образ Ubuntu для VirtualBox, и вот такие настройки для U-Boot:

bootargs=console=ttyAM0,115200n8
bootdelay=3
baudrate=115200
netmask=255.255.255.0
bootfile="uImage"
loadaddr=0x42000000
bootargs_mmc=setenv bootargs ${bootargs} root=/dev/mmcblk0p3 rw rootwait ip=dhcp fec_mac=${ethaddr}
bootcmd_mmc=run bootargs_mmc; mmc read 0 ${loadaddr} 100 3000; bootm
ethact=FEC0
serverip=192.168.127.1
ipaddr=192.168.127.3
ethaddr=40:D8:55:07:02:7E
nfsroot=/home/ubuntu/Projects/TionPro28/ltib/ltib/rootfs
bootcmd=run bootcmd_net
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=${ipaddr} nfsroot=${serverip}:${nfsroot},v3,tcp fec_mac=${ethaddr}
kernel=uImage
stdin=serial
stdout=serial
stderr=serial
bootcmd_net=run bootargs_nfs; bootm
ver=U-Boot 2009.08 (Jun 22 2013 - 14:17:30)

Environment size: 714/130044 bytes
« Последнее редактирование: 24 Июня, 2013, 17:29:45 от Ziminets »
Записан

Ziminets

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 64
Re: Загрузка rootfs через NFS
« Ответ #1 : 24 Июня, 2013, 17:33:44 »

Вот еще лог загрузки:

PowerPrep start initialize power...
Battery Voltage = 1.59V
No battery or bad battery detected!!!.Disabling battery
voltage measurements./r/nApr 24 201311:42:00
FRAC 0x92925552
memory type is DDR2
Wait for ddr ready 1power 0x00820616
Frac 0x92925552
start change cpu freq
hbus 0x00000003
cpu 0x00010001
start test memory accress
ddr2 0x40000000
finish simple test


U-Boot 2009.08 (Jun 22 2013 - 14:17:30)


Freescale i.MX28 family

CPU:   454 MHz

BUS:   151 MHz
EMI:   205 MHz

GPMI:   24 MHz

DRAM:  128 MB

MMC:   IMX_SSP_MMC: 0, IMX_SSP_MMC: 1

In:    serial

Out:   serial

Err:   serial

Net:   got MAC address from IIM: 00:04:00:00:00:00

FEC0

Warning: FEC0 MAC addresses don't match:

Address in SROM is         00:04:00:00:00:00

Address in environment is  40:d8:55:07:02:7e


Hit any key to stop autoboot:  3  2  1  0

## Booting kernel from Legacy Image at 42000000 ...

   Image Name:   Linux-2.6.35.3-571-gcca29a0

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    2481840 Bytes =  2.4 MB

   Load Address: 40008000

   Entry Point:  40008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK


Starting kernel ...


Uncompressing Linux... done, booting the kernel.
Linux version 2.6.35.3-571-gcca29a0 (ubuntu@ubuntu) (gcc version 4.4.4 (4.4.4_09.06.2010) ) #2 PREEMPT Sat Jun 22 13:49:01 OMSST 2013

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

CPU: VIVT data cache, VIVT instruction cache

Machine: Freescale MX28EVK board

Memory policy: ECC disabled, Data cache writeback

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512

Kernel command line: console=ttyAM0,115200n8 root=/dev/nfs ip=192.168.127.3 nfsroot=192.168.127.1:/home/ubuntu/Projects/TionPro28/ltib/ltib/rootfs,v3,tcp fec_mac=40:D8:55:07:02:7E

PID hash table entries: 512 (order: -1, 2048 bytes)

Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)

Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)

Memory: 128MB = 128MB total

Memory: 124492k/124492k available, 6580k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xfde00000 - 0xffe00000   (  32 MB)

    vmalloc : 0xc8800000 - 0xf0000000   ( 632 MB)

    lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)

    modules : 0xbf000000 - 0xc0000000   (  16 MB)

      .init : 0xc0008000 - 0xc0030000   ( 160 kB)

      .text : 0xc0030000 - 0xc04cd000   (4724 kB)

      .data : 0xc04ce000 - 0xc050a500   ( 242 kB)

SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Hierarchical RCU implementation.

   RCU-based detection of stalled CPUs is disabled.

   Verbose stalled-CPUs detection is disabled.

NR_IRQS:288

Console: colour dummy device 80x30

console [ttyAM0] enabled

Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)

pid_max: default: 32768 minimum: 301

Security Framework initialized

SELinux:  Initializing.

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

regulator: core version 0.5

NET: Registered protocol family 16

regulator: vddd: 800 <--> 1575 mV at 1500 mV fast normal

regulator: vdddbo: 800 <--> 1575 mV fast normal

regulator: vdda: 1500 <--> 2275 mV at 1800 mV fast normal

vddio = 3380000, val=10

regulator: vddio: 2880 <--> 3680 mV at 3380 mV fast normal

regulator: overall_current: fast normal

regulator: vbus5v:

regulator: mxs-duart-1: fast normal

regulator: mxs-bl-1: fast normal

regulator: mxs-i2c-1: fast normal

regulator: mmc_ssp-1: fast normal

regulator: mmc_ssp-2: fast normal

regulator: charger-1: fast normal

regulator: power-test-1: fast normal

regulator: cpufreq-1: fast normal

i.MX IRAM pool: 124 KB@0xc8820000

Initializing GPMI pins

Initializing GPMI pins

usb DR wakeup device is registered

IMX usb wakeup probe

audit: cannot initialize inotify handle

bio: create slab <bio-0> at 0

SCSI subsystem initialized

Freescale USB OTG Driver loaded, $Revision: 1.55 $

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

Switching to clocksource mxs clock source

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 4096 (order: 3, 32768 bytes)

TCP bind hash table entries: 4096 (order: 2, 16384 bytes)

TCP: Hash tables configured (established 4096 bind 4096)

TCP reno registered

UDP hash table entries: 256 (order: 0, 4096 bytes)

UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)

NET: Registered protocol family 1

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

Bus freq driver module loaded

IMX usb wakeup probe

usb h1 wakeup device is registered

mxs_cpu_init: cpufreq init finished

audit: initializing netlink socket (disabled)

type=2000 audit(0.590:1): initialized

VFS: Disk quotas dquot_6.5.2

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

JFFS2 version 2.2. (NAND) ?© 2001-2006 Red Hat, Inc.

msgmni has been set to 243

alg: No test for stdrng (krng)

cryptodev: driver loaded.

Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

get_max_memsize: mem_size now 614400

mxsfb_check_var: xres 640, yres 480, bpp 16

get_matching_pentry: 480:640:16 vs 480:640:16

get_matching_pentry: 480:640:16 vs 480:640:16

get_matching_pentry: 480:640:16 vs 480:640:16

mxsfb_pan_display: var->xoffset 0, info->var.xoffset 0

Console: switching to colour frame buffer device 80x30

mxsfb_pan_display: var->xoffset 0, info->var.xoffset 0

mxs-duart.0: ttyAM0 at MMIO 0x80074000 (irq = 47) is a DebugUART

UART set mode; UART - 0, mode - 0

mxs-auart.0: ttySP0 at MMIO 0x8006a000 (irq = 112) is a mxs-auart.0

Found APPUART 3.1.0

UART set mode; UART - 1, mode - 1

mxs-auart.1: ttySP1 at MMIO 0x8006c000 (irq = 113) is a mxs-auart.1

Found APPUART 3.1.0

UART set mode; UART - 2, mode - 2

mxs-auart.2: ttySP2 at MMIO 0x8006e000 (irq = 114) is a mxs-auart.2

Found APPUART 3.1.0

UART set mode; UART - 3, mode - 0

mxs-auart.3: ttySP3 at MMIO 0x80070000 (irq = 115) is a mxs-auart.3

Found APPUART 3.1.0

UART set mode; UART - 4, mode - 0

brd: module loaded

loop: module loaded

i.MX GPMI NFC

NFC: Version 1, 8-chip GPMI and BCH

Boot ROM: Version 1, Single-chip boot area, block mark swapping supported

Scanning for NAND Flash chips...

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)

-----------------------------

NAND Flash Device Information

-----------------------------

Manufacturer      : Micron (0x2c)

Device Code       : 0xda

Cell Technology   : SLC

Chip Size         : 256 MiB

Pages per Block   : 64

Page Geometry     : 2048+64

ECC Strength      : 4 bits

ECC Size          : 512 B

Data Setup Time   : 20 ns

Data Hold Time    : 10 ns

Address Setup Time: 20 ns

GPMI Sample Delay : 6 ns

tREA              : Unknown

tRLOH             : Unknown

tRHOH             : Unknown

Description       : MT29F2G08

-----------------

Physical Geometry

-----------------

Chip Count             : 1

Page Data Size in Bytes: 2048 (0x800)

Page OOB Size in Bytes : 64

Block Size in Bytes    : 131072 (0x20000)

Block Size in Pages    : 64 (0x40)

Chip Size in Bytes     : 268435456 (0x10000000)

Chip Size in Pages     : 131072 (0x20000)

Chip Size in Blocks    : 2048 (0x800)

Medium Size in Bytes   : 268435456 (0x10000000)

------------

NFC Geometry

------------

ECC Algorithm          : BCH

ECC Strength           : 8

Page Size in Bytes     : 2112

Metadata Size in Bytes : 10

ECC Chunk Size in Bytes: 512

ECC Chunk Count        : 4

Payload Size in Bytes  : 2048

Auxiliary Size in Bytes: 16

Auxiliary Status Offset: 12

Block Mark Byte Offset : 1999

Block Mark Bit Offset  : 0

-----------------

Boot ROM Geometry

-----------------

Boot Area Count            : 1

Boot Area Size in Bytes    : 20971520 (0x1400000)

Stride Size in Pages       : 64

Search Area Stride Exponent: 2

Scanning device for bad blocks

Boot area protection is enabled.

Creating 2 MTD partitions on "gpmi-nfc-main":

0x000000000000-0x000001400000 : "gpmi-nfc-0-boot"

0x000001400000-0x000010000000 : "gpmi-nfc-general-use"

mxs-spi mxs-spi.0: Max possible speed 24000 = 24000000/2 kHz

mxs-spi mxs-spi.0: at 0x80014000 mapped to 0xF0014000, irq=84, bus 1, DMA ver_major 4

Freescale FlexCAN Driver

FEC Ethernet Driver

fec_enet_mii_bus: probed

Register PTP device as char /dev/ptp

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

fsl-ehci fsl-ehci: Freescale On-Chip EHCI Host Controller

fsl-ehci fsl-ehci: new USB bus registered, assigned bus number 1

fsl-ehci fsl-ehci: irq 92, io base 0x80090000

fsl-ehci fsl-ehci: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

ARC USBOTG Device Controller driver (1 August 2005)

mice: PS/2 mouse device common for all mice

input: MXS touchscreen as /devices/virtual/input/input0

rtc-ds1307 0-0068: rtc core: registered m41t00 as rtc0

i2c /dev entries driver

IR NEC protocol handler initialized

IR RC5(x) protocol handler initialized

IR RC6 protocol handler initialized

IR JVC protocol handler initialized

IR Sony protocol handler initialized

Linux video capture interface: v2.00

WARNING : No battery connected !

Aborting power driver initialization

mxs-battery: probe of mxs-battery.0 failed with error 1

mxs watchdog: initialized, heartbeat 19 sec

mxs-mmc: MXS SSP Controller MMC Interface driver

mxs-mmc mxs-mmc.0: mmc0: MXS SSP MMC DMAIRQ 82 ERRIRQ 96

dcp dcp.0: DCP crypto enabled.!

usbcore: registered new interface driver hiddev

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

TCP cubic registered

NET: Registered protocol family 17

can: controller area network core (rev 20090105 abi 8)

NET: Registered protocol family 29

regulator_init_complete: incomplete constraints, leaving vbus5v on

rtc-ds1307 0-0068: setting system clock to 2013-06-25 17:01:41 UTC (1372179701)

mmc0: new high speed SDHC card at address 1234

mmcblk0: mmc0:1234 SA08G 7.28 GiB

 mmcblk0: p1 p2 p3

eth0: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=0:00, irq=-1)

eth1: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=0:01, irq=-1)

Sending DHCP requests .

PHY: 0:00 - Link is Up - 100/Full

..... timed out!

IP-Config: Retrying forever (NFS root)...

eth0: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=0:00, irq=-1)

eth1: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=0:01, irq=-1)

Sending DHCP requests .

PHY: 0:00 - Link is Up - 100/Full

....
Записан

Ziminets

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 64
Re: Загрузка rootfs через NFS
« Ответ #2 : 24 Июня, 2013, 17:47:52 »

Я так понял что Тион пытается получить IP от DHCP-сервера, но я вроде везде поубирал где встречалось упоминание dhcp. Как вообще настроить Тион на работу с фиксированными IP-адресами?

P.S. Пробовал монтировать каталог по NFS с уже загруженного Тиона, всё работает. Из этого я сделал вывод, что проблема именно в настройках U-Boot.
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Загрузка rootfs через NFS
« Ответ #3 : 26 Июня, 2013, 15:40:47 »

Попробуйте использовать это ядро http://www.zao-zeo.ru/media/files/linux/2.6.35/tion-pro28_linux_svn2460.zip
В виртуальной машине пока не учтены последние изменения, внесенные в образ. Там были изменения, касающиеся работы ethernet. Возможно дело в этом.
Записан

Ziminets

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 64
Re: Загрузка rootfs через NFS
« Ответ #4 : 26 Июня, 2013, 16:09:18 »

Тот образ, на который Вы дали ссылку, я тоже пробовал загружать. С ним всё то же самое.
Пока что я выяснил, что на виртуальной машине не установлен сервер DHCP (TFTP-сервер видимо тоже). В общем надо настраивать Ubuntu.
Еще у меня такое подозрение, что до полной загрузки сеть на Тионе то ли вообще не работает, то ли работает как то ни так. А вот если загрузиться с mmc, сеть работает и NFS без проблем монтируется.
Попробуйте, пожалуйста, у себя загрузку через NFS, и если всё нормально, то скиньте настройки для U-Boot.
« Последнее редактирование: 26 Июня, 2013, 16:20:22 от Ziminets »
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Загрузка rootfs через NFS
« Ответ #5 : 26 Июня, 2013, 17:09:51 »

Задайте IP-адресс в U-boot в таком виде:

ipaddr=192.168.127.3:::::eth0:none

none - отключает DHCP.
Записан

Ziminets

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 64
Re: Загрузка rootfs через NFS
« Ответ #6 : 27 Июня, 2013, 16:23:40 »

Всё получилось!
Нашёл 2 варианта решения.
1. Установить на виртуальную машину DHCP-сервер и настроить его.
2. Вариант предложенный Данилой.
Ниже привожу настройки U-Boot, может кому пригодятся.

bootdelay=3
baudrate=115200
loadaddr=0x42000000
kernel=uImage
ethact=FEC0
ipaddr=192.168.127.10
serverip=192.168.127.1
netmask=255.255.255.0
netconfig=192.168.127.10:192.168.127.1::::eth0:none
bootargs=console=ttyAM0,115200n8
bootargs_mmc=setenv bootargs ${bootargs} root=/dev/mmcblk0p3 rw rootwait ip=dhcp(или 2: ip=${netconfig}) fec_mac=${ethaddr}
bootcmd_mmc=run bootargs_mmc; mmc read 0 ${loadaddr} 100 3000; bootm
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp(или 2: ip=${netconfig}) nfsroot=${serverip}:${nfsroot},v3,tcp fec_mac=${ethaddr}
bootcmd_net=run bootargs_nfs; tftpboot ${loadaddr} ${kernel}; bootm
nfsroot=/home/ubuntu/Projects/TionPro28/ltib/ltib/rootfs
bootcmd=run bootcmd_net
stdin=serial
stdout=serial
stderr=serial

Образ ядра грузится по tftp (на ВМ Ubuntu уже настроен сервер atftpd и расшарена папка /var/lib/tftpboot), а КФС монтируется из NFS.
Записан