# scrittura su /dev/dsp

## fedeliallalinea

Salve a tutti! Ho un piccolo problema con il device dsp. Premetto che uso oss (non riesco a usare alsa con la i810_audio). Il problema e' il seguente: quando provo a scrivere un buffer tramite la funzione write sul dsp il programma esegue senza errori ma invece che inviare i dati al dsp me l'invia su stdout. I permessi sul dsp sono settati nel modo corretto. Non capisco cosa bisogna fare d'altro.

Aiutooooooooooooo!!!

----------

## cerri

Beh sicuramente sbagli qualcosa: il fatto che scriva su stdout piuttosto che su un file non credo possa dipendere dal file sul quale stai cercando di scrivere.

Tuttavia: che prob hai con alsa?

----------

## fedeliallalinea

Questo e' il programma di test stupido che ho scritto per inviare i dati al device dsp:

```
#define BUF 1024

main(void) {

  int i,fd,freq[BUF];

  if(fd=open("/dev/dsp", O_WRONLY, 0) == -1) {

    perror("/dev/dsp");

    exit(-1);

  }

  for(i=0; i<BUF; i++) {

    freq[i] = i*i;

  }

    

  if(write(fd,freq,BUF) == -1) {

    perror("write /dev/dsp");

  }

}

```

Il fatto che su debian funziona perfettamente, mentre in gentoo no. 

Il problema e' che facendo ...

```
# cat qualcosa > /dev/dsp 

```

... i dai vengono mandati al dsp. Ora so che da qualche parte sbaglio ma piu' che guardare i permessi (del dsp) non so che fare. Vorrei solo qualche dritta... ci sono altre impostazioni da andare a settare?

----------

## cerri

Non so aiutarti con il tuo prog, ti potevo aiutare solo a livello di concetto  :Smile: 

Tuttavia mi incuriosiva il fatto che non potevi usare alsa con la inte8x0...

----------

## fedeliallalinea

Ho installato a casa i driver alsa con una scheda sonora Ensoniq seguendo la documentazione che ho trovato sotto il sito ufficiale e tutto e' andato liscio. A scuola ho fatto le stesse identice procedure (cambiando chiaramente il driver) ma la cosa non ha funzionato per niente alla fine ho messo gli oss driver. Non mi ricordo esattamente cosa non funzionava perche' e' passato qualche mese. Fai questa domanda perche' tu se riuscito a installarla? Se si mi piacerebbe sapere come hai fatto (ho perso diverse ore io per configurarla ma senza successo).

----------

## cerri

Io l'ho installata senza fatica   :Shocked:  ossia senza fare proprio niente.... che sk e' di preciso?

Io parlo di notebook/desktop ibm.

----------

## fedeliallalinea

Ma tu usi un kernel 2.5? Il pc e un pentium 4 con 392Mb Ram della dell (optiplex gx 240 e se permeti aggiungerei che e' un cesso). La scheda e' un Intel 810 onboard.

----------

## cerri

Nope, 2.4.

Hai provato l'ultima versione?

----------

## fedeliallalinea

Non non ho provato l'ultima versione. Cmq ora mi serve che funzioni e quindi mi vanno bene gli oss solo che voglio capire perche' lo stesso programmino funziona al mio amico e a me no.

----------

## cerri

strace?

----------

## fedeliallalinea

sono un idiota. ho trovato l'errore. e' solo un problema di programmazione.

Questo codice ....

```
if(fd=open("/dev/dsp", O_WRONLY, 0) == -1) {

  perror("/dev/dsp");

  exit(-1);

} 

```

...deve diventare cosi:

```
if((fd=open("/dev/dsp", O_WRONLY, 0)) == -1) {

  perror("/dev/dsp");

  exit(-1);

} 

```

Prossima volta imparero' a controllare bene il codice anche se e' semplice. Grazie lo stesso

----------

