Beep_() für Linux?
-
- Beiträge: 207
- Registriert: 09.12.2004 22:09
Beep_() für Linux?
Hallo.
Gibt es unter Linux soetwas wie Beep_(Frequenz,Dauer)? Einen "allgemeinen" Beep habe ich schon gefunden, allerdings kann ich dort keine Parameter definieren.
Gibt es unter Linux soetwas wie Beep_(Frequenz,Dauer)? Einen "allgemeinen" Beep habe ich schon gefunden, allerdings kann ich dort keine Parameter definieren.
-
- Beiträge: 207
- Registriert: 09.12.2004 22:09
Re: Beep_() für Linux?
Gibt aber keine Antwort auf meine Frage. Aber ich formuliere es anders:
Welche Linux(API)Funktion muß ich benutzen, um Töne mit variabler Frequenz und Dauer auf dem Systemlautsprecher auszugeben. Die Funktion unter Windows ist Beep_(Frequenz,Dauer)
Welche Linux(API)Funktion muß ich benutzen, um Töne mit variabler Frequenz und Dauer auf dem Systemlautsprecher auszugeben. Die Funktion unter Windows ist Beep_(Frequenz,Dauer)
-
- Beiträge: 390
- Registriert: 30.08.2004 09:05
- Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64 - Wohnort: Heidelberg
Re: Beep_() für Linux?
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
-
- Beiträge: 207
- Registriert: 09.12.2004 22:09
Re: Beep_() für Linux?
Leider habe ich noch nichts passendes gefunden.
Kann man das irgendwie nachbilden?
Kann man das irgendwie nachbilden?
Re: Beep_() für Linux?
Na ja, du kannst eine Wave-Datei on-the-fly im Speicher erstellen, per CatchSound laden und dann abspielen.
Sooo schwer sollte das nicht sein.
Sooo schwer sollte das nicht sein.
-
- Beiträge: 390
- Registriert: 30.08.2004 09:05
- Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64 - Wohnort: Heidelberg
Re: Beep_() für Linux?
Vieleicht hilft dir das:
http://www.netzmafia.de/skripten/hardwa ... sound.html
ich habe es noch nicht zum lauffen bekommen.
http://www.netzmafia.de/skripten/hardwa ... sound.html
ich habe es noch nicht zum lauffen bekommen.
Code: Alles auswählen
#O_RDONLY = 0
#KDMKTONE = $4B30
Procedure Beep(freq.l,duration.l)
Protected fd.i, res.l
fd = open_("/dev/console",#O_RDONLY,0);
If (freq > 0)
res = (duration << 16) + (1193180/freq);
ioctl_(fd,#KDMKTONE,res);
EndIf
;usleep_(duration*1000)
Delay(duration)
close_(fd);
EndProcedure
Beep(880,100)
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
-
- Beiträge: 207
- Registriert: 09.12.2004 22:09
Re: Beep_() für Linux?
Habe Dein Beispiel mit den Suchbegriffen "beep() linux" als C-Quelle gefunden. Funktioniert leider nur als "root". Ich denke, das wird auch das Problem bei dem PB-Beispiel sein. Werde es nachher testen.
-
- Beiträge: 207
- Registriert: 09.12.2004 22:09
Re: Beep_() für Linux?
Vermutung hat sich bestätigt.
Mal sehen, vielleicht gibt es noch eine Lösung, ohne "root" sein zu müssen...
Mal sehen, vielleicht gibt es noch eine Lösung, ohne "root" sein zu müssen...
Re: Beep_() für Linux?
Ich fürchte, eine Lösung ohne root-Rechte wird es leider nicht geben...pickelrobert hat geschrieben:Mal sehen, vielleicht gibt es noch eine Lösung, ohne "root" sein zu müssen...
Ich habe den Beispiel-Code von Andreas21 gestern ebenfalls ausprobiert und festgestellt,
daß sowohl der Zugriff auf /dev/console als auch der Einsatz von ioctl_() root-Rechte
benötigt. Für /dev/console kann man mit chmod die Rechte leicht anpassen, aber ioctl_()
ist eine Art Poke-Befehl, der nur mit root-Rechten ausgeführt werden kann. Als Abhilfe
bleibt nur, eine ausführbare Beep-Datei zu kompilieren, diese dem Benutzer root zuzuordnen
und bei dieser Datei dann mit chmod das suid-Bit (set user id, auch "Sticky bit" genannt) zu
setzen, das bewirkt, daß die Beep-Datei mit root-Rechten ausgeführt wird (egal von wem sie
aufgerufen wird) und ioctl_() problemlos ausgeführt werden kann.
Man könnte zu diesem Zweck auch das C-Programm Beep() von Jonathan Nightingale
herunterladen und kompilieren, das noch weitere interessante Optionen bietet. In seiner
Readme-Datei beschreibt Jonathan auch die Problematik von ioctl() und die möglichen
Abhilfen:
http://www.linux.org/apps/AppId_2367.html