ЗАО «ЗЭО»

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

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

Новости:

Автор Тема: как заставить работать консоль? Yocto 1.2, /etc/inittab  (Прочитано 3391 раз)

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

LinuxUser777

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 8

Собрал Yocto 1.2 для qemuarm, теперь пытаюсь запустить это дело на ARMе PXA270 (ТионПро-270). U-boot вижу, лог ядра вижу, "VFS: Mounted root (ext3 filesystem). Freeing init memory: 120K" - это последнее что появляется, т.е. по факту сама консоль на ttyS0 работает, проблема в настройках.

Вот для другого компьютера на базе ARM я использую Debian 6.0 (сделал rootfs при помощи debootstrap) и там в inittab например:

# Example how to put a getty on a serial line (for a terminal)
#T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100

я просто раскомментировал эту строку и всё заработало.

А вот на Yocto вообще не понимаю что делать (при том что любой образ для OpenEmbedded всегда работал отлично и по дефолту на консоль всегда переходит). Еще и в Debian и в Yocto есть строка "# Normally not reached, but fallthrough in case of emergency" после которой в Debian у меня расположена настройка для консольного входа и он работает (AT91SAMG45), а на PXA270 меня смущает что там есть VGA выход и оно может туда перескакивать и последние строки с настройкой последовательного порта уже не вызываются...

Не знаю как это отладить, помогите пожалуйста кто знает :)

Вот мой inittab:

# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.
id:5:initdefault:

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
#S:2345:respawn:/sbin/getty 115200 ttyAMA0
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
#  <id>:<runlevels>:<action>:<process>
#

1:2345:respawn:/sbin/getty 38400 tty1
ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100

Добавил в /etc/securetty строку ttyS0, а также строку "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" в конце inittab - толку ноль, последнее что видно это "Freeing init memory: 120K".

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

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405

Загрузитесь с добавлением к bootargs в U-Boots init=/bin/sh:

setenv bootargs ${bootargs} init=/bin/sh

Может быть ядро без EABI, а КФС с EABI.
Записан

LinuxUser777

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 8

Загрузитесь с добавлением к bootargs в U-Boots init=/bin/sh:
setenv bootargs ${bootargs} init=/bin/sh
Может быть ядро без EABI, а КФС с EABI.
я попробую, но где в таком случае появится консоль? там же где и ядро вываливает? т.е. на ttyS0

ушел пробовать :)
Записан

LinuxUser777

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 8

Загрузитесь с добавлением к bootargs в U-Boots init=/bin/sh:
setenv bootargs ${bootargs} init=/bin/sh
Может быть ядро без EABI, а КФС с EABI.
Да, ядро старое 2.6.22 и на 99% вероятно собрано с OABI, а Yocto образ с EABI 100% - сам только что собрал.

Kernel command line: init=/bin/sh root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=10 console=ttyS0,115200 video=pxa...Так выглядит начало строки параметров ядра, всё верно? Но тем не менее на ttyS0 порт ничего не вываливается, последнее что видно:
Waiting 10sec before mounting root device...
mmc0: new SDHC card at address b368
mmcblk0: mmc0:b368 NCard 3879936KiB
 mmcblk0: p1
kjournald starting.  Commit interval 5 seconds
EXT3 FS on mmcblk0p1, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).
Freeing init memory: 120K

Я ожидаю что init=/bin/sh должно что-то выдавать, но реакции нет.
По опыту знаю что когда не совпадает ABI, то вываливается строчка "Kernel panic - not syncing attempted to kill init", но тут её нет, т.е. ни ошибка ни успех вообще не попадает на консоль, ничего не попадает. Но ведь и ядро и uboot-то выдают. Странно всё это.
« Последнее редактирование: 15 Июль, 2012, 02:30:01 от LinuxUser777 »
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Записан

LinuxUser777

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 8

http://zao-zeo.ru/dokuwiki/doku.php/linux#различные_сборки_ядра
http://www.zao-zeo.ru/media/files/linux/2.6.22/image/uImage-2.6.22.19_svn818_tion-pro270_eabi
Спасибо!
Прошил согласно http://www.emb-linux.narod.ru/tion-pro-270/flashing.html этот файл uImage-2.6.22.19_svn818_tion-pro270_eabi и всё заработало!
То есть не совсем заработало, теперь я просто вижу дальше консольный вывод и теперь могу разбираться дальше с проблемами :)

В принципе тему можно закрывать.

P.S.
Уже скачал linux-2.6.22.19.tar.bz2 и накатил на него linux-2.6.22.19_tion270_svn1920_201204021347.tar.gz.
Записан