Yardım Yıllardır Nedeni Bulunamayan Sistem Hoparlörü Sorunu

KindElephant480

Asistan
Katılım
14 Eylül 2017
Mesajlar
359
Reaksiyon puanı
43
Puanları
28
Bundan 6 yıl önce markası ve modeli HP 15-af110nt olan ve anakartında sistem hoparlörü (normalde bilgisayarların sadece bip sesi çıkarması için kullanılan ve ses kartından tamamen izole olan bir çeşit hoparlör veya buzzer) bulunduğunu bildiğim (resmin sol tarafındaki) eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalmaya çalıştım ancak başarılı olamadım (ancak resimde çalışma masasının dağınık olduğuna bakmayın).

IMG_20230919_140453.jpg


Eski dizüstü bilgisayarımda ilk olarak denediğim şey ise resimdeki Robbi-985'in geliştirdiği BaWaMI programıydı.

Ekran görüntüsü 2024-04-17 004552.png


Daha sonra BeepXP64 isimli sistem hoparlörünü kullanan bir sistem dosyası (normalde indirme bağlantısını eklemek isterdim ancak linki kısa bir süre önce kırılmış ve dosyanın uzantısından dolayı dosyayı ek olarak buraya yüklemem mümkün değil) ile birlikte resimdeki aynı geliştiricinin geliştirdiği Bleeper Music Maker programını kullanarak eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalmaya çalıştım ancak yine başarılı olamadım.

Ekran görüntüsü 2023-05-05 210025_090636.png


Birkaç ay sonra (2019 yılında) Lubuntu'da Linux'un Beep komutunu denedim ancak bunda da başarılı olamadım ve bu durum bardağı taşıran son damla oldu. Bundan dolayı konuyu çeşitli forum sitelerine taşıdım ancak hiçbir sonuç alamadım ya da sistem hoparlörü ile melodi çalmanın gerçek olmadığı iddia edildi. Birkaç ay boyunca uğraştıktan sonra (2020 yılında) GRUB_INIT_TUNE parametresini kullanarak eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalmayı ancak başarabildim ve 4 gün sonra GRUB önyükleyicisinin play komutunu keşfettim ancak 1 hafta sonra COVID-19 pandemisi nedeniyle karantina dönemi başladı ve 7 ay boyunca eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çaldıktan sonra sistem hoparlörü hakkında üzücü bir olay yaşayınca sistem hoparlörü ile melodi çalmayı bıraktım. Aradan yaklaşık 3 yıl geçtikten sonra gördüğüm bir rüyadan etkilenerek toplandığından beridir (2 yıldır) anakartında sistem hoparlörü bulunmayan (ilk resmin sağ tarafındaki) masaüstü bilgisayarın anakartına sonradan sistem hoparlörü monte ettim ancak amacım melodi çalmak değil, sadece tanılama göstergesi olarak kullanmaktı. Buna rağmen birkaç saat sonra deneme amaçlı olarak BaWaMI programını kullanarak masaüstü bilgisayarın anakartına sonradan monte ettiğim sistem hoparlörü ile melodi çalmaya çalıştım ve videodaki gibi başarılı oldum.


Ertesi gün bir USB belleğe Ubuntu canlı sistemi kurup Linux'un Beep komutunu masaüstü bilgisayarda denediğimde işe videodaki gibi başarılı oldum.


Ancak eski dizüstü bilgisayarımda aynı USB bellekteki Ubuntu canlı sisteminde Beep komutunu denediğimde ise eski dizüstü bilgisayarım tık bile demiyor. Buna ek olarak üretici tarafından gizlenmiş BIOS ayarları da dahil olmak üzere bütün BIOS ayarlarını incelediğimde ise sistem hoparlörü ile ilgili hiçbir şey bulamadım. Birkaç ay önce ise resimdeki markası ve modeli Huawei Matebook D16 olan yeni bir dizüstü bilgisayara sahip oldum ancak onun anakartında sistem hoparlörü veya yerine geçen hiçbir donanım yok, anakartına sonradan sistem hoparlörü monte etmek mümkün değil ve bu nedenle eski dizüstü bilgisayarımı BaWaMI programı, Bleeper Music Maker programı, Linux'un Beep komutu gibi şu anda işe yaramayan yöntemleri kullanarak anakartındaki sistem hoparlörü ile melodi çalmayı başarana kadar bırakmamaya karar verdim.

VID_20240210_171440_exported_5849.jpg


