Jump to content
    

вывод данных драйвера на виртуальный терминал или консоль

Здравствуйте.

Пытаюсь разобраться с темой терминалов (псевдо и др.) в Линукс.

Хочу реализовать вывод данных модуля ядра не в системную консоль

а какую нибудь иную (монитор состояния драйвера). Использую устройство с arm контроллером (a9)

под управлением Линукс, без графической оболочки.

Share this post


Link to post
Share on other sites

11 часов назад, winniethepooh сказал:

Хочу реализовать вывод данных модуля ядра не в системную консоль

а какую нибудь иную (монитор состояния драйвера). Использую устройство с arm контроллером (a9)

под управлением Линукс, без графической оболочки.

вероятно, что-то типа https://linux.die.net/lkmpg/x1161.html

или выводите из вашего a9 второй последовательный порт (на первом системная консоль) и валите отладку из драйвера туда. google->"kernel module serial debug"

или реализуете выхлоп printk драйвера в файл, google->"kernel module printk to file"

Share this post


Link to post
Share on other sites

3 hours ago, rkit said:

Может быть, всё-таки, лог писать? Ну или mkfifo.

может быть, но хочется в консоль..

1 hour ago, heavyC1oud said:

можно dmesg парсить

можно парсить, но данные постоянно сыплются в драйвер и хорошо бы их отображать с минимальными затратами..

55 minutes ago, Jury093 said:

вероятно, что-то типа https://linux.die.net/lkmpg/x1161.html

или выводите из вашего a9 второй последовательный порт (на первом системная консоль) и валите отладку из драйвера туда. google->"kernel module serial debug"

или реализуете выхлоп printk драйвера в файл, google->"kernel module printk to file"

в системе есть не используемый serial порт но как привязать консоль к нужному порту?

Можно ли сделать это для системы "без графики". я понимаю что можно реализовать вывод данных драйвера через serial порт но кому эти данные отображать?

 

Share this post


Link to post
Share on other sites

Ну тогда писать в /dev/tty*, /dev/pty*, /dev/pts/*. Где-то там должна быть консоль.

Share this post


Link to post
Share on other sites

16 minutes ago, rkit said:

Ну тогда писать в /dev/tty*, /dev/pty*, /dev/pts/*. Где-то там должна быть консоль.

 

да должна и есть, одна и системная,   хотелось бы в другую, не системную..

Share this post


Link to post
Share on other sites

55 минут назад, winniethepooh сказал:

в системе есть не используемый serial порт но как привязать консоль к нужному порту?

Можно ли сделать это для системы "без графики". я понимаю что можно реализовать вывод данных драйвера через serial порт но кому эти данные отображать?

 

я ранее писал - google->"kernel module serial debug"

если на пальцах - у вас в /dev вероятно есть ttyS0 и ttyS1

системную консоль (обычно ttyS0) можно посмотреть в строке cat /proc/cmdline после оператора console=

далее в драйвере через вызовы получаете доступ к ttyS1 и организуете вывод своей отладки в ttyS1

на физику контактов uart1 навешиваете переходник uart-usb (или uart-serial) и читаете на компе с любой терминалки

но это довольно хлопотно, хоть и надежно. в первой ссылке, мной предложенной, похоже вывод делается в текущий активный tty, т.е. запустили сессию ssh, зашли по сетке и вывод будет в это окно виртуальной консоли

Share this post


Link to post
Share on other sites

31 minutes ago, winniethepooh said:

да должна и есть, одна и системная,   хотелось бы в другую, не системную..

Так другую нужно создать сначала, наверно?

Share this post


Link to post
Share on other sites

52 minutes ago, rkit said:

Так другую нужно создать сначала, наверно?

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

1 hour ago, Jury093 said:

я ранее писал - google->"kernel module serial debug"

если на пальцах - у вас в /dev вероятно есть ttyS0 и ttyS1

системную консоль (обычно ttyS0) можно посмотреть в строке cat /proc/cmdline после оператора console=

далее в драйвере через вызовы получаете доступ к ttyS1 и организуете вывод своей отладки в ttyS1

на физику контактов uart1 навешиваете переходник uart-usb (или uart-serial) и читаете на компе с любой терминалки

но это довольно хлопотно, хоть и надежно. в первой ссылке, мной предложенной, похоже вывод делается в текущий активный tty, т.е. запустили сессию ssh, зашли по сетке и вывод будет в это окно виртуальной консоли

вашу мысль понял, спасибо.

Edited by winniethepooh

Share this post


Link to post
Share on other sites

1 hour ago, winniethepooh said:

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

Менять tty через Ctrl+Alt+F1-F12.

Вообще, проще не мудрить сильно и парсить dmesg:

sudo dmesg -W | grep driver_name

 

Share this post


Link to post
Share on other sites

52 minutes ago, BaN said:

Менять tty через Ctrl+Alt+F1-F12.

Вообще, проще не мудрить сильно и парсить dmesg:

sudo dmesg -W | grep driver_name

 

да мудрить не к чему, но нужно разобраться..

если парсить или писать в файл (fifo) то вывод только на системную консоль отладочного девайса, 

если нужно выводить в отдельное окошечко (типа терминала или окошечко minicom) то 

берем адаптер serial-usb, стыкуем отладочный девайс с Персональным Компьютером.

Дальше нужно разобраться какой именно tty cвязан с используемым портом и использовать приложение

(я знаком только с minicom) для подключения к tty.

если я намудрил поправьте меня пожалуйста. 

Share this post


Link to post
Share on other sites

1 hour ago, winniethepooh said:

да мудрить не к чему, но нужно разобраться..

если парсить или писать в файл (fifo) то вывод только на системную консоль отладочного девайса, 

если нужно выводить в отдельное окошечко (типа терминала или окошечко minicom) то 

берем адаптер serial-usb, стыкуем отладочный девайс с Персональным Компьютером.

Дальше нужно разобраться какой именно tty cвязан с используемым портом и использовать приложение

(я знаком только с minicom) для подключения к tty.

если я намудрил поправьте меня пожалуйста. 

Я так понял, у вашей железки нет монитора и единственный вариант подключения к ней - это через последовательный порт?

И вы хотите получить два окна в этом терминале, чтобы в одном вводить команды, а в другом видеть вывод отладочной информации модуля?

Если есть возможность, то можно установить на устройстве программу screen и подключившись minicom'ом к последовательному порту устройства, запустить screen и сделать там несколько виртуальных терминалов в одном окне.

Share this post


Link to post
Share on other sites

1 hour ago, BaN said:

Я так понял, у вашей железки нет монитора и единственный вариант подключения к ней - это через последовательный порт?

И вы хотите получить два окна в этом терминале, чтобы в одном вводить команды, а в другом видеть вывод отладочной информации модуля?

Если есть возможность, то можно установить на устройстве программу screen и подключившись minicom'ом к последовательному порту устройства, запустить screen и сделать там несколько виртуальных терминалов в одном окне.

Да нет монитора. Спасибо, screen интересная программа, нужно узнать о ней больше. 

Edited by winniethepooh

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...