FreeBSD-12.0-CURRENT-amd64-20180605-r334665-bootonly.iso.xz
(ou plus récent) dans https://download.freebsd.org/ftp/snapshots/amd64/amd64/ISO-IMAGES/12.0/. /etc/ssh/sshd_config
pour accepter root login# pkg install git subversion u-boot-nanopi_neo # svn co https://svn0.us-west.freebsd.org/base/head /usr/src # git clone https://github.com/bz31/crochet # cd crochet/ # ./crochet.sh -c nanopi-neo.config.sh
... Completed disk image is in: /root/crochet/work/FreeBSD-armv7-12.0-GENERIC-334785-NanoPi-NEO.img
/tmp
n'est pas assez grand pour que pkg tourne. Editer /etc/fstab
pour modifier la ligne md /tmp mfs rw,noatime,-s50m 0 0
(utiliser l'option -s50m
(50M) au lieu de -s30m
semble suffit. Voir mount_mfs. Cela sera corrigé pour la prochaine compilation de l'image.)
# /usr/sbin/ntpd -qg # tzsetup
hostname="nanopi-neo" #ifconfig_awg0="DHCP" ifconfig_awg0="inet 192.168.0.99 netmask 255.255.255.0" defaultrouter="192.168.0.1" sshd_enable="YES"
uaudio0 on uhub2 uaudio0: <USB Audio 2.0(F1)> on usbus2 uaudio0: Play: 384000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play: 352800 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play: 192000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play: 176400 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play: 96000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play: 88200 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play: 48000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: Play: 44100 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer. uaudio0: No recording. uaudio0: No MIDI sequencer. pcm0: <USB audio> on uaudio0 uaudio0: No HID volume keys found.
root@nanopi-neo:/usr/home/bz31 # uname -a FreeBSD nanopi-neo 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r334785: Mon Jun 11 00:32:24 CEST 2018 root@:/root/crochet/work/obj/usr/src/arm.armv7/sys/GENERIC arm
root@nanopi-neo:/usr/home/bz31 # cat /dev/sndstat Installed devices: pcm0: <USB audio> (play) default No devices installed from userspace. root@nanopi-neo:/usr/home/bz31 # sysctl hw.snd hw.snd.maxautovchans: 16 hw.snd.default_unit: 0 hw.snd.version: 2009061500/armv7 hw.snd.default_auto: 1 hw.snd.verbose: 0 hw.snd.vpc_mixer_bypass: 1 hw.snd.feeder_rate_quality: 1 hw.snd.feeder_rate_round: 25 hw.snd.feeder_rate_max: 2016000 hw.snd.feeder_rate_min: 1 hw.snd.feeder_rate_polyphase_max: 183040 hw.snd.feeder_rate_presets: 100:8:0.85 100:36:0.92 100:164:0.97 hw.snd.feeder_eq_exact_rate: 0 hw.snd.feeder_eq_presets: PEQ:16000,0.2500,62,0.2500:-9,9,1.0:44100,48000,88200,96000,176400,192000 hw.snd.basename_clone: 1 hw.snd.compat_linux_mmap: 0 hw.snd.syncdelay: -1 hw.snd.usefrags: 0 hw.snd.vpc_reset: 0 hw.snd.vpc_0db: 45 hw.snd.vpc_autoreset: 1 hw.snd.timeout: 5 hw.snd.latency_profile: 1 hw.snd.latency: 0 hw.snd.report_soft_matrix: 1 hw.snd.report_soft_formats: 1 root@nanopi-neo:/usr/home/bz31 # sysctl hw.usb.uaudio hw.usb.uaudio.buffer_ms: 8 hw.usb.uaudio.default_channels: 0 hw.usb.uaudio.default_bits: 32 hw.usb.uaudio.default_rate: 0 hw.usb.uaudio.debug: 0
/etc/sysctl.conf
dev.pcm.0.mixer.vol_0.val=0 dev.pcm.0.play.vchans=0
(volume max et désactiver vchans)
et update
# service sysctl restart
root@nanopi-neo:/usr/home/bz31 # sysctl dev.pcm.0 dev.pcm.0.feedback_rate: 95996 dev.pcm.0.mixer.mute_1.desc: dev.pcm.0.mixer.mute_1.max: 1 dev.pcm.0.mixer.mute_1.min: 0 dev.pcm.0.mixer.mute_1.val: 0 dev.pcm.0.mixer.vol_0.desc: dev.pcm.0.mixer.vol_0.max: 0 dev.pcm.0.mixer.vol_0.min: -32512 dev.pcm.0.mixer.vol_0.val: 0 dev.pcm.0.bitperfect: 0 dev.pcm.0.buffersize: 0 dev.pcm.0.play.vchans: 0 dev.pcm.0.hwvol_mixer: vol dev.pcm.0.hwvol_step: 5 dev.pcm.0.%parent: uaudio0 dev.pcm.0.%pnpinfo: dev.pcm.0.%location: dev.pcm.0.%driver: pcm dev.pcm.0.%desc: USB audio
# sysctl dev.pcm.0.mixer.vol_0.val=n
contrôle le volume. De façon indépendante, l'outil mixer fait aussi le même travail. Par exemple
root@nanopi-neo:/usr/home/bz31 # mixer Mixer vol is currently set to 75:75 Mixer pcm is currently set to 75:75 root@nanopi-neo:/usr/home/bz31 # mixer -s vol 100 Setting the mixer vol from 75:75 to 100:100. root@nanopi-neo:/usr/home/bz31 # mixer -s pcm 100 Setting the mixer pcm from 75:75 to 100:100.
Arrêter et puis relancer le service mixer
permet de sauvegarder ces valeurs dans /var/db/mixer0-state
. Ces valeurs sont restaurées au boot par service mixer
qui est activé par défaut dans /etc/defaults/rc.conf
.
sox
: # pkg install sox
play -V test.mp3 play -V test.wav play -V test.flac
% play -V 01-01-Allemande-SMR.flac play INFO oss: Using default OSS device name: /dev/dsp play INFO oss: OSS driver only supports bytes and words play INFO oss: Forcing to signed linear word play: SoX v14.4.2 play INFO formats: detected file format type `flac' Input File : '01-01-Allemande-SMR.flac' Channels : 2 Sample Rate : 96000 Precision : 24-bit Duration : 00:02:48.64 = 16189910 samples ~ 12648.4 CDDA sectors File Size : 49.1M Bit Rate : 2.33M Sample Encoding: 24-bit FLAC Endian Type : little Reverse Nibbles: no Reverse Bits : no Comments : album=The French Suites, BWV 812-817 copyright=2017 Accentus Music disctotal=1 artist=Zhu Xiao-Mei title=French Suite No. 2 in C Minor, BWV 813:Allemande tracktotal=40 date=2017 albumartist=Zhu Xiao-Mei composer=Bach, Johann Sebastian (1685-1750) genre=Classical tracknumber=1 discnumber=1 description=Label : Accentus Music - Kontor play INFO oss: Using default OSS device name: /dev/dsp Output File : 'default' (ossdsp) Channels : 2 Sample Rate : 96000 Precision : 32-bit Duration : 00:02:48.64 = 16189910 samples ~ 12648.4 CDDA sectors Sample Encoding: 32-bit Signed Integer PCM Endian Type : little Reverse Nibbles: no Reverse Bits : no play INFO sox: effects chain: input 96000Hz 2 channels play INFO sox: effects chain: output 96000Hz 2 channels In:2.33% 00:00:03.93 [00:02:44.72] Out:377k [ -===|==== ] Clip:0
# pkg install musicpd
Il est utilisé seulement par Upmpdcli comme un audio player. Utiliser donc une config simple suffit. Remplacer le contenu de /usr/local/etc/musicpd.conf
par
audio_output { type "oss" name "Interface USB XMOS" device "/dev/dsp" mixer_type "none" }
(voir Odroid-HC1 pour la config de Upmpdcli)
Ajouter
musicpd_enable="YES"
dans /etc/rc.conf
et lancer
# service musicpd start
shairport-sync
. Ajouter <file>dbus_enable=“YES”
avahi_daemon_enable=“YES”
shairport_sync_enable=“YES”
</file> dans /etc/rc.conf
et activer ces trois services ou bien rebooter.
* Cela fonctionne, mais il occupe la carte son, donc MPD ne marche plus. Parce qu'il utilise sndio … /etc/sysctl.conf
(voir cette explication) kern.timecounter.alloweddeviation=0 hw.usb.uaudio.buffer_ms=2 hw.snd.latency=0
et ensuite
# service sysctl restart
dev.pcm.0.bitperfect=1
dans /etc/sysctl.conf
, play ou mpg123 ou mplayer ne marche plus. Mais MPD fonctionne toujours, pourquoi ?
dev.pcm.0.hwvol_mixer: vol
signifie “contrôle le hardware volume par vol” ?ntpd_enable=“YES”
dans /etc/rc.conf
. Configurer ntp pour qu'il se lance une fois par jour : # crontab -e
et ajouter la ligne
0 3 * * * /usr/sbin/ntpd -qg
et reboot.
/etc/ttys
.