[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Making sense of dmesg output
On Thu, Dec 02, 1999 at 04:07:35PM -0600, Rick Pettit wrote:
> I am interested in documentation that will help me make
> sense of the output of dmesg. When I see various hardware components not
> configured I would like to know right away what types of things need to be
> done to get them configured. I know this is a newbie question if there's
> ever been one, but if someone could point me in the direction of some good
> docs to help me make sense of dmesg it would be great. Thanks again for
> all your help.
(This isn't necessarily a newbie question; there is a lot of detail in
the dmesg outputs).
The general rule is: if it works, don't worry about it :-) In particular,
your PC VGA (or other) video will almost always show up as "not configured",
because the kernel doesn't care, only X does.
Here is one annotated dmesg output from a PC. Original dmesg output is
indented; commentary is left-aligned.
OpenBSD 2.6 (GENERIC) #674: Sun Oct 17 19:52:29 MDT 1999
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
This is a Generic kernel, built by Theo himself.
cpu0: xchg bug workaround performed
cpu0: Cyrix 6x86 (486-class)
Various comments on the CPU. This is a Cyrix 686. Pentium is common.
We don't yet use cpu1 or more on an MP machine.
BIOS mem = 654336 conventional, 32505856 extended
What BIOS thinks the memory is.
real mem = 33161216
What the memory really is. :-)
avail mem = 26640384
What's left for user-mode programs.
using 430 buffers containing 1761280 bytes of memory
26640384 + 1761280 = 28401664
Where did the rest of the memory go? Part to the kernel:
$ size /obsd
text data bss dec hex
2351104 290816 778984 3420904 3432e8
28401664 + 3420904 = 31822568
Well, almost. Device drivers each allocate some memory, and so it goes...
mainbus0 (root)
A bus is a connection archipelego. This is the main one.
bios at mainbus0 not configured
This only matters if you need to use APM (notebook, or have the machine
power down on shutdown).
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82439HX (Triton II) TXC Host" rev 0x03
pcib0 at pci0 dev 7 function 0 "Intel 82371SB (Triton II) PCI-ISA" rev 0x01
This is the PCI controller. PCI is the modern PC bus.
pciide0 at pci0 dev 7 function 1 "Intel 82371SB (Triton II) IDE" rev 0x00: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
The IDE disk controller is connected to the PCI bus.
"Intel 82371SB (Triton II) USB" rev 0x01 at pci0 dev 7 function 2 not configured
My machine has a USB (new Universal Serial Bus) controller, but I don't use it.
If I did, I'd have to add various uhXXX things to my config.
xl0 at pci0 dev 17 function 0 "3Com 3c905 100Base-TX" rev 0x00: irq 10 address 00:60:97:d1:55:96
An xl0 is a 3Com network interface card.
nsphy0 at xl0 phy 24: DP83840 10/100 media interface, rev. 1
A "phy" is the media connector part of the network interface.
ahc1 at pci0 dev 19 function 0 "Adaptec AHA-2940U" rev 0x00: irq 10
ahc1: aic7880 Single Channel, SCSI Id=7, 16 SCBs
An Adaptec SCSI controller
scsibus0 at ahc1: 8 targets
The SCSI bus.
ahc1: target 0 synchronous at 10.0MHz, offset = 0xf
sd0 at scsibus0 targ 0 lun 0: <DEC, RZ74 (C) DEC, 427N> SCSI2 0/direct fixed
sd0: 3406MB, 3055 cyl, 25 head, 91 sec, 512 bytes/sec, 6976375 sec total
The details on SCSI target 0, my boot disk (a whopping 3.4GB).
ahc1: target 1 synchronous at 10.0MHz, offset = 0xf
sd1 at scsibus0 targ 1 lun 0: <Quantum, XP31070W, L912> SCSI2 0/direct fixed
sd1: 1075MB, 3907 cyl, 5 head, 112 sec, 512 bytes/sec, 2203480 sec total
SCSI target 1 is cheap 1GB disk.
ahc1: target 4 synchronous at 5.0MHz, offset = 0xf
st0 at scsibus0 targ 4 lun 0: <WangDAT, Model 1300XL, 02.5> SCSI2 1/sequential removable
st0: drive empty
A tape drive is at target 4.
probe(ahc1:5:0): Target Busy
probe(ahc1:5:0): Target Busy
probe(ahc1:5:0): Target Busy
probe(ahc1:5:0): Target Busy
cd0 at scsibus0 targ 5 lun 0: <IMS, CDD2000/00, 1.26> SCSI2 5/cdrom removable
Target 5 is a Philips/IMS CDD2000 CD writer; it responds poorly when just
booted and empty, hence the harmless but annonying messages.
"ATI Technologies Mach64 GT" rev 0x48 at pci0 dev 20 function 0 not configured
A VGA card. These are always "not configured", since the kernel doesn't care
about the video details - that is left to The X Windwow System (XFree86 server)
isa0 at pcib0
ISA is the old style PC interface.
isadma0 at isa0
A DMA (direct memory access) controller for ISA cards.
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
sysbeep0 at pcppi0
Sound stuff.
lpt0 at isa0 port 0x378/4 irq 7
Printer port.
npx0 at isa0 port 0xf0/16: using exception 16
The Intel processors originally had a separate "Math Co-Processor" chip (like
the 80387 for the 80386 chip); there is (in most OSes, incl. MS-Windoze)
a separate little driver for it.
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
Good old COM1 and COM2, except we number devices from zero.
vt0 at isa0 port 0x60/16 irq 1: generic VGA, 80 col, color, 8 scr, mf2-kbd
A terminal driver for the console.
pms0 at vt0 irq 12
PS/2 Mouse
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
Floppy Controller
biomask 440 netmask 440 ttymask 14c2
BIOS stuff.
pctr: no performance counters in CPU
PCTR is the "timing" (performance counter) driver. Configured, but not present.
root on sd0a
rootdev=0x400 rrootdev=0xd00 rawdev=0xd02
Where you just booted from.
$ ls -l /dev/sd0a
brw-r----- 1 root operator 4, 0 Mar 3 1999 /dev/sd0a
Notice the 0x400 == the 4, 0 (major and minor numbers each a byte).
IP Filter: initialized. Default = pass all, Logging = enabled
Now you know, if you didn't, that OpenBSD has IP Filtering in the kernel.
xl0: transmission error: 90
xl0: tx underrun, increasing tx start threshold to 120
Buglet in 2.6 XL driver; probably fixed in -current.
Now here is another, for a SPARC system I have access to:
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-1999 OpenBSD. All rights reserved. http://www.OpenBSD.org
OpenBSD 2.6 (GENERIC) #287: Thu Oct 21 23:31:48 MDT 1999
deraadt@sun4m.openbsd.org:/usr/src/sys/arch/sparc/compile/GENERIC
Also a Theo kernel.
real mem = 41594880
avail mem = 36290560
using 200 buffers containing 2076672 bytes of memory
Same as on PC.
bootpath: /iommu@0,10000000/sbus@0,10001000/espdma@4,8400000/esp@4,8800000/sd@0,0
The SPARC Open Boot Prom maintains a UNIX-like "path name" notation showing
the attachment configuration. In OpenBSD it shows through seldom (on Solaris,
try an ls -lR /devices :-))
mainbus0 (root): SUNW,SPARCclassic
The main bus, again. SUNW is Sun's stock ticker symbol; they use it all over
as a company identifier. This mainbus, like much in SPARC, has identifier
strings as well as numbers.
cpu0 at mainbus0: TMS390S10 @ 50 MHz, on-chip FPU
The CPU was made by TMS (Texas MicroSystems?)
cpu0: physical 4K instruction (32 b/l), 2K data (16 b/l) cache enabled
More CPU details.
obio0 at mainbus0
"obio" = On Board I/O controller
clock0 at obio0 addr 0x71200000: mk48t08 (eeprom)
timer0 at obio0 addr 0x71d00000 delay constant 23
Real-time clock and timer.
zs0 at obio0 addr 0x71100000 pri 12, softpri 6
zs0a: console i/o
zs1 at obio0 addr 0x71000000 pri 12, softpri 6
ZS == Zilog Serial, basically COM1 and COM2.
slavioconfig at obio0 addr 0x71800000 not configured
auxreg0 at obio0 addr 0x71900000
power0 at obio0 addr 0x71910000
Sort of like APM. "halt -p" works on this and, I'm told, most modern SPARCs
fdc0 at obio0 addr 0x71400000 pri 11, softpri 4: chip 82077
Floppy disk.
iommu0 at mainbus0 addr 0x10000000: version 0x1/0x4, page-size 4096, range 64MB
Memory Management.
sbus0 at iommu0: clock = 25 MHz
Sbus is the main bus, their precursor to PCI.
dma0 at sbus0 slot 4 offset 0x8400000: rev 2
esp0 at dma0 offset 0x8800000 pri 4: ESP200, 40MHz, SCSI ID 7
scsibus0 at esp0: 8 targets
The SCSI controller and bus.
sd0 at scsibus0 targ 0 lun 0: <SEAGATE, ST31051N, 0530> SCSI2 0/direct fixed
sd0: 1010MB, 4177 cyl, 4 head, 123 sec, 512 bytes/sec, 2069860 sec total
One disk.
audioamd0 at sbus0 slot 4 offset 0x1300000 pri 13, softpri 4
audio0 at audioamd0
Audio.
bpp0 at sbus0 slot 4 offset 0xc800000: DMA2
LPT.
ledma0 at sbus0 slot 4 offset 0x8400010: rev 2
le0 at ledma0 offset 0x8c00000 pri 6: address 08:00:20:04:e3:f0
le0: 16 receive buffers, 4 transmit buffers
"le" is the network board.
SUNW,lpvi at sbus0 slot 0 offset 0x300000 not configured
bpp1 at sbus0 slot 0 offset 0x200000: Zebra
Slot 0 has a multi-function card. Part of it is a "Zebra" printer (LPT2).
The other part? I dunno; I'd have to boot up Solaris to RTFM.
I think it's a video interface for the old SPARCPrinter ("lp vi"deo).
cgthree0 at sbus0 slot 3 offset 0x0: SUNW,501-1718, 1152 x 900
The video board; notice that here the kernel does show it as configured
(on SPARC, the range of video boards is MUCH smaller, so it makes sense
for the kernel to know about them).
root on sd0a
rootdev=0x700 rrootdev=0x1100 rawdev=0x1102
As on the PC.
Hope this helps.
Ian Darwin
ian@darwinsys.com