2016-04-25 2 views
1

Я ищу способ избавиться от (ядро?) Сообщений, которые появляются в моем приложении ncurses. Я сам написал приложение, поэтому я бы предпочел API, который перенаправляет эти сообщения в/dev/null. Я имею в виду такие сообщения, как вставленный USB-накопитель.ncurses отключает сообщения ядра на экране консоли?

Я пытался добавить, но, к сожалению, она не работает

freopen("/dev/null", "w", stderr); 

Я не убегаю X, просто Ncurses прямо из консоли.

Я имею в виду такие сообщения, как USB-накопитель, который вставлен.

Спасибо!

ОБНОВЛЕНИЕ 1: Кто-то голосует, чтобы закрыть этот вопрос, потому что он не будет связан с программированием. Но это, я сам написал приложение ncurses, я ищу способ отключить сообщение ядра. Я обновил вопрос.

UPDATE 2: Позвольте мне объяснить, что я делаю, и Что проблема более подробно:

Я использую Tiny Core Linux, то будет после загрузки начинается (само пишется) Ncurses программа , Теперь, когда вы, например, подключаете USB-накопитель, на моей программе отображается сообщение (я подозреваю, что ядро). Я думаю, что сообщение написано прямо в фреймбуфере. Я использую TC 5.x, так как мне нужно 32 бит, im работает под управлением root и имеет полный доступ к os.

+0

Перейдите на другую виртуальную консоль, например, с помощью CTRL-ALT-F2 и войдите в систему? –

+0

@ ThomasPadron-McCarthy, к сожалению, это приложение KIOSK, поэтому я не понимаю, как это сделать? – Roger

+0

'dmesg --console-off'? –

ответ

1

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

Я также хочу отметить, что для того, чтобы разделить внешнюю зависимость, вы должны включить встроенный контроль для VT, но обратите внимание, что используемые структуры могут быть нестабильными между версиями ядра и могут потребовать перекомпиляции. Источники KBD project's, в частности openvt.c, чтобы посмотреть, как это работает.

0

Попытка настройки ядра через параметры загрузки с опцией:

LogLevel = 3 (или более низкое значение)

 0 (KERN_EMERG)  system is unusable 
     1 (KERN_ALERT)  action must be taken immediately 
     2 (KERN_CRIT)  critical conditions 
     3 (KERN_ERR)  error conditions 
     4 (KERN_WARNING) warning conditions 
     5 (KERN_NOTICE)  normal but significant condition 
     6 (KERN_INFO)  informational 
     7 (KERN_DEBUG)  debug-level messages 

источник: https://www.kernel.org/doc/Documentation/kernel-parameters.txt

Смотрите также: Change default console loglevel during boot up

+0

У меня уже установлено значение loglevel = 1, im работает крошечный ядро ​​linux. Я не влияю. – Roger

0

Возможно, невозможно заблокировать какой-либо другой процесс с достаточным доступом от записи в/dev/console, но вы можете переопределить пе консоли, как некоторые другие устройства, во время загрузки, установив консоль = ttyS0 (первый последовательный порт), см:

https://unix.stackexchange.com/questions/60641/linux-difference-between-dev-console-dev-tty-and-dev-tty0

Кроме того, если мы точно знаем, какое программное обеспечение посылает сообщение может быть можно перенастроить (возможно, динамически), но это поможет узнать версию и версию Tiny Core Linux, которую вы используете?

E.g. этот сайт имеет «ядро», «TinyCore» и «CorePlus» версии 1.x до 7

http://tinycorelinux.net/downloads.html

Это помогло бы воспроизвести точно такое же поведение и тестирование потенциальных решений.

Смежные вопросы