Bundan birkaç gün önce ise BaWaMI ve Bleeper Music Maker programlarında kullanılan prensibe uygun olacak şekilde eski dizüstü bilgisayarın anakartındaki sistem hoparlörü ile melodi çalmak için kullanabildiğim tek bir yöntem olan play komutundan oluşan bir metin dosyası hazırlayıp bu metin dosyasını GRUB önyükleyicisinin komut satırında
Kod:
. [Dosya yolu ve adı]
şeklinde çalıştırarak kendimce bir yöntem oluşturdum ve videodaki gibi yöntemim başarılı oldu ancak söz konusu metin dosyasını yazmam oldukça zahmetli ve hatta bazı melodilerde metin dosyasını tamamlamam saatlerce sürebiliyor çünkü sistem hoparlörü aynı anda tek bir nota çalabildiği için çok sesli notaları dalgalı notalar şeklinde ifade ediyorum ve bu da ister istemez metin dosyasının içeriğini uzatıyor.


Ancak tüm bunlara rağmen GRUB önyükleyicisinin play komutu dışındaki yöntemleri kullanarak eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalmayı 6 yıldır başaramadım. Sizce bu durumda eski dizüstü bilgisayarımda yaşadığım sorunun nedeni ne olabilir ve bu sorunu nasıl çözebilirim?
Mesaj otomatik birleştirildi:

Bu konu hakkında bilgisi olan ve cevap verecek kimse yok mu?
 
Son düzenleme:

Usain

Dekan
Emektar
Müdavim
Katılım
17 Mayıs 2018
Mesajlar
9,236
Reaksiyon puanı
15,168
Puanları
2,958
Yaş
22
Bir mikrodeneteyici ve buzzer alıp onunla bu notaları çalmaya ne dersin
 

KindElephant480

Asistan
Katılım
14 Eylül 2017
Mesajlar
359
Reaksiyon puanı
43
Puanları
28
Bir mikrodeneteyici ve buzzer alıp onunla bu notaları çalmaya ne dersin
Aslında yapmak istediğim şey mikrodenetleyici ve buzzer kullanarak değil, sadece BaWaMI, Bleeper Music Maker gibi programlar ile Linux'un Beep komutunu kullanarak eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalmaktı ve 1 yıldır videodaki anakartına sonradan sistem hoparlörü monte ettiğim masaüstü bilgisayarın sistem hoparlörü ile zaten melodi çalabiliyorum (video 1 yıl öncesinden kalma).


Ancak sistem hoparlörü ile melodi çalmaya alışınca eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalmayı yıllar sonra tekrar denemeye karar verdim ancak yine başarılı olamadım, bu nedenle birkaç gün önce kendimce bir çözüm yolu buldum ve deneyim videodaki gibi başarılı oldu ancak melodi dosyasını yazmak oldukça zahmetli çünkü sistem hoparlörü sadece tek bir nota çalabildiği için çok sesli notaları dalgalı notalar şeklinde yazıyorum ve bu da ister istemez melodi dosyasının içindeki metni uzatıyor (videoda eski dizüstü bilgisayarımın bu notaları rahat rahat çalabildiğine bakmayın, nota dosyasını yazmam oldukça zahmetli bir iş).


Ayrıca eski dizüstü bilgisayarımdan kastettiğim dizüstü bilgisayarı hatırlıyor olabilirsiniz çünkü o dönemde bataryası arızalanmıştı, bu forum sitesinde bu durum hakkında konu açmıştım ve siz de bataryasının ölü olduğu cevabını vermiştiniz. Şu anda eski dizüstü bilgisayarımın menteşesi çok kötü durumda, TPM bulunmasına rağmen TPM'yi algılamamasından ve işlemcisinin eski olmasından dolayı Windows 11'i desteklemiyor, Windows 10'un desteğinin sona ermesine 1 yıl kaldı ve yeni dizüstü bilgisayarım da var ancak onun anakartında sistem hoparlörü bulunmadığı için eski dizüstü bilgisayarımı BaWaMI gibi programlar ile Beep komutu gibi komutlar yardımıyla melodi çalmayı başarana kadar bırakmamaya karar verdim.
 
Son düzenleme:

Usain

Dekan
Emektar
Müdavim
Katılım
17 Mayıs 2018
Mesajlar
9,236
Reaksiyon puanı
15,168
Puanları
2,958
Yaş
22
Windows 11 kurulabiliyor. Ben kurdum. Menteşesini de sun fix yapıltırıcıyla tamir edebilirsin.
Mesaj otomatik birleştirildi:

