DMA-Modus im Kernel aktivieren

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 04.11.2009 19:27:52

Hallo,

die Vorgeschichte zu diesem Thema ist hier zu lesen: http://debianforum.de/forum/viewtopic.php?f=26&t=115358
Hier nochmal die Kurzform:

Ich habe ein Dell Inspiron Mini 12 Notebook mit dem Poulsbo Chipsatz. Zusammen mit einem weiteren Forumsmitglied habe ich es damals mit viel hängen und würgen geschafft, dass der Monitor in der nativen Auflösung von 1024*800 Bildpunkten läuft. Dafür war es unter anderem Nötig, auf Kernel 2.6.27.9 zu wechseln und ein poulsbo Paket von Ubuntu zu benutzen.

Dann war ich eigentlich zufrieden, das einzige Blöde war, dass der Rechner zum Booten und zum erstmaligen Starten von Programmen sehr lange braucht. Jetzt habe ich in dem anderen Thread herausgefunden, dass das daran liegt, dass meine Festplatte nur eine Lesegeschwindigkeit von unter 3mb/s hat, weil der dma Modus nicht aktiviert ist. Einfach mit dem Befehl "hdparm -d1 /dev/hda" funktioniert es leider auch nicht. Ich habe dann zum Testen den aktuellen testing-Kernel installiert und damit startet zwar mein X-server nicht mehr, aber wenn ich in der Textkonsole mit "hdparm -t /dev/sda" die Lesegeschwindigkeit teste, kommen ca 23mb/s raus, was ja schon toll wäre.

Soviel zur Vorgeschichte, jetzt zu meiner Frage:

Kann man in dem Kernel 2.6.27.9 irgendwie die dma-Unterstützung aktivieren? Mir wäre eine Lösung, bei der ich nur den Kernel verändere, am liebsten, weil ich auf diese Art auch dann, wenn etwas schief geht, einfach den alten Kernel booten kann und normales Weiterarbeiten möglich ist.

Wenn sich jemand mit der Poulsbo-Problematik auskennt und mir sagen kann, wie ich den Monitor mit dem aktuellen Kernel in der nativen Auflösung zum laufen bringe, wäre mir das auch recht. Das hätte für mich halt nur den Nachteil, dass ich im Zweifelsfall nicht mehr problemlos zurück kann, falls doch etwas nicht klappen sollte.

Ich hoffe, wir können mein Problem gemeinsam lösen.

Vielen Dank
Robert

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 04.11.2009 20:42:11

Wie ist der Kernel denn konfiguriert? Welche Optionen sind aktiviert / nicht aktiviert / als Modul?

Diese sollten aktiviert sein:

CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_HAS_DMA=y
CONFIG_ISA_DMA_API=y
CONFIG_SCSI_DMA=y
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA_FLAG=1

und diese sollten inaktiv sein:

CONFIG_ATA_GENERIC=n
CONFIG_IDE_GENERIC=n

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von cirrussc » 04.11.2009 20:48:26

Vielleicht müsste man auch erst einmal die komplette PCI Liste anfordern:

Code: Alles auswählen

lspci -n
Hier bekommt man dann eventuell raus, welches Modul dazugehört:

http://kmuto.jp/debian/hcl/
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 04.11.2009 21:16:24

ich hätte noch erwähnen sollen, dass ich zwar sehr gut darin bin, Anleitungen umzusetzen, aber nicht so die Erfahrung mit selbständigen Linux-Aktionen habe.

Ich würde gerne die Kernel-Konfiguration posten, ich kenne aber leider nicht den Befehl, wie man sie erhält :/

PCI-Liste ist kein Problem, ich hab den PC aber gerade nicht griffbereit. Ich reiche sie morgen früh nach!

Gruß Robert

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von cirrussc » 04.11.2009 21:25:08

Die komplette Konfig des Laufenden Kernels ist so auszugeben:

Code: Alles auswählen

cat /boot/config-`uname -r`
Da zu lang -> nach NoPaste
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 05.11.2009 09:08:36

So, hier kommen die Infos:

lspci -n

Code: Alles auswählen

00:00.0 0600: 8086:8100 (rev 07)
00:02.0 0300: 8086:8108 (rev 07)
00:1b.0 0403: 8086:811b (rev 07)
00:1c.0 0604: 8086:8110 (rev 07)
00:1c.1 0604: 8086:8112 (rev 07)
00:1d.0 0c03: 8086:8114 (rev 07)
00:1d.1 0c03: 8086:8115 (rev 07)
00:1d.2 0c03: 8086:8116 (rev 07)
00:1d.7 0c03: 8086:8117 (rev 07)
00:1f.0 0601: 8086:8119 (rev 07)
00:1f.1 0101: 8086:811a (rev 07)
02:00.0 0200: 10ec:8136 (rev 02)
03:00.0 0280: 14e4:4315 (rev 01)
die genannte Homepage sagt bei dem IDE-Controller folgendes:

Code: Alles auswählen

