Вы здесь

Не загружается RootFS

Добрый день.

Даже не знаю, с какой стороны подойти к проблеме что-то совсем тривиальное не могу найти решение :

Плата с процессором AT91SAM9263 (ARM9), ядро загружается по tftp (uboot) , rootfs монтируется по NFS.

Лог загрузки :

U-Boot> bootm
## Booting kernel from Legacy Image at 22000000 ...
Image Name: linux-2.6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1500808 Bytes = 1.4 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux................................................................................................ done, booting the kernel.
//-------------------------------//
cut
//-------------------------------//
tc-pcf8563 0-0051: setting system clock to 2010-08-16 18:48:52 UTC (1281984532)
IP-Config: Complete:
device=eth0, addr=192.168.1.100, mask=255.255.255.0, gw=192.168.1.1,
host=192.168.1.100, domain=, nis-domain=(none),
bootserver=192.168.1.110, rootserver=192.168.1.110, rootpath=
Looking up port of RPC 100003/2 on 192.168.1.110
eth0: link up (100/Full)
Looking up port of RPC 100005/1 on 192.168.1.110
VFS: Mounted root (nfs filesystem) on device 0:12.
Freeing init memory: 120K
INIT: version 2.88 booting

OpenRC 0.6.1 is starting up Gentoo Linux (armv5tejl)

Press I to enter interactive boot mode

* Mounting /proc ...
[ ok ]
* Caching service dependencies ...
/lib/rc/sh/gendepends.sh: line 716: command: not found
[ ok ]
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found
/lib/rc/sh/runscript.sh: line 252: command: not found

В какую сторону смотреть?

Смотреть на 716-ю строку /lib/rc/sh/gendepends.sh и 252-ю /lib/rc/sh/runscript.sh
КО

Покажите хотя бы

sed -n '716p' /lib/rc/sh/gendepends.sh

и

sed -n '252p' /lib/rc/sh/runscript.sh

—

Я ♥ Gentoo & Funtoo

Сточки в логе это концы файлов.

Цитата:
linuxworld rootfs # sed -n '716p' lib/rc/sh/gendepends.sh
linuxworld rootfs #

Файл gendepends.sh состоит из 92 строк, в него включены файлы

# Copyright (c) 2007-2009 Roy Marples
# All rights reserved. Released under the 2-clause BSD license.

. /etc/init.d/functions.sh
. /lib/rc/sh/rc-functions.sh

Цитата:
linuxworld rootfs # sed -n '252p' lib/rc/sh/runscript.sh
done
linuxworld rootfs #

Т.е. у меня ощущение что дело не в скриптах, а в том с какими командами они запускаются.

может вопрос и дурацкий но в скриптах пути полностью прописаны?

Если путей не было, то ошибка была бы другая, явно было бы сказано что не может найти.

Загрузку можно прервать и выйти в консоль, работают утилиты, запускается nano, а скрипты начальной загрузки не работают.

Цитата:

192 / # cd /etc/init.d
192 init.d # rc-status
Runlevel: default
udev-postmount
[ started ]
netmount
[ started ]
local
[ stopped ]
Dynamic Runlevel: hotplugged
Dynamic Runlevel: needed
udev-mount
[ started ]
Dynamic Runlevel: manual

192 init.d # ./net.eth0
Usage: net.eth0 [options] stop | start | restart | describe | zap

Options: [dDsvl:ZChqv]
-d, --debug set xtrace when running the script
-Z, --dry-run show what would be done
-s, --ifstarted only run commands when started
-D, --nodeps ignore dependencies
-l, --lockfd fd of the exclusive lock from rc
-h, --help Display this help output
-C, --nocolor Disable color output
-v, --verbose Run verbosely
-q, --quiet Run quietly

192 init.d # ./net.eth0 -d -v start
+ _conf_d=/etc/init.d/../conf.d
+ _c=net
+ [ -n net -a net != net.eth0 ]
+ [ -e /etc/init.d/../conf.d/net.default ]
+ [ -e /etc/init.d/../conf.d/net ]
+ . /etc/init.d/../conf.d/net
+ modules=busybox
+ config_eth0=192.168.1.100/24
+ fallback_eth0=192.168.0.77 netmask 255.255.255.0
+ fallback_route_eth0=default via 192.168.1.1
+ unset _c
+ [ -e /etc/init.d/../conf.d/net.eth0.default ]
+ [ -e /etc/init.d/../conf.d/net.eth0 ]
+ unset _conf_d
+ [ -e /etc/rc.conf ]
+ . /etc/rc.conf
+ rc_interactive=YES
+ rc_shell=/sbin/sulogin
+ rc_depend_strict=YES
+ rc_hotplug=*
+ rc_logger=YES
+ rc_start_wait=100
+ rc_crashed_stop=NO
+ unicode=NO
+ net_fs_list=afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs nfs nfs4 ocfs2 shfs smbfs
+ rc_tty_number=12
+ [ -n ]
+ . /etc/init.d/net.eth0
+ MODULESDIR=/lib/rc/net
+ MODULESLIST=/lib/rc/init.d/nettree
+ _config_vars=config routes
+ [ -z ]
+ IN_BACKGROUND=NO
+ description=Configures network interfaces.
+ __IFS=

