Jarak jauh membuat komputer berbunyi bip pada speaker internal

28

Bagaimana saya bisa secara jarak jauh (SSH) membuat Linux Computer Beep (speaker internal, karena tidak ada yang eksternal)? Saya memiliki ubuntu 9.04 dan dapat menginstal paket tambahan jika perlu. Ini akan baik untuk menemukan kotak tertentu jika Anda memiliki lebih dari satu yang berdiri dan lupa IP mana yang kotak.

wsd
sumber
11
Saya harap pertanyaan Anda tidak benar-benar kartun ini di tempat kerja: xkcd.com/530
Telemachus
1
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 pertanyaan ini lebih tua dari yang mana pun.
wsd
@ wsd Saya tidak menyiratkan duplikat dan konsensus saat ini adalah untuk menutup dengan "kualitas": meta.stackexchange.com/questions/147643/... Karena "kualitas" tidak dapat diukur, saya hanya menggunakan upvotes. ;-) Mungkin sampai pada pertanyaan yang menjadi kata kunci pemula Google terbaik pada judul.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 terima kasih atas klarifikasi :)
wsd

Jawaban:

23

Mencoba:

sudo sh -c "echo -e '\a' > /dev/console"

Anda mungkin harus memuat modul kernel terlebih dahulu untuk speaker internal (mis. Jika modul tersebut masuk daftar hitam dari pemuatan otomatis):

sudo modprobe pcspkr
John T
sumber
Ini bekerja sementara perintah bip tidak. Saya hanya mengatur ini untuk dijalankan pada mesin rekan kerja. untuk saya masuk seq 1 10000; do echo -e '\ a'> / dev / console; tidur 1; selesai
Nick Stinemates
Tidak membuat suara.
Nick Stinemates
Ini bekerja dengan baik pada CentOS / RHEL, saya tidak dapat menemukan paket bip.
plasmid87
@NickStinemates Pastikan Anda memiliki speaker PC di motherboard Anda
tanggul
Ini solusi termudah! Juga, maaf hanya terlambat menerima 9 tahun.
wsd
14

pertama:

modprobe pcspkr

lalu solusi dari topik, seperti

ssh user@host
beep
maizy
sumber
(Adapun untuk modprobe: lihat bagaimana membuat bip bekerja? Untuk beberapa detail.)
Arjan
Saya perlusudo modprobe pcskr
IanVaughan
6

Dari halaman beep man di mesin Ubuntu saya:

KEBAKARAN IOCTL

Beberapa pengguna akan menghadapi situasi di mana bip mati dengan keluhan dari ioctl (). Alasan untuk ini, karena Peter Tirsek cukup baik untuk menunjukkan kepada saya, berasal dari bagaimana kernel menangani upaya bip untuk menyodok (untuk non-programmer: ioctl adalah semacam fungsi catch-all yang memungkinkan Anda menyodok pada hal-hal yang tidak memiliki mekanisme poking-at yang telah ditentukan sebelumnya) tty, yaitu bagaimana beep. Ceritanya adalah, kernel memeriksa apakah:

  • Anda adalah superuser

  • Anda memiliki tty saat ini

Apa artinya ini adalah bahwa root selalu dapat membuat beep bekerja (sepengetahuan saya!), Dan bahwa setiap pengguna lokal dapat membuat beep bekerja, TETAPI pengguna jarak jauh non-root tidak dapat menggunakan beep dalam keadaan alami itu.

Ini bisa menjadi alasan mengapa bip menolak untuk bekerja dari jarak jauh. Anda dapat memeriksa apakah ini adalah penyebab utama dengan menjalankan ssh dengan opsi -t , yang memaksa alokasi pseudo-tty.

Solusi yang kurang diinginkan adalah membuat skrip wrapper yang mengeksekusi bip, dan memberikan izin root skrip ini . Jika menjalankan skrip ini di atas ssh yang seharusnya menghasilkan bunyi bip, Anda akan tahu bahwa masalahnya adalah tidak adanya terminal pengendali.

Nagul
sumber
3

Ketik saja

ssh user@remote-machine
beep

Diuji pada Ubuntu Desktop 8.x, ini akan berbunyi bip pada server jauh, bahkan jika tidak ada sesi lokal pada server itu aktif (dengan demikian: bahkan jika layar login GNOME ditampilkan pada monitor yang terpasang pada server).

Lihatlah

man beep

untuk lebih jelasnya. Pada Debian / Ubuntu, paket bip harus diinstal dan speaker tidak boleh dibisukan.

Kim
sumber
Saya ingin tahu mengapa Anda menulis "speaker tidak boleh dibisukan" . Kotak Ubuntu Desktop saya tidak memiliki driver suara yang diinstal, dan memang keduanya beepdan echoopsi semua menggunakan speaker built-in saya. Meskipun man beepdengan jelas menyatakan "bip speaker pc dalam beberapa cara" , saya belum memverifikasi apa yang terjadi jika seseorang memiliki driver suara yang diinstal.
Arjan
Setidaknya di pc saya, saya dapat mematikan speaker dengan kontrol volume gnome. Dan karena saya tidak tahan dengan bunyi bip, saya biasanya melakukannya.
Kim
Jadi, lalu beeptidak menggunakan speaker bawaan di sistem Anda? Atau apakah kontrol volume (yang dinonaktifkan pada kotak Ubuntu saya) juga mengontrol speaker bawaan? Mungkin menyenangkan untuk melihat apakah echosolusi berperilaku berbeda dari.
Arjan
gnome-volume-control dapat digunakan untuk mengontrol speaker internal secara terpisah. Apa yang Anda maksud dengan cacat? Apa yang terjadi ketika Anda menjalankan gnome-volume-control dari baris perintah?
Kim
Maaf, baru saja hapus instalasi 10.8 itu. Dinonaktifkan seperti pada: tidak ada driver suara yang terpasang, dan karenanya tanda berhenti di atas ikon suara di menu GNOME.
Arjan
3

Anda dapat gunakan:

ssh user @ remote-machine
sudo sh -c "echo -e '\ a'> / dev / tty1"


Perhatikan bahwa yang berikut ini tidak akan berfungsi. Gagal bahkan sebelum meminta sudokata sandi karena bashshell ( ) sedang melakukan pengalihan, dan shell itu tetap berjalan sebagai pengguna biasa, bukan sebagai root:

ssh user @ remote-machine
sudo echo -e '\ a'> / dev / tty1
-bash: / dev / tty1: Izin ditolak
ls -la / dev / tty1
crw ------- 1 root root 4, 1 2009-09-28 16:33 / dev / tty1
Thomas
sumber
3

Perintah ini akan melakukan trik:

modprobe pcspkr; echo -e "\a" > /dev/console;
Sayajin
sumber
0

Jalankan perintah jarak jauh ke mesin jarak jauh:

rsh nama host / usr / bin / echo '\ a'
atau
ssh user @ remotehost / usr / bin / echo '\ a'

harrymc
sumber
Tidakkah orang perlu pengalihan ke beberapa terminal jarak jauh seperti yang disarankan Thomas, untuk membuat server jarak jauh berbunyi bip, alih-alih klien SSH lokal?
Arjan
Anda juga dapat melakukan: echo "\ a"> 'tty'.
harrymc
echo -e "\a" > /dev/ttypasti akan berbunyi bip pada klien SSH, bukan pada speaker built-in di server :-) tty0, tty1dan consoletampaknya berfungsi, seperti yang ditunjukkan dalam jawaban lain.
Arjan
0

Atau, Anda bisa menjalankan yang berikut ini sekali saja:

chmod o + x` yang berbunyi 'bip'

Ini akan memungkinkan semua pengguna menggunakan beep executable, yang mungkin cukup aman dalam banyak kasus.

Arjan
sumber