Saya menggunakan modem USB Huawei GMS / UMTS dengan Gnokii dan Gammu. Modem berada di port yang lebih rendah pada Pi. Dengan dmesg | grep tty
itu akan muncul /dev/ttyUSB0
dan /dev/ttyUSB1
. (2 perangkat USB pada 1 stick adalah normal, dalam hal ini).
Saya mengkonfigurasi Gnokii dan Gammu, namun pada ttyUSB0 saya hanya bisa mengirim pesan. Baik pengiriman dan penerimaan hanya akan berfungsi pada ttyUSB1.
Saya kemudian memindahkan tongkat ke soket USB atas (karena kalau tidak, WiFi-stick saya tidak muat di sebelahnya). Semuanya tetap bekerja dengan baik. Juga setelah beberapa reboot, dingin dan hangat.
Saya kemudian perlu memperluas sistem file (Ya, saya tahu saya harus melakukan itu sebelumnya). Setelah itu, modem berada di ttyUSB0 dan ttyUSB * 2 *. Kirim / terima bekerja pada yang terakhir. Saya butuh waktu untuk mencari tahu.
Pembaruan: 2 hari kemudian, ttyUSB2 telah menghilang. Modem yang berfungsi sekarang memanifestasikan dirinya pada ttyUSB0 (ttyUSB1).
Adakah yang tahu mengapa ini terjadi? Adakah tautan ke dokumen debian atau linux yang relevan, mungkin? Saya akan sangat berterima kasih ..
sumber
/sys/class/tty/
sebagai panduan.Jawaban:
Dokumentasi Gammu menyarankan (tetapi tidak membahas secara detail) solusinya,
Sunting: Atmel memiliki Catatan Aplikasi yang dengan baik menjelaskan proses enumerasi.
Enumerasi berubah karena terjadi dalam percakapan antara host, hub dan perangkat, dan waktu respons dari masing-masing dapat bervariasi, bahkan jika pengaturannya identik dari satu reboot ke yang berikutnya.
Pembaruan: Solusinya tidak mudah ditemukan online, dan tersebar berkeping-keping di semua tempat. Jadi saya mengumpulkan semuanya dalam satu dokumen . Inilah yang menjadi intinya.
1. cari tahu apa yang ada di ttyUSB:
2. daftarkan semua atribut perangkat dan pilih set pengenal unik, mis. IdVendor + idProduct (dan jika perlu SerialNumber jika Anda memiliki lebih dari satu perangkat dengan idVendor dan idProduct yang sama).
3. Buat file
/etc/udev/rules.d/99-usb-serial.rules
dengan sesuatu seperti baris ini di dalamnya:(dengan asumsi Anda tidak memerlukan nomor seri di sana, dan tentu saja dengan nomor untuk idVendor dan idProduct yang Anda temukan di langkah 2.
4. Muat aturan baru:
5. Verifikasi apa yang terjadi:
akan menunjukkan nomor ttyUSB yang digunakan untuk symlink. Jika ya
/dev/ttyUSB1
, verifikasi siapa yang memiliki itu dan milik kelompok itu:Maka hanya untuk bersenang-senang:
sumber
Anda telah sebagian menjawab pertanyaan Anda sendiri, tetapi ada cara lain untuk melakukannya, terutama untuk perangkat serial:
/dev/serial/*
jalur. Saya memiliki antarmuka Prolific USB → RS232 pada Raspberry Pi saya yang hampir selalu muncul sebagai/dev/ttyUSB0
. Tetapi itu juga muncul pada sistem sebagai:/dev/serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0
/dev/serial/by-id/usb-067b_2303-if00-port0
Menggunakan
by-id
tautan harus tetap sama, kecuali saya menambahkan konverter berbasis PL2303 lainnya.sumber