Прочитал на одном из форумов следующее:
"Как известно, в дистрибутиве 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" В чем дело? Может, я что-то не так делаю?