# Why don't I have a /dev/mcelog?

## manywele

I have mce enabled in the kernel:

```
$ less /proc/config.gz | grep -i mce

CONFIG_X86_MCE=y

CONFIG_X86_MCE_NONFATAL=y

# CONFIG_X86_MCE_P4THERMAL is not set

```

and I'm using udev.

I'm getting MCE errors that I'd like to look up but, no /dev/mcelog:

```
bob@bob ~ $ ll /dev | grep -i mce

bob@bob ~ $ 

```

/proc/cpuinfo says:

```
 $ cat /proc/cpuinfo 

processor       : 0

vendor_id       : AuthenticAMD

cpu family      : 6

model           : 10

model name      : AMD Athlon(tm) XP 2800+

stepping        : 0

cpu MHz         : 2082.866

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 1

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up ts

bogomips        : 4170.53

```

What am I missing?Last edited by manywele on Sat Dec 09, 2006 6:13 pm; edited 2 times in total

----------

## didymos

```
emerge app-admin/mcelog
```

----------

## manywele

Forgot to add that I already did that (it's how I figured out I needed it).

----------

## manywele

*bump*

I really don't know where to start looking.  Anyone...?

----------

## OldTango

 *manywele wrote:*   

> *bump*
> 
> I really don't know where to start looking.  Anyone...?

 

try

```
mcelog --generic
```

also 

```
man mcelog
```

I beleive the logs will be stored at /var/log/mcelog

----------

## manywele

I have read the man page.  I have googled.  The problem that I can't resolve is that I don't have a /dev/mcelog.  To be perfectly clear about it:

```
 # mcelog --generic

Cannot open /dev/mcelog
```

because /dev/mcelog doesn't exist.  I don't know why it doesn't exist.  I can't find anything about people doing something special to get one.  As I stated above, I have mce enabled in the kernel.  In fact googling for "cannot open /dev/mcelog" returns exactly two results, one of which is in French and the other is to a Suse mailing list with one response which suggests 

```
mknod -m 0600 /dev/mcelog c 10 227
```

which is what the man page says it should be.  Doing that gives me a /dev/mcelog but I still get a "Cannot open /dev/mcelog" error.

----------

## didymos

On my machine /dev/mcelog has 660 permissions. I don't see how that makes much difference though. I'm also sending mcelog output to the syslog facility, instead of /var/log/mcelog.

----------

## OldTango

If I try to open mcelog as a normal user I get the same error message as you.  You need to do it as root.  Also is your system logger mine =syslog_ng running.   If so, it should send the logs to /var/log/mcelog/.  I just assumed this was the default for the gentoo install.  The steps I followed to set it up where the same ones you used.  However the /dev/mcelog was created for me by udev, also with 660 permissions.

----------

## manywele

I am running as root (see the prompt above).  My system logger is working just fine.  Udev is not creating /dev/mcelog however.  Even curiouser, it's happened on two of my boxen.

Athlon XP 2800+ running testing branch, 2.6.17-gentoo-r7, udev 103, not storing as tarball, no /dev/mcelog.  Tried going all the way back down to udev-087-r1, restarting udev and rebooting.  Still no /dev/mcelog.

Pentium III running stable branch, 2.6.16-gentoo-r9, mce enabled in the kernel, no /dev/mcelog.

Both boxen are synced and up to date including configs.  The kernel is reporting non-fatal, correctable MCE events in /var/log/kernel and dmesg.  Two different computers, one testing x86, one stable x86, different kernels, different udevs, same problem.  Creating /dev/mcelog with mknod (0600 or 0660) gives me a character device that I still can not open, even as root with mcelog.

What have I missed?

----------

## dsd

run:

uname -v

ls -l /usr/src/linux/arch/i386/boot/bzImage

and show us the output

----------

## manywele

```
bob@bob ~ $ uname -v

#2 Sat Sep 16 09:36:16 PDT 2006

bob@bob ~ $ ls -l /usr/src/linux/arch/i386/boot/bzImage 

-rw-r--r-- 1 root root 2441416 Sep 16 09:36 /usr/src/linux/arch/i386/boot/bzImage

bob@bob ~ $ 

```

----------

## dsd

im not sure why, but the driver which creates /dev/mcelog is only built on x86_64

----------

## manywele

Hmm.  Must have changed relatively recently.  My friend with a gentoo box which is sorely out of date maintanence-wise has a /dev/mcelog on x86.

Thanks for clearing that up.

----------

## OldTango

 *dsd wrote:*   

> im not sure why, but the driver which creates /dev/mcelog is only built on x86_64

 Yes Thanks I learned something new.  Maybe this helps explain why..........................  :Smile:       MCElog

I am curious if there is something similar for x86, or if mcelog can be made to work with x86.

----------