PCI ID / Funktioniert / Hersteller / Gerät / Treiber / Kernel
8086811a / Yes / Intel Corporation / System Controller Hub (SCH Poulsbo) IDE Controller / pata_sch / v2.6.26-
Und hier meine Kernelkonfiguration:

http://nopaste.debianforum.de/30896

Die gewünschten Zeilen sehen so aus:

Code: Alles auswählen

CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_HAS_DMA=y
CONFIG_ISA_DMA_API=y
CONFIG_SCSI_DMA=y
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA_FLAG=1

CONFIG_ATA_GENERIC=m
CONFIG_IDE_GENERIC=m
hilft das irgendwie weiter?

Ach ja, der andere Dell Mini 12 Besitzer, mit dem ich den Kernel parallel installiert habe, hat DMA offensichtlich aktiv. Er hat zwar eine größere Festplatte, aber ich hoffe nicht, dass das den Unterschied macht.

Gruß Robert

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 05.11.2009 10:42:19

Die Kernel-Konfig sieht eigentlich gut aus.

Vielleicht ist es andersrum doch besser: nimm einen neuen Kernel und baue den Poulsbo-Treiber dort ein. Hattet Ihr ein Howto befolgt oder kannst Du Dich erinnern, welche Schritte nötig waren?

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 05.11.2009 15:17:54

Ich hab noch die ganzen PN's in denen Stand, was ich machen muss. Ich bin mir nur nicht sicher, ob das mit dem neuen Kernel auch alles funktioniert. Ich muss nämlich unter anderem auch eine relativ alte libdrm von ubuntu benutzen, damit es läuft.

Das Problem ist außerdem, dass ich mein "funktionierendes" System aufgeben müsste. Wenn ich also anfange Sachen zu ändern, und am Ende klappt es doch nicht, dann hab ich kein funktionierendes System mehr. Und das brauch ich schon, da ich auf dem PC meine Dissertation schreibe.
Außerdem habe ich gerade erfahren, dass derjenige, mit dem ich das damals eingerichtet habe, auf seinem PC wieder auf die native Auflösung verzichtet, weil es zu unerklärlichen Abstürzen mit den Poulsbo-Treibern kam. Das Risiko besteht auch, dass ich am Ende einen PC hab, der ab und zu abstürzt. Das ist für einen Arbeits-PC natürlich katastrophal.

Nochmal ne Frage zum testen: Wenn ich von einem Live-USB-Stick boote, wie kann ich dann meine Festplatte einbinden, damit ich ihre Lesegeschwindigkeit testen kann? Standardmäßig wurde die weder bei grml noch bei einer ubuntu-live-version eingebunden.

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 05.11.2009 15:36:18

Zum Testen der Geschwindigkeit mit hdparm muss die Platte m.E. nicht eingebunden werden.

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 05.11.2009 16:08:14

Hm, aber sowohl hdparm /dev/hda als auch /dev/sda führen dazu, dass er nix findet. Wie kann ich denn sehen, welche Platten es alles gibt? der Befehl "df -h" zeigt ja nur die eingebundenen Laufwerke an.

Nur so nebenbei:
Ich habe es geschafft, den neuen Kernel dazu zu bringen, zumindest zu starten. Ich habe in der fstab "hda" durch "sda" ersetzt und in der xorg.conf "psb" durch "vesa" ersetzt. Jetzt kann ich die grafische Oberfläche starten, aber halt leider in der falschen Auflösung.

Aber um den Fortschritt aufzuzeigen habe ich mir mal eine Stoppuhr geholt.
OpenOffice-Writer zu starten, dauert mit dem neuen Kernel vom Klick bis zur Schreibbereitschaft genau 19 Sekunden. Mit dem alten Kernel, also ohne dma, dauert es ganze 55 Sekunden!!! Es lohnt sich für mich also schon das ganze irgendwie hinzubekommen.

Ich werde nochmal nachschauen was alles gemacht werden musste, damit die grafik am alten Kernel läuft. Da mussten imho irgendwelche Sachen in irgendwelche Unterverzeichnisse vom Kernel kopiert und kompiliert werden.
Korrigiert mich wenn ich falsch liege, aber in den Unterverzeichnissen des neuen Kernels müsste ich doch rumspielen können, ohne an meinem Funktionsfähigen Kernel irgend etwas zu ändern, richtig?

Gruß Robert

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 05.11.2009 18:10:41

Also was ist denn das jetzt????

Ich habe eben etwas mit dem neuen Kernel rumprobiert, aber es nicht geschafft in der nativen Auflösung zu starten.
Also wollte ich jetzt den alten Kernel wieder starten, ging aber nicht! Schock! Er startete nicht. Also habe ich die Bootparamter von /dev/hda1 in /dev/sda1 getauscht und auf einmal ging es. Und jetzt habe ich hier wieder den alten Kernel mit nativer Auflösung und SCHNELLER Festplatte.

Aber kann ich mich darauf jetzt verlassen? Das ist mir alles sehr merkwürdig und unzuverlässig.
Ich freue mich natürlich erstmal, aber ich traue dem Frieden nicht. Warum sollte es auf einmal gehen?

