Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 22

Thema: [C] Hardware ansteuern (unter Linux)

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.04.2003
    Beiträge
    194

    [C] Hardware ansteuern (unter Linux)

    HI!
    Also wie steuere ich eigentlich Hardware, zB Netzwerkkarte, Soundkarte oder sonstige Hardware unter Linux an? Wie baut man dann zB Chats oder wie sendet man Nachrichten übers Netzwerk? Gibts da eigene Bibliotheken dafr, oder geschieht dies über Zugriff zu den Dateien in /dev ?!?

    Dank im Voraus für die Antworten!

    mfG

  2. #2
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    hallo,


    soviele fragen auf einmal ?

    ich beziehe mich jetzt mal nicht auf pci karten sondern auf die serielle schnittstelle:

    diese kannst du , am besten mit libs, direkt ansprechen, ein link dazu liegt in /dev .

    Chats und nachrichten hoeher. du hast gerade naemlich nach dem OSI schichten modell von der uebertragungsschicht gesprochen, diese hier ist aber glaube ich (ohne gewaehr) die protokollschicht.

    sprich:

    du benutzt sockets auf die du daten "legst" und der socket auf der fremden seite liest die daten aus seinem socket.

    hoffe das hat n bisschen geholfen, wenn du die fragen etwas genauer stellen wuerdest koenntest du evt. auch ne bessere antwort bekommen. wenn du wirklich hintergrundwissen zu kommunikation willst musst du z.b. illustrated tcp/ip lesen


    gruss tuxipuxi

  3. #3
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    für die Soundkarte: Ansprechen tust du die über /dev/dsp, wobei du die Qualitätsparameter (Mono/Stereo, 8/16 bit, Frequenz) über OSS/Alsa - funktionen
    einstellen kannst

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.04.2003
    Beiträge
    194
    --AHA--
    naja, so is das also!
    wird also doch schwerer als ich dachte!


    @ tuxipuxi: illustrated tcp/ip --> von wo krieg ich das her? Und du hast gesagt die libs sind in /dev. Also ich hab weder ein lib noch include Verzeichnis bzw. eine header-datei. Was hast du damit gemeint? Achja, der Begriff "mit libs direkt ansprechen" gefällt mir sehr gut !

    @ peschmae: /dev/dsp --> diese datei ist irgendwie leer!

    Ich brauch dieses Wissen nicht für meine Schule, bzw. um Relais-Karten, etc. zu programmieren. Eben halt nur aus Fun und Wissenserweiterung!

    Vielen Dank für die bisherigen Antworten!
    mfG

    PS: wenn ihr eine wichtige Info für mich habt, schreibt es bitte, danke!

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.04.2001
    Ort
    Bremen
    Beiträge
    339
    Hi!

    Das Buch findest du hier: http://www.amazon.de/exec/obidos/ASI...664094-2296868

    Unter UNIX (und damit auch Linux) wird jedes Gerät (es gibt wie immer Ausnahmen wie z.B. Netzwerkkarten usw.) als Datei in /dev zur Verfügung gestellt. Diese Dateien haben alle Eigenschaften die auch andere Dateien haben, d.h. man kann von ihnen lesen, schreiben, die Benutzerrechte ändern usw.
    => Alles was du im Prinzip brauchst sind die Befehle:
    open, close, read, write und ioctl

    Als kleiner Beweis:
    Führ mal den Befehl cat /bin/bash > /dev/dsp aus, dann hörst du ein Rauschen.

    c ya,
    Tobias

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von Silver
    --AHA--
    naja, so is das also!
    wird also doch schwerer als ich dachte!
    Du musst das im Normalfall auch nicht direkt machen.
    Für Ansteuerung von üblicher Hardware gibt es meist Schnittstellen auf höherere Ebene.

    Wobei der Zugriff über die File API eh schon sehr fein ist.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  7. #7
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    wenn ich ein micro an meine soundkarte anschließe müsste ich doch rein theoretisch in der ausgabe von "cat /dev/dsp" veraenderungen sehen, wenn ich da reinlabere!? aber irgendwie ist das nicht so, die ausgabewerte beiben konstant bei 0x7F oder 0x80

    (ja, das micro funzt und was ich sage wird auch gleich wieder ueber lautsprecher ausgegeben)

  8. #8
    Registrierter Benutzer
    Registriert seit
    10.04.2001
    Ort
    Bremen
    Beiträge
    339
    Original geschrieben von BLUESCREEN3D
    wenn ich ein micro an meine soundkarte anschließe müsste ich doch rein theoretisch in der ausgabe von "cat /dev/dsp" veraenderungen sehen, wenn ich da reinlabere!? aber irgendwie ist das nicht so, die ausgabewerte beiben konstant bei 0x7F oder 0x80

    (ja, das micro funzt und was ich sage wird auch gleich wieder ueber lautsprecher ausgegeben)
    Ich habe dasselbe gerade mit "Line in" (TV-Karte) als Aufnahmequelle probiert ich sehe durchaus andere Aushabewerte als 0x7F und 0x80.

    Vielleicht machst du irgendetwas falsch?

    c ya,
    Tobias

  9. #9
    Registrierter Benutzer
    Registriert seit
    19.04.2003
    Beiträge
    194
    @anda_skoa: gibts diese Ansteuerung auch unter c? Und wenn ja, wie bzw. welche!

    also wenn ich nun zB auf /dev/dsp einen sound ausgeben will, muss ich erst mal mit die datei öffnen, dann dort binär(od. hexadezimal?) hineinschreiben, und danach wieder schliessen! Stimmt diese Satz? Und wenn ja, brauch ich da ja Root-Rechte, oder?

    Sry, wegen den Fragen, hab aber noch keine wirklich gute Seite zum Thema angegoogelt!

    mfG

  10. #10
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    illustrated tcp/ip --> von wo krieg ich das her?
    wenn du einen browser bedienen kannst:
    www.google.de

    Und du hast gesagt die libs sind in /dev.
    nein, ein link auf das device liegt in /dev(als linuxer sollte man das wissen)

    Achja, der Begriff "mit libs direkt ansprechen" gefällt mir sehr gut !
    ja, total amuesant.

    @ peschmae: /dev/dsp --> diese datei ist irgendwie leer!
    das ist aber ungewoehnlich.. normal ist das nur n zwischenspeicher wo die ganzen mp3 dateien reinkommen.

    Ich brauch dieses Wissen nicht für meine Schule, bzw. um Relais-Karten, etc. zu programmieren.
    ja find ich gut das du uns da als buchersatz nimmst, ist ja nicht so anstrengend wie selbst zu suchen.

    @anda_skoa: gibts diese Ansteuerung auch unter c? Und wenn ja, wie bzw. welche!
    nein, das musst du wie die ganzen mp3player machen.. immer datei oeffnen und schreiben.

    Sry, wegen den Fragen, hab aber noch keine wirklich gute Seite zum Thema angegoogelt!
    demnaechst kommt ein buch mit 100 tipps zu google raus.. das kannst du dir zum geburtstag wuenschen.




    *SCNR*

  11. #11
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von Silver
    @anda_skoa: gibts diese Ansteuerung auch unter c? Und wenn ja, wie bzw. welche!
    Natürlich auch für C.
    Eigentlich meistens in C

    Es gibt verschiedene Bibliotheken.
    ALSA hat zum Beispiel eine eigene:
    (siehe unetr Developer documentation)
    http://www.alsa-project.org/documentation.php3#0.9doc

    Oder via SDL
    http://www.libsdl.org/intro.de/usingsound.html


    also wenn ich nun zB auf /dev/dsp einen sound ausgeben will, muss ich erst mal mit die datei öffnen, dann dort binär(od. hexadezimal?) hineinschreiben, und danach wieder schliessen! Stimmt diese Satz?
    Ja, so in etwa.
    Eben dann, wenn man keine Audio Libs verwendet.


    Und wenn ja, brauch ich da ja Root-Rechte, oder?
    Du brauchst Schreibrechte am Device.
    Wie die Rechte dort sind, hängt vom Setup ab.
    Bei mir hat zB die Gruppe Audio dort Lese/Schreibrechte, also können alle User in dieser Gruppe Audio Applikationen benutzten.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  12. #12
    Registrierter Benutzer
    Registriert seit
    19.04.2003
    Beiträge
    194
    @tuxipuxi: ich versuche stes freundlich zu anderen zu sein, und würde dies auch von den anderen erwarten so zu sein

    Ok, werde mich das nächste mal besser im WWW erkundigen, bevor ich poste!

    @all: verwendet ihr im Allgmeinen eher Libs, oder steuert ihr direkt die Hardware an?

    mfG

    PS: Leider hatte ich erst vor einem Monat Geburtstag
    Geändert von Silver (02-05-2003 um 19:16 Uhr)

  13. #13
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Original geschrieben von tkortkamp
    Ich habe dasselbe gerade mit "Line in" (TV-Karte) als Aufnahmequelle probiert ich sehe durchaus andere Aushabewerte als 0x7F und 0x80.

    Vielleicht machst du irgendetwas falsch?
    welches device ist denn line in von tv-karte???
    oder ist das auch /dev/dsp? wenn nicht, kann man das wohl nicht so ganz vergleichen...

    was ich falsch mache weiss ich ja nicht, deshalb frage ich ^^

  14. #14
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    habe ein beispiel programm auf der seite http://www.guerrilla.net/reference/dsp/prog_dsp.htm gefunden

    irgendwie funzt noch nichtmal das...

  15. #15
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    Original geschrieben von Silver
    @tuxipuxi: ich versuche stes freundlich zu anderen zu sein, und würde dies auch von den anderen erwarten so zu sein

    Ok, werde mich das nächste mal besser im WWW erkundigen, bevor ich poste!

    @all: verwendet ihr im Allgmeinen eher Libs, oder steuert ihr direkt die Hardware an?

    mfG

    PS: Leider hatte ich erst vor einem Monat Geburtstag
    ich moechte mich fuer meinen beitrag entschuldigen, hab etwas "die kontrolle verloren" .
    mir haben einige deiner aeusserungen nicht gefallen, tut mir leid.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •