URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 42524
[ Назад ]

Исходное сообщение
"Есть вопрос по ядру."

Отправлено Kesselberg2004 , 05-Апр-04 08:57 
Прочитал на одном из форумов следующее:
"Как известно, в дистрибутиве RedHat linux драйвер для файловой
системы NTFS не включен в пакет ядра, устанавливающегося
непосредственно "из коробки". Оно и правильно, потому как драйвер
NTFS все еще далек от совершенства...
Однако, файлы, расположенные на NTFS разделах хочется читать, и даже
писать
Процесс самостоятельного доведения ядра до нужной кондиции путем
компиляции динамического подключаемого модуля драйвера NTFS, на
примере linux RedHat 7.3 приведен ниже.
(Процедуры будут аналогичны и для других версий дистрибутива, и даже
для других дистрибутивов)
1. Узнаем версию ядра, установленную инсталятором linux.


$ uname -a
Linux amarie.avalon.ru 2.4.18-3 #1 Thu Apr 18 07:37:53 EDT 2002 i686
unknown


Инсталлировано ядро версии 2.4.18, (patchlevel 3 от RedHat),
собственно его исходные тексты нам и понадобятся.
2. Монтируем CD с дистрибутивом и находим пакет с исходными текстами
kernel-source-2.4.18-3.i386.rpm, но этого мало, потому как нужны
средства разработки - компилятор, компоновщик и т.д. Ищем их на
дистрибутивном CD:
копилятор gcc-2.96-110.i386.rpm
библиотека языка С glibc-devel-2.2.5-34.i386.rpm
заголовочные файлы ядра glibc-kernheaders-2.4-7.14.i386.rpm
инсталлируем в систему в указаном порядке:


# rpm -ihv glibc-kernheaders-2.4-7.14.i386.rpm
# rpm -ihv glibc-devel-2.2.5-34.i386.rpm
# rpm -ihv gcc-2.96-110.i386.rpm
# rpm -ihv kernel-source-2.4.18-3.i386.rpm


теперь в директории /usr/src/linux-2.4.18-3 располагаются исходные
тексты нашего драйвера, а точнее конечно, в директории /usr/src/linux-
2.4.18-3/fs/ntfs.
3. Собственно, можно приступать к компиляции и сборке драйвера.


# cd /usr/src/linux-2.4.18-3/fs/ntfs
# cat Makefile | grep NTFS_VERSION
EXTRA_CFLAGS = -DNTFS_VERSION=\"1.1.22\" #-DDEBUG
# gcc -c -DMODULE -D__KERNEL__ -DNTFS_VERSION=\"1.1.22\" -
I/usr/src/linux-2.4.18-3/include *.c
# ld -r -m elf_i386 -o ntfs.o *.o


Можно взглянуть на полученый драйвер:


# modinfo ./ntfs.o
filename: ./ntfs.o
description: "Linux NTFS driver"
author: "Anton Altaparmakov <aia21@cus.cam.ac.uk>"
license: "GPL


4. Теперь его необходимо разместить в специальной директории, откуда
он будет доступен по требованию, при монтировании NTFS.


# mkdir -p /lib/modules/2.4.18-3/kernel/fs/ntfs
# cp ./ntfs.o /lib/modules/2.4.18-3/kernel/fs/ntfs
# depmod -a

В общем, делал я все соответственно вышеизложенному. Драйвер компилится без вопросов. Только потом после его копирования в libs и команды depmod -a выдается сообщение "Unresolved symbols in ntfs.o" В чем дело? Может, я что-то не так делаю?


Содержание

Сообщения в этом обсуждении
"Есть вопрос по ядру."
Отправлено Bromantik , 05-Апр-04 09:16 
Сам не пробовал, брал просто рпмку отсюда
http://sourceforge.net/projects/linux-ntfs/