Монтаж модули на ядрото
Модули на ядрото [цитат]
Линукс ядрото съдържа много код, който поддържа определена функция или оборудване. Основната част от кода (обикновено кода на процесор подкрепа, паметта и други основни елементи) компилиран в ядрото, и багажника от него, както и част от кода, е необходимо само за някои потребители - драйвери на устройства, файлови системи подкрепа и т.н. - сглобени като модули.
Модулите могат да бъдат свързани с ядрото от потребителя команда (modprobe. Insmod) или автоматично от Удев, и да бъдат изхвърлени или от ядрото или rmmod команда.
Повечето от модулите е в пакета на ядрото, но понякога технически, административни или правни причини, някои модули се събират отделно.
На модули и имена [редактиране]
Както и в хранилището може да бъде няколко ядра, модули са по специален начин: има един пакет с изходния код, и пакети с модули, съставени за определен ядро. В този последен SRPM тя съдържа само .spec и лепенки, и изходния код, получен от монтажни ограничения. По този начин, за модула и ядро версия на модула вкус имаме пакети, чиито имена
- ядрото източник-модул - то съдържа само източници
- ядрото модули-модул -flavour - модул модул. вкус сглобени към ядрото (например, ядрото-модули-NVIDIA-STD дефиниция)
пакети Полеви освобождаване пълни с модули така: ALT
- Освободете самия модул, тоест, ако сме се актуализира името на модула, промените на полето; - версия на ядрото на формата (2 ^ 16) * основен + (2 ^ 8) * средата + незначителни. т.е. 2.6.25 = 132,633. Не се притеснявайте, тя изчислява броя на сценария, описан по-късно; - Освобождаване на пакет ядро.
Например, един модул за ядрото NVIDIA ядрото изображение-STD-деф-2.6.25-alt8 да се нарече ядрото модули-NVIDIA-STD-деф-173.14.12-alt1.132633.8.
Как да се съберат модул локално [редактиране]
Тази фаза е необходимо главно за тестване на модул, и, като цяло, не е задължително, но е полезно за разбирането на процеса.
Това, което трябва [редактиране]
В допълнение към ССЗ, да направи и друг стандарт монтаж на неща, които трябва да ядрото заглавията-модули-
Сглобяване [цитат]
Изтеглете и извличане на изходния код на модула, ще открием, че просто обикновено правят не работи. Този проблем е специфичен за Сизиф / ALT Linux и е необходимо за сглобяването на заглавията на ядрото модул, които са търсили в директорията / ИЪ / модули /
За да заобиколите този проблем, трябва да се замени една променлива (обикновено KERNELSOURCE или KSRC) в Makefile. След това стартирайте събрание, например направи KSRC = / ЮЕсАр / SRC / Linux-2.6.25-STD-Def. Обикновено, модулът след това се събира.
В сглобено устройството може да се опита да се зареди чрез insmod. или да го постави другите модули на ядрото в / ИЪ / модули /
Как да се съберат на уреда правилно [редактиране]
Защо предишния метод не е правилно? Защото той nedistributiven. За правилен монтаж, ние трябва:
Шаблони [цитат]
Тъй като точните характеристики на всяка опаковка с модули за всяка версия на ядрото е малко глупаво, схемата е разработена, в която всеки модул създава шаблон и съоръжения (с помощта specsubst директива. Заявявайки ядро вкус) персонализирате този шаблон с конкретна ядрото (включително Той изчислява освобождаването на модула). Останалата част от работата се пада на макро% setup_kernel_module. която изчислява всички останали параметри, които са необходими за монтажа на модула: версията на ядрото, освобождаването на ядрото модул и го пуснете. Сами шаблони, се съхраняват в Git-хранилище, което има много клонки шаблони се наричат шаблон / модул / дистрибуция. където модула - е истинското име на модула (например NVIDIA) и дистрибуция - тя е под която събираме. Обикновено това Сизиф. но и за различни Брънч модели трябва да се променят, можете да инсталирате областта на дистрибуцията на съответната стойност. Обикновено дистрибуции сега е същото като името на брънч.
Получаване на работна директория [редактиране]
Ще се нуждаем от програма км създадете-маркер, за да се изгради модули от опаковката ядрото натрупани средства.
За да използвате шаблоните имат брънч с тях, за да започне на местно ниво, като например:
Сглобяване модул от шаблона (използвайки зъбно specsubst) [правило]
При събиране на местно ниво с цел тестване, е удобно, за да инсталирате параметър gear.specsubst.kflavour в ядрото си:
След това можете да се съберат на модула с командата:
Създаване на етикети за сглобяване на git.alt (схема скоростна specsubst) [правило]
Например, за да създадете етикет за модул NVIDIA, сглобени с основната станд дефиниция:
Или, за да създадете маркери за всички модули, които могат да се извършват:
Сглобяване модули git.alt [правило]
След това можете да се бутам получи Брънч и маркери за git.alt.
и се добавят към списъка с модули миналата task'u (който вероятно вече е добавен за да се сглоби подходящо ядро изображението):
Следва обаче да се има предвид, че updatemodules и км създадете тагове не се трият изчиствам / taglist файл и трябва да го направите ръчно.
Ако актуализирате ядрото, но не възнамерява да актуализира на модула за шаблони, можете да направите:
$ Ssh git.alt задача да добавим [брой работни места] kmodules станд дефиниция
тя ще добави към работата (която вероятно вече е добавен за да се сглоби подходящо ядро-образ), всички модули, събрани за ядро станд дефиниция.
Някои момент [правило]
- Ако хранилище: ядро-образ-STD-деф-3.0.4-alt0.M60P.1.i586.rpm
- След това, в името на пакета: ядрото модули-emlog-STD-деф-0,51-alt2.196612.0.M60P.1.i586.rpm
Версията за освобождаване на модула е пълен + освобождаване ядро. SCARY?
Rebuild един модул сам [редактиране]
Да речем, че трябва да се възстанови хранилището в един модул, без възстановяване на ядрото и всички модули.
- Промяна клон шаблон / rt3070 / Сизиф, задължава ни промени
- км създадете тагове -k станд дефиниция rt3070
- проверка на монтажа нещо като: предавка -t $ (Git, опишете) --hasher - HSH $ TMP /
новия модул възел [редактиране]
Сглобяване на ядрото източник-модул [правило]
Първо, трябва да се изгради източник пакет модул. Този пакет е проста, и в действителност съдържа опакован само изходен код, и неговото сглобяване е само zapakovke. Например, по-добре да се вземе нещо по-просто и конфекция, например, направете следното:
Редактирайте по образ и подобие на ядрото източник-модул .spec - обикновено това е необходимо да се замени името на модула, версия, описанието, и ChangeLog, и себе си изгради обикновено не може да се докосне.
На следващо място, ние събираме пакет с предавката. В резултат на това на опаковката трябва да бъде само един файл, а именно, / ЮЕсАр / SRC / ядро / източници / ядрото източник-модул .tar.bz2
Моля, имайте предвид, че някои пакети с изходен код в името си съдържа версията. например, ядрото източник kdbus-5.0.0.31-5.0.0.31-alt1. Това се прави с цел да бъде в състояние да бъде в състояние да събере различни ядки с различни версии на модулите (например, новите модули няма да 2.6.18).
Създаване на нов шаблон [редактиране]
След сглобяването на пакетите с изходния код, ние трябва да се създаде нов клон в хранилището с модулите:
където модула - името на вашия модул.
Сега редактирате спекулация, да промените име, версия, описанието, cheyndzhlog може да се наложи да настроите опциите за сглобяване. И се ангажират:
Забележка горната влизането на промените трябва да остане непроменен и да се състои от онези ужасни макроси, от които е във всеки модул на ядрото във всеки действителен хранилище ALT
Как да поставите модул в хранилище [редактиране]
Поставянето на модулите не се различава от конвенционалната пакети vykladyvaniya.
Поставете самия модул:
Все още е необходимо пакети през git.alt.
Важна забележка: за да може събрание се проведе правилно, ядрото източник-модул трябва да бъде съставена, за да се изгради ядрото модули-модул.
Препоръки за взаимодействие с ядра поддържаща [цитат]
За нормална съвместната работа се препоръчва:
- При актуализиране модул за актуализиране на събранието по максималния брой ядра
- Своевременно актуализиране на шаблоните в хранилището на git.alt
- Уведоми хората от поддръжката на ядки (раз-ядрото пощенски списък), че това е вашето устройство,
- Конфигуриране на Git отдалечени ядрото модули на другите, които ги подържат,
- Speck ядрото модули-Полето опаковъчна настроите ядрото подържат екип.
За symvers и модули зависят от други модули [редактиране]
Понякога това се случва, че един пакет с модулите трябва да се събират под различен пакет с модулите. Например prosihodit с gspca и v4l. За правилен монтаж, ние се нуждаем две неща: първо, правото да остави в зависимост от заглавията (от v4l има своите заглавия), и второ, трябва да импортирате symvers на файловете. В gscpca проблем е решен чрез добавяне на следните редове до gspca пакети% препаративна фаза модул: