Перейти к содержанию
    

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 порт но кому эти данные отображать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 minutes ago, rkit said:

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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, зашли по сетке и вывод будет в это окно виртуальной консоли

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, winniethepooh said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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, зашли по сетке и вывод будет в это окно виртуальной консоли

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

Изменено пользователем winniethepooh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, winniethepooh said:

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

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

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

sudo dmesg -W | grep driver_name

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, winniethepooh said:

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

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

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, BaN said:

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

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

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

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

Изменено пользователем winniethepooh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/24/2021 at 10:12 AM, winniethepooh said:

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

 

man screen

https://linux.die.net/man/1/screen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...