Entries tagged “linux”

Updfstab (english)

written by ccomb, on Dec 16, 2005 12:52:00 PM.

This script has been obsoleted by all the improvements of Hal. I don't use it any more, but it can still be useful.

Automatic handling of USB storage devices

(cliquez ici pour la version en français.)

1) Context and goal

This applies to devices managed by the usb_storage driver, i.e. usb keys, usb hard drives, and many digital cams. Your kernel must be in the 2.6.x series and your devices must be handled by Udev (not DevFS, nor a static /dev).

When plugging such a device, the purpose is to:

  • create a mount point with an explicit name corresponding to the real device (""/media/IntelligentStick""). Information is retrieved from the partition label, otherwise from /sys (model or vendor)
  • add the corresponding line in /etc/fstab

When unplugging, we remove the line in fstab, and the mount point.

So, under Gnome, with FAM or GAMIN installed and enabled, the device automatically appears in the mountable devices list (right-clic on the desktop -> Volumes, or in Computer for gnome >= 2.6), and it makes it possible to mount and unmount it very easily with a mouse click.

2) The script

The latest version is updfstab-17 The other versions are here : http://ccomb.gorfou.fr/static/usbstorage/

Thanks to all those who helped me improving this script (Stefan Illner, Thomas Jahns, Elia Yehuda, Iain Mac Donald, Jan Schulz, Peter Kolloch, Christian Perrier, Eric Freyens, Yth., Florian Iragne, Gurvan huiban, Benoit-Pierre Demaine, Emmanuel Bouthenot, Christophe Jenaux, gpe92)

Here is a port to perl 5.6 of the script, made by Thomas Jahns, and that create an autofs map instead of modifying the fstab: hotplug-mount.pl, and its README

Here is a modified 17+ version by Christophe Thiesset with KDE icon management, warning message at unplugging without unmounting, and other changes : updfstab-17.chthiesset.dev (and associated daemon : updfstab-sync.chthiesset.c)

Here is a Debian package of the modified version (dec 2005), which contains both the script and the daemon, and which was deployed at the INSA Toulouse (a french engineering college) for courses rooms and user workstations. The improvements are warning messages for users, automatic opening of konqueror and hot unplugging without much loss. The bad point is a small drop in the transfer rate (the daemon synchronizes every 10 seconds).

Here is another 17+ version by Yannick Torres with KDE icon management: updfstab-17.yannick

Christian Gatzemeier suggests to modify the mount options in the script. Please see at the bottom of the page.

3) Prerequisites

You must have installed:

  • optional for gnome : gnome-volume-manager and hal allow to automount and to automatically open nautilus when plugging the device. (it must be enabled in gnome-volume-properties).

4) Installation

the script must be copied as /etc/dev.d/default/updfstab.dev, and set executable:

  • Open a terminal and become root by typing su <Enter>, then your root password.
  • Paste the following line in your terminal:

of=/etc/dev.d/default/updfstab.dev; wget ccomb.gorfou.fr/static/usbstorage/updfstab-latest -O $of; chmod 755 $of

5) Uninstallation

  • Open a terminal and become root by typing su <Enter>, then your root password.
  • Just delete the script by typing: rm -f /etc/dev.d/default/updfstab*

