Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

First of all I am running a CentOS 6.4 installation. My computer is a laptop and I am trying to install the drivers for my ethernet card, because this week end I lost my ability to connect to the Internet.

So I downloaded the driver : jmebp-1.0.8.5

I installed gcc, kernel-devel and since it wasn't working I finally installed the group Development Tools (in case I had forgot something).

When I

make install

I get this error :

*** No rule to make target `internet/jmebp-1.0.8.5'.  Stop.
Leaving directory `/lib/modules/2.6.32-358.6.1.el6.x86_64/build'

My makefile is :

    MODNAME := jme
obj-m := $(MODNAME).o

ifneq ($(KERNELRELEASE),)
#########################
# kbuild part of makefile
#########################
EXTRA_CFLAGS += -Wall -O3
#EXTRA_CFLAGS += -DTX_DEBUG
#EXTRA_CFLAGS += -DREG_DEBUG

else
#########################
# Normal Makefile
#########################
TEMPFILES := $(MODNAME).o $(MODNAME).mod.c $(MODNAME).mod.o Module.symvers .$(MODNAME).*.cmd .tmp_versions modules.order Module.markers Modules.symvers

ifeq (,$(KVER))
KVER=$(shell uname -r)
endif
KSRC ?= /lib/modules/$(KVER)/build
MINSTDIR ?= /lib/modules/$(KVER)/kernel/drivers/net

all: modules
    @rm -rf $(TEMPFILES)
modules:
    @$(MAKE) -C $(KSRC) M=$(shell pwd) modules

checkstack: modules
    objdump -d $(obj-m) | perl $(KSRC)/scripts/checkstack.pl $(shell uname -m)
    @rm -rf $(TEMPFILES)

namespacecheck: modules
    perl $(KSRC)/scripts/namespace.pl
    @rm -rf $(TEMPFILES)

install: modules
    install -m 644 $(MODNAME).ko $(MINSTDIR)
    depmod -a $(KVER)

patch:
    @/usr/bin/diff -uar -X dontdiff ../../trunc ./ > bc.patch || echo > /dev/null

buildtest:
    SRCDIRS=`find ~/linux-src -mindepth 1 -maxdepth 1 -type d -name 'linux-*' | sort -r -n`; \
    SRCDIRS="$${SRCDIRS} `find ~/linux-src/centos -mindepth 2 -maxdepth 2 -type d -name 'linux-*' | sort -r -n`"; \
    SRCDIRS="$${SRCDIRS} `find ~/linux-src/fedora -mindepth 2 -maxdepth 2 -type d -name 'linux-*' | sort -r -n`"; \
    for d in $${SRCDIRS}; do \
        $(MAKE) clean && $(MAKE) -C . KSRC=$${d} modules; \
        if [ $$? != 0 ]; then \
            exit $$?; \
        fi; \
    done
    $(MAKE) clean

clean:
    @rm -rf $(MODNAME).ko $(TEMPFILES)

%::
    $(MAKE) -C $(KSRC) M=`pwd` $@

endif

Any suggestions ?

share|improve this question
    
How did you "loose the ability to connect to the Internet"? A kernel update should never break existing setups, and you can boot into the old kernel anyway. Also note that most third party drivers are utter rubbish, and will at most work for a very narrow selection of kernels. –  vonbrand May 14 '13 at 19:48
    
My issue is similar to this :ubuntuforums.org/showthread.php?t=2102394 I don't know why it stopped working, but it just stopped after a reboot (the system is brand new, installed thursday I think). It doesn't work on the "old" kernel either, it's one of the first thing I tried. So now I am trying to install the driver to see if it helps –  Ahuri3 May 14 '13 at 19:54
    
This where you go the drivers? driver.jmicron.com.tw/Ethernet/Linux –  slm May 14 '13 at 21:00
    
Yes this is where I got the driver –  Ahuri3 May 14 '13 at 22:21
add comment

1 Answer

First Issue

You're missing the kernel-headers package. You need these to compile kernel modules.

yum install kernel-headers

Assuming this where you downloaded the drivers from. When I unpacked them on a CentOS 6.4 system I got the following error:

$ cd jmebp-1.0.8.5
$ ls
CHANGELOG  jme.c  jme.h  Makefile  scripts
$ make
make: *** /lib/modules/2.6.32-279.14.1.el6.x86_64/build: No such file or directory.  Stop.
make: *** [modules] Error 2

After installing the kernel-headers package, I ran make a second time:

$ make
make: *** /lib/modules/2.6.32-279.14.1.el6.x86_64/build: No such file or directory.  Stop.
make: *** [modules] Error 2

Still a problem? Debugging it further I figured out my other problem, which you might encounter as well, so I'm documenting it below, just in case.

Second Issue

The link in the kernel directory appeared to be broken.

$ pwd
/lib/modules/2.6.32-279.14.1.el6.x86_64

$ ls -l | grep build
lrwxrwxrwx  1 root root     51 Dec 15 14:49 build -> ../../../usr/src/kernels/2.6.32-279.14.1.el6.x86_64
lrwxrwxrwx  1 root root      5 Dec 15 14:50 source -> build

$ ls -l build/
ls: cannot access build/: No such file or directory

Whoops, wrong version of the kernel-headers and kernel-devel for our kernel version. We're currently running this version of the kernel:

$ uname -r
2.6.32-279.14.1.el6.x86_64

But we just installed the kernel-headers and kernel-devel packages for this version:

2.6.32-358.6.1.el6.x86_64

So let's install that version of the kernel as well and reboot so we can use the newer kernel:

$ yum update kernel

After our reboot everything looks much better:

$ ls
CHANGELOG  jme.c  jme.h  Makefile  scripts

$ make
make[1]: Entering directory `/usr/src/kernels/2.6.32-358.6.1.el6.x86_64'
  CC [M]  /home/sam/jmebp/jmebp-1.0.8.5/jme.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/sam/jmebp/jmebp-1.0.8.5/jme.mod.o
  LD [M]  /home/sam/jmebp/jmebp-1.0.8.5/jme.ko.unsigned
  NO SIGN [M] /home/sam/jmebp/jmebp-1.0.8.5/jme.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.32-358.6.1.el6.x86_64'

$ ls
CHANGELOG  jme.c  jme.h  jme.ko  jme.ko.unsigned  Makefile  scripts

Now we see the jme.ko kernel module. To install it:

make install
share|improve this answer
    
Thank you very much. I will try this and report back the results. –  Ahuri3 May 14 '13 at 22:19
    
I've cleaned up the answer, hope it's more clear. –  slm May 14 '13 at 22:29
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.