element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum New reworked driver for Wolfson/Cirrus Logic audio card
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 390 replies
  • Subscribers 767 subscribers
  • Views 50308 views
  • Users 0 members are here
  • raspberry_pi
  • raspeberry_pi_accessories
Related

New reworked driver for Wolfson/Cirrus Logic audio card

hiassoft
hiassoft over 9 years ago

I've been working on a driver rework, mainly to get rid of the requirement to carry around a bunch of patches to upstream driver code, and also to fix some outstanding issues and introduce some new features.

 

Most issues have been ironed out so here's the first public release.

 

Edit: the driver has been included in official RPi kernels. Just run sudo rpi-update to install it.

You still have to install the mixer scripts and add the /etc/modprobe.d file. See my website for details

RPi Linux driver for Wolfson / Cirrus Logic Audio Card

 

Source: https://github.com/HiassofT/rpi-linux/tree/cirrus-ng-4.9.0

Precompiled kernel: http://www.horus.com/~hias/tmp/cirrus/cirrus-ng-linux-4.9.0.tgz

New mixer scripts: http://www.horus.com/~hias/tmp/cirrus/cirrus-ng-scripts.tgz

 

Important notes:

  • The new driver bases on the rather fresh kernel 4.9.0 which means there's some risk of (yet unknown) issues. Use it at your own risk and please run "rpi-update" to get the latest firmware before installing the new driver.
  • The soundcard name has been changed from "snd_rpi_wsp" to "RPi-Cirrus", also several ALSA controls have been removed and new ones were added. This means the old usecase scripts and any custom-made scripts will no longer work. Use the new mixer scripts instead of the old usecase/listen scripts.
  • The new driver supports setting (and receiving) of the S/PDIF channel status bits (aka AES bits). If you add an ALSA card configuration file this means applications like Kodi can do proper AC3/DTS passthrough. A sample card configuration file (plus the mixer scripts) can be found here: https://github.com/HiassofT/rpi-cirrus-config
  • I haven't fully updated the documentation on my website RPi Linux driver for Wolfson / Cirrus Logic Audio Card  yet, will do that during the next weeks/months. But except for the things noted above most stuff should still work as in previous driver versions.

 

Please report back if you tested the driver (either successfully or unsuccessfully), any feedback will help me!

 

so long,

 

Hias

  • Sign in to reply
  • Cancel
Parents
  • hiassoft
    hiassoft over 9 years ago

    If you are using kernel 4.9.0 please update to the new 4.9.4 version:

    http://www.horus.com/~hias/tmp/cirrus/cirrus-ng-linux-4.9.4.tgz

     

    There was a bug that caused noise on LineIn which is now fixed.

     

    so long,

     

    Hias

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • kjciszewski
    kjciszewski over 9 years ago in reply to hiassoft

    OK, the 4.9.4 driver works well.

     

    I ran into a problem trying to install libasound2-dev on 4.9.4--->

     

    pi@raspberrypi:/ $ sudo apt-get install libasound2-dev

    Reading package lists... Done

    Building dependency tree

    Reading state information... Done

    Suggested packages:

      libasound2-doc

    The following NEW packages will be installed:

      libasound2-dev

    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

    Need to get 95.5 kB of archives.

    After this operation, 445 kB of additional disk space will be used.

    Err http://archive.raspberrypi.org/debian/ jessie/main libasound2-dev armhf 1.0.28-1+rpi1

      Could not resolve 'archive.raspberrypi.org'

    E: Failed to fetch http://archive.raspberrypi.org/debian/pool/main/a/alsa-lib/libasound2-dev_1.0.28-1+rpi1_armhf.deb Could not resolve 'archive.raspberrypi.org'


    E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

     

    Do how does one do this?  It appears that libasound2-dev for RPI1 was targeted, and I think there is an libasound2-dev for RPI2.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • hiassoft
    hiassoft over 9 years ago in reply to kjciszewski

    Err http://archive.raspberrypi.org/debian/ jessie/main libasound2-dev armhf 1.0.28-1+rpi1

    Could not resolve 'archive.raspberrypi.org'

    E: Failed to fetch http://archive.raspberrypi.org/debian/pool/main/a/alsa-lib/libasound2-dev_1.0.28-1+rpi1_armhf.deb Could not resolve 'archive.raspberrypi.org'


    E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

     

    Do how does one do this? It appears that libasound2-dev for RPI1 was targeted, and I think there is an libasound2-dev for RPI2.

    The message "Could not resolve 'archive.raspberrypi.org'" points to a network error - try it again, it could have been a temporary server error or some issue with your internet provider, router etc.

     

    Before installing a package you should always run "apt-get update". The current version of libasound2-dev is 1.0.28-1+rpi2 (not 1.0.28-1+rpi1 as shown in your output).

     

    And: the rpi1/2 at the end has nothing to do with the RPi version. Raspbian doesn't ship different packages for RPI1/2/3 - the "rpiX" at the end just indicates that the package has been changed by Raspbian (compared to the original Debian Jessie version, which currently is 1.0.28-1), and on each change the number will be incremented.

     

    so long,

     

    Hias

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • kjciszewski
    kjciszewski over 9 years ago in reply to hiassoft

    I found libasound2-dev 1.0.28-1+rpi2--can I just download it, say into a Downloads or archives folder and then sudo install it?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • hiassoft
    hiassoft over 9 years ago in reply to kjciszewski

    I found libasound2-dev 1.0.28-1+rpi2--can I just download it, say into a Downloads or archives folder and then sudo install it?

    You can manually install .debs with dpkg -i if you know what you are doing. But then you have to take care about installing/updating package dependencies yourself. Better stick to apt-get update / apt-get upgrade.

     

    Can you connect to http://archive.raspberrypi.org/ with a webbrowser? Does http://www.raspberrypi.org/ work? Do other sites work?http://archive.raspberrypi.org/

     

    so long,

     

    Hias

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • kjciszewski
    kjciszewski over 9 years ago in reply to hiassoft

    OK, I found my problem.  It had to do with trying to give the RPI 3 a static IP address.

     

    I found the following information that claimed to set a static IP address for RPI 3:

     

     

    RPI 3 Static IP configuration:

     

     

    1. In terminal mode on RPI 3 type:  ifconfig [gives current ip address]

     

    In terminal mode on RPI 3 type: route –ne [gives current gateway address]

     

    In terminal mode on RPI 3 type:  sudo nano /etc/dhcpcd.conf

     

    Add at bottom of file type:

     

    interface eth0

    static ip_address=desired_ip_address

     

    interface wlan0

    static ip_address=desired_ip_address

     

    static routers=desired_gateway_address

     

    static domain_name_servers=8.8.8.8.8.8.4.4

     

     

    <ctrl> o

    <ctrl> x

    sudo reboot

     

     

    Unfortunately, while this gives the RPI 3 a local static IP address of my choosing, it does something to prevent the Chromium Web Browser in Pixel from connecting to the internet.  I tried changing static domain_name_servers=8.8.8.8.8.8.4.4 to static domain_name_servers=99.99.99.53, the DNS my router recognizes, but that didn't help. 

     

    Any suggestions?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • kjciszewski
    kjciszewski over 9 years ago in reply to kjciszewski

    Never mind. I found working setup information at https://www.raspberrypi.org/forums/viewtopic.php?f=91&t=157250

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • kjciszewski
    kjciszewski over 9 years ago in reply to kjciszewski

    Never mind. I found working setup information at https://www.raspberrypi.org/forums/viewtopic.php?f=91&t=157250

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube