[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: драйверовая дискета



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 или
неправильную версию ядра, то во всем вышеописанном было что-то сделано
неправильно и придется повторить.


> Или где про все это почитать?

Нигде, это все логически вытекает из различных знаний :)

-- 
Если виртуальная память закончилась, она не настоящая.



Reply to: