Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: repro i sluchatka jedou zaroven [vyřešeno]  (Přečteno 1155 krát)

salopa

  • Návštěvník
  • Příspěvků: 2
repro i sluchatka jedou zaroven [vyřešeno]
« kdy: 23 Září 2010, 01:13:00 »
Dobry den,

Mam notebook Lenovo IdeaPad G560 a ubuntu 10.04. Po pripojeni sluchatek mi jede zvuk ve sluchatkach, ale i v internich reproduktorech.

prikaz

Kód: [Vybrat]

cat /proc/asound/card0/codec#* | grep Codec


mi zjistil

Kód: [Vybrat]

Conexant ID 5069


tento typ jsem nenasel v souboru /usr/share/doc/alsa-base/driver/HD-Audio-Models.txt a tak jsem zkousel ruzne modifikace pridani radky

Kód: [Vybrat]

options snd-hda-intel model=xyz


jak je uvedeno v navodu: http://ubuntuforums.org/showthread.php?t=314383

Bohuzel bez vysledku.

Zkousel jsem se divat take do alsamixeru, ale tam se mi bohuzel nepodarilo ani nalezt ovladani hlasitosti sluchatek je tam pouze tohle:


Dekuji za jakoukoli pomoc
« Poslední změna: 23 Září 2010, 13:46:34 od salopa »

petergula

  • Stálý člen
  • **
  • Příspěvků: 1016
Re: repro i sluchatka jedou zaroven
« Odpověď #1 kdy: 23 Září 2010, 03:35:20 »
takze tento model ti nefungoval?
Citace
Re: Speakers AND headphones playing sound simultaneously.
For Lenovo G560:

gksudo gedit /etc/modprobe.d/alsa-base.conf

and add to the end:

options snd-hda-intel model=ideapad

With the ideapad-model the headphone jack should be working as expected.

Bye!
http://ubuntu-ky.ubuntuforums.org/showthread.php?t=1366524&page=7


alebo post #131 na tejto stranke: http://ubuntuforums.org/showthread.php?t=1043568&page=14
« Poslední změna: 23 Září 2010, 03:40:24 od petergula »
ntbk Dell 6420 (Amd Ati, Intel i7, 4GB RAM, 256GB SSD ...)
secondary/u svokrovcov:
Xubuntu (64bit) ntbk Asus A6Je (Ati X1450, Intel Core2Duo T5500, 2.5GB RAM ...)

salopa

  • Návštěvník
  • Příspěvků: 2
Re: repro i sluchatka jedou zaroven
« Odpověď #2 kdy: 23 Září 2010, 13:44:48 »
Presne tak ten model i dalsi mi nefungovaly. Zkousel jsem vsemozne veci a konecne jeden zabral a to pouziti programku, ktery je na odkazu tebou uvedeny. To jedine jsem predtim snad nezkousel  :) : http://ubuntuforums.org/showthread.php?t=1043568&page=14

Dikec moc za pomoc.

Akorat jedna drobnost a to ze jsem tento zdrojak musel upravit protoze u me se nenachazelo zarizeni hwC0D0 ale bylo to hwC0D1 takze zdrojak je nasledujici

Kód: [Vybrat]
/*
 * File:   main.cpp
 * Author: xtr
 *
 * Created on April 26, 2010, 5:26 PM
 */

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/io.h>
#include <sys/types.h>
#include <sys/fcntl.h>
#include <syslog.h>
#include <signal.h>

#include <stdint.h>
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;

#define HDA_VERB(nid,verb,param)    ((nid)<<24 | (verb)<<8 | (param))
#define HDA_IOCTL_VERB_WRITE        _IOWR('H', 0x11, struct hda_verb_ioctl)

struct hda_verb_ioctl {
    u32 verb;    /* HDA_VERB() */
    u32 res;    /* response */
};

void daemonize()
{
    pid_t pid, sid;

    /* Fork off the parent process */
    pid = fork();
    if (pid < 0) {
            exit(EXIT_FAILURE);
    }
    /* If we got a good PID, then
       we can exit the parent process. */
    if (pid > 0) {
            exit(EXIT_SUCCESS);
    }

    /* Change the file mode mask */
    umask(0);

    /* Open any logs here */
    openlog("pinsensed", LOG_PID, LOG_DAEMON);
    /* Create a new SID for the child process */
    sid = setsid();
    if (sid < 0) {
            /* Log any failure here */
            exit(EXIT_FAILURE);
    }

    /* Change the current working directory */
    if ((chdir("/")) < 0) {
            /* Log any failure here */
            exit(EXIT_FAILURE);
    }


    /* Close out the standard file descriptors */
    close(STDIN_FILENO);
    close(STDOUT_FILENO);
    close(STDERR_FILENO);

}

bool done = false;

void trpsig(int)
{
    done = true;
}

int main(int argc, char** argv) {
    daemonize();
    signal(SIGTERM, &trpsig);

    int fd, state;
    struct hda_verb_ioctl val;
    syslog(LOG_INFO, "Daemon started.");
    fd = open("/dev/snd/hwC0D1", O_RDWR);
    if (fd < 0) {
        syslog(LOG_ERR, "Failed to open snd device.");
            exit(EXIT_FAILURE);
    }
    val.verb = HDA_VERB(0x19, 0x0f09, 0x0);
        if (ioctl(fd, HDA_IOCTL_VERB_WRITE, &val) < 0)
            syslog(LOG_ERR, "Failed to write hda verb.");
    state = val.res >> 31;
    syslog(LOG_INFO, "Starting input value: %0x", state);
    while(!done)
    {
        sleep(1);
        val.verb = HDA_VERB(0x19, 0x0f09, 0x0);
        if (ioctl(fd, HDA_IOCTL_VERB_WRITE, &val) < 0)
            syslog(LOG_ERR, "Failed to write hda verb.");

        if(state != (val.res >> 31))
        {
            state = (val.res >> 31);
            syslog(LOG_INFO, "New input value: %0x", state);
            if(state == 0x1)
                val.verb = HDA_VERB(0x1f, 0x701, 0x1);
            else
                val.verb = HDA_VERB(0x1f, 0x701, 0x0);
            if (ioctl(fd, HDA_IOCTL_VERB_WRITE, &val) < 0)
                syslog(LOG_ERR, "Failed to write hda verb.");
        }
    }
    close(fd);
    syslog(LOG_INFO, "Daemon stopped.");
    exit(EXIT_SUCCESS);
}

 

Provoz zaštiťuje spolek OpenAlt.