Экран загрузки Fedora показывает как логотип Fedora, так и логотип Lenovo. Почему и как?

Para el programa de recopilación de datos del espacio de usuario, ¿qué tiene de malo un bucle infinito? Siempre que esté utilizando la llamada al sistema poll, debería ser eficiente:https://stackoverflow.com/questions/30035776/how-to-add-poll-function-to-the-kernel-module-code/44645336#44645336?

Almacenamiento de datos permanente

No estoy seguro de cuál es la mejor manera de hacerlo, ¿por qué no escribes en un archivo desde el espacio del usuario en la encuesta? Supongo que su preocupación es que si llegan demasiados datos, los datos se perderán, ¿es así?

Pero dudo que el factor limitante sea la comunicación entre el kernel y el usuario en ese caso, sino más bien la lentitud del dispositivo de almacenamiento permanente, por lo que creo que hacerlo en el usuario no supondrá ninguna diferencia. En todo caso,la solución de solo kernel tiene una pregunta de alto perfil en:https://stackoverflow.com/questions/1184274/how-to-read-write-files-within-a-linux-kernel-moduley no creo que obtenga una mejor solución aquí.

Deshabilitar interrupciones

¿Está seguro de que supondría alguna diferencia, especialmente teniendo en cuenta que es probable que se produzca el cuello de botella? Esperaría que si su dispositivo realmente está produciendo una gran cantidad de interrupciones, entonces dominarían cualquier otra interrupción en cualquier caso. ¿Vale la pena arriesgarse a estropear el estado de otro hardware? ¿Las especificaciones de su dispositivo de hardware sugieren que físicamente podría proporcionar un ancho de banda de datos mucho mayor que el que tiene actualmente?

No sé cómo hacerlo yo mismo, pero si desea una respuesta, lo mejor que puede hacer es hacer una pregunta separada con el título "¿Cómo deshabilitar todas las interrupciones de un módulo del kernel de Linux?". LDD2 menciona la función cli()http://www.xml.com/ldd/chapter/book/ch09.htmlpero parece que quedó en desuso:https://notes.shichao.io/lkd/ch7/#no-more-global-cliEse texto luego sugiere local_irq_disabley local_irq_save.

También intentaría piratearlo con cualquier método que encuentre para deshabilitar las interrupciones, y ver si se vuelve más eficiente antes de seguir buscando si existe un buen método.

En un emulador, un rápido:

static int myinit(void)
{
    pr_info("hello init\n");
    unsigned long flags;
    local_irq_save(flags);
    return 0;
}

falla con:

returned with disabled interrupts

aparentemente proviene de v4.16 do_one_initcall, ¡así que hay un manejo de errores especializado para eso!

Luego intenté hacerlo ingenuamente desde un subproceso de trabajo:

static int work_func(void *data)
{
    unsigned long flags;
    local_irq_save(flags);
    return 0;
}

static int myinit(void)
{
    kthread = kthread_create(work_func, NULL, "mykthread");
    wake_up_process(kthread);
    return 0;
}

pero aún así no puedo observar ningún efecto, por lo que las interrupciones deben estar siendo habilitadas por otra cosa, como se puede inferir de:

watch -n 1 grep i8042 /proc/interrupts

que sigue actualizando tty o muse/interrupciones de teclado.

Lo mismo ocurre con otros puntos de entrada, como petimetres, o si pruebo un asm("cli")sin procesar. Necesitaremos un enfoque más educado.

28
20.06.2019, 14:24
3 ответа

Это результат работы Ханса де Гёде над мерцанием -бесплатной загрузкой в Fedora. Ганс разработал новую тему Plymouth , которая берет загрузочную заставку встроенного ПО и добавляет к ней логотип Fedora, пока загрузка не завершится и среда рабочего стола не вступит во владение.

Это работает, потому что логотипы начальной загрузки теперь отображаются как ресурс ACPI, что вы можете увидеть в /sys/firmware/acpi/bgrtв системах, которые это поддерживают.

См. также мерцание -бесплатный FAQ . (Здесь также объясняется, как изменить тему Plymouth, чтобы логотип по-прежнему отображался вместе с запросом пароля для расшифровки диска.)

48
27.01.2020, 19:39

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

2
27.01.2020, 19:39

Это новая тема Плимута. Вы можете легко изменить тему, используя

plymouth-set-default-theme --list
plymouth-set-default-theme <one from list output> - R

Источник :https://fedoramagazine.org/howto-change-the-plymouth-theme/

4
27.01.2020, 19:39

Теги

Похожие вопросы