Windows 11 kurulabiliyor. Ben kurdum. Menteşesini de sun fix yapıltırıcıyla tamir edebilirsin.
 

KindElephant480

Asistan
Katılım
14 Eylül 2017
Mesajlar
359
Reaksiyon puanı
43
Puanları
28
Windows 11 kurulabiliyor. Ben kurdum. Menteşesini de sun fix yapıltırıcıyla tamir edebilirsin.
Mesaj otomatik birleştirildi:

Windows 11 kurulabiliyor. Ben kurdum. Menteşesini de sun fix yapıltırıcıyla tamir edebilirsin.
Bende zaten yeni dizüstü bilgisayarım da var ancak onun anakartında hiçbir şekilde sistem hoparlörü yok, masaüstü bilgisayarımın anakartındaki sistem hoparlörü ile 1 yıldır melodi çalabiliyorum (çünkü onun da anakartında sistem hoparlörü yoktu ve sistem hoparlörünü sonradan monte ettim) ve eski dizüstü bilgisayarım artık kullanılmıyor ancak BaWaMI gibi programlar ile Linux'un Beep komutunu kullanarak anakartındaki sistem hoparlörü ile melodi çalmayı başarana kadar bırakmamaya karar verdim. Sizce bu yöntemler masaüstü bilgisayarımda işe yararken eski dizüstü bilgisayarımda neden işe yaramıyor olabilir ve bu sorunu nasıl çözebilirim?
 

KindElephant480

Asistan
Katılım
14 Eylül 2017
Mesajlar
359
Reaksiyon puanı
43
Puanları
28
Bugün BIOS aylarındaki bir ayarı değiştirip Bleeper Music Maker programı yerine resimdeki BaWaMI programını kullanarak eski dizüstü bilgisayarımın anakartındaki sistem hoparlörü ile melodi çalmaya çalıştım ama maalesef eski dizüstü bilgisayarımdaki sistem hoparlörü sanki yerinden sökülmüş gibi davranmaya devam ediyor.

Ekran görüntüsü 2024-04-17 004552.png
 
Son düzenleme:

KindElephant480

Asistan
Katılım
14 Eylül 2017
Mesajlar
359
Reaksiyon puanı
43
Puanları
28
Ayrıca bir süre önce BeepXP64'ün sürücü imzası zorlamasını devre dışı bırakmadan çalışmaması ve BeepXP64'ün imza doğrulaması sorunu çözülmüş yeni sürümü çıkmayıp indirme bağlantısının patlaması nedeniyle resimdeki NeoBleeper isimli Bleeper Music Maker benzeri (LibreOffice, GIMP, Blender gibi programlarda olduğu gibi düşünün) sistem hoparlörü ile listedeki melodiyi çalma programı geliştiriyorum (aslında neredeyse 1 yıl önce geliştirmeye başlamıştım ancak programı bir kenara bırakmıştım).
Ekran görüntüsü 2024-11-04 161257.png

Programda bip seslerini oluşturmak için BeepXP64'ün durumundan dolayı Console.Beep yerine InpOut32 kullandım, bu kısmın kodu bu şekilde (programı açık kaynak kodlu olarak yayınlayacağım) ve programı hem masaüstü, hem de eski dizüstü bilgisayarımda denedim ancak eski dizüstü bilgisayarım GRUB önyükleyicisinin play komutunun haricindeki diğer yöntemlerde olduğu gibi tık bile demedi (programı yeni dizüstü bilgisayarımda da denedim ancak sistem hoparlörü çıkışının bulunmadığına dair bir uyarı verdi çünkü programa sistem hoparlörü çıkışı algılama özelliği ekledim).
C#:
[DllImport("inpoutx64.dll")]
extern static void Out32(short PortAddress, short Data);
[DllImport("inpoutx64.dll")]
extern static char Inp32(short PortAddress);
public static void Beep(uint freq, int ms)
{
    Out32(0x43, 0xB6);
    int div = 0x1234dc / Convert.ToInt32(freq);
    Out32(0x42, (Byte)(div & 0xFF));
    Out32(0x42, (Byte)(div >> 8));
    Application.DoEvents();
    System.Threading.Thread.Sleep(10);
    Out32(0x61, (Byte)(System.Convert.ToByte(Inp32(0x61)) | 0x03));
    Application.DoEvents();
    System.Threading.Thread.Sleep(ms);
    StopBeep();
}
public static void StopBeep()
{
    Out32(0x61, (Byte)(System.Convert.ToByte(Inp32(0x61)) & 0xFC));
}
 
Üst