Fragen zu Gentoo & Sound

Alles rund um Linux und MAC -Probleme sowie - Fragen hier rein.
Benutzeravatar
Furby
Jungspund
Jungspund
Beiträge: 20
Registriert: So 7. Mär 2004, 14:20
Wohnort: Hannover
Kontaktdaten:

Fragen zu Gentoo & Sound

Beitrag von Furby »

Hi. Ich hab mal wieder eine Frage zu Linux:
Ich hab jetzt in Gentoo den oss sound Treiber installiert. Das erste Problem ist, dass ich ihn bei jedem Systemstart von Hand neustarten muss und noch nicht rausgefunden hab wo ich den Treiber eintragen muss, damit er von selbst startet.
Das zweite Problem ist das ich seit ich den Treiber drauf hab in unregelmäßigen Abständen eine Fehlermeldung erhalte:

Fehler - aRts-Meldung
Sound server fatal error:
cpu overload, aborting

Und noch eine Frage, was muss ich in der /etc/fstab eintragen, um automatisch eine NTFS Platte zu mounten (hdb)?

Mein System:
Gentoo mit der Vanilla-Kernel 2.4.26
Mainboard mit Via KT 333 Chipsatz
Athlon XP 1900+
512MB DDR 333
Creative Audigy LS
Radeon 9500Pro
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Woher weis Linux was es beim Starten alles mitladen soll?

Ganz einfach. Wenn der Rechner booted wird der Linux-Kernel geladen (alles vorher lass ich mal weg sonst wird es eine Doktorarbeit ;) ).
Wenn der Kernel fertig geladen ist startet er nur einen einzigen Prozess und das ist 'init'. Alle weiteren Prozesse werden von 'init' gestartet, was bedeutet daß 'init' der Vater aller Prozesse ist. 'init' kann automatisch mehrere Prozesse beim starten mitladen. Linux kennt mehrere Run-Levels (meistens 1 bis 5) von denen eines als Default vorgegeben ist. Für jedes Run-Level gibt es ein Verzeichnis in denen ausführbare Dateien abgelegt werden können die 'init' dann startet. Diese Verzeichnisse liegen in '/etc' und heissen '/rcX.d' wobei das X eine Zahl von 1 bis 5 ist und das Run-Level bezeichnet. Jetzt kommt es aber sehr oft vor das man in mehreren Run-Levels den selben Prozess starten will. Deshalb werden die Start/Kill-Scripte in '/etc/init.d' abgelegt und in den Verzeichnissen der Run-Level wird nur ein Sym-Link erstellt der auf das Start/Kill-Script zeigt. Beim starten (und auch beim killen) muss jedoch oft eine bestimmte Reihenfolge eingehalten werden. Deshalb gibt es eine festgelegte Namenskonvention. Alles was beim wechsel in dieses Run-Level gestartet werden soll beginnt mit einem großen 'S' (für Start). Dahinter steht eine 2-stellige Zahl die die Reihenfolge angibt. Ab dem 4ten Zeichen kann stehen was will aber es hat sich eingebürgert den Namen des Scriptes anzuhängen. Wenn Linux das Run-Level verlässt (beim wechsel/ausschalten/reboot) werden alle Kill-Scripte ausgeführt die dieses Run-Level hat. Auch die Kill-Scripte sind nur Sym-Links und folgen dem gleichen Schema wie die Start-Scripte nur das der Name diesmal mit einem 'K' (für Kill) beginnt. Dann kommen wieder die 2 Ziffern und anschliesend der Name.
Wenn du dir die 'rc'-Verzeichnisse unter '/etc' ansiehst wirst du feststellen das es da mehr als die 5 gibt. Das kommt daher weil 'boot', 'shutdown' und 'reboot' auch Run-Levels sind.

'rc0.d' = shutdown
'rc1.d' = Singleusermodus (kein Netwerk und nur ein User gleichzeitig)
'rc2.d' = Multiusermodus (mit Netzwerk)
'rc3.d' = frei
'rc4.d' = frei
'rc5.d' = Multiusermodus mit GUI (Graphical User Interface)
'rc6.d' = reboot
'rcS.d' = boot

Es kann sein das bei dir Multiuser mit Netzwerk auf rc3 liegt und rc2 Multiuser ohne Netzwerk. Die Distributionen unterscheiden sich da oft.

Für dich heist das jetzt du machst dir ein Start/Kill-Script für OSS, benennst es 'oss' und legst es in '/etc/init.d' ab. Dann erstellst du einen Sym-Link in '/etc/rc5.d' mit dem Ziel '../init.d/oss' und den Namen 'S70oss' (die Zahl 70 hab ich mal so angenommen). Dann erstellst du einen weiteren Sym-Link in '/etc/rc5.d' mit dem Ziel '../init.d/oss' und den Namen 'K10oss' (auch hier ist die Nummer angenommen und sollte angepasst werden).
Das war es auch schon. Zum testen kannst du in der Console 'init 2' eingeben und wenn er Run-Level 2 erreicht hat gibst du 'init 5' ein. Wenn alles passt sollte OSS mitgestartet werden.

Die Datei 'fstab' (FileSystemTABle)
Wie in den meisten Config-Dateien kannst du hier Komentare einfügen indem du eine Raute (oder Hash - '#') am Zeilenanfang setzt.
Die Datei stellt eine Tabelle dar bei der mit einem (oder mehreren) nicht druckbaren Zeichen (Space oder TAB) in die nächste Zelle gesprungen wird.
Die Zeilen haben folgendes Format:
<file system> <mount point> <type> <options> <dump> <pass>

Bei dir könnte die Zeile in etwa so aussehen:
/dev/hdb /mnt ntfs ro 0 0

Damit wird das FileSystem '/dev/hdb' in das Verzeichnis '/mnt' gemounted. Damit 'mount' nicht nachsehen muss um welches FS sich handelt gibst du als Type gleich 'ntfs' an. Die Option 'ro' steht für 'read only' und sollte bei NTFS verwendet werden weil es keine Garantie gibt daß Linux NTFS wirklich fehlerfrei schreiben kann. NTFS wurde von Microsoft entwickelt und die Struktur wurde nicht offengelegt. Die erste '0' bezieht sich auf 'dump' und bedeutet das dieses FS kein Kanditat für die Sicherung durch 'dump' ist. Die zweite '0' bedeutet daß beim booten des Rechners dieses FS nicht nach Fehlern überprüft werden soll. Nachdem es nur 'read only' gemountet wird kann Linux etwaige Fehler auch nicht korregieren.

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Benutzeravatar
City][Sepp
Lebende Foren Legende
Lebende Foren Legende
Beiträge: 1844
Registriert: Sa 7. Dez 2002, 22:58
Wohnort: München
Kontaktdaten:

Beitrag von City][Sepp »

Gentoo verfolgt aber ein etwas anderes Konzept mit den Runleveln ;)

Leider weiss ich jetzt nicht, wie man oss startet. Hab mich damit noch nicht befasst, da es bei mir per Default wunderbar funktioniert.

Sollte es aber über /etc/init.d/oss start gehen, dann musst Du einfach als root ein:

rc-update add oss default

machen... Damit fügst Du das oss Startscript in den Default Runlevel hinzu. Zur Not kannst Du Dir auch ein Startscript selbst schreiben. Mit der Anleitung, die Du auf der Seite findest, die ich unten angegeben habe, dürfte das recht problemlos sein...

Eine schöne Anleitung, wie das mit den gentoo Runleveln funktioniert und angedacht ist findest Du hier: http://www.gentoo.org/doc/de/handbook/h ... t=2&chap=5
Survivor of SV-LAN I, II AND III

Mein Public GnuPG Key

Bild

In Memory of BrucePayne - Rest in Peace
fonsi
Triple-Ass
Triple-Ass
Beiträge: 160
Registriert: Fr 6. Dez 2002, 10:51
Wohnort: Schweiz
Alter: 46
Kontaktdaten:

Beitrag von fonsi »

City][Sepp hat geschrieben: Sollte es aber über /etc/init.d/oss start gehen, dann musst Du einfach als root ein:
rc-update add oss default
Müsste es nicht "rc-update add oss boot"
Sound muss doch in den Boot-Runlevel, oder habe ich das falsch im Kopf...
Ich hab jetzt in Gentoo den oss sound Treiber installiert.
Wieso benutzt Du nicht Alsa... Zum einrichten brauchst Du so lange Arbeit, wie für OSS.
http://www.gentoo.de/doc/de/alsa-guide.xml
Gentoo mit der Vanilla-Kernel 2.4.26
Ich empfehle Dir auch den neuen Kernel 2.6.x zu nehmen. Da ist Alsa, NTFS-Support, IDE-Brenner-Support, usw... schon drin.

http://www.gentoo.de/doc/de/index.xml#doc_chap8
Da sind fast alle Anleitungen für Gentoo..
Lang lebe eRr Tee Zeh Weh...Lang lebe eRr Tee Zeh Weh ...Lang lebe eRr Tee Zeh Weh ...
Benutzeravatar
City][Sepp
Lebende Foren Legende
Lebende Foren Legende
Beiträge: 1844
Registriert: Sa 7. Dez 2002, 22:58
Wohnort: München
Kontaktdaten:

Beitrag von City][Sepp »

fonsi hat geschrieben:Müsste es nicht "rc-update add oss boot"
Sound muss doch in den Boot-Runlevel, oder habe ich das falsch im Kopf...
Hm.. ich überleg mir grad, wozu bereits im Boot RL Sound benötigt wird... Wenn Du natürlich ein wav oder mp3 abspielen willst, welches sagt: "Ich beginne jetzt mit dem booten..." dann brauchst oss natürlich im boot RL... :mrgreen:

Der Default Runlevel sollte reichen... Sound braucht man ja normalerweise erst, nachdem man sich an der Kiste angemeldet hat... Natürlich kann man ja oss auch ganz an den Anfang des Default RLs schieben... aber imho unnötig...
Survivor of SV-LAN I, II AND III

Mein Public GnuPG Key

Bild

In Memory of BrucePayne - Rest in Peace
fonsi
Triple-Ass
Triple-Ass
Beiträge: 160
Registriert: Fr 6. Dez 2002, 10:51
Wohnort: Schweiz
Alter: 46
Kontaktdaten:

Beitrag von fonsi »

Ist einleuchtend.
Aber Spielt es auch keine Rolle, wenn man Alsa als Modul kompiliert?
Lang lebe eRr Tee Zeh Weh...Lang lebe eRr Tee Zeh Weh ...Lang lebe eRr Tee Zeh Weh ...
Benutzeravatar
City][Sepp
Lebende Foren Legende
Lebende Foren Legende
Beiträge: 1844
Registriert: Sa 7. Dez 2002, 22:58
Wohnort: München
Kontaktdaten:

Beitrag von City][Sepp »

Imho spielt es keine Rolle. Du kannst ja mal alsa aus dem boot runlevel entfernen und dann wenn Du gebootet hast alsa nachträglich laden. Dann sollte der Sound auch funzen. Insofern ist es recht egal, wann man alsa lädt.. Aber ich weiss es net genau, weil ich ja OSS verwende...
Survivor of SV-LAN I, II AND III

Mein Public GnuPG Key

Bild

In Memory of BrucePayne - Rest in Peace
Benutzeravatar
Furby
Jungspund
Jungspund
Beiträge: 20
Registriert: So 7. Mär 2004, 14:20
Wohnort: Hannover
Kontaktdaten:

Beitrag von Furby »

thx schonmal für die Antworten, aber das mit dem Sound funtioniert immer noch nicht. Was ich am Anfang vergessen hab zu erwähnen, ist das ich den Treiber nicht mit Portage installiert hab sondern die Binärversion gesaugt hab. Deshalb hab ich mir dann ein initskript gemacht, dass das Skript startet welches ich jetzt immer zum starten vom Treiber brauche. Das Skript sieht so aus:
start() {
ebegin "OSS starten"
start-stop-daemon --start --quiet --exec /usr/lib/oss/bin/soundon
eend $?
}
Dannach hab ich das Skript in /etc/init.d" kopiert und mit "rc-update add oss-start default" versucht zum default runlevel dazuzumachen. Dabei kommt immer der Fehler
* oss-start not executable; skipping

@fonsi:
Ich nehm kein ALSA weil meine Soundkarte (Audigy LS) zurzeit nicht supportet wird.

P.s. Ich hab es zuerst mit emerge search oss, emerge oss-driver, emerge oss usw.. versucht bevor ich mir die Binärversion geholt hab, dabei hatter aber nichts gefunden



EDIT:
Das mit dem Sound hat sich halb gelöst, jetzt hab ich nen Kernel update gemacht und da gleich die Treiber mit einkompiliert. Jetzt fehlt mir nur noch ein Mixer, weil hören tu ich noch nichts und KMix zeigt immer nur an Mixer auswählen.
Das andere, neue Problem ist jetzt, dass wen ich in KDE in die Konsole gehe, kommt garnichts. Man sieht nur den Cursor und sonst passiert garnichts.
Dann ist da noch was, beim starten zeigt er mir an das in der Kernel DEVFS fehlt, er dass aber braucht. Ich hab dann nochmal mit make menuconfig die Kernel einstellungen angeguckt, hab da aber nichts mit DEVFS gefunden. Ich hab jetzt Kernel-2.6.5-gentoo-r1
fonsi
Triple-Ass
Triple-Ass
Beiträge: 160
Registriert: Fr 6. Dez 2002, 10:51
Wohnort: Schweiz
Alter: 46
Kontaktdaten:

Beitrag von fonsi »

@sepp
Stimmt hast recht. In der Anleitung steht aber schon, dass alsasound in den Boot-Level kommt und nicht in den default (weiss auch nicht warum....)

@Furby
Gentoo braucht
Befehlsauflistung 7: Selektieren notwendiger Dateisysteme
File systems --->
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot

(Deaktivieren Sie folgende Option sofern Sie nicht einen 2.6 Kernel
haben)

[ ] /dev/pts file system for Unix98 PTYs

(Selektieren Sie eine oder mehrere der folgenden Optionen, wie benötigt
von Ihrem System)

<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
Befolge die Installationsanleitung peinlich genau beim ersten Mal...
Später weisst Du was man überspringen darf und was nicht...

Wegen KDE http://www.gentoo.de/doc/de/desktop.xml
Wegen Sound (ist Alsa Anleitung, lässt sich aber vielleicht für OSS auch übertragen) http://www.gentoo.de/doc/de/alsa-guide.xml
Lang lebe eRr Tee Zeh Weh...Lang lebe eRr Tee Zeh Weh ...Lang lebe eRr Tee Zeh Weh ...
Benutzeravatar
City][Sepp
Lebende Foren Legende
Lebende Foren Legende
Beiträge: 1844
Registriert: Sa 7. Dez 2002, 22:58
Wohnort: München
Kontaktdaten:

Beitrag von City][Sepp »

Also seh ich das jetzt richtig?

Dein Startscript funktioniert, wenn Du es per Hand startest, aber nicht wenn Du es im Default Runlevel hast?

Dan würde ich jetzt probieren, das Script mal von der Reihenfolge her gaaanz zum Schluss starten zu lassen...

Füge einfach ein:
depend() {
after lastservice
}

in Dein Startscript am Anfang ein (so wies in dem Tutorial steht, das ich weiter oben geposted habe)
das lastservice ersetzt Du einfach durch den Dienst, der als letzter im Default Runlevel gestartet wird...

Welche Berechtigungen hast Du denn dem Startscript verpasst?
Survivor of SV-LAN I, II AND III

Mein Public GnuPG Key

Bild

In Memory of BrucePayne - Rest in Peace
Benutzeravatar
Furby
Jungspund
Jungspund
Beiträge: 20
Registriert: So 7. Mär 2004, 14:20
Wohnort: Hannover
Kontaktdaten:

Beitrag von Furby »

Nochmal vielen dank, jetzt gehts, warn ziemlicher dummer Fehler :roll:
Hatte vergessen das Skript ausführbar zu machen....
Jetzt hab ich nur noch das Problem mit NTFS, hab nämlich noch ne kleine Platte mit ner kaputten Windows Installation und da wollte ich mal die Daten sichern. Allerdings mountet er das nicht automatisch und wen ich das von Hand machen will kommt immer der fehler "fs type not supportet", ich hab ntfs support aber mit einkompiliert. Hier ist mal meine fstab:
# /etc/fstab: static file system information.
# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/fstab,v 1.14 2003/10/13 20:03:38 azarah Exp $
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed; notail increases performance of ReiserFS (at the expense of storage
# efficiency). It's safe to drop the noatime options if you want and to
# switch between notail and tail freely.

# <fs> <mountpoint> <type> <opts> <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,user 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0
/dev/hdb1 /mnt ntfs no 0 0

# NOTE: The next line is critical for boot!
none /proc proc defaults 0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
# use almost no memory if not populated with files)
# Adding the following line to /etc/fstab should take care of this:

none /dev/shm tmpfs defaults 0 0
Hab ich alles nach dem Gentoo Handbuch gemacht und das für NTFS nach dem was Woodstock geschrieben hat.


Und das schlimmste ist das ich immer noch die Fehlermeldung vom Anfang kriege:
Fehler - aRts-Meldung
Sound server fatal error:
cpu overload, aborting
Die kommt einfach irgendwann und dann beenden sich alle Programme die was mit Sound zu tun haben.
Benutzeravatar
City][Sepp
Lebende Foren Legende
Lebende Foren Legende
Beiträge: 1844
Registriert: Sa 7. Dez 2002, 22:58
Wohnort: München
Kontaktdaten:

Beitrag von City][Sepp »

Also ich würde es lieber mit den Captive NTFS Treibern versuchen...

http://www.jankratochvil.net/project/captive/

Eventuell kann man das auch emergen... Vorteil: Du musst keinen neuen Kernel kompilieren, falls da was schiefgelaufen ist...

Da das Captive Projekt die nativen NTFS Treiber von MS verwendet ist auch keinerlei Datenverlust bei schreibendem Zugriff auf die Platte zu befürchten...
Zuletzt geändert von City][Sepp am Mi 5. Mai 2004, 13:37, insgesamt 1-mal geändert.
Survivor of SV-LAN I, II AND III

Mein Public GnuPG Key

Bild

In Memory of BrucePayne - Rest in Peace
Benutzeravatar
City][Sepp
Lebende Foren Legende
Lebende Foren Legende
Beiträge: 1844
Registriert: Sa 7. Dez 2002, 22:58
Wohnort: München
Kontaktdaten:

Beitrag von City][Sepp »

Bezüglich Deines Problems mit Arts scheint es sich wohl um einen Bug in der Konstellation: OSS/artsd/KDE3.2.x zu handeln.

Du stehst nun vor dem Problem, dass OSS eine "aussterbende Rasse" ist und Lösungen in diese Richtung nur sehr stiefmütterlich behandelt werden :(

Eventuell könntest Du ein Kernel Update auf 2.6.2 (ab 2.6.3 solls die arts Probleme wieder geben) machen. Jedoch hängst Du dann mit einigen Sicherheitslücken da :/

Ich werde heut auch mal gucken, ob man unter KDE den artsd durch den esd austauschen kann... Hier in der Arbeit hab ich leider kein Linux und kann mir das net anschauen...

Die wohl einfachste Lösung (allerdings etwas geldintensiv ~35 Euro) wäre es, sich ne Creative Soundblaster 5.1 zu holen... Die Karten dieser Serie kommen gänzlich ohne Sounddaemon aus und Du kannst ausserdem Alsa verwenden... Ich hab ne SB 5.1! Digital und es gibt wohl keine problemlosere Karte unter Linux (mal abgesehen von den Profi Lösungen, die dann bei ca. 500 Euro losgehen)...

Alternativ könntest Du auch probieren, mal ne KDE3.1.x Version zu nehmen. Oder lediglich den artsd mal downzugraden... All das sind natürlich relativ zeitraubende Tätigkeiten die noch dazu keine Erfolg garantieren. Und es ist alles andere als empfehlenswert kde 3.1.x und 3.2.x gleichzeitig installiert zu haben... Bei funktioniert es zwar, aber viiiieeele haben da andere Erfahrungen gemacht...

Sollte ich diesbezüglich irgendwas Neues in Erfahrung bringen, melde ich mich natürlich ;)
Survivor of SV-LAN I, II AND III

Mein Public GnuPG Key

Bild

In Memory of BrucePayne - Rest in Peace
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

In der Datei 'fstab' sollte in der Options-Spalte 'ro' stehen und nicht 'no'.

Es kann natürlich auch sein daß es garnicht hdb1 sondern hdb2 ist.
Welche Partitionen sich wirklich auf der Platte befinden zeigt dir der Befehl: 'sfdisk -lx /dev/hdb'.

Da es auch eine FAT32-Partition sein könnte, versuch mal die gefundene Partition mit automatischer Erkennung zu mounten: 'mount -r -t auto /dev/hdbX /mnt'.

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Benutzeravatar
Furby
Jungspund
Jungspund
Beiträge: 20
Registriert: So 7. Mär 2004, 14:20
Wohnort: Hannover
Kontaktdaten:

Beitrag von Furby »

Das ist auf jeden Fall hdb1 mit NTFS

/dev/hdb1 0+ 2489 2490- 20000893+ 7 HPFS/NTFS
/dev/hdb2 0 - 0 0 0 Empty
/dev/hdb3 0 - 0 0 0 Empty
/dev/hdb4 0 - 0 0 0 Empty

Das mit ro stat no versuch ich gleich mal, mit mount -r -t auto /dev/hdb1 /mnt geht's.

EDIT:
Das auto-mounten geht jetzt, aber das Problem ist jetzt, dass ich nur noch als root zugriff auf /mnt hab und wen ich versuche das zu ändern kommen immer nen paar Fehler das ich das nicht ändern kann. Ausserdem mountet er dann die andern sachen nicht (floppy und cdrom).

Der Sound geht jetzt, zumindest hatte ich jetzt in letzter Zeit keine Fehler mehr.
Antworten

Zurück zu „Linux und MAC - Forum“