LINUX.ORG.RU

Программно выключить системные сообщения по SerialPort

 , , ,


1

3

Здравствуйте имею девайс на ARM9 на котором установлен Linux2.6.17.14

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

но есть проблема, система в этот порт посылает системные сообщения что и усложняет чтение сообщений подключенному устройству, методом тыка обнаружил, что для этого используется порт /dev/ttyS1

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

Поэтому вопрос, есть возможно программно отключать систему от взаимодействия с этим портом? разработка на c/c++

пример системных сообщений: https://prnt.sc/st66x1



Последнее исправление: Magals (всего исправлений: 1)

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

eagleivg ★★★★★
()

Ищи строчку console=ttyS1 в параметрах ядра. Может быть её можно запатчить даже где-то в загрузчике

mittorn ★★★★★
()

А загрузчик и boot-ROM чипа сообщениями на этот порт не сыпят?

anonymous
()
Ответ на: комментарий от mittorn

console - это же только для графических эмуляторов терминала вроде бы, нет?

Но таки да, видимо, /dev/ttyS1 используется как текущая консоль. Т.е. как /dev/tty0 - в данный момент, на этой системе, это одно и тоже. Текущую консоль можно переключить, да. Но видимо, у системы нет других консолей.

Текущая консоль меняется программой chvt если что. Не знаю, правда, как это поможет в данном случае.

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

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

Вообще, если я правильно понимаю, как это устроено. У ядра есть слой виртуальных терминалов. vt. Именно на этом уровне переключает терминалы chvt. Всего у системы 63 виртуальных терминала.

Далее, каждый виртуальный терминал может быть связан со своим драйвером. Есть стандартный драйвер, который встроен в ядро. Он загружается в любом случае и обслуивает терминалы с самого начала. У этого драйвера можно забрать любой виртуальный терминал другим драйвером. Например так и делает фрэймбуфер. Это называется takeover. Или иксы. Иксы вроде тоже загружают свой драйвер виртуального терминала.

Когда виртуальный терминал передан другому драйверу, стандартный больше не обслуживает эти терминалы. Но по прежнему можно переключаться между разными виртуальными терминалами командой chvt или с клавиатуры ctrl+alt+F1..6.

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

И наверное, какой-то из виртуальных терминалов можно забрать у стандартного драйвера и связать с /dev/ttyS1, т.е. с ком портом.

Кажется так. Но это мое понимание. Может быть я и ошибаюсь.

hibou ★★★★★
()

конечно есть. но чтобы не ломать bsp лучше использовать свободный порт

zudwa
()
Ответ на: комментарий от hibou

можно еще в inittab посмотреть что прописано.

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

console это для вывода лога ядра кроме early, он может быть захардкожен

mittorn ★★★★★
()

попробуй

echo 3 > /proc/sys/kernel/printk

будет только ошибки выдавать. пропиши в /root/.profile

guskov_roman
()
Последнее исправление: guskov_roman (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.