Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Проблемы с rootfs на USB-флешке
haker_fox
Добавлено 18.03.2012 16:00
0
Сообщение: 1
haker_fox
3

Пункты: 3617
Регистрация: 03.07.2011
Здравствуйте!
Столкнулся с забавной проблемой. Побороть не смог. Решил грузить корневой раздел с флешки. Для этого подготовил на ней primary partition с ext2.

Поправил конфиг ядра: console=tty0,115200 rw rootdelay=15 mem=64M root=/dev/sda1

Компилировал скриптом make_system, находится в каталоге /home/user/buildroot-2010.08

Скопировал полученную ФС на флешку. Ядро грузил u-boot'ом. Ядро стартует, но в самом конце неожиданно находит некое устройство /dev/spb (что-то связано с аудио) и говорит, что не может его открыть. На этом загрузка завершается.

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

К сожалению, не сохранил лог загрузки ядра... но может быть можно что-то и так сказать?

В чем может быть дело? Меняеются только параметры старта ядра. Больше ничего. Если строку переписать назад, чтобы ядро грузило ФС с nand, и загрузить его по сети u-boot'ом, все снова нормально.

Подозреваю, что при перекомпиляции всей системы, из-за изменений параметров загрузки ядра, что-то меняется в rootfs. Исчезает какой-либо скрипт, или появляется, что заставляет ядро искать этот злосчастный /dev/spb. Я пока еще новиче в линуксе, буду рад любым советам)

Плата эта http://starterkit.ru/html/index.php?name=shop&op=view&id=49
Линукс на основе busybox и buildroot.

Спасибо!
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 18.03.2012 16:27 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
неожиданно находит некое устройство /dev/spb

хм.. первый раз такое вижу.. а точно spb а не dsp или что-то подобное?

попробуйте вернуть всё "на исходную", пересобрать и прошить - так вы убедитесь что исходники правильные
далее проверьте, что в корне свежесгенеренной рутовой есть симлинк на /bin/busybox
и в строке параметров для ядра tty0 - это опечатка или так задумано? обычно там фигурирует ttyS0 - вывод диагностики в последовательный порт..
вместо rootdelay=N лучше писать rootwait

если еще раз будете пробовать, то сохраните 10-20 последних строк лога - так картина будет более наглядной..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
haker_fox
Добавлено 18.03.2012 17:40 Сообщение: 3
haker_fox
3

Пункты: 3617
Регистрация: 03.07.2011
Да, мог ошибиться. Вполне возможно, что /dev/dsp. Вполне возможно, что вместе tty0 ttyS0. Вывода в последовательный порт работает. Эти вещи я даже и не трогал.

В общем стоит заставить ядро грузиться из нанд, все ок. Стоит поменять строку загрузки на флешку, ядро виснет. Все остальное не меняется.

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

Спасибо!
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 18.03.2012 18:06 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
В общем стоит заставить ядро грузиться из нанд, все ок. Стоит поменять строку загрузки на флешку, ядро виснет. Все остальное не меняется.

вероятно ядро "не виснет" - то что нет приглашающего логина, еще не значит повисание, просто не прошел запуск программы которая выводит эти буковки..
если в рутовой разрешена работа сети и стандартный адрес 192.168.0.136, то можно попробовать попинговать этот адрес. откликнется - точно живая..

можно изучить содержимое /etc/inittab в этой рутовой в строке со словами getty ttyS0 (у вас 9g45 и ничего не меняли). если их нет, то счастья не будет..

Цитата
Спасибо!

да пока не за что - проблема то не решена..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
haker_fox
Добавлено 19.03.2012 04:35 Сообщение: 5
haker_fox
3

Пункты: 3617
Регистрация: 03.07.2011
Гм, а компиляция рутовой ФС может зависить от этой злополучной строки запуска ядра (параметров запуска)? Получается, что так. По крайней мере для этой платы...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 19.03.2012 09:04 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Гм, а компиляция рутовой ФС может зависить от этой злополучной строки запуска ядра (параметров запуска)? Получается, что так. По крайней мере для этой платы...

чисто в теории, да, при условии, что есть некий скрипт, который анализирует изменения этой строки и "пакостит" в рутовой.. но это в теории..
на виртуалках к китам этого не замечалось..
впрочем, не исключается вариант, что билдрут, даже корректно просетапленный и настроенный высасывает из инета очередной кривонастроенный пакет, который может дать такой глюк..
для чистоты эксперимента надо еще раз установить виртуалку к киту, запретить ей хождение в инет и пересобрать два варианта - грузить с нанда и грузить с флешки/ отсюда делать выводы..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.03.2012 16:11 Сообщение: 7
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата
Да, мог ошибиться. Вполне возможно, что /dev/dsp. Вполне возможно, что вместе tty0 ttyS0. Вывода в последовательный порт работает.


Покажите полный лог загрузки ядра - куда-нибуть выложите, например сюда
http://pastebin.com/
Спуститься к концу Подняться к началу
Персональная информация
haker_fox
Добавлено 19.03.2012 17:21 Редактировалось 19.03.2012 17:32 Сообщение: 8
haker_fox
3

Пункты: 3617
Регистрация: 03.07.2011
Прикладываю лог http://pastebin.com/zJCUspD6
Да, строка запуска ядра такая
console=ttyS0,115200 rw rootwait mem=64M root=/dev/sda1
Если вернуть строку запуска назад на нанд, все ОК.
Более ничего не меняется. В инет не ходим. Компилирую вместе с rootfs при помощи скрипта make_system.

Спасибо!
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.03.2012 18:25 Сообщение: 9
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата
Прикладываю лог http://pastebin.com/zJCUspD6


Вот другое дело :) строку загрузки которую получает ядро видно в логе (см строку 47 по ссылке). Проблема тут в буилдруте или в скрипте сборки, не знаю по какой причине файлы оказываются с правами юзера. Для начала включите поддержку ext3 в ядре и сделайте на флешке не ext2 а ext3 - она журналирумая и ее разрушить сложнее, когда скопируете корневую фс на флешку, сделайте владельцем /bin/busybox пользователя root, например если перейдете в каталог куда смонтирована флешка
#sudo chown root.root bin/busybox
Спуститься к концу Подняться к началу
Персональная информация
haker_fox
Добавлено 19.03.2012 18:31 Сообщение: 10
haker_fox
3

Пункты: 3617
Регистрация: 03.07.2011
Спасибо, уважаемый sasamy! Сейчас у меня на дворе ночь, днем попробую)
Интересно, если ядро может получть доступ к фалам root, то почему же оно не может получить доступ к файлам с правами user, он ведь ниже рангом?)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux