From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from felloff.net ([216.126.196.34]) by ur; Sun Oct 11 16:42:44 EDT 2015 Message-ID: <0b109d174515546318e7979e0615ae3d@felloff.net> List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: stable self-signing session information backend Date: Sun, 11 Oct 2015 22:42:33 +0200 From: cinap_lenrek@felloff.net To: 9front@9front.org Subject: Re: [9front] Audio in Lenovo T400 In-Reply-To: <561AB861.6090103@imz.re> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit > 1. Where are audio devices drivers stored? I believe that in > /sys/src/9/pc but I'm not fully certain. intel hd audio driver source is /sys/src/9/pc/audiohda.c, which gets called by by /sys/src/9/port/devaudio.c > 2. How I can test audio card to be sure that this is a driver problem. you probably just need to set the right output pin in /dev/audioctl > 3. Which file use as a template for new audio driver? And how to setup > driver development envirmoent(can i load drivers into kernel without > restarting machine? how to test and compile the driver?) you can pick any /sys/src/9/pc/audio*.c as a template. the plan9 kernel does not have loadable kernel drivers. kernel drivers are build into the kernel and require a new kernel to be build and a reboot after a change them to test. vga drivers and usb drivers are just normal userspace programs tho. so not all driver development requires a kernel driver. i have a bunch of plan9 machines running, so for driver development, i just netboot the machine with the hardware with my development kernel. plan9 kernel is quite simple, you should have no problem figuring it out by looking at the other drivers. the kernel you build is build from a configuration file, /sys/src/9/pc/9pcf is build from /sys/src/9/pc/pcf for example. this file contains the list of drivers that get build into it. there are two types of kernel drivers: dev: which export a Dev structure with function pointers to implement a (kernel) fileserver, they are all named dev*.c. link: which just export a link() function that gets called early on boot. the audio and ethernet drivers are of this kind. they do not implement the device fileservice directly but just register themselfs in ther link function with a dev. you build a kernel with mk. mk 'CONF=confname' to build a kernel of a specific configuration. gives you 9confname kernel image. -- cinap