4

I downloaded the 3.12-8 kernel files linux-headers-all.deb, linux-headers-generic_i368.deb; linux-image-generic_i386.deb from kernel.org and installed them via:

 dpkg -i *.deb

Now I'm trying to eliminate some wifi signal dropouts, which are probably caused by the driver itself. Apparently there have been some fixes to the ath9k driver, so I'd like to replace the default by a backports version.

I downloaded backports-3.12.8-1.tar.gz from kernel.org and tried to get the ath9k module ready by:

cd ~/.source/backports-3.12.8-1/
sudo apt-get install build-essential
sudo apt-get build-dep linux-image-$(uname -r)
sudo ln -s /usr/src/linux-headers-$(uname -r) /usr/src/linux
make defconfig-ath9k

This leaves me with following "missing-prototypes ERROR":

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

But when I continue with:

sudo modprobe -r ath9k
sudo make
sudo checkinstall

everything works!!!

So my questions are:

  • Does this module depend on certain other kernel modules?

    Yes following command does tell you:

    modinfo ath9k

  • If so, where's information about that stuff?

    Have a look at wireless.kernel.org/en/users/Drivers/ath9k.

  • Is there a right way to install this kernel module resp. driver?

    Probably by getting a pro in kernel compiling :-).

THX

2
  • 2
    Close Voters: This is not offtopic. 13.10 EOL'd on July 17, 2014. When this question was posted, it was January 25, 2014. We don't retroactively close just because that release went EOL, typically, unless the policy has changed and it was not stated anywhere.
    – Thomas Ward
    May 30, 2015 at 15:13
  • 3
    @ThomasW.: It's definitely not off topic for EOL, but it might be for being irreproducible considering the long time, since it was asked. Dec 10, 2015 at 9:08

2 Answers 2

1

For those who might stumble across this question, like I just did:

This leaves me with following "missing-prototypes ERROR":

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

These lines aren't actually errors. The make command runs a bunch of other commands, as specified in a file called Makefile. By default, make will write out these commands to the terminal before running them. For example, if Makefile says to run foo then bar then baz, make will write foo to the terminal then run the foo command; then it will write bar to the terminal and run bar; then it will write baz to the terminal and run baz.

In this case, those cc lines are commands that make has been told to run by Makefile. The cc command will run the system's default C compiler, which is probably GCC. Those things beginning with - are options, which affect the behaviour of the C compiler.

For compilers like GCC, options beginning with -W tell the compiler to give out warnings when it sees code that's technically valid, but is often a bad idea (e.g. some pattern in the code which many programmers think will act in some way, but will actually act in another).

In this case -Wall turns on many (not quite all!) of GCC's warnings. -Wmissing-prototypes and -Wstrict-prototypes turn on extra warnings, to spot problems relating to C's function prototype feature.

Hence, these messages are really telling us that the cc command is about to be run, and that (among other things) it should warn us if it thinks the code is dodgy; in particular, if function prototypes are being misused.

GCC warnings look something like this:

main.c: In function ‘main’:
main.c:1:5: warning: traditional C rejects ISO C style function definitions [-Wtraditional]
 int main(int argc, char **argv) {
     ^

Since nothing like that appears in your output, no warnings or errors occurred; even with these extra -W checks enabled.

0

I would recommend installing a newer kernel although it should be working since correctly since 2.6.30 or a version like that. I'm using it as an AP in kernel 3.13.0-24-generic, even though i know it is better to install a new kernel. I was using it on http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.18.12-vivid/ or a similar one (till my HDD crashed). I can give you details of the one used in the mentioned kernel.

  1. depends: ath9k_hw,mac80211,ath9k_common,cfg80211,ath
  2. I have seen the information and hardware capabilities somewhere, but I don't remember where it was
  3. It sure is :) Look for compat-wireless

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .