Changeset 1052

Show
Ignore:
Timestamp:
04/26/08 12:46:58 (13 years ago)
Author:
ppalmers
Message:

remove alsa dependency. update readme file. add some extra stuff to ffado-diag.py

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/README

    r987 r1052  
    4343* Focusrite Saffire PRO26 
    4444* ECHO AudioFire2 
     45* ECHO AudioFire4 
    4546* Mackie Onyx Mixer FireWire expansion 
    4647 
     
    9293match. The chances that it works also with an older versions are good: 
    9394 
    94 alsa        (>= 1.0.0) 
    9595libxml++2   (>= 2.13.0) 
    9696 
     
    104104Currently only the jackd audio server is supported. 
    105105 
    106 jackd (>= 0.107.6), http://jackaudio.org 
     106jackd (>= 0.109.12), http://jackaudio.org 
    107107 
    108108Optionally, but recommended is that you install qjackctl: 
     
    149149to install libffado before you build jackd. The backend to use in jackd is 
    150150firewire. 
     151 
     152NOTE: the beta versions are distributed with debugging enabled by default. 
    151153 
    152154DISTRIBUTION PACKAGERS NOTE: Please do not enable support for devices 
     
    187189Here is a sample session (without realtime support enabled): 
    188190 
    189 [wagi@halo ~]$ jackd -d firewire 
    190 jackd 0.102.9 
    191 Copyright 2001-2005 Paul Davis and others. 
    192 jackd comes with ABSOLUTELY NO WARRANTY 
    193 This is free software, and you are welcome to redistribute it 
    194 under certain conditions; see the file COPYING for details 
    195  
    196 JACK compiled with System V SHM support. 
    197 loading driver .. 
    198 Freebob using Firewire port 0, node -1 
    199 libiec61883 warning: Established connection on channel 0. 
    200 You may need to manually set the channel on the receiving node. 
    201 libiec61883 warning: Established connection on channel 1. 
    202 You may need to manually set the channel on the transmitting node. 
     191    $ jackd -d firewire 
     192    no message buffer overruns 
     193    jackd 0.111.0 
     194    Copyright 2001-2005 Paul Davis and others. 
     195    jackd comes with ABSOLUTELY NO WARRANTY 
     196    This is free software, and you are welcome to redistribute it 
     197    under certain conditions; see the file COPYING for details 
     198     
     199    JACK compiled with System V SHM support. 
     200    loading driver .. 
     201    3106528665:  (ffado.cpp)[  99] ffado_streaming_init: libffado 1.999.20 built Apr 26 2008 20:26:32 
     202    libiec61883 warning: Established connection on channel 0. 
     203    You may need to manually set the channel on the receiving node. 
     204    libiec61883 warning: Established connection on channel 1. 
     205    You may need to manually set the channel on the transmitting node. 
    203206 
    204207(Note: you can safely ignore the libiec61883 warnings, they are normal.) 
     208 
     209An important remark is that for good performance, one should always run jack 
     210with the -R flag to enable realtime scheduling for critical threads: 
     211    $ jackd -R -d firewire 
    205212 
    206213In case of problems 
    207214------------------- 
    208215 
    209 Under the tests directory there is a test program. You should first 
    210 try to run this. 
    211  
    212 If you don't have installed libffado then you can adapt your 
    213 LD_LIBRARY_PATH environment variable to 
    214  
    215 $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../src/.libs 
    216  
    217 Then you can try running the program without having to install it. 
    218  
    219 With the release version you see something like this: 
    220  
    221 wagi@cruxam:~/src/libffado/tests$ ./test-ffado discover 
    222 verbose level = 0 
    223 Using ffado library version: libffado 0.9.0 
    224  
    225   port = 2, devices_on_bus = 1 
    226   get info for device = 0, node = 1 
    227 Direction:              0 (capture) 
    228  
    229 Connection Info 
    230 =============== 
    231  
    232 Number of connections:  1 
    233  
    234   Connection  0 
    235   ------------- 
    236     [ 0] Id:         0 
    237     [ 0] Port:       2 
    238     [ 0] Node:       1 
    239     [ 0] Plug:       0 
    240     [ 0] Dimension:  7 
    241     [ 0] Samplerate: 44100 
    242     [ 0] IsoChannel: -1 
    243     [ 0] IsMaster:   0 
    244     [ 0] Number of stream infos: 8 
    245  
    246     StreamId  Position Location Format Type DPort Name 
    247     -------------------------------------------------- 
    248     [ 0]:[ 0] 0x01     0x01     0x06   0x02 0x00  MicIn 1+2 left 
    249     [ 0]:[ 1] 0x04     0x02     0x06   0x02 0x00  MicIn 1+2 right 
    250     [ 0]:[ 2] 0x02     0x01     0x06   0x03 0x00  LineIn 1+2 left 
    251     [ 0]:[ 3] 0x05     0x02     0x06   0x03 0x00  LineIn 1+2 right 
    252     [ 0]:[ 4] 0x00     0x01     0x06   0x04 0x00  SpdifIn 1 left 
    253     [ 0]:[ 5] 0x03     0x02     0x06   0x04 0x00  SpdifIn 1 right 
    254     [ 0]:[ 6] 0x06     0x01     0x0d   0x0a 0x00  MidiIn2 
    255     [ 0]:[ 7] 0x06     0x02     0x0d   0x0a 0x00  MidiIn2 
    256  
    257  
    258 Direction:              1 (playback) 
    259  
    260 Connection Info 
    261 =============== 
    262  
    263 Number of connections:  1 
    264  
    265   Connection  0 
    266   ------------- 
    267     [ 0] Id:         0 
    268     [ 0] Port:       2 
    269     [ 0] Node:       1 
    270     [ 0] Plug:       0 
    271     [ 0] Dimension:  11 
    272     [ 0] Samplerate: 44100 
    273     [ 0] IsoChannel: -1 
    274     [ 0] IsMaster:   0 
    275     [ 0] Number of stream infos: 12 
    276  
    277     StreamId  Position Location Format Type DPort Name 
    278     -------------------------------------------------- 
    279     [ 0]:[ 0] 0x01     0x01     0x06   0x03 0x00  MultiChannel 7.1 Front left 
    280     [ 0]:[ 1] 0x06     0x02     0x06   0x03 0x00  MultiChannel 7.1 Front right 
    281     [ 0]:[ 2] 0x02     0x03     0x06   0x03 0x00  MultiChannel 7.1 Center 
    282     [ 0]:[ 3] 0x07     0x04     0x06   0x03 0x00  MultiChannel 7.1 Subwoofer 
    283     [ 0]:[ 4] 0x03     0x05     0x06   0x03 0x00  MultiChannel 7.1 Rear left 
    284     [ 0]:[ 5] 0x08     0x06     0x06   0x03 0x00  MultiChannel 7.1 Rear right 
    285     [ 0]:[ 6] 0x04     0x07     0x06   0x03 0x00  MultiChannel 7.1 Surround left 
    286     [ 0]:[ 7] 0x09     0x08     0x06   0x03 0x00  MultiChannel 7.1 Surround right 
    287     [ 0]:[ 8] 0x00     0x01     0x06   0x04 0x00  SpdifOut 1 left 
    288     [ 0]:[ 9] 0x05     0x02     0x06   0x04 0x00  SpdifOut 1 right 
    289     [ 0]:[10] 0x0a     0x01     0x0d   0x0a 0x00  MidiOut2 
    290     [ 0]:[11] 0x0a     0x02     0x0d   0x0a 0x00  MidiOut2 
    291  
    292  
    293 If you don't get this, check if you have multiple host controllers, and  
    294 use the -p parameter to specify them. If you get any error messages, the  
    295 best way to help us figure out what the problem might be is to build the  
    296 debug version (scons ENABLE_DEBUG=1). You can then rerun the test 
    297 application (with -v5) and send us its output. 
    298  
     216First of all, check whether your problem is in fact a problem, and 
     217whether it is a FFADO problem. The magic tool for this is google. 
     218 
     219User support is a rather annoying occupation, especially since it sucks 
     220time from developers that are not paid for developing, let alone for doing 
     221user support. Please make sure that you have checked the following places: 
     222    http://www.ffado.org/ 
     223    http://subversion.ffado.org/ 
     224    http://www.google.com/ 
     225      (the terms "ffado-devel" "ffado-user" or "freebob-user" work great) 
     226Some might consider this a bit arrogant or "newbie-unfriendly", but personally 
     227I (Pieter Palmers) consider this a matter of politeness towards the developers. 
     228 
     229If you have tried to find a solution to your problem, but you couldn't find 
     230one or are confused, don't hesitate to ask for help. The preferred way is by 
     231signing up to the mailing list as described on http://www.ffado.org/?q=contact. 
     232 
     233Writing a bug report 
     234-------------------- 
     235 
     236Note that the more effort you put in your bug report, the more effort we 
     237will put into helping you. 
     238 
     239Make sure you have compiled a DEBUG=yes version of 
     240libffado. If not there is no way we can trace the problem. 
     241 
     242When reporting a problem, please run jackd with the --verbose option, 
     243and add the -v6 option to the firewire backend: 
     244    $ jackd --verbose [...] -d firewire -v6 [...] 
     245 
     246    ( [...] = other options ) 
     247 
     248This will generate an increadible amount of debug output that should 
     249contain what we need to track down the problem. If you have troubles 
     250saving the output, try redirecting it to a file: 
     251 
     252    $ jackd --verbose -d firewire -v6 2> ffado-jack.log 
     253 
     254this will create a ffado.log file containing the output. Use CTRL-C 
     255to exit jack if necessary. 
     256 
     257The distribution contains a tool to gather some information about your 
     258system. you can run it as follows: 
     259 
     260    $ cd support/tools 
     261    $ python ffado-diag.py > ffado-diag.log 
     262 
     263It will check your system for basic problems and gather some information 
     264regarding your hardware configuration. This will allow us to diagnose 
     265your problem faster. 
     266 
     267Once the logs have been created you can create a support ticket at 
     268http://subversion.ffado.org/newticket 
     269 
     270Be sure to include the following information: 
     271* the log file(s) (zipped/tar.gz'ed and attached) 
     272* the device you're trying to use 
     273* a description of what went wrong and how to reproduce it. You 
     274  preferrably try to figure out a sequence of steps that can reliably 
     275  reproduce the issue on your system. A one-time failure is very difficult 
     276  to diagnose and/or fix. 
     277* the distribution and its version 
     278 
     279 
  • trunk/libffado/SConstruct

    r1048 r1052  
    191191                'libavc1394' : '0.5.3', 
    192192                'libiec61883' : '1.1.0', 
    193                 'alsa' : '1.0.0', 
    194193                'libxml++-2.6' : '2.13.0', 
    195194                'dbus-1' : '1.0', 
     
    235234        # Optional checks follow: 
    236235        # 
    237         env['ALSA_SEQ_OUTPUT'] = conf.CheckLib( 'asound', symbol='snd_seq_event_output_direct', autoadd=0 ) 
    238236 
    239237if conf.CheckForApp( "which pyuic" ) and conf.CheckForPyModule( 'dbus' ) and conf.CheckForPyModule( 'qt' ): 
  • trunk/libffado/src/SConscript

    r1027 r1052  
    214214        libenv.MergeFlags( env['LIBAVC1394_FLAGS'] ) 
    215215        libenv.MergeFlags( env['LIBIEC61883_FLAGS'] ) 
    216         libenv.MergeFlags( env['ALSA_FLAGS'] ) 
    217216        libenv.MergeFlags( env['LIBXML26_FLAGS'] ) 
    218217 
  • trunk/libffado/support/tools/ffado-diag.py

    r999 r1052  
    139139        return False 
    140140 
    141  
    142 #  
     141def run_command(cmd): 
     142    (exitstatus, outtext) = commands.getstatusoutput(cmd) 
     143    log.debug("%s outputs: %s" % (cmd, outtext)) 
     144    return outtext 
     145 
     146# package versions 
     147def get_package_version(name): 
     148    cmd = "pkg-config --modversion %s" % name 
     149    return run_command(cmd) 
     150 
     151def get_package_flags(name): 
     152    cmd = "pkg-config --cflags --libs %s" % name 
     153    return run_command(cmd) 
     154 
     155def get_command_path(name): 
     156    cmd = "which %s" % name 
     157    return run_command(cmd) 
     158 
     159def get_version_first_line(cmd): 
     160    ver = run_command(cmd).split("\n") 
     161    if len(ver) == 0: 
     162        ver = ["None"] 
     163    return ver[0] 
     164 
     165 
     166def list_host_controllers(): 
     167    cmd = "lspci | grep 1394" 
     168    controllers = run_command(cmd).split("\n") 
     169    log.debug("lspci | grep 1394: %s" % controllers) 
     170    for c in controllers: 
     171        tmp = c.split() 
     172        if len(tmp) > 0: 
     173            tmp 
     174            cmd = "lspci -vv -nn -s %s" % tmp[0] 
     175            print run_command(cmd) 
    143176 
    144177## main program 
     
    188221    else: 
    189222        devnode_permissions = None 
    190      
     223 
    191224    # check libraries 
     225    print " Prerequisites..." 
     226    print "   gcc................ %s" % get_version_first_line('gcc --version') 
     227    print "   g++................ %s" % get_version_first_line('g++ --version') 
     228    print "   PyQt............... %s" % get_version_first_line('pyuic -version') 
     229    print "   jackd.............. %s" % get_version_first_line('jackd --version') 
     230    print "     path............. %s" % get_command_path('jackd') 
     231    print "     flags............ %s" % get_package_flags("jack") 
     232    print "   libraw1394......... %s" % get_package_version("libraw1394") 
     233    print "     flags............ %s" % get_package_flags("libraw1394") 
     234    print "   libavc1394......... %s" % get_package_version("libavc1394") 
     235    print "     flags............ %s" % get_package_flags("libavc1394") 
     236    print "   libiec61883........ %s" % get_package_version("libiec61883") 
     237    print "     flags............ %s" % get_package_flags("libiec61883") 
     238    print "   libxml++-2.6....... %s" % get_package_version("libxml++-2.6") 
     239    print "     flags............ %s" % get_package_flags("libxml++-2.6") 
     240    print "   dbus-1............. %s" % get_package_version("dbus-1") 
     241    print "     flags............ %s" % get_package_flags("dbus-1") 
     242 
    192243    # libraw 
    193244     
    194245    print " Hardware..." 
    195246    # check host controller 
    196     print "  todo..." 
     247    print "   Host controllers:" 
     248    list_host_controllers() 
     249    print "   CPU info:" 
     250    print run_command("cat /proc/cpuinfo") 
    197251 
    198252    print " Configuration..." 
     
    200254     
    201255    # check IRQ settings  
    202     print "  todo..." 
     256    print "  IRQ information" 
     257    info = IRQInfo() 
     258 
     259    info.load() 
     260    print str(info) 
    203261 
    204262    print ""