2

A few months back, I attempted an install of PCBSD on my laptop (EDIT: Thinkpad T420). Before installation, my partitions consisted of /swap, /, and /home for an Arch Linux install, and one additional empty partition specifically reserved for the BSD experiment. Everything worked fine until I tried installing BSD. Installation completed, however booting into the system failed. The bootloader only listed the non-functional BSD, so giving up like a champ, I installed Ubuntu into the spare partition. I noticed that no network interfaces were available, but since the wireless card requires a specific driver and I wasn't attached to the ethernet, I thought nothing of it. In retrospect, this should have raised some flags; I chose Ubuntu because of the out-of-the-box support for many propriatary drivers. Nevertheless, I rebooted into my Arch system and everything worked fine for several months.

A few days ago I decided to update Arch Linux without checking the website first. Long story short, a --force update on glibc rendered my system useless. Ah, well, another lesson learned. Time for a reinstall...

Here's where I discovered the problem. I booted an old Arch Linux cd and attempted to configure the wireless for use during the installation. I have done this for several installs ON THIS MACHINE, so although I didn't have the exact steps written down, use of the Beginner's Guide and my prior experience should have been enough to get me through it. First step, list the available interfaces with iwconfig. The only interface listed is the loopback (?!?). Now the flags are going up because I know for a fact that the ethernet (eth0) and the wireless (wlan0) were at least listed if not operational before. At first I blamed my most recent bungle, the glibc update. Worried that the hardware itself may somehow have been damaged, I installed Windows and (after some headaches), the drivers. Everything works as expected; the hardware is in pristine condition.

After some googling, I discovered that the BSDs name their interfaces based on the devices. I finally sat down with a PCBSD install disk and got an installation up and running. The ethernet (named em0) works fine. The wireless requires a kernel module that I suspect may not be available for BSD yet and the intel graphics don't seem to be supported (by PCBSD, maybe FreeBSD? Doesn't matter, just explains why I can't use this install for a primary OS).

Reboot to the Arch Linux live cd and check the contents of /dev. There is nothing there named emx, and I can find nothing which would suggest the interfaces exist in hiding. I don't believe that BSD's device naming scheme could affect the hardware in this way, but I can think of nothing else that would cause this problem. I'm truely stumped.

I consider myself a competent Linux user, not a guru, but not a noob either. As for BSD, I'm something worse than green because I bring my Linux preconceptions with me (hence the need for experimentation; reading documentation is all well and good, but without getting my hands dirty, nothing sticks). This is my first question posted on any site, ever. Before now I have never run into a problem that wasn't documented, either here on the exchange, some other forum, or in a wiki somewhere. I hope it's not a stupid, simple fix because I hate wasting other people's time, but I DO hope there is a fix. I prefer a *nix system; Windows just doesn't cut it for me, and I never feel at home in a vm.

I swear that I've done my googling, and I'd prove it with links, but I haven't found anything that seems related to my problem. For example, Why have my network interfaces been renamed after installing Ubuntu, and how do I rename them back? deals with interfaces being renamed but still available. Mine have disappeared completely.

The standard q&a; let me know what else I can provide:

Performed using a Linux Mint Live CD (This had listed eth0 and wlan0 before my problem started, the output is the same for the various distros):

$ iwconfig

lo        no wireless extensions.

$ ifconfig -a #(EDIT: added the -a switch; results are identical with/without)

lo link encap:Local Loopback  
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:8 errors:0 dropped:0 overruns:0 frame:0
         TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:480 (480.0 B)  TX bytes:480 (480.0 B)

$ lspci | grep -i net #(so the devices do exist somewhere, right?)

00:19.0 Ethernet controller: Intel Corporation Device 1502 (rev 04)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8176 (rev 01)

Performed using PCBSD 9.0 installation:

$ifconfig

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
    ether 00:21:cc:6a:ff:b4
    inet6 fe80::221:ccff:fe6a:ffb4%em0 prefixlen 64 scopeid 0x1 
    nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
    media: Ethernet autoselect
    status: no carrier
fwe0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=8<VLAN_MTU>
    ether 02:21:cc:0f:5e:bd
    inet6 fe80::21:ccff:fe0f:5ebd%fwe0 prefixlen 64 scopeid 0x3 
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
    ch 1 dma 0
fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
    lladdr 0.21.cc.20.6.f.5e.bd.a.2.ff.fe.0.0.0.0
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 ::1 prefixlen 128 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6 
    inet 127.0.0.1 netmask 0xff000000 
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

$pciconf

hostb0@pci0:0:0:0:  class=0x060000 card=0x21ce17aa chip=0x01048086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '2nd Generation Core Processor Family DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0: class=0x030000 card=0x21ce17aa chip=0x01268086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '2nd Generation Core Processor Family Integrated Graphics Controller'
    class      = display
    subclass   = VGA
none0@pci0:0:22:0:  class=0x078000 card=0x21ce17aa chip=0x1c3a8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family MEI Controller'
    class      = simple comms
em0@pci0:0:25:0:    class=0x020000 card=0x21ce17aa chip=0x15028086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82579LM Gigabit Network Connection'
    class      = network
    subclass   = ethernet
ehci0@pci0:0:26:0:  class=0x0c0320 card=0x21ce17aa chip=0x1c2d8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
hdac0@pci0:0:27:0:  class=0x040300 card=0x21ce17aa chip=0x1c208086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family High Definition Audio Controller'
    class      = multimedia
    subclass   = HDA
pcib1@pci0:0:28:0:  class=0x060400 card=0x21ce17aa chip=0x1c108086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 1'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:28:1:  class=0x060400 card=0x21ce17aa chip=0x1c128086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 2'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:0:28:3:  class=0x060400 card=0x21ce17aa chip=0x1c168086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 4'
    class      = bridge
    subclass   = PCI-PCI
pcib4@pci0:0:28:4:  class=0x060400 card=0x21ce17aa chip=0x1c188086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 5'
    class      = bridge
    subclass   = PCI-PCI
ehci1@pci0:0:29:0:  class=0x0c0320 card=0x21ce17aa chip=0x1c268086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
isab0@pci0:0:31:0:  class=0x060100 card=0x21ce17aa chip=0x1c4f8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'QM67 Express Chipset Family LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
ahci0@pci0:0:31:2:  class=0x010601 card=0x21ce17aa chip=0x1c038086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller'
    class      = mass storage
    subclass   = SATA
none1@pci0:0:31:3:  class=0x0c0500 card=0x21ce17aa chip=0x1c228086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family SMBus Controller'
    class      = serial bus
    subclass   = SMBus
none2@pci0:3:0:0:   class=0x028000 card=0x819510ec chip=0x817610ec rev=0x01 hdr=0x00
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8188CE 802.11b/g/n WiFi Adapter'
    class      = network
none3@pci0:13:0:0:  class=0x088001 card=0x21ce17aa chip=0xe8231180 rev=0x05 hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    class      = base peripheral
fwohci0@pci0:13:0:3:    class=0x0c0010 card=0x21ce17aa chip=0xe8321180 rev=0x04 hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    device     = 'FireWire Host Controller'
    class      = serial bus
    subclass   = FireWire

Thank you for your time!

4
  • First of all, you should be using ifconfig -a to list all interfaces. Without any args, it only lists the ones that are up. If the interface exists but isn't up, you just need to fix your /etc/network/interfaces to include it. Secondly, the Intel ethernet in your lspci should be handled by the e1000e driver. Try modprobe e1000e just in case the problem is that the module isn't loaded.
    – Alan Curry
    Aug 6, 2012 at 6:49
  • @AlanCurry Good point. Unfortunately the -a arg gives the exact same results (I will edit). Also, I already tried the e1000e module among others. Thanks for verifying that it definitely is the one I need. With the driver loaded, ifconfig -a still only lists the loopback and lsmod shows nothing using the driver (not the case before this happened). Thanks anyway!
    – asmodean
    Aug 6, 2012 at 11:30
  • Getting more mysterious. I'd recommend modinfo e1000e and look for an alias pci:v00008086d00001502sv*sd*bc*sc*i* that should be in its list. And ls -l /sys/bus/pci/devices/0000:00:19.0/driver to see if maybe some other driver has claimed the device.
    – Alan Curry
    Aug 7, 2012 at 18:21
  • @alan I can't paste the output at the moment, but here's what I see. /sys...19.0/driver does not exist. There is a file device whose contents are simply 0x1502. modinfo e1000e does indeed list a great many pci:...sc*i* but strangely enough none containing 1502. The closest is pci:v00008086d0000150csv*sd*bc*sc*i* (notice 150c rather than 1502). I should also point out dmesg | grep -i net gives nothing useful, grep -i eth is empty, and following a modprobe e1000e dmesg lists the driver name and copyright information at log level 6 and nothing else. Thanks again!
    – asmodean
    Aug 7, 2012 at 20:08

1 Answer 1

1

Well this is truly embarrassing. The solution was to use a more recent kernel.

BSD was a red herring. I assumed that since I was using live/install disks that had worked previously (that I had installed originally from) that the error could not be related to those media; BSD was the only thing I had done out of the ordinary.

I downloaded the latest Arch Linux and booted. Everything is there as expected. I still do not know how this happened. When I got the laptop 9 months ago, kernel 2.6.3x worked fine. I ran updates regularly, and by the time I crashed the system I was up to 3.2. This implies that somehow the new kernel has modified something preventing older kernels from recognizing the hardware. This is disappointing because if I wanted to install an older version of Linux (thankfully I don't), I cannot. It does mean my collection of live disks can no longer be used as recovery disks if I need internet access.

Let me know if I should modify the question in any way. Not sure what I'm supposed to do from here.

Thanks for the help :)

1
  • Look on the bright side. Now you have a collection of coasters! Aug 8, 2012 at 0:57

You must log in to answer this question.

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