dil: (Default)
dil ([personal profile] dil) wrote2005-10-07 10:46 am
Entry tags:

А на четвёртый день наш индеец Зоркий Глаз заметил..

Точнее, на второй месяц эксплуатации ноутбука я заметил, что винчестер как-то уж очень медленно работает. Запустил hdparm - и вправду, dma (не путать с одноименным lj-user'ом!) отсутствует. И что смешно, не включается:

# hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)

С чего бы это? И с cdrom'ом та же фигня..

Правда, -m16 тоже несколько ускорило работу, но всё-таки хочется (хотя бы относительного) совершенства.
IDE-контроллер интел 82801DBM (ICH4-M). И до перестановки системы оно, помнится, даже работало. Где у меня ошибка в ДНК?

[identity profile] shadowtramp.livejournal.com 2005-10-07 09:58 am (UTC)(link)
Ядро то какое стоит?
У меня dma не взлетал, когда ядро не могло чипсет нормально распознать.

[identity profile] dil.livejournal.com 2005-10-07 10:16 am (UTC)(link)
2.6.8 моей сборки
Вроде распознает:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ICH4: IDE controller at PCI slot 0000:00:1f.1

[identity profile] drf-ckoff.livejournal.com 2005-10-07 11:09 am (UTC)(link)
Ну вот видать в "моей сборки" ошибка и есть =)
Возьми "дистрибутивное", посмотри - работает ли на нем и diff'ни конфиг свой с ихним.

[identity profile] dil.livejournal.com 2005-10-07 11:13 am (UTC)(link)
Спасибо на добром слове :)
Даже если и работает,
$ diff -u config-2.6.8-2-386 config-2.6.8dil2 | wc -l
2894

[identity profile] drf-ckoff.livejournal.com 2005-10-07 11:16 am (UTC)(link)
grev -v '^#' забыл

[identity profile] dil.livejournal.com 2005-10-07 11:19 am (UTC)(link)
это не сильно помогает
$ diff -u config-2.6.8-2-386 config-2.6.8dil2 | grep -v '^ #' | wc -l
2578

[identity profile] drf-ckoff.livejournal.com 2005-10-07 11:22 am (UTC)(link)
Не выспался или издеваешься?

[identity profile] dil.livejournal.com 2005-10-07 11:29 am (UTC)(link)
У меня ядро настолько по-другому сконфигурировано, что искать различия с дистрибутивным бессмысленно. Как минимум, дистрибутивное ядро - initrd'шное, а у меня нет, и всё основное прибито в ядро гвоздями, а не вынесено в модули.

[identity profile] drf-ckoff.livejournal.com 2005-10-07 11:34 am (UTC)(link)
То есть ты и выспался и не издеваешься и серьезно не понимаешь, в чем ты не прав воткнув такой grep после diff? И сам не догадываешься о 's/=m/=y/'?

(Про "прибито гвоздями" я, пожалуй, воздержусь от комментариев. Пока, во всяком случае.)

[personal profile] olegnet 2005-10-07 12:42 pm (UTC)(link)
ты ещё посортируй всё же перед diff'ом

[identity profile] dil.livejournal.com 2005-10-07 03:14 pm (UTC)(link)
В общем, это была плохая идея. Помогло прибивание piix непосредственно внутрь ядра вместо модуля.

[identity profile] alexkuklin.livejournal.com 2005-10-07 05:30 pm (UTC)(link)
2.6.8 моей сборки
можешь объяснить, чем тебе штатное ядро не угодило?

[identity profile] ksena.livejournal.com 2005-10-07 10:24 am (UTC)(link)
*представила себе взлетающего [livejournal.com profile] dma

[identity profile] dil.livejournal.com 2005-10-07 10:27 am (UTC)(link)
Вот специально для таких, как ты, я и написал - не путать с [livejournal.com profile] dma ;)

Re: Reply to your comment...

[identity profile] ksena.livejournal.com 2005-10-07 10:38 am (UTC)(link)
ассоциации-то уже никуда не денутся :о)

Re: Reply to your comment...

[identity profile] dil.livejournal.com 2005-10-07 10:55 am (UTC)(link)
"Бородку-то я сбрею, а умище куда девать?"

Re: Reply to your comment...

[identity profile] dma.livejournal.com 2005-10-07 11:58 am (UTC)(link)
Чорт, опередил :)

[identity profile] pzrk.livejournal.com 2005-10-07 09:58 am (UTC)(link)
Нет - всего лишь в .config
Обязательно включи CONFIG_BLK_DEV_IDEDMA_PCI и CONFIG_IDEDMA_PCI_AUTO, также попробуй CONFIG_BLK_DEV_PIIX