6) Changelog

  • updfstab-17 (23-Jan-2005) - support devices without a partition (formatted as is) - changed the choice for mount point name. (label->model->vendor->"usb-disk") - use "ext2", "ext3" and "xfs" instead of "auto" to mount these filesystems
  • updfstab-2.6-16 (14-Jan-2005) - minor improvements and fixes - support for kernel 2.6.10 - removed dependency with procmail (/usr/bin/lockfile) - better behaviour with several devices - use "vfat" instead of "auto" for FAT devices - automounting (disabled by default. See the end of the script)
  • updfstab-2.6-15 (13-Dec-2004) - fixed a bug in case a mounted device is unplugged. - other minor modification
  • updfstab-2.6-14 (24-Nov-2004) - support for udev 0.46 that does not seem to provide DEVNAME anymore at removal
  • updfstab-2.6-13 (02-Nov-2004) - removed the "sync" option which divided par 10 the transfer rates. Something has to be found to enable the "sync" option __and__ to specify the blocksize at mount (the -o blocksize option has no effect).
  • updfstab-2.6-12 (11-Oct-2004) - now manages EXT2/3 partition label (with e2label) - add "noatime" mount option to avoid unnecessary write while reading
  • updfstab-2.6-11 (27-Aug-2004) - now manages XFS partition label (with xfs_admin) - the full script is protected by the lockfile (to avoid simultaneous access to the device) - extended partitions are skipped (they are not mountable) - partition number is no more appended to the mountpoint name
  • updfstab-2.6-10 (08-Jul-2004) - exit immediately if /usr/bin/ is not yet available (during boot if /usr is a separate partition) - use a lockfile instead of a sleep to protect /etc/fstab access - use syslog
  • updfstab-2.6-9 (03-Jul-2004) - using iocharset=utf-8 only for FAT and NTFS - if a mounted device is unplugged, kill the process accessing it and unmount the device. (optionnally, restart famd if it was running, because it often blocks unmounting because of nautilus)
  • updfstab-2.6-8 (03-Jul-2004) - add a debug option (comment in DEBUG=1) - fix a bug preventing fstab line and mountpoint removal - remove non fatal errors from stdout (-q option to modprobe add add >/dev/null to ls) - delete the fstab line and mountpoint if they exist at plugging (to clean) - other bug fixes
  • updfstab-2.6-7 (06-Jun-2004) - Complete rewriting of the script - The script now use variables provided by udevd (ACTION, DEVNAME, DEVPATH) - The mountpoint is now also removed at unplugging - Should now work with any udev rules (with /dev/scsi or /dev/sda) - /dev is no more hardcoded, so it should also work now with /udev instead of /dev - replace modprobe with /sbin/modprobe in case /sbin is not in the PATH. - protect against execution for non usb devices (errors at boot)
  • updfstab-2.6-6 (05-Jun-2004) - The mount point is now /media instead of /mnt (recommandation of FHS standard)
  • updfstab-2.6-5 (05-Jun-2004) - if the chosen mount point is already used, a number is appended (ex: usb-disk => usb-disk-2) - serial number is no more used
  • updfstab-2.6-4 (05-Jun-2004) - changed the choice for mount point name. (label->product->manufacturer->"usb-disk")
  • updfstab-2.6-3 (05-Jun-2004) - changed the choice order for mount point name. (product->manufacturer->"usb-disk")
  • updfstab-2.6-2 (19-Apr-2004) - changed the choice order for mount point name. (manufacturer->product->"usb-disk")
  • updfstab-2.6 (18-Mar-2004) - rewriting for 2.6 kernels

7)Version for kernel 2.4 and DevFS

I had begun this script with a 2.4 kernel and devfs. The script I wrote is here : http://ccomb.gorfou.fr/static/usbstorage/updfstab-2.4 It must be copied as /usr/sbin/updfstab, and set executable. hotplug is in charge of running it automatically. (it replaces the updfstab script usually installed by kudzu.) It is experimental, and may not work in many cases. Since I definitely migrated to 2.6 and udev, I don't maintain anymore this script.

This script has been modified by some other people: http://ccomb.gorfou.fr/static/usbstorage/updfstab.florian http://ccomb.gorfou.fr/static/usbstorage/updfstab.gurvan_huiban

Comments :

__Christian Gatzemeier proposal:__ For better vfat integration for systems that use umask 002, in line 225 you can add ",quiet,shortname=mixed,dmask=0002,fmask=0113" to the mount options. Use ",quiet,shortname=mixed,dmask=0022,fmask=0133" for systems with umask 022. Non-english systems could benefit refering to multilingual ",codepage=850".

I think ",iocharset=utf8" should only be added in your script on UTF8 enabled systems. So what I did was replacing ",iocharset=utf8" in line 225 with the options above. I don't know how one could probe for the default umask. It might be set diferently for root, and thus for the running script.

Problems when migrating to udev:

  • I lost the text mode terminals (The VTs, reachable with Alt-Ctrl-F1, ...-F2, etc.)

-> Replace compat.rules with compat-full.rules in /etc/udev/rules.d/ :

cd /etc/udev/rules.d; rm -f compat.rules; ln -s ../compat-full.rules

-> or better : onlt keep compat.rules in /etc/udev/rules.d

cd /etc/udev/rules.d; rm -f *; ln -s ../compat.rules

Works great! Thanks!

~ {emeitner} AT [ f2o DOT org ]


Todo list

  • configuration GUI to :
  • choose to enable automatic mounting
  • modify mountpoints (either a mapping on mountpoint name, or a direct modification of the label)
  • why not also manage HD partitions ? (other than those already known by the FSTAB)

Bugs :

(feel free to modify this wiki page by adding new bugs below)

  • doesn't work well with flash card usb readers : the reader has to be unplugged/replugged for the device to appear.

Other similar projects

