Что мне нужно для компиляции ядра на Ubuntu Eee? - PullRequest
1 голос
/ 29 января 2009

Я пытаюсь следовать руководству по созданию пользовательского USB-драйвера в Linux, и я надеюсь разработать это на моем Eee PC с Ubuntu Eee, используя g ++. К сожалению, чтобы следовать учебнику, мне нужен заголовочный файл linux / module.h. Из того, что я понимаю, мне нужно будет скомпилировать ядро, чтобы заставить это работать. Я никогда раньше не компилировал ядро, и все инструкции, которые я нахожу, относятся к настольной Ubuntu.

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

Учебники, которыми я следую, находятся здесь: http://www.linuxjournal.com/article/7353 и здесь: http://www.linuxjournal.com/article/4786

Ответы [ 2 ]

5 голосов
/ 29 января 2009

Большинство (все?) Основных дистрибутивов Linux не только распространяют ядро ​​linux, но и применяют к нему многочисленные патчи. Тем самым улучшается стабильность и добавляется множество функций. Итак, вы захотите использовать систему пакетов Ubuntu, чтобы получить исправленный исходный код ядра Ubuntu!

Вам, вероятно, НЕ необходимо перестроить ядро! Скорее всего, вам просто нужен пакет kernel-headers для вашего текущего ядра, чтобы скомпилировать драйвер USB. Предполагая, что вы собираете его как модуль ядра, вы можете загрузить его с помощью modprobe или insmod. (lsmod & rmmod также полезны.)

Если вам нужно пересобрать ядро, это легко. ( Так просто, я использую сборки ядра для тестирования своего оборудования.) В сети есть множество Kernel Building HOWTO . Вы получите массу удовольствия, пытаясь выяснить, какие опции вы хотите использовать в качестве модулей, что вы хотите скомпилировать и что вы хотите опустить. Вы можете уменьшить ядро, но можете пропустить некоторые из этих вещей.



Изменено, чтобы добавить:

Я помню, что делал "sudo apt-get install linux-headers-eeepc", мне нужно больше? Если нет, то где эти заголовки, потому что мой тестовый код, включающий «linux / module.h», не компилируется

Там должен быть способ перечислить все файлы в этом пакете linux-headers-eeepc. Я из мира RedHat / RPM. Но я бы предположил что-то вроде dpkg --contents linux-headers-eeepc или dpkg --listfiles linux-headers-eeepc . Возможно, вам придется немного поиграть с этим.

В качестве альтернативы, судя по http://packages.ubuntu.com/, пакетам, таким как linux-headers-2.6.27-7, содержится файл /usr/src/linux-headers-2.6.27-7/include/linux/module.h. Так что вы можете просто посмотреть в / usr / src / * / include / linux / module.h.

Или попробуйте:

% найдите linux / module.h | grep 'linux / module.h $'

Или

% find / -path '* / linux / module.h'

(что find может занять некоторое время для завершения ...)

2 голосов
/ 29 января 2009

Отсюда: Ubuntu Kernel / Compile Начать: sudo apt-get установить linux-kernel-devel fakeroot build-essential makedumpfile

Возможно, просто прочитайте эту ссылку .

Подробнее здесь

...