18.04, 16.04 Headphone terdeteksi, tetapi tidak dihidupkan secara otomatis setelah startup

26

Sunting: masalah ini tampaknya juga mempengaruhi 18,04.

Saya memiliki masalah ini sejak 15.10, tetapi mulai benar-benar menggiling gigi saya setelah melakukan peningkatan ke 16,04.

Katakanlah saya memasang headphone. Saya reboot \ relog on \ boot ke ubuntu, dan mainkan musiknya. Itu keluar dari speaker built in bukan headphone .

Saya dapat melihat bahwa headphone terdeteksi di dalam menu pengaturan audio , tetapi hanya setelah saya mengganti perangkat atau mengganti headphone saya, mereka akan berfungsi.

Ini lebih mudah diabaikan pada 15.10, karena saat itu, setelah startup, semuanya dibisukan. Headphone dan speaker, jika headphone ada sebelum startup tersebut.

Saya akan menambahkan log ke pertanyaan, tetapi saya tidak benar-benar tahu yang mana, atau bagaimana cara mendapatkannya (saya terbuka untuk saran). Masalahnya terjadi pada laptop Dell Inspiron 3537 , ia memiliki kartu suara Realtek di dalamnya.

Ini memiliki satu jack output di samping, yang bertindak sebagai input dan output.


Output dari pacmd listcards

2 card(s) available.
    index: 0
    name: <alsa_card.pci-0000_00_03.0>
    driver: <module-alsa-card.c>
    owner module: 6
    properties:
        alsa.card = "0"
        alsa.card_name = "HDA Intel HDMI"
        alsa.long_card_name = "HDA Intel HDMI at 0xc0810000 irq 49"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:03.0"
        sysfs.path = "/devices/pci0000:00/0000:00:03.0/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "0a0c"
        device.product.name = "Haswell-ULT HD Audio Controller"
        device.form_factor = "internal"
        device.string = "0"
        device.description = "Wbudowany dźwięk"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    profiles:
        output:hdmi-stereo: Wyjście Digital Stereo (HDMI) (priority 5400, available: unknown)
        output:hdmi-surround: Wyjście Digital Surround 5.1 (HDMI) (priority 300, available: unknown)
        output:hdmi-surround71: Wyjście Digital Surround 7.1 (HDMI) (priority 300, available: unknown)
        output:hdmi-stereo-extra1: Wyjście Digital Stereo (HDMI 2) (priority 5200, available: unknown)
        output:hdmi-surround-extra1: Wyjście Digital Surround 5.1 (HDMI 2) (priority 100, available: unknown)
        output:hdmi-surround71-extra1: Wyjście Digital Surround 7.1 (HDMI 2) (priority 100, available: unknown)
        output:hdmi-stereo-extra2: Wyjście Digital Stereo (HDMI 3) (priority 5200, available: unknown)
        output:hdmi-surround-extra2: Wyjście Digital Surround 5.1 (HDMI 3) (priority 100, available: unknown)
        output:hdmi-surround71-extra2: Wyjście Digital Surround 7.1 (HDMI 3) (priority 100, available: unknown)
        off: Wyłączone (priority 0, available: unknown)
    active profile: <output:hdmi-stereo>
    sinks:
        alsa_output.pci-0000_00_03.0.hdmi-stereo/#0: Wbudowany dźwięk Digital Stereo (HDMI)
    sources:
        alsa_output.pci-0000_00_03.0.hdmi-stereo.monitor/#0: Monitor of Wbudowany dźwięk Digital Stereo (HDMI)
    ports:
        hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"
        hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"
        hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"
    index: 1
    name: <alsa_card.pci-0000_00_1b.0>
    driver: <module-alsa-card.c>
    owner module: 7
    properties:
        alsa.card = "1"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH at 0xc0814000 irq 48"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:1b.0"
        sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "9c20"
        device.product.name = "8 Series HD Audio Controller"
        device.form_factor = "internal"
        device.string = "1"
        device.description = "Wbudowany dźwięk"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    profiles:
        input:analog-stereo: Wejście Analogowe stereo (priority 60, available: unknown)
        output:analog-stereo: Wyjście Analogowe stereo (priority 6000, available: unknown)
        output:analog-stereo+input:analog-stereo: Analogowy dupleks stereo (priority 6060, available: unknown)
        off: Wyłączone (priority 0, available: unknown)
    active profile: <output:analog-stereo+input:analog-stereo>
    sinks:
        alsa_output.pci-0000_00_1b.0.analog-stereo/#1: Wbudowany dźwięk Analogowe stereo
    sources:
        alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#1: Monitor of Wbudowany dźwięk Analogowe stereo
        alsa_input.pci-0000_00_1b.0.analog-stereo/#2: Wbudowany dźwięk Analogowe stereo
    ports:
        analog-input-internal-mic: Wewnętrzny mikrofon (priority 8900, latency offset 0 usec, available: unknown)
            properties:
                device.icon_name = "audio-input-microphone"
        analog-input-headphone-mic: Mikrofon (priority 8700, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "audio-input-microphone"
        analog-input-headset-mic: Mikrofon na słuchawkach (priority 8700, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "audio-input-microphone"
        analog-output-speaker: Głośniki (priority 10000, latency offset 0 usec, available: unknown)
            properties:
                device.icon_name = "audio-speakers"
        analog-output-headphones: Słuchawki (priority 9000, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "audio-headphones"
Błażej Michalik
sumber
1
Ini kelihatannya salah (dalam arti PulseAudio mengacaukan) - headphone Anda yang terpasang harus dipilih bahkan pada percobaan pertama. Lakukan rm -rf ~/.pulse ~/.config/pulsesebelum semuanya. Ini membuat PA menggunakan pengaturan default. Apakah masalahnya tetap ada?
emk2203
Ya, benar. Semuanya seperti itu, headphone masih terdeteksi. Saya memastikan dua kali bahwa rm bekerja - tidak ada direktori di atas yang hadir. Saya melakukan reboot setelah itu.
Błażej Michalik
Bisakah kamu memposting pacmd list-cards?
emk2203
@ emk2203 Selesai. Beberapa kata kunci dalam bahasa Polandia, jadi: "wyjście" == "output", "wejście" == "input", "wewnętrzny mikrofon" == "mikrofon internal".
Błażej Michalik
Pemutar musik mana yang Anda gunakan?
userDepth

Jawaban:

7

Pandangan saya tentang ini akan menjadi manfaat berikut dari PulseAudio. Dengan asumsi bahwa ketika Anda login di Ubuntu, Anda selalu memiliki headphone Anda terhubung, maka yang berikut akan memastikan bahwa ketika Anda boot ke Ubuntu, ia akan secara otomatis mengaturnya sebagai Input dan Output default (Asumsikan Anda menginginkan keduanya).

Pada Ubuntu pergi ke terminal dan ketik berikut ini dari mana Anda hanya akan mengumpulkan Nomor Indeks:

Untuk PERANGKAT OUTPUT Anda :

pacmd list-sinks - Akan ada banyak informasi tetapi mencari Nomor Indeks dan perangkat yang sesuai yang akan menjadi Perangkat Keluaran default baru Anda.

Untuk PERANGKAT INPUT Anda :

pacmd list-sink-inputsATAU pacmd list-samples- Akan ada banyak informasi tetapi cari Nomor Indeks dan perangkat yang sesuai yang akan menjadi Perangkat Input default baru Anda. Gunakan daftar-sampel jika dalam daftar-tenggelam-input itu tidak ditampilkan.

Hingga saat ini, di Ubuntu, dengan headphone Anda terhubung, Anda harus memiliki 2 nomor indeks. Satu untuk input dan output Anda. Sekarang kita akan pergi dan mengedit konfigurasi default pulseaudio Anda:

sudo nano /etc/pulse/default.pa

Pergi ke baris terakhir dan cukup tambahkan berikut ini:

set-default-sink 1 - Ini sesuai dengan Sumber Output setelah melihat indeks pacmd list-sinks. Angka 1 adalah indeks, jadi ubahlah menjadi yang Anda dapatkan.

set-default-source 5- Ini sesuai dengan Sumber Input setelah melihat indeks pacmd list-sink-inputsatau pacmd list-samples. Angka 5 adalah indeks, jadi ubahlah menjadi yang Anda dapatkan.

Simpan file dan reboot komputer untuk diuji. Pengujian melibatkan memeriksa apakah Anda mendapatkan nilai indeks yang benar, karena beberapa perangkat memiliki nama yang mirip (Seperti NVIDIA ATAU INTEL sumber Audio).

Jika semuanya sudah diatur dengan benar, setiap kali Anda mem-boot komputer Anda, Anda akan melihat Ubuntu menetapkan Input / Output default ke headphone Anda. Karena Anda berbicara tentang Headphone, untuk Pengurangan Noise, Anda dapat menggunakan jawaban saya yang lain untuk membantu Anda dengan itu: Penghapusan kebisingan secara real time dengan PulseAudio?

CATATAN: Anda juga dapat menggunakan pacmd list-sourcesuntuk melihat semua perangkat dan alih-alih menggunakan nomor indeks, Anda dapat menggunakan nama perangkat yang ditugaskan, yang terlihat seperti ini:

alsa_input.usb-Logitech_Logitech_USB_Headset-00.analog-mono.echo-canceluntuk memberi Anda gambaran tentang nama apa yang harus dicari (Super long I know). Nama lebih akurat untuk digunakan tetapi lebih sulit diingat sehingga Anda memiliki opsi di sini untuk menggunakan satu atau yang lain. Hasil akhirnya menggunakan nama, akan seperti ini:

set-default-source alsa_input.usb-Logitech_Logitech_USB_Headset-00.analog-mono.echo-cancel dalam file default.pa, hanya untuk memberi Anda ide.

Untuk opsi GUI, saya sarankan pavucontrolatau PulseAudio Volume Control. Ini menawarkan opsi untuk mengatur perangkat sebagai default / fallback untuk perangkat Input dan Output. Menggunakan kedua teknik tersebut dapat memberikan apa yang Anda inginkan.

Luis Alvarado
sumber
Saya tidak berpikir itu akan berhasil, tetapi Anda bisa ke sesuatu. Masalahnya adalah, bahwa pada mesin saya, saya memiliki dua perangkat suara: Intel HDMI, dan Realtek analog. Indeksnya adalah: 0 - HDMI, 1 - analog. Perangkat Realtek memiliki dua port - speaker dan headphone (dengan prioritas masing-masing 10k dan 9k - apakah angka-angka ini berkaitan dengan pengalihan prioritas?). Sejauh yang saya bisa lihat, port-port ini tidak bisa diindeks dalam default.pafile dengan cara yang Anda presentasikan.
Błażej Michalik
Hai @ BłażejMichalik sebenarnya ini sudah diuji di komputer istri saya dan milik saya sebelum menerbitkannya di sini. Untuk kebingungan indeks, Anda dapat menggunakan nama lengkap seperti yang disebutkan di bagian akhir dengan CATATAN.
Luis Alvarado
2
Oke, itu berfungsi, tetapi juga membuat speaker mati secara default, meskipun headphone tidak ada. Ini adalah perilaku yang saya alami dengan 15.10. Ini bukan perbaikan per-se.
Błażej Michalik
Ya, seperti yang saya sebutkan, Anda harus memiliki headphone yang terhubung karena Ubuntu tidak akan menganggap bahwa jika Anda menghubungkan headphone itu harus menggunakannya secara default. Untuk mematikan speaker saya tidak tahu di sana karena ini hanya mengatur yang default, tidak menonaktifkan orang lain. Ini biasanya terjadi jika Anda menggunakan laptop dengan satu konektor jack (Input / Output pada saat yang sama). Saya akan bertanya apakah laptop Anda memiliki 2 koneksi (Satu untuk mic, satu lagi untuk Output) atau jika ada satu. Jika jawaban Anda adalah satu, maka sekarang Anda memiliki ide mengapa masalah muncul.
Luis Alvarado
Yup, memang itu masalahnya, tidak tahu itu penting.
Błażej Michalik
3

Jika perangkat suara Anda 0 - HDMI dan 1 - analog, Anda dapat beralih ke headphone dengan

$ pacmd set-sink-port 1 analog-output-headphones

Untuk membuatnya permanen, edit /etc/pulse/default.padan di bagian bawah tulisan ### Make some devices default:

set-default-sink 1
set-sink-port 1 analog-output-headphones

Semuanya harus berfungsi sekarang seperti yang diinginkan. Pastikan Anda mengomentari ini lagi ketika Anda bosan menggunakan headphone.

emk2203
sumber
1
Ini hanya membuat ubuntu beralih ke headphone saat mulai, apa pun yang terjadi. Tidak ada suara dari speaker sekarang di awal, bahkan jika headphone dicabut. Ini adalah perilaku yang saya alami dengan 15.10.
Błażej Michalik
Anda tidak akan menjadi lebih baik dari itu, saya khawatir. Tautan: bbs.archlinux.org/viewtopic.php?id=175951 bbs.archlinux.org/viewtopic.php?pid=1250505#p1250505 bbs.archlinux.org/viewtopic.php?id=212010 sebagai karya seni terkini . Saya sangat berharap seseorang dapat menemukan solusi yang lebih baik ...
emk2203
Meh ... Saya bisa melakukan solusi bash. Saya bisa memasaknya sendiri - tidak masalah. Tapi itu hanya mengacaukan segalanya. Setiap 6 bulan saya harus menjalankan melalui changelogs Ubuntu, dan bodgelist pribadi saya, untuk melihat di mana hal-hal pecah karena kelalaian saya, atau orang lain, atau hanya karena upgrade ke beberapa API atau frontend. Itu sebabnya saya tidak melakukan ini lagi - itu membuat berantakan, dan tidak sepadan dengan waktu yang mungkin saya akan kehilangan, setelah saya menemukan istirahat pembaruan yang tak terelakkan untuk sesuatu.
Błażej Michalik
1
Jika Anda dapat melakukan solusi bash yang 1) memilih headphone hanya jika mereka terhubung, selain itu speaker standar dan 2) beralih secara otomatis ke headphone dan menonaktifkan speaker ketika Anda mencolokkan headphone saya akan sangat tertarik.
emk2203
Ini bekerja untuk saya di Debian Stretch, meskipun saya harus menggunakan 0 bukan 1, yang merupakan indeks yang dikembalikan oleh pacmd list-sinks.
Rodrigo
0

Berikut ini akan membantu Anda menyelesaikan masalah sampai Anda menemukan perbaikan untuk masalah Anda.

Berikut ini adalah beberapa skrip yang tidak melakukan apa yang Anda inginkan, tetapi mungkin berisi semua bagian untuk apa yang Anda butuhkan.

Yang kedua berisi banyak hal pulseaudio yang berfungsi, tetapi yang saya tidak benar-benar mengerti. Sebelumnya saya minta maaf. ;)

Berikut ini skrip yang saya gunakan untuk mengaktifkan speaker saya kembali setelah boot. Seharusnya mudah untuk memodifikasi untuk mengatur output audio Anda seperti yang diinginkan.

#!/bin/bash
## temporary kludge to turn the speakers back on at login

SOUND=1
if [ "${1}" == "-q" ]
then
  shift
  SOUND=0
fi

amixer set Speaker unmute > /dev/null
amixer set Speaker 100 > /dev/null
(( SOUND )) && mplayer -quiet /usr/lib/libreoffice/basis3.4/share/gallery/sounds/kongas.wav > /dev/null 2>&1

Yang ini secara otomatis mengalihkan output suara saya antara HDMI dan output analog tergantung pada apakah HDMI terhubung atau tidak. Bukan apa yang Anda inginkan, tetapi mendeteksi di mana output audio pergi dan tahu cara beralih ke tempat lain.

#!/bin/bash
## audio_select
## Copyleft 08/11/2014 - JPmicrosystems
## Last modified 05/14/2015
## Added code to detect ramdass vs halo to handle older pactl version
## Added code to tell if the audio was already selected
## If HDMI is connected, audio output is channelled to HDMI
## Otherwise it's channelled to internal audio

## From: /ubuntu/458194/switching-to-hdmi-audio-when-hdmi-is-plugged-into-a-laptop-14-04
## Script needs to be triggered by a udev rule
## Works manually now

