LINUX.ORG.RU

Как Выводить сообщения ядра в UART в реальном времени


0

0

Занимаюсь поритрованием ядра линукс на ARM устройство Первое что велаю это в файле main.c в стартовой процедуре регистрирую консоль static struct console my_sercons = { name : "ttyS", write: myconsole_write, //console_write read : NULL, device : NULL, unblank : NULL, setup : mycon_setup, flags : CON_PRINTBUFFER, index : -1, cflag : 0, next : NULL }; void myconreg() { register_console(&my_sercons); }; после этого сообщения выводимые ядром через printk приходят...Но я не вижу сообщений от приложений...тоесть как только запустился /init с RAMDISK'a я не вижу ни слова от него...Что мне сделать чтоб получить полный вывод лога ядра и приложений в UART??


Скорее всего init просто файл на файловой системе /dev/ttyS0 открыть не может. А причин этому может быть много.

welkam ★★
()
Ответ на: комментарий от welkam

я положил пустой файл в папку /dev/ttyS0 собрал образ но init по прежнему не выводит сообщений изменилось только то что раньше последним сообщением было Unable to open an inital console теперь этого нет...

azt59
() автор топика
Ответ на: комментарий от azt59

>да я передаю ядру root=ttyS0 initramdisk вкомпилен в ядро... в нем присутствует и инит и файлы консолей...

через root ты передаешь корневой раздел. А консоль ты должен передавать через console=/dev/ttyS0

I3rain
()
Ответ на: комментарий от azt59

>root=ttyS0

сипец. (новый вид программистов такой: спец на си)

а вообще зачем ты регистрируешь консоль?

"console=ttyS0,115200" при запуске ядра должно быть достаточно.

xydo ★★
()
Ответ на: комментарий от xydo

во во сиец стоит только попечататься.... естессно console=ttyS0 консоль регистрирую потому что Железка на которую я портирую линукс не совсем поддерживается послежним поэтому идёт переписывание некоторых мест под себя а для дебага регистрирую консоль чтоб хоть что-то в УАРТ сыпалось...вы мне скажите от инита мне впринципе сообщения прийдут или их как-то подругому отлавливать надо?

azt59
() автор топика
Ответ на: комментарий от azt59

Это уже зависит от твоего initrd. Создает ли он у тебя tty устройства?

I3rain
()
Ответ на: комментарий от azt59

>я положил пустой файл в папку /dev/ttyS0 собрал образ но init по прежнему не выводит сообщений

Я бы очень удивился если бы там что либо появилось.

I3rain
()

В моем initrd есть скрипт, в котором следующие строки. 

[ -e /dev/console ] || mknod -m 0600 /dev/console c 5 1

Вот у тебя похоже где то тут проблема.

I3rain
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.