Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:kernel

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
etc:users:kernel [2010/01/29 20:06] krinkinmuusers:kernel [2016/08/07 00:34] – ↷ Page moved from user:kernel to users:kernel kel
Line 98: Line 98:
 #include <linux/module.h> - как написано, этот заголовочный файл должен быть у всех модулей, в нем есть объявления init_module и cleanup_module, еще куча структур описывающих состояние, версию и другую информацию о модулях. #include <linux/module.h> - как написано, этот заголовочный файл должен быть у всех модулей, в нем есть объявления init_module и cleanup_module, еще куча структур описывающих состояние, версию и другую информацию о модулях.
 #include <linux/kernel.h> - тут тоже есть много чего полезного, например максимальное и минимальное значение определенного типа, printk объявлена в этом заголовочном файле, KERN_INFO также объявлена здесь: #include <linux/kernel.h> - тут тоже есть много чего полезного, например максимальное и минимальное значение определенного типа, printk объявлена в этом заголовочном файле, KERN_INFO также объявлена здесь:
 +
 #define KERN_INFO "<6>" /* informational - она объявлена как строка, получается мы вызываем printk("<6>" "text"); это тоже самое, что и printk("<6>text"); ??? раньше не встречал такого варианта использования. #define KERN_INFO "<6>" /* informational - она объявлена как строка, получается мы вызываем printk("<6>" "text"); это тоже самое, что и printk("<6>text"); ??? раньше не встречал такого варианта использования.
  
Line 104: Line 105:
 В данном случае мы не вольны выбирать имена функций входа и выхода, но если подключить заголовочный файл linux/init.h, то можно присваивать произвольное имя функциям входа и выхода (дальше будет пример) В данном случае мы не вольны выбирать имена функций входа и выхода, но если подключить заголовочный файл linux/init.h, то можно присваивать произвольное имя функциям входа и выхода (дальше будет пример)
  
-printk - выводит значения, но она работает не совсем так как printf, как я понял она выводит сообщение в какую-то очередь сообщений ядра, которую просмотреть скажем в xterm нельзя, поэтому для просмотра вывода мы заглядываем в файл /var/log/messages, который, кстати, довольно большой, и, наверно, очень полезный.+printk - выводит значения, но она работает не совсем так как printf, как я понялона выводит сообщение в какую-то очередь сообщений ядра, которую просмотреть скажем в xterm нельзя, поэтому для просмотра вывода мы заглядываем в файл /var/log/messages, который, кстати, довольно большой, и, наверно, очень полезный.
  
 Прошу знатоков еще пояснить вот такой момент: Прошу знатоков еще пояснить вот такой момент:
Line 113: Line 114:
 ==== Makefile ==== ==== Makefile ====
  
-Как написано формально Makefile должен содержать только строку obj-m += hello-1.o, но тогда простой командой make мы только ошибку, правильным вариантом вызова будет:+Как написано формально Makefile должен содержать только строку obj-m += hello-1.o, но тогда простой командой make мы получим только ошибку, правильным вариантом вызова будет:
  
      make -C /usr/src/linux-source-2.6.32 M=$(shell pwd) modules      make -C /usr/src/linux-source-2.6.32 M=$(shell pwd) modules
  
 $(shell pwd) - текущий каталог, можно прописать и руками. $(shell pwd) - текущий каталог, можно прописать и руками.
 +
 /usr/src/linux-source-2.6.32 - каталог с исходниками ядра. /usr/src/linux-source-2.6.32 - каталог с исходниками ядра.
 +
 modules - не знаю зачем нужно, предполагаю, что эта команда показывает, что мы собираем именно модули ядра. modules - не знаю зачем нужно, предполагаю, что эта команда показывает, что мы собираем именно модули ядра.
 +
 +~~DISCUSSION~~
etc/users/kernel.txt · Last modified: 2016/08/08 20:53 by kel