Fragen über Fragen :)

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 05.11.2009 19:05:13

> Warum sollte es auf einmal gehen?

Es gibt tatsächlich die Möglichkeit, dass Parameter von hdparm in der Festplatte gespeichert wurden.. eventuell hat irgend ein Kommando die Platte dauerhaft ausgebremst, und das Kommando ist jetzt gelöscht.

Ich weiß es doch auch nicht, ich rate nur :-D

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 05.11.2009 19:42:02

Hm, naja, es soll mir ja recht sein, auch wenn es merkwürdig ist :D

jetzt muss ich nur beim Booten immer von Hand eingeben, wo irgend etwas mit "resume image" oder so ist. Da sagt der immer sinngemäß, dass er dieses bei /dev/hda5 nicht finden konnte, ich soll den genauen Ort angeben oder Enter drücken zum starten. Ich gebe dann "/dev/sda5" ein und er startet wunderbar. Wäre schön, wenn er sich das irgendwie merken würde.

Aber da muss ich wohl nochmal die genaue Meldung abschreiben, damit ihr mir da helfen könnt.

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 06.11.2009 00:56:42

Hast Du Grub oder Grub2? Bei Grub könnte ich dir evtl. helfen. Bei Grub2 - kein Plan :D

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 06.11.2009 07:42:50

ich denke Grub. Zumindest ist mir der Begriff Grub2 noch nie untergekommen.
Auch die menu.lst befindet sich im Ordner Grub. Naja, auf jeden Fall habe ich das, was bei Lenny standardmäßig dabei ist. Also hilf! :)

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 06.11.2009 11:37:13

den falschen Eintrag müsstest Du in der Datei /boot/grub/menu.lst finden!

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 06.11.2009 13:35:50

Hm, in der menu.lst hatte ich schon gesucht, aber da finde ich keinen Eintrag mit /dev/hda5
Beim nächsten booten schreibe ich mal den genauen Wortlaut der Meldung ab.

ich habe übrigens eine Idee, woher der Geschwindigkeitsboost kommen könnte.
Bei meinen Versuchen im neuen Kernel die psb-Treiber zu aktivieren habe ich den Befehl "depmod -a" verwendet. Kann der dafür verantwortlich sein? Das ist eigentlich die einzige Erklärung, weil sonst habe ich nichts gemacht. Den depmod Befehl habe ich verwendet während der neue Kernel gebootet war, aber anscheinend wirkt sich das auch auf den alten Kernel aus. Naja, mir soll es recht sein, mein PC ist jetzt locker dreimal so schnell wie vorher und das ganze hat keinen cent gekostet :)

Gruß Robert

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 06.11.2009 15:10:07

Bei mir sehen die entsprechenden Einträge so aus (mein Kernel liegt auf der ersten Platte auf der ersten Partition (hd0,0) auf /dev/sda1), diese Werte müsstest Du analog dazu anpassen.
## default kernel options
# kopt=root=/dev/sda1 ro

## default grub root device
# groot=(hd0,0)
und, ganz unten:
title Debian GNU/Linux, kernel 2.6.30-bpo.2-amd64
root (hd0,0)
kernel /boot/vmlinuz-2.6.30-bpo.2-amd64 root=/dev/sda1 ro vga=794
initrd /boot/initrd.img-2.6.30-bpo.2-amd64
Könnte es sein, dass beide installierten Kernel die selben Module verwenden? Es scheint keine echte Trennung zu geben, wenn depmod des einen Kernel das Verhalten unter dem anderen Kernel beeinflusst. Ich würde an deiner Stelle weiterhin sehr vorsichtig sein mit Spielereien.

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 06.11.2009 15:14:26

Ja, die Einträge hatte ich gesehen, aber da dort ja momentan "hda1" und nicht "hda5" steht, er beim booten aber "hda5" sucht, hatte ich da nix verändert. Aber ein Versuch ist es wert. Ich habe das jetzt mal auf "sda1" geändert, beim nächsten booten sag ich dir, ob es geklappt hat :)

Gruß Robert

ps: was sagst du zu meiner "depmod -a" idee?

Robertba
Beiträge: 134
Registriert: 22.06.2008 11:19:51

Re: DMA-Modus im Kernel aktivieren

Beitrag von Robertba » 07.11.2009 10:17:30

Hallo,

so, ich hab das boot-Problem jetzt auch gelöst:

http://debianforum.de/forum/viewtopic.php?f=37&t=114640

jetzt bin ich rundherum zufrieden :)

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: DMA-Modus im Kernel aktivieren

Beitrag von George Mason » 07.11.2009 18:19:55

Das meinte ich zu depmod:
Könnte es sein, dass beide installierten Kernel die selben Module verwenden? Es scheint keine echte Trennung zu geben, wenn depmod des einen Kernel das Verhalten unter dem anderen Kernel beeinflusst. Ich würde an deiner Stelle weiterhin sehr vorsichtig sein mit Spielereien.
Also, eigentlich sollte es nicht möglich sein, aber Lord Tux works in mysterious ways sometimes :-D

Antworten