## udevadm monitor produces the following output

## Plug in HDMI udev events
##KERNEL[11363.720327] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
##UDEV  [11363.722979] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)

## Unplug HDMI udev events
##KERNEL[11392.043367] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
##UDEV  [11392.046155] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)

## Make a script name in SCRIPT_NAME
function script_name {
  ## See if the calling script has a name string defined
  if [ -n "${NAME}" ]
  then
    SCRIPT_NAME="${NAME}"
  else
    SCRIPT_NAME="$(basename $0)"
  fi
}

## Get active audio port type
function get_active_audio_port {
  ## first very rough cut
  local ACTIVE_AUDIO_PORT_NAME
  RC=0 ## Success
  ACTIVE_AUDIO_PORT_NAME="$(pactl list | grep 'Active Port:' | awk '{print $3}')"
  case "${ACTIVE_AUDIO_PORT_NAME}" in
    "analog-output-speaker")
      ACTIVE_AUDIO_PORT="Speakers"
      ;;
     "analog-output-headphones")
      ACTIVE_AUDIO_PORT="Headphones"
      ;;
    "hdmi-output-0")
      ACTIVE_AUDIO_PORT="HDMI"
    ;;
    *)
      ACTIVE_AUDIO_PORT="Unknown"
      RC=1 ## Failure
    ;;
  esac

  return $RC
 }

##source "$HOME/bin/bash_trace" ## debug
script_name
HOST="$(hostname)"
HDMI_STATUS=$(cat /sys/class/drm/card0/*HDMI*/status)
INPUTS=($(pacmd list-sink-inputs | grep index | awk '{print $2}'))
DSPTIME=10            # yad message persistence time
YOPT="--center --on-top --title ${SCRIPT_NAME}"  # yad common options

get_active_audio_port ## Find out where audio is going now
if ((RC))
then
  yad ${YOPT} --info --button=gtk-ok:0 --text="Failed to detect current audio source" --width 250 --timeout=${DSPTIME}
  exit 1
fi

if [ $HDMI_STATUS = "connected" ]
then
  if [ "${ACTIVE_AUDIO_PORT}" == "HDMI" ]
  then
    yad ${YOPT} --info --button=gtk-ok:0 --text="Audio already set to HDMI" --width 250 --timeout=${DSPTIME}
    exit 1
  fi
  pactl set-card-profile 0 output:hdmi-stereo
  if [ "$HOST" == "ramdass" ]  ## Using newer version of pactl
  then
    pactl set-default-sink alsa_output.pci-0000_00_1b.0.hdmi-stereo
  else
    pactl set-sink-port alsa_output.pci-0000_00_1b.0.hdmi-stereo hdmi-output-0
  fi
  for i in ${INPUTS[*]}
  do
    pacmd move-sink-input $i alsa_output.pci-0000_00_1b.0.hdmi-stereo  &> /dev/null
  done

  yad ${YOPT} --info --button=gtk-ok:0 --text="Audio directed to HDMI" --width 250 --timeout=${DSPTIME}
else
  if [ "${ACTIVE_AUDIO_PORT}" == "Speakers" ] || [ "${ACTIVE_AUDIO_PORT}" == "Headphones" ]
  then
    yad ${YOPT} --info --button=gtk-ok:0 --text="Audio already set to Analog Output" --width 250 --timeout=${DSPTIME}
    exit 1
  fi
  pactl set-card-profile 0 output:analog-stereo
  if [ "$HOST" == "ramdass" ]  ## Using newer version of pactl
  then
    pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
  else
    pactl set-sink-port alsa_output.pci-0000_00_1b.0.analog-stereo analog-output-speaker                
  fi

  for i in ${INPUTS[*]}
  do
    pacmd move-sink-input $i alsa_output.pci-0000_00_1b.0.analog-stereo  &> /dev/null
  done

  yad ${YOPT} --info --button=gtk-ok:0 --text="Audio directed to Analog Output" --width 250 --timeout=${DSPTIME}
fi
Joe
sumber
Masalahnya adalah, bahwa tidak ada skrip yang berjalan setelah lightgm (login manager) akan cukup memadai. Ada efek suara yang diputar sebelum Anda masuk. Apakah ini dapat berjalan dari setelah init?
Błażej Michalik
Jika bunyi "awal" itu penting bagi Anda, maka, tidak, ini mungkin tidak akan berhasil. Pada saat boot ada sangat sedikit tersedia / di PATH Anda - hanya apa yang dibutuhkan untuk menyelesaikan sesuatu. Sisanya - seperti hal-hal yang digunakan skrip ini akan ditambahkan ke PATH nanti - ketika pengguna Anda masuk. Saya tidak tahu kapan pulseaudio bahkan dimulai. Jika Anda perlu boot tanpa membangunkan seseorang, dll., Saya tidak tahu bagaimana mengatasinya.
Joe
Solusi acak lainnya adalah mencari file suara yang diputar (mungkin something.ogg) dan menggantinya dengan file diam. Masih tidak memperbaiki masalah, tapi mungkin itu membantu. Juga tergantung apakah ada hal lain yang ingin menggunakan file suara itu nanti. Jika demikian, Anda dapat menyimpan dokumen asli dan mengembalikannya setelah boot. Tetapi kemudian Anda harus mulai mengacaukan systemd untuk memperbaiki keadaan setiap kali.
Joe
@ DavidFoerster - sementara Anda secara teknis benar (jawaban saya dimulai dengan "ini bukan jawaban"), memberi seseorang tempat untuk mulai mencari atau alat yang mungkin berkontribusi pada solusi adalah cara yang lebih baik untuk membungkam IMHO. Ketika saya memposting, tidak ada jawaban lain. Konten saya tidak akan cocok dengan komentar atau serangkaian komentar dan kode harus ditautkan atau tidak dapat dibaca. Jika komentar SE mendukung pemformatan penuh, saya akan menempatkan pos dalam satu.
Joe
@ DavidFoerster: Melihat halaman bantuan yang Anda tautkan, sepertinya ini adalah jawaban parsial untuk pertanyaan itu. Ini mungkin bukan jawaban yang sangat baik , tetapi bahkan upaya untuk memberikan solusi parsial memang membuatnya menjadi "jawaban" yang valid dengan definisi istilah SE.
Ilmari Karonen
0

Baiklah, saya pikir saya punya sesuatu yang bisa Anda coba.
Jika Anda mencari Sistem Multimedia Pilih di Dash. Buka dan buka Audiotab, di mana Anda dapat memilih perangkat Input dan Output audio default.

Ini harus diinstal secara default. Jika tidak, Anda selalu dapat berlari sudo apt-get install gnome-media. Jika tidak ditampilkan di Dash, jalankan:

gksudo gedit /usr/share/applications/gstreamer-properties.desktop. Di file teks yang dihasilkan, buka baris dimulai dengan NoDisplay=.Ubah NoDisplay=trueke NoDisplay=false Harapan yang membantu!

James
sumber
Saya harus beralih ke Ubuntu Gnome beberapa hari yang lalu, dan di sisi ini paket gnome-media tidak memiliki kandidat.
Błażej Michalik
Baik. Saya akan melihat apa yang bisa saya gali untuk Anda. Semoga berhasil!
James