[identity profile] dil.livejournal.com 2005-10-07 10:48 am (UTC)(link)
Включены. Только piix модулем собран, но этот модуль загружен.

[identity profile] shigin.livejournal.com 2005-10-07 12:17 pm (UTC)(link)
Не знаю, как там в 2.6, но в 2.4 есть такая особенность, что если ide собрано в ядро, то и поддержка чипсета должна быть вкомпилена в ядро. Иначе не работает dma (по крайней мере у меня).

[identity profile] shigin.livejournal.com 2005-10-07 12:19 pm (UTC)(link)
В общем что--то типа
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH2: IDE controller at PCI slot 00:1f.1
ICH2: chipset revision 5
ICH2: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:pio

есть?

[identity profile] dil.livejournal.com 2005-10-07 12:23 pm (UTC)(link)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hda: FUJITSU MHT2080AH, ATA DISK drive
hdc: MATSHITAUJ-820D, ATAPI CD/DVD-ROM drive
Using anticipatory io scheduler
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
...
ICH4: IDE controller at PCI slot 0000:00:1f.1
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 11 (level, low) -> IRQ 11
ICH4: chipset revision 3
ICH4: not 100% native mode: will probe irqs later
ICH4: port 0x01f0 already claimed by ide0
ICH4: port 0x0170 already claimed by ide1
ICH4: neither IDE port enabled (BIOS)


Может, правда надо piix в ядро собрать, а не модулем?

[identity profile] shigin.livejournal.com 2005-10-07 12:29 pm (UTC)(link)
Ну судя по dmesg, если я правильно понимаю, модуль пытается поднять ide0 и ide1 и посылается. Похожу, в 2.6 такая фигня. Я бы попробовал собрать piix в ядрышко.

[identity profile] dil.livejournal.com 2005-10-07 03:13 pm (UTC)(link)
Точно, помогло. Спасибо.

[identity profile] shigin.livejournal.com 2005-10-07 04:32 pm (UTC)(link)
Да не за что. Сам мучался когда--то...

[identity profile] denaol.livejournal.com 2005-10-07 12:54 pm (UTC)(link)
У меня такая фигня была (правда, на 2.4 ядре), тоже долго во всё это втыкал. Вылечилось в итоге сборкой piix в ядро.

[identity profile] dil.livejournal.com 2005-10-07 12:59 pm (UTC)(link)
Да, мы уже к этой идее тоже пришли. Спасибо, попробую.

[identity profile] shadowtramp.livejournal.com 2005-10-07 02:43 pm (UTC)(link)
Ты потом скажи, зачем ядро своё собирал.

[identity profile] dil.livejournal.com 2005-10-07 03:15 pm (UTC)(link)
А ты умеешь собирать из исходников ipw2200 к дистрибутивному ядру?

[identity profile] drf-ckoff.livejournal.com 2005-10-07 03:18 pm (UTC)(link)
он, наверное, умеет говорить "apt-get install kernel-modules-ipw2200-std26-up" =)

[identity profile] dil.livejournal.com 2005-10-07 03:24 pm (UTC)(link)
а где их берут?
$ apt-cache search ipw2200
ieee80211-source - Source for the 802.11 (wireless) network stack for Linux
ipw2200-source - Source for the ipw2200 driver
ipw2200-modules-2.6.8dil3 - ipw2200 modules for Linux (kernel 2.6.8dil3).

[identity profile] drf-ckoff.livejournal.com 2005-10-07 03:26 pm (UTC)(link)
"в сизифе" =)
насчет дебианов и убунт - не в курсе, извините.

[identity profile] shadowtramp.livejournal.com 2005-10-07 03:51 pm (UTC)(link)
Насколько я понимаю, нужно поставить kernel-headers (или linux-headers для 2.6.12-ого) и собрать из пакета ipw2200-source тот самый модуль. После чего его и пользовать.
Примерно такую херню рекомендуют делать сами дебиановцы (In order to compile these modules you need the kernel sources or the kernel headers for the kernel image packages from Debian. For compile instructions look into /usr/share/doc/ipw2200-source/README.Debian... (http://packages.debian.org/unstable/net/ipw2200-source), выделение - моё). И примерно такую херню я делаю, когда собираю модули от vmware при переезде нановое ядро.

А система сборки ядра на дебиане, да - прибитая на всю голову. Я честно неасилил-патамуча-стехи.