Re: Archphile - μια audiophile διανομή για Raspberry pi βασισμένη σε Archlinux/MPD
Παράλειψή μου να δώσω το link του dev:
http://www.raspberrypi.org/phpBB3/v...sid=e535973d81e4918ff4b6c5e9d9ba23ee&start=69
Όπως θα δεις, εδώ ο developer πετάει απλά ένα:
Code:
You could try unbinding the USBHID module from your DAC and see if that improves matters.
Διαβάζοντας για το πως θα το κάνω αυτό, έπεσα σε 2-3 μεθόδους με πιο κλασσική αυτήν που ακολούθησα. Είδα δηλαδή από το dmesg σε ποιο bus είναι καρφωμένο το dac και με την εντολή που έκανα quote το παραπάνω το εξαίρεσα από το usb hid.
Εχω όμως προβλημα προσπαθώντας να δώσω το fix και σε εσάς. Αν συμφωνούσαμε όλοι ότι θα βάζουμε το dac πχ στο κάτω Port, θα εξαιρούσα μόνο ένα Port και θα άφηνα το άλλο κανονικά. Οπότε ως πρώτη λύση για να δω αν αυτό δουλεύει και σε άλλους, πέταξα αναγκαστικά και τις 2 εντολές για τα 2 Ports σε ενα script που εχω γι αυτή τη δουλεια, το /usr/bin/archphile-optimize, το οποίο το σηκώνω σε καθε boot με ένα systemd service που έχω φτιάξει:
Code:
#!/bin/bash
echo -n performance > sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
echo -n "1-1.3:1.0" > /sys/bus/usb/drivers/usbhid/unbind
echo -n "1-1.2:1.0" > /sys/bus/usb/drivers/usbhid/unbind
echo 500000 > /proc/sys/kernel/sched_latency_ns
echo 124999 > /proc/sys/kernel/sched_rt_period_us
echo 118749 > /proc/sys/kernel/sched_rt_runtime_us
Οι πρώτες 3 εντολές είναι ουσιαστικές και οι υπόλοιπες grail από άλλες διανομές που μάλλον θα αφαιρέσω στο μέλλον.
Με την πρόχειρη λύση που έχω δώσει, μπορεί κάποιος να μπει στο αρχείο αυτό, να κόψει τη μια πόρτα από το να εξαιρείται από το Hid και να αφήσει εξαιρεμένη μονο την πόρτα του dac.
Υπάρχουν και άλλες λύσεις εξαίρεσης από το Usbhid, πχ να εξαιρέσεις βάσει του id μιας συγκεκριμένης συσκευής, ή μέσω udev rule να εξαιρείς με αυτοματισμούς. Όλα αυτά όμως δεν είναι Universal.
Υποθέτω ότι κάποιος που σκαμπάζει από scripting (δηλαδή όχι εγώ
) θα μπορούσε να φτιάξει ένα script να βλέπει τι έχουν οι usb συσκευές συνδεδεμένο και να εξαιρεί από το hid μόνο όποια έχει σχέση με κάρτα ήχου ή dac, κάτι που δε θα ασχοληθώ να κάνω εγώ γιατί πρώτον δεν έχω την γνώση να γράψω ένα καλό script και δεύτερον πιστέυω ότι σε ένα δίμηνο από τώρα δε θα χρειάζονται όλα αυτά τα fixes γιατί θα υπάρχει ένας καλός ενσωματωμένος driver στους kernels των διανομών.
Κλείνοντας, παραθέτω το uptime μαζί με την τελευταία εντολή του dmesg (που κανονικά εκεί είχε τα FIQ errors):
Code:
[ 9.418528] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[root@archphile ~]# uptime
11:20:14 up 12:35, 1 user, load average: 0.00, 0.04, 0.10
12 μιση ώρες από το τελευταίο reboot με ασταμάτητη αναπαραγωγή και ούτε ένα error.