diff --git a/stage3/01-install-packages/00-packages b/stage3/01-install-packages/00-packages index 6028693..1231762 100644 --- a/stage3/01-install-packages/00-packages +++ b/stage3/01-install-packages/00-packages @@ -1,7 +1,6 @@ gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav qpdfview gtk2-engines alsa-utils desktop-base -git raspberrypi-artwork policykit-1 gvfs @@ -11,4 +10,5 @@ fonts-droid-fallback fonts-liberation2 obconf arandr +usbmount mixxx diff --git a/stage3/01-install-packages/00-packages-nr b/stage3/01-install-packages/00-packages-nr index fb4209b..a645ca7 100644 --- a/stage3/01-install-packages/00-packages-nr +++ b/stage3/01-install-packages/00-packages-nr @@ -1,5 +1,4 @@ -git xserver-xorg-video-fbdev xserver-xorg xinit xserver-xorg-video-fbturbo xserver-xorg-legacy xscreensaver xdg-utils gvfs-backends gvfs-fuse -lightdm gnome-themes-standard-data gnome-icon-theme i3 i3status +lightdm xterm i3 i3status liblo7 liblo-dev libasound-dev libjack-jackd2-dev diff --git a/stage3/02-desktop/01-run.sh b/stage3/02-desktop/01-run.sh index 816c060..e2799e8 100755 --- a/stage3/02-desktop/01-run.sh +++ b/stage3/02-desktop/01-run.sh @@ -6,6 +6,7 @@ on_chroot << EOF systemctl set-default graphical.target ln -fs /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty1.service sed /etc/lightdm/lightdm.conf -i -e "s/^\(#\|\)autologin-user=.*/autologin-user=pi/" + ln -fs /usr/bin/i3 /etc/alternatives/x-session-manager EOF install -m 644 files/autologin.conf ${ROOTFS_DIR}/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -14,5 +15,5 @@ install -m 644 files/autologin.conf ${ROOTFS_DIR}/etc/systemd/system/getty@tty1. rm -f ${ROOTFS_DIR}/etc/sudoers.d/010_pi-nopasswd install -m 440 files/010_pi-nopasswd ${ROOTFS_DIR}/etc/sudoers.d/ -echo @audio - memlock 256000 >> ${ROOTFS_DIR}/etc/security/limits.conf -echo @audio - rtprio 75 >> ${ROOTFS_DIR}/etc/security/limits.conf +echo pi - memlock 256000 >> ${ROOTFS_DIR}/etc/security/limits.conf +echo pi - rtprio 75 >> ${ROOTFS_DIR}/etc/security/limits.conf diff --git a/stage3/02-desktop/02-run.sh b/stage3/02-desktop/02-run.sh old mode 100644 new mode 100755 index e5b9fe7..fd0d127 --- a/stage3/02-desktop/02-run.sh +++ b/stage3/02-desktop/02-run.sh @@ -1,2 +1,6 @@ # Add i3 config file -install -m 440 /files/i3.conf ${ROOTFS_DIR}/home/pi/.config/i3 +install -m 755 files/i3.conf ${ROOTFS_DIR}/home/pi/.config/i3 +on_chroot << EOF + chown -R pi:root /home/pi/.config/ +EOF + diff --git a/stage3/02-desktop/03-run.sh b/stage3/02-desktop/03-run.sh new file mode 100644 index 0000000..c3916d7 --- /dev/null +++ b/stage3/02-desktop/03-run.sh @@ -0,0 +1,7 @@ +# Do mixxx stuff like copy the udev rules and config file +install -m 644 files/mixxx.cfg ${ROOTFS_DIR}/home/pi/.mixxx/mixxx.cfg +install -m 440 files/udev.mixxx ${ROOTFS_DIR}/etc/udev/rules.d/69-mixxx-usb-uaccess.rules + +# USB Mount +mkdir -m 644 ${ROOTFS_DIR}/etc/systemd/system/systemd-udevd.service.d +install -m 644 files/00-usbmountflags.conf ${ROOTFS_DIR}/etc/systemd/system/systemd-udevd.service.d/00-usbmountflags.conf diff --git a/stage3/02-desktop/files/00-usbmountflags.conf b/stage3/02-desktop/files/00-usbmountflags.conf new file mode 100644 index 0000000..9461dd7 --- /dev/null +++ b/stage3/02-desktop/files/00-usbmountflags.conf @@ -0,0 +1,2 @@ +[Service] +PrivateMounts=no diff --git a/stage3/02-desktop/files/mixxx.cfg b/stage3/02-desktop/files/mixxx.cfg new file mode 100644 index 0000000..6d05a4e --- /dev/null +++ b/stage3/02-desktop/files/mixxx.cfg @@ -0,0 +1,630 @@ +loaded 0 + +[Auto DJ] +EnableRandomQueue 0 +EnableRandomQueueBuff 0 +IgnoreTime 23:59 +MinimumAvailable 20 +RandomQueueMinimumAllowed 5 +Requeue 0 +RequeueBuff 0 +Transition 10 +UseIgnoreTime 0 +UseIgnoreTimeBuff 0 + +[BPM] +AnalyzeEntireSong 1 +BPMDetectionEnabled 1 +BPMRangeEnd 200 +BPMRangeStart 100 +BeatDetectionFixedTempoAssumption 1 +FastAnalysisEnabled 0 +FixedTempoOffsetCorrection 1 +ReanalyzeWhenSettingsChange 0 + +[Channel1] +keylock 0 +quantize 0 +vinylcontrol_enabled 0 +vinylcontrol_lead_in_time 0 +vinylcontrol_speed_type 33.3 RPM +vinylcontrol_vinyl_type Serato CV02 Vinyl, Side A + +[Channel2] +keylock 0 +quantize 0 +vinylcontrol_enabled 0 +vinylcontrol_lead_in_time 0 +vinylcontrol_speed_type 33.3 RPM +vinylcontrol_vinyl_type Serato CV02 Vinyl, Side A + +[Channel3] +keylock 0 +quantize 0 +vinylcontrol_enabled 0 +vinylcontrol_lead_in_time 0 +vinylcontrol_speed_type 33.3 RPM +vinylcontrol_vinyl_type Serato CV02 Vinyl, Side A + +[Channel4] +keylock 0 +quantize 0 +vinylcontrol_enabled 0 +vinylcontrol_lead_in_time 0 +vinylcontrol_speed_type 33.3 RPM +vinylcontrol_vinyl_type Serato CV02 Vinyl, Side A + +[Config] +InhibitScreensaver 1 +Locale +Path /usr/share/mixxx/ +ResizableSkin Deere +ScaleFactor 1 +ScaleFactorAuto 0 +Scheme +StartInFullscreen 0 +Version 2.2.0 + +[Controls] +AllowTrackLoadToPlayingDeck 0 +CueDefault 0 +CueRecall 0 +PositionDisplay 1 +RateDir 0 +RatePermLeft 0.5 +RatePermRight 0.05 +RateRamp 0 +RateRampSensitivity 250 +RateRangePercent 8 +RateTempLeft 4 +RateTempRight 2 +SpeedAutoReset 1 +Tooltips 1 +keylockMode 0 +keyunlockMode 0 + +[Deere] +LibrarySidebarSplitSize 178,824 +sampler_row_current 0 +show_bpm_info 1 +show_crossfader 1 +show_more_hotcues 0 +show_parallel_waveforms 1 +show_starrating 0 +show_track_info 1 + +[EffectRack1] +show 1 + +[EffectRack1_EffectUnit1] +focused_effect 0 +group_[Auxiliary1]_enable 0 +group_[Auxiliary2]_enable 0 +group_[Auxiliary3]_enable 0 +group_[Auxiliary4]_enable 0 +group_[BusCenter]_enable 0 +group_[BusLeft]_enable 0 +group_[BusRight]_enable 0 +group_[BusTalkover]_enable 0 +group_[Channel1]_enable 1 +group_[Channel2]_enable 0 +group_[Channel3]_enable 0 +group_[Channel4]_enable 0 +group_[Headphone]_enable 0 +group_[MasterOutput]_enable 0 +group_[Master]_enable 0 +group_[Microphone2]_enable 0 +group_[Microphone3]_enable 0 +group_[Microphone4]_enable 0 +group_[Microphone]_enable 0 +group_[PreviewDeck1]_enable 0 +group_[Sampler10]_enable 0 +group_[Sampler11]_enable 0 +group_[Sampler12]_enable 0 +group_[Sampler13]_enable 0 +group_[Sampler14]_enable 0 +group_[Sampler15]_enable 0 +group_[Sampler16]_enable 0 +group_[Sampler1]_enable 0 +group_[Sampler2]_enable 0 +group_[Sampler3]_enable 0 +group_[Sampler4]_enable 0 +group_[Sampler5]_enable 0 +group_[Sampler6]_enable 0 +group_[Sampler7]_enable 0 +group_[Sampler8]_enable 0 +group_[Sampler9]_enable 0 +mix 1 +show_parameters 0 + +[EffectRack1_EffectUnit2] +focused_effect 0 +group_[Auxiliary1]_enable 0 +group_[Auxiliary2]_enable 0 +group_[Auxiliary3]_enable 0 +group_[Auxiliary4]_enable 0 +group_[BusCenter]_enable 0 +group_[BusLeft]_enable 0 +group_[BusRight]_enable 0 +group_[BusTalkover]_enable 0 +group_[Channel1]_enable 0 +group_[Channel2]_enable 1 +group_[Channel3]_enable 0 +group_[Channel4]_enable 0 +group_[Headphone]_enable 0 +group_[MasterOutput]_enable 0 +group_[Master]_enable 0 +group_[Microphone2]_enable 0 +group_[Microphone3]_enable 0 +group_[Microphone4]_enable 0 +group_[Microphone]_enable 0 +group_[PreviewDeck1]_enable 0 +group_[Sampler10]_enable 0 +group_[Sampler11]_enable 0 +group_[Sampler12]_enable 0 +group_[Sampler13]_enable 0 +group_[Sampler14]_enable 0 +group_[Sampler15]_enable 0 +group_[Sampler16]_enable 0 +group_[Sampler1]_enable 0 +group_[Sampler2]_enable 0 +group_[Sampler3]_enable 0 +group_[Sampler4]_enable 0 +group_[Sampler5]_enable 0 +group_[Sampler6]_enable 0 +group_[Sampler7]_enable 0 +group_[Sampler8]_enable 0 +group_[Sampler9]_enable 0 +mix 1 +show_parameters 0 + +[EffectRack1_EffectUnit3] +focused_effect 0 +group_[Auxiliary1]_enable 0 +group_[Auxiliary2]_enable 0 +group_[Auxiliary3]_enable 0 +group_[Auxiliary4]_enable 0 +group_[BusCenter]_enable 0 +group_[BusLeft]_enable 0 +group_[BusRight]_enable 0 +group_[BusTalkover]_enable 0 +group_[Channel1]_enable 0 +group_[Channel2]_enable 0 +group_[Channel3]_enable 1 +group_[Channel4]_enable 0 +group_[Headphone]_enable 0 +group_[MasterOutput]_enable 0 +group_[Master]_enable 0 +group_[Microphone2]_enable 0 +group_[Microphone3]_enable 0 +group_[Microphone4]_enable 0 +group_[Microphone]_enable 0 +group_[PreviewDeck1]_enable 0 +group_[Sampler10]_enable 0 +group_[Sampler11]_enable 0 +group_[Sampler12]_enable 0 +group_[Sampler13]_enable 0 +group_[Sampler14]_enable 0 +group_[Sampler15]_enable 0 +group_[Sampler16]_enable 0 +group_[Sampler1]_enable 0 +group_[Sampler2]_enable 0 +group_[Sampler3]_enable 0 +group_[Sampler4]_enable 0 +group_[Sampler5]_enable 0 +group_[Sampler6]_enable 0 +group_[Sampler7]_enable 0 +group_[Sampler8]_enable 0 +group_[Sampler9]_enable 0 +mix 1 +show_parameters 0 + +[EffectRack1_EffectUnit4] +focused_effect 0 +group_[Auxiliary1]_enable 0 +group_[Auxiliary2]_enable 0 +group_[Auxiliary3]_enable 0 +group_[Auxiliary4]_enable 0 +group_[BusCenter]_enable 0 +group_[BusLeft]_enable 0 +group_[BusRight]_enable 0 +group_[BusTalkover]_enable 0 +group_[Channel1]_enable 0 +group_[Channel2]_enable 0 +group_[Channel3]_enable 0 +group_[Channel4]_enable 1 +group_[Headphone]_enable 0 +group_[MasterOutput]_enable 0 +group_[Master]_enable 0 +group_[Microphone2]_enable 0 +group_[Microphone3]_enable 0 +group_[Microphone4]_enable 0 +group_[Microphone]_enable 0 +group_[PreviewDeck1]_enable 0 +group_[Sampler10]_enable 0 +group_[Sampler11]_enable 0 +group_[Sampler12]_enable 0 +group_[Sampler13]_enable 0 +group_[Sampler14]_enable 0 +group_[Sampler15]_enable 0 +group_[Sampler16]_enable 0 +group_[Sampler1]_enable 0 +group_[Sampler2]_enable 0 +group_[Sampler3]_enable 0 +group_[Sampler4]_enable 0 +group_[Sampler5]_enable 0 +group_[Sampler6]_enable 0 +group_[Sampler7]_enable 0 +group_[Sampler8]_enable 0 +group_[Sampler9]_enable 0 +mix 1 +show_parameters 0 + +[Effects] +AdoptMetaknobValue 1 + +[EqualizerRack1_[Channel1]] +focused_effect 0 +group_[Channel1]_enable 1 +mix 1 +show_parameters 0 + +[EqualizerRack1_[Channel2]] +focused_effect 0 +group_[Channel2]_enable 1 +mix 1 +show_parameters 0 + +[EqualizerRack1_[Channel3]] +focused_effect 0 +group_[Channel3]_enable 1 +mix 1 +show_parameters 0 + +[EqualizerRack1_[Channel4]] +focused_effect 0 +group_[Channel4]_enable 1 +mix 1 +show_parameters 0 + +[InternalClock] +bpm 124 + +[Key] +FastAnalysisEnabled 0 +KeyDetectionEnabled 1 +KeyNotation Traditional +ReanalyzeWhenSettingsChange 0 + +[Keyboard] +Enabled 1 + +[Library] +EditMetadataSelectedClick 0 +EnableWaveformCaching 1 +EnableWaveformGenerationWithAnalysis 1 +RescanOnStartup 0 +ShowBansheeLibrary 1 +ShowITunesLibrary 1 +ShowRhythmboxLibrary 1 +ShowTraktorLibrary 1 +SupportedFileExtensions aif,aiff,caf,flac,mp3,ogg,opus,wav +SyncTrackMetadataExport 0 +TrackLoadAction 0 +UseRelativePathOnExport 0 +show_coverart 1 +show_library 1 + +[MainWindow] +geometry AdnQywACAAAAAAPAAAAAEgAAB38AAAQkAAADwgAAABIAAAd9AAAEIgAAAAAAAAAAB4A= +state AAAA/wAAAAD9AAAAAAAAA7wAAAP5AAAABAAAAAQAAAAIAAAACPwAAAAA + +[Master] +boothDelay 0 +delay 0 +duckMode 1 +duckStrength 90 +enabled 1 +headDelay 0 +keylock_engine 0 +microphoneLatencyCompensation 0 +mono_mixdown 0 +show_4decks 0 +show_4effectunits 0 +show_coverart 1 +show_eq_kill_buttons 1 +show_eqs 1 +show_faders 1 +show_killswitches 0 +show_mixer 1 +show_rate_control 1 +show_spinnies 0 +show_superknobs 0 +show_xfader 1 +skin_settings 0 +talkover_mix 0 + +[Microphone] +show_microphone 0 + +[Mixer Profile] +EQsOnly yes +EffectForGroup_[Channel1] org.mixxx.effects.biquadfullkilleq +EffectForGroup_[Channel2] org.mixxx.effects.biquadfullkilleq +EffectForGroup_[Channel3] org.mixxx.effects.biquadfullkilleq +EffectForGroup_[Channel4] org.mixxx.effects.biquadfullkilleq +EffectForGroup_[Master] +EqAutoReset 0 +GainAutoReset 0 +HiEQFrequency 2484 +HiEQFrequencyPrecise 2484.999990 +LoEQFrequency 246 +LoEQFrequencyPrecise 246.469196 +QuickEffectForGroup_[Channel1] org.mixxx.effects.filter +QuickEffectForGroup_[Channel2] org.mixxx.effects.filter +QuickEffectForGroup_[Channel3] org.mixxx.effects.filter +QuickEffectForGroup_[Channel4] org.mixxx.effects.filter +SingleEQEffect yes +xFaderCurve 1.00788 +xFaderMode 0 +xFaderReverse 0 + +[OutputEffectRack_[Master]] +focused_effect 0 +group_[MasterOutput]_enable 1 +mix 1 +show_parameters 0 + +[Playlist] +Directory /home/pi/Music + +[Preferences] +geometry 224,0,1492,1050 + +[PreviewDeck1] +keylock 0 +quantize 0 + +[PreviewDeck] +show_previewdeck 0 + +[QuickEffectRack1_[Channel1]] +focused_effect 0 +group_[Channel1]_enable 1 +mix 1 +show_parameters 0 + +[QuickEffectRack1_[Channel2]] +focused_effect 0 +group_[Channel2]_enable 1 +mix 1 +show_parameters 0 + +[QuickEffectRack1_[Channel3]] +focused_effect 0 +group_[Channel3]_enable 1 +mix 1 +show_parameters 0 + +[QuickEffectRack1_[Channel4]] +focused_effect 0 +group_[Channel4]_enable 1 +mix 1 +show_parameters 0 + +[Recording] +Album +Author +CueEnabled 0 +Encoding WAV +FileSize 4 GB +Title +WAV_BITS 0 + +[ReplayGain] +InitialDefaultBoost -6 +InitialReplayGainBoost 0 +ReplayGainEnabled 1 + +[Sampler10] +keylock 0 +quantize 0 + +[Sampler11] +keylock 0 +quantize 0 + +[Sampler12] +keylock 0 +quantize 0 + +[Sampler13] +keylock 0 +quantize 0 + +[Sampler14] +keylock 0 +quantize 0 + +[Sampler15] +keylock 0 +quantize 0 + +[Sampler16] +keylock 0 +quantize 0 + +[Sampler1] +keylock 0 +quantize 0 + +[Sampler2] +keylock 0 +quantize 0 + +[Sampler3] +keylock 0 +quantize 0 + +[Sampler4] +keylock 0 +quantize 0 + +[Sampler5] +keylock 0 +quantize 0 + +[Sampler6] +keylock 0 +quantize 0 + +[Sampler7] +keylock 0 +quantize 0 + +[Sampler8] +keylock 0 +quantize 0 + +[Sampler9] +keylock 0 +quantize 0 + +[SamplerRow1] +expanded 0 + +[SamplerRow2] +expanded 0 + +[SamplerRow3] +expanded 0 + +[SamplerRow4] +expanded 0 + +[SamplerRow5] +expanded 0 + +[SamplerRow6] +expanded 0 + +[SamplerRow7] +expanded 0 + +[SamplerRow8] +expanded 0 + +[Sampler] +LoadSamplerBank 0 +SaveSamplerBank 0 + +[Samplers] +show_expanded 0 +show_samplers 0 + +[Shoutcast] +enabled 0 + +[Skin] +8_hotcues 0 +8_samplers 1 +beatgrid_buttons 0 +big_spinny 0 +expand_samplers 0 +show_cover_art 1 +show_coverart 1 + +[Soundcard] +Samplerate 44100 + +[Spinny] +show_spinnies 1 + +[Tango] +always_visible_eject 0 +always_visible_keylock 1 +always_visible_orientation 0 +always_visible_quantize 1 +always_visible_repeat 0 +always_visible_slipMode 1 +always_visible_slip_enabled 0 +beatgrid_buttons 0 +colorLogo 0 +deck_controls_expanded 0 +hotcues 1 +key_display_match 1 +loop_beatjump_controls 1 +loop_sizes 0 +master_mixer 1 +rate_key_controls 0 +sampler_rows 1 +separate_cue_button 1 +show_BIG_spinny_cover 1 +show_spinny_cover 0 +stacked_waveforms 1 +stars 1 +symmetric_overviews 0 +symmetric_time 0 +trackComment 1 +vinylControlsDeck1 0 +vinylControlsDeck2 0 +vinylControlsDeck3 0 +vinylControlsDeck4 0 +vumeter 1 + +[Vamp] +AnalyserBeatLibrary libmixxxminimal +AnalyserBeatPluginID qm-tempotracker:0 +AnalyserKeyLibrary libmixxxminimal +AnalyserKeyPluginID qm-keydetector:2 + +[VinylControl] +cueing_ch1 0 +cueing_ch2 0 +cueing_ch3 0 +cueing_ch4 0 +gain 1 +mode_ch1 1 +mode_ch2 1 +mode_ch3 1 +mode_ch4 1 +show_signal_quality 0 +show_vinylcontrol 0 + +[Vinylcontrol] +show_vinylcontrol 0 + +[Visible Built-in Effects] +org.mixxx.effects.autopan 1 +org.mixxx.effects.balance 1 +org.mixxx.effects.bessel4lvmixeq 1 +org.mixxx.effects.bessel8lvmixeq 1 +org.mixxx.effects.biquadfullkilleq 1 +org.mixxx.effects.bitcrusher 1 +org.mixxx.effects.echo 1 +org.mixxx.effects.filter 1 +org.mixxx.effects.flanger 1 +org.mixxx.effects.graphiceq 1 +org.mixxx.effects.linkwitzrileyeq 1 +org.mixxx.effects.loudnesscontour 1 +org.mixxx.effects.metronome 1 +org.mixxx.effects.moogladder4filter 1 +org.mixxx.effects.parametriceq 1 +org.mixxx.effects.phaser 1 +org.mixxx.effects.reverb 1 +org.mixxx.effects.threebandbiquadeq 1 +org.mixxx.effects.tremolo 1 + +[Waveform] +DefaultZoom 3 +EndOfTrackWarningTime 30 +FrameRate 30 +OverviewNormalized 0 +PlayMarkerPosition 0.5 +VSync 0 +VisualGain_0 1 +VisualGain_1 1 +VisualGain_2 1 +VisualGain_3 1 +WaveformType 10 +ZoomSynchronization 0 diff --git a/stage3/02-desktop/files/udev.mixxx b/stage3/02-desktop/files/udev.mixxx new file mode 100644 index 0000000..23b61e5 --- /dev/null +++ b/stage3/02-desktop/files/udev.mixxx @@ -0,0 +1,55 @@ +# This udev rule allows Mixxx to access HID and USB Bulk controllers when running as a normal user + +# Sources: +# http://www.linux-usb.org/usb.ids +# https://www.the-sz.com/products/usbid/ +# https://devicehunt.com/all-usb-vendors + +# Note that the udev rule must match on the USB device level; matching the USB interface +# descriptor with bInterfaceClass does not work. + +# Install and execute before 70-uaccess.rules, e.g. .../udev/rules.d/69-mixxx-usb-uaccess.rules + +# Allen + Heath Ltd. +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="22f0", TAG+="uaccess" +# Allen + Heath Xone 23C hardware mixer with USB audio interface +# This is required so all 4 input and all 4 output channels of the audio interface are available. +ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="22f0", ATTR{idProduct}=="0008", ATTR{bConfigurationValue}="2" +# Arturia +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1c75", TAG+="uaccess" +# BEHRINGER International GmbH +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1397", TAG+="uaccess" +# D&M Holdings, Inc. (Denon/Marantz) +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="154e", TAG+="uaccess" +# EKS (Otus) +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1157", TAG+="uaccess" +# Gemini +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="23c7", TAG+="uaccess" +# Guillemot Corp. (Hercules) +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="06f8", TAG+="uaccess" +# inMusic (Numark, Denon) +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="15e4", TAG+="uaccess" +# KORG, Inc. +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0944", TAG+="uaccess" +# Native Instruments +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="17cc", TAG+="uaccess" +# Nintendo Co., Ltd +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="057e", TAG+="uaccess" +# Pioneer Corp. +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="08e4", TAG+="uaccess" +# AlphaTheta Corp. +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="2b73", TAG+="uaccess" +# Rane +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="13e5", TAG+="uaccess" +# Reloop +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="200c", TAG+="uaccess" +# Roland Corp. +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0582", TAG+="uaccess" +# Sony Corp. +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="054c", TAG+="uaccess" + +# Missing: +# - American Musical Supply (AMS/Mixars) + +# Only some distribuions require the below +KERNEL=="hiddev*", NAME="usb/%k", GROUP="uaccess"