[[http://usbmount.alioth.debian.org/ usbmount]]

Enregistrement, édition, montage, mixage et mastering audio sous Linux

written by ccomb, on May 24, 2005 3:00:00 PM.

24 mai 2005 (Voir : http://ccomb.gorfou.fr/audio-pro-sous-linux )



L'utilisation professionnelle d'une station audionumérique sous GNU/Linux n'est plus seulement une idée, c'est une réalité ! Certains n'ont pas hésité à franchir le pas, aussi bien dans le cadre d'un home studio que d'un studio pro. Vous pouvez vous aussi en profiter.

Vous pouvez bénéficier d'une configuration variable en fonction des besoins. Quelle que soit la configuration, les logiciels sont les mêmes ! Il n'y a pas de version limitée ou bridée et vous obtenez toutes les options dont vous avez besoin, y compris sur la plus petite station. Le prix ne dépend pas du nombre de logiciels installés ! Et un certain nombre de paramètres est commun à toutes les stations, comme les trois disques durs avec double stockage RAID et formatage optimisé pour les gros fichiers, le silence de fonctionnement, le contrôleur MIDI/USB motorisé permettant un mixage automatisé, etc.

Les logiciels


Système d'exploitation Debian

Le système est une Debian GNU/Linux 4.0, universellement reconnue pour sa : - stabilité et sécurité - facilité de mise à jour - pérennité (développement collaboratif décentralisé) - grande quantité de logiciels disponibles - licence libre - longue durée de support

L'environnement graphique par défaut est Gnome. L'environnement KDE est également installé sur la station et peut être utilisé si il est préféré. Ces deux environnements sont faciles à utiliser, aussi bien pour un habitué des systèmes propriétaires que pour un débutant complet.


Pilotes de périphériques audio ALSA

Le noyau Linux 2.6 est fourni par défaut avec un ensemble de pilotes de périphériques pour de très nombreuses interfaces audio. L'ensemble de ces pilotes est géré par le projet ALSA (Advanced Linux Sound Architecture). ALSA permet aux logiciels audio et midi de profiter de toutes les fonctions matérielles fournies par les cartes son. Outre sa puissance et sa souplesse, l'avantage d'ALSA est d'être sous licence libre. Cela signifie qu'un matériel possédant des pilotes ALSA possède une forte pérennité : vous êtes sûr de pouvoir toujours l'utiliser dans cinq ou dix ans, et vous n'êtes plus dépendant de la bonne volonté du fabricant à vouloir créer des drivers ou non pour les prochains systèmes d'exploitation. La liste des matériels possédant des drivers ALSA est maintenue dans la matrice alsa.


Sous-système audio temps réel Jack

Un sous-système audio à haute performance a été créé pour les besoins de l'audio professionnelle, il s'agit de Jack (Jack Audio Connection Kit). Jack est un serveur de son à très faible latence qui permet de rediriger l'audio ou le midi à volonté entre n'importe quelles applications et/ou périphériques. Il autorise également la synchronisation et le pilotage des applications midi ou audio. De cette façon, deux logiciels différents créés par deux équipes différentes peuvent s'échanger le son librement, et démarrer de façon synchrone. Jack est contrôlé grâce à une interface graphique simple et puissante permettant de régler finement tous les paramètres et d'inter-connecter les logiciels entre eux et avec les entrées/sorties audio/midi matérielles. De plus, grâce au module realtime de Linux, Jack peut fonctionner en mode temps réel ce qui permet :

  • une latence minimale, garantie et réglable (minimum 0.33 ms)
  • un décompte précis des désynchronisations (xruns)
  • la possibilité de stopper la lecture ou l'enregistrement automatiquement en cas de désynchronisation (garantie de qualité)

Logiciels de musique


Ardour est un logiciel d'enregistrement audio multipiste fonctionnant au dessus de Jack. Il permet l'enregistrement 24bits/96kHz sur un nombre illimité de pistes, l'édition non-linéaire et non-destructive basée sur des régions avec un nombre illimité d'annulations, une automatisation complète, y compris des plugins et effets, l'envoi/réception de commandes MMC et paramètres Midi, la synchro avec un timecode MTC et SMPTE, etc.


Rosegarden est un séquenceur midi+audio complet accompagné d'un éditeur de partitions. Il peut être utilisé seul ou être synchronisé à Ardour (grâce à Jack).


Audacity est un logiciel d'édition et de traitement sonore multipiste [très complet->http://audacity.sourceforge.net/about/features]. Il est idéal pour retoucher ou préparer des échantillons, réduire un bruit de fond ou un souffle, consulter le spectre, et peut bénéficier lui aussi de tous les effets et plugins LADSPA (voir plus bas).


JAMin est un logiciel de mastering audio. Il fournit les traitements suivants :

  • synchronisation et routage avec Jack
  • filtres linéaires
  • égaliseur graphique 30 bandes
  • égaliseur manuel 1023 bandes avec contrôles paramétriques
  • analyseur de spectre
  • compresseur de crête 3 bandes
  • limiteur brickwall à anticipation
  • traitement stéréo multibande
  • augmentation de la loudness
  • gestion et enregistrement des réglages
Système de plugins et d'effets audio (LADSPA)

LADSPA est une architecture de plugins et d'effets audio comparable à VST. Les effets LADSPA peuvent être utilisés librement depuis n'importe quelle application sous linux et peuvent être introduits à n'importe quel point de la chaîne audio, que ce soit sur une tranche de mixage d'Ardour, sur la sortie avant le monitoring, ou sur l'entrée à l'enregistrement. Il existe déjà une grande collection de plugins et d'effets LADSPA, dont la quasi-totalité est sous licence libre (GPL) ! La station est livrée d'origine avec 130 effets LADSPA. Vous pouvez en consulter une liste ici : plugin.org.uk

Le matériel

le choix des composants doit être réalisé avec soin, et dépend de vos besoins et de votre budget. Il faut cibler le bon compromis entre un matériel trop récent donc pas assez testé, et un matériel trop vieux et pas assez performant.

Processeur :

plus il est rapide, plus on peut diminuer la latence générale et ajouter des effets.


Mémoire vive (RAM) :

le minimum pour un tel usage sous Linux est de 512Mo. Cela peut être un point de départ pour une station d'entrée de gamme. Mais le prix de la mémoire étant actuellement faible, il est intéressant de choisir au moins 1Go. On peut ensuite monter à 4Go (sur un système 32 bits), et plus sur un système 64 bits. Toute cette mémoire agira comme un tampon pour le disque dur et améliorera nettement les lectures et écritures lors de l'enregistrement ou du mixage.

Disques durs :

leur capacité détermine la durée totale d'enregistrement, et leur vitesse détermine le nombre de pistes qu'on peut lire ou écrire en même temps. En 24bits/96kHz, on peut stocker jusqu'à 77 heures de musique sur un seul disque de 80Go.

Chaque station est composée de trois à cinq disques durs : - un disque de 80Go pour le système d'exploitation - de deux à quatres disques SATA de 250 à 750Go en RAID réservés pour le son :

Les disques durs sont montés sur des silent-blocs à dissipateurs thermiques pour diminuer leur bruit et augmenter leur durée de vie.

Ils sont découpés en deux zones de stockage RAID : - une zone de travail RAID0 à haute performance permettant d'assurer un débit de l'ordre de 110Mo/s. De cette façon, le nombre théorique maximal de pistes enregistrables/lisibles simultanément est de 400 ! - une zone de sauvegarde redondante RAID1 permettant d'archiver de façon sûre tout travail et d'éviter les pertes de données en cas de panne matérielle d'un disque. Le disque système est formatté en ext3, et le volume audio est formatté en XFS pour accélérer le traitement des gros fichiers son.


Boitier :

un bon boîtier doit associer :

  • un silence de fonctionnement
  • un bon refroidissement des composants (durée de vie)
  • une bonne isolation électrique et électromagnétique
  • un bon isolement acoustique et une absorption des vibrations (externes et de fonctionnement)

Le boitier est typiquement au format Rack 19', 3 ou 4 unités, pour être incorporé dans les armoires d'effets ou de préamplis. Il est équippé d'un graveur DVD/CD permettant de réaliser rapidement des maquettes après finition du master.

Moniteurs :

les stations doivent comporter deux écrans d'une résolution au moins égale à 1280x1024 pixels :

  • un pour la partie éditeur
  • un pour la partie mixage

L'idéal étant deux écrans 21 ou 24 pouces.

Interfaces audio :

Il faut choisir les interfaces audio bénéficiant du meilleur fonctionnement sous Linux. Elles doivent disposer de drivers libres sous licence GPL, très stables et complets, permettant de travailler dans les meilleures conditions avec une latence extrèmement faible.

Les cartes M-Audio Delta et les Cartes RME restent des références pour ce type d'usage sous linux.

De nombreuses interfaces audio Firewire peuvent maintenant fonctionner sous Linux grâce au projet FFADO (Ancien FreeBob).