On 11 Jun 2003, dim wrote: > Машина есть. :))) > > > Как это сделать - вопрос уже непринципиальный. > > Так как? > Вот есть у меня уже готовый *.o файл. Что дальше с ним делать?
Ничего. Вот в этом и состоит принципиальность вопроса - тебе нужен исходный текст. Лучше в виде архива (tar), содержащий исходные тексты и Makefile для их сборки (возможны варианты). Если же исходные тексты состоят из единственного/пары файлов .c,.h, то это первый индикатор - предупреждение о некачественности драйвера. Затем распаковываешь у себя ту версию kernel-sources, из которой у тебя сделано ядро для загрузочных дисков. Затем из дистрибутива, где у тебя лежат образы этих загрузочных дисков берешь файл kernel-config, причем тот самый, вместе с которым в директории лежат твои образы загрузочных дисков, (это где-то в .../debian/dists/woody/main/disks-i386/current/images-1.44/ ). Этот kernel-config копируешь в корень распакованных исходных текстов ядра под именем .config . Заходишь туда, для простоты говоришь 'make menu-config', ничего там не меняешь, выходишь с сохранением конфигурации. Говоришь 'make dep'. Все, теперь у тебя есть заголовки ядра, _полностью_ соответствующие ядру на загрузочных дисках. Теперь осталось всего ничего - собрать твой драйвер, указав ему путь к заголовкам ядра. Как это указать, полностью зависит от особенностей системы сборки того драйвера (Makefile). Обязательно проверь, что твои указания правильно восприняты (как это сделать ...). Далее, как подсунуть получившийся драйвер. Я бы сделал так: положил бы его на пустую дискету с FATом (mformat) или ext2 (надежнее, я не помню, содержит ли ядро на загрузочном диске fatfs). При установке системы на любом этапе переключаемся во вторую консоль (в debian, в отличие от всяких там redhatов, shell доступен сразу), монтируем дискету с драйвером и делаем ему insmod. Если insmod откажется грузить, жалуясь на unresolved symbols или неправильную версию ядра, то во всем вышеописанном было что-то сделано неправильно и придется повторить. > Или где про все это почитать? Нигде, это все логически вытекает из различных знаний :) -- Если виртуальная память закончилась, она не настоящая.