+ unset _d
+ unset _f
+ [ -n start ]
+ [ start = depend ]
+ [ describe = start ]
+ [ start = start ]
+ command -v start
/lib/rc/sh/runscript.sh: line 252: command: not found
+ [ = start ]
+ [ start = start -o start = stop ]
+ shift
+ continue 2
+ [ -n ]
192 init.d #

а при такой архитектуре что в fstab?

Ничего, все монтируется раньше.

Цитата:
# /etc/fstab: static file system information.
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed); notail increases performance of ReiserFS (at the expense of storage
# efficiency). It's safe to drop the noatime options if you want and to
# switch between notail / tail freely.
#
# The root filesystem should have a pass number of either 0 or 1.
# All other filesystems should have a pass number of 0 or greater than 1.
#
# See the manpage fstab(5) for more information.
#

#

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
#/dev/BOOT /boot ext2 noauto,noatime 1 2
#/dev/ROOT / ext3 noatime 0 1
#192.168.10.1:/home/armdev/rootfs / nfs sync,hard,intr,rw,nolock 0,0
#/dev/SWAP none swap sw 0 0
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0

busybox!

Я собрал две rootfs : ~arm и arm. Оказалось, что если скопировать /bin из arm в ~arm скрипты волшебным образом начинают работать; но пересобрав busybox с флагом arm я получил другую проблему :

Цитата:
Looking up port of RPC 100003/2 on 192.168.1.110
eth0: link up (100/Full)
Looking up port of RPC 100005/1 on 192.168.1.110
VFS: Mounted root (nfs filesystem) on device 0:12.
Freeing init memory: 120K
Bad inittab entry at line 15
Bad inittab entry at line 21
can't open /dev/si: No such file or directory
can't open /dev/l0: No such file or directory
can't open /dev/l0s: No such file or directory
can't open /dev/l1: No such file or directory
can't open /dev/l2: No such file or directory

Опять опытным путем, нашел, что если пересобрать sys-apps/sysvinit система худо-бедно начинает грузиться :

Цитата:
INIT: version 2.88 booting

OpenRC 0.6.1 is starting up Gentoo Linux (armv5tejl)

Press I to enter interactive boot mode

* Mounting /proc ...
[ ok ]
* Setting system clock using the hardware clock [UTC] ...
modprobe: module 'rtc_cmos' not found
hwclock: can't open '/dev/misc/rtc': No such file or directory
* Failed to set the system clock
[ !! ]
* Autoloaded 0 module(s)
* Checking local filesystems ...
[ ok ]
* Updating /etc/mtab ...
[ ok ]
* Mounting local filesystems ...
[ ok ]
* Setting hostname to localhost ...
[ ok ]
* Configuring kernel parameters ...
[ ok ]
* Creating user login records ...
[ ok ]
* Cleaning /var/run ...
[ ok ]
* Wiping /tmp directory ...
[ ok ]
* Mounting /dev/pts ...
[ ok ]
* Mounting /dev/shm ...
[ ok ]
* Setting terminal encoding [ASCII] ...
[ ok ]
* Setting keyboard mode [ASCII] ...
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
[ ok ]
* Loading key mappings [us] ...
/lib/rc/sh/runscript.sh: line 252: loadkeys: not found
* Error loading key mappings
[ !! ]
* ERROR: keymaps failed to start
* Terminating remaining processes ...
[ ok ]
* Killing remaining processes ...
[ ok ]
* Saving dependency cache ...
[ ok ]
* Remounting remaining filesystems read-only ...
[ ok ]
* Bringing up interface lo
* Caching network module dependencies
* 127.0.0.1/8 ...
[ ok ]
* Adding routes
* 127.0.0.0/8 via 127.0.0.1 ...
[ ok ]
* Mounting USB device filesystem [usbfs] ...
[ ok ]
* Activating swap devices ...
[ ok ]
* ERROR: urandom failed to start
INIT: Entering runlevel: 3
* Setting keyboard mode [ASCII] ...
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
[ ok ]
* Loading key mappings [us] ...
/lib/rc/sh/runscript.sh: line 252: loadkeys: not found
* Error loading key mappings
[ !! ]
* ERROR: keymaps failed to start
* Mounting network filesystems ...
[ ok ]
* ERROR: urandom failed to start
* Starting local ...
[ ok ]
INIT: Id "c4" respawning too fast: disabled for 5 minutes
INIT: Id "c2" respawning too fast: disabled for 5 minutes
INIT: Id "c5" respawning too fast: disabled for 5 minutes
INIT: Id "c3" respawning too fast: disabled for 5 minutes
INIT: Id "s0" respawning too fast: disabled for 5 minutes
INIT: Id "c6" respawning too fast: disabled for 5 minutes
INIT: Id "c1" respawning too fast: disabled for 5 minutes
INIT: no more processes left in this runlevel

Теперь можно ковырять конфигурационные файлы.

Аккуратно запустил все процессы :

Цитата:

* Starting local ...
[ ok ]

This is localhost.unknown_domain (Linux armv5tejl 2.6.32.11) 14:28:02

localhost login:

решение проблемы не знаю. но есть пару вопросов
1. Возможно ли поставить на такую плату Gentoo Linux?
2. Если да, то где про это почитать?
3. Имеет ли к этому отношение раздел arm в документации по установке?