[Hardware] DiskOnShip

Sergey Vlasov vsu на altlinux.ru
Чт Май 26 15:16:58 MSD 2005


On Thu, May 26, 2005 at 10:04:37AM +0400, Aleksey P. Karelin wrote:
> Слабо надеюсь на ответ, но все-таки...
> Есть индустриальный компьютер MSMP3SEN. ALT Linux 2.4 Master встал на 
> него почти без проблем (есть некоторые шероховатости, но это мелочи). К 
> этому компьютеру имеется флеш-диск DiskOnChip 2000, на адаптере 
> MSMF104-2D. Есть драйвера. (Кстати для windows они не нужны - система 
> видет этот девайс как жесткий диск и покойно на него пытается 
> установиться).

Win98?  Там, скорее всего, работа с таким диском идёт через BIOS.

> 1. Проинсталировать linux при установленном DiskOnChip не получается 
> инсталятор виснет на 1%, виснет намертво.

На 1% при загрузке ядра?

> У меня здесь одно объяснение - нехватка базовой памяти. Вместо 640 кБ,
> свободно остается 574 кБ.

Да, это вполне вероятно - одно время с DiskOnChip по этой причине не
работали ни GRUB, ни LILO (а к драйверам для Linux прилагались какие-то
альтернативные бут-блоки для самого DiskOnChip, а также патченая версия
lilo).  Вроде бы в GRUB это правилось.

В принципе можно попытаться сделать загрузочную дискету с GRUB, положив на
неё ядро со стандартной дискеты для установки и скопировав параметры ядра
из конфигурации syslinux (в GRUB вроде бы можно организовать ожидание
смены дискеты для загрузки initrd).

> 2. Если установить linux без DiskOnChip на обычный винчестер, а затем 
> его воткнуть, то стартовать систему можно только с помощью загрузочной 
> дискеты. Подоразумеваю, что опять-таки нехватка памяти при старте 
> штатным lilo на жестком диске.

На самом деле тут ещё может быть конфликт с самим DiskOnChip - возможно,
система пытается грузиться именно оттуда.

> При этом наличие девайса в компьютере никак не обозначено.

Вполне естественно - это же фактически ISA-устройство, для которого нет
нормального механизма распознавания.

В принципе в ядре уже есть драйвер для DiskOnChip, но, возможно, в ядрах
2.4.x он несколько устарел.  Нужно загрузить следующие модули:

1) modprobe docprobe (этот модуль должен определить тип DiskOnChip и
загрузить соответствующий драйвер - doc2000 или doc2001);

2) modprobe nftl (этот модуль обеспечивает работу со структурами NFTL,
используемыми в DiskOnChip для эмуляции обычного блочного устройства).

Файлы устройств /dev/nftl* в стандартном пакете dev отсутствуют - их нужно
создать самостоятельно:

	mknod /dev/nftla   b 93  0
	mknod /dev/nftla1  b 93  1
	...
	mknod /dev/nftla15 b 93 15
	mknod /dev/nftlb   b 93 16
	mknod /dev/nftlb1  b 93 17
	...

После этого с /dev/nftla можно будет работать как с обычным диском
(создавать на нём разделы и т.д.).

Замечание по поводу создания initrd: там нужно сначала загрузить модуль
doc2000, а после него - docprobe (поскольку механизм автозагрузки нужного
модуля, используемый в docprobe, в initrd не сработает из-за отсутствия
там modprobe, да и mkinitrd не определит необходимость добавления модуля
doc2000 в initrd автоматически).

Свободный драйвер nftl не совсем хорош - там не реализован wear leveling,
что в принципе может сократить срок службы устройства.  Хотя неизвестно,
что на самом деле реализовано в закрытом драйвере от M-Systems, поскольку
исходников нет.

Теоретически можно вообще обойтись без NFTL, используя вместо этого
файловую систему jffs2; при этом придётся заменить и загрузчик - в MTD CVS
есть патчи для GRUB.  http://www.linux-mtd.infradead.org/source.html

> 3. Как говорил, есть драйвера под linux. Процедура установки:
[skip]
> На пункте 2.2 я как начал - так и остановился. Даю команду:
> 
>    patch -p1 -d /usr/src/kernel/sources < linux-2_4-patch

Это неправильно - в /usr/src/kernel/sources лежат упакованные исходники
ядра, а патч должен применяться к распакованным исходникам.

В принципе можно создать пакет kernel-feat-drivers-diskonchip с этим
патчем, после чего собрать пакет ядра с применением этого патча.  Однако
вполне вероятно, что можно собрать этот драйвер и отдельным модулем,
немного поработав напильником.
-------------- next part --------------
z'╣ЛmjшZr··э╡г+╧╤чtж╕zz-jЖ╒∙╕Еy<╘y╙i√'╤*'Ч≤)╡('jш╚y(Ё{_=o+^╟7╛rz-jЖ╒∙╕ЕyJЕ├шiЪЫb╡ш√ыb·Лk╩Зb╔ЙФj)┘╙ща╙чЩ╚miхfz{lЪm4ГNvКЩ╣}Г⌡сз╤ж°├g╖╥M4у╦╖


Подробная информация о списке рассылки Hardware