Print
Parent Category: Troubleshooting
Hits: 3271

This is for users that own a notebook FUJITSU SIEMENS ESPRIMO MOBILE V5535, and had problems with the Gigabit ethernet adapter.

My lspci output is:

00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter (rev 02)

root@Hercule:~# lspci -nn | grep Gigabit
00:04.0 Ethernet controller [0200]: Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter [1039:0191] (rev 02)
root@Hercule:~#

and the problem/error shown in dmesg after you try to load the driver module is:

 

Unknown PHY transceiver at address 1.
Using transceiver at address 1 as default.

Or if you have more debuging options in kernel:

 

------------[ cut here ]------------
WARNING: at kernel/softirq.c:136 local_bh_enable_ip+0x86/0xa0()
Modules linked in: nls_utf8 fuse usbhid hid ohci_hcd ssb thermal pcmcia ehci_hcd processor shpchp ath5k mac80211 led_class cfg80211 sis_agp thermal_sys pcmcia_core psmouse hwmon evdev battery button ac serio_raw sg
Pid: 0, comm: swapper Tainted: G W 2.6.27.7-smp #1
[<c0125c89>] warn_on_slowpath+0x59/0x80
[<c011dbcd>] ? enqueue_task_fair+0x9d/0xb0
[<c05b9668>] ? _spin_lock+0x8/0x20
[<c011d847>] ? task_rq_lock+0x37/0x70
[<c04e8919>] ? netlink_has_listeners+0x9/0x40
[<c04ed624>] ? nfnetlink_has_listeners+0x14/0x20
[<c04f8dd4>] ? ctnetlink_conntrack_event+0x54/0x570
[<c017a864>] ? __slab_free+0x14/0x280
[<c05b9668>] ? _spin_lock+0x8/0x20
[<c0179971>] ? add_partial+0x21/0x70
[<c013cc40>] ? notifier_call_chain+0x30/0x60
[<c013cc91>] ? __atomic_notifier_call_chain+0x21/0x30
[<c012ab36>] local_bh_enable_ip+0x86/0xa0
[<c05b9753>] _spin_unlock_bh+0x13/0x20
[<c04f0858>] destroy_conntrack+0xa8/0x120
[<c04ec624>] nf_conntrack_destroy+0x14/0x20
[<c04b3f47>] skb_release_all+0x87/0xa0
[<c04b3670>] __kfree_skb+0x10/0x90
[<c04b3713>] kfree_skb+0x23/0x40
[<c0392c3f>] sis190_tx_clear+0x3f/0x70
[<c0392f02>] sis190_tx_timeout+0x52/0xb0
[<c04c956d>] dev_watchdog+0x18d/0x1e0
[<c05b9798>] ? _spin_lock_irq+0x8/0x20
[<c013c2e4>] ? hrtimer_run_pending+0x24/0xa0
[<c013da81>] ? sched_clock_cpu+0x121/0x170
[<c012ea78>] run_timer_softirq+0x128/0x190
[<c01237bc>] ? scheduler_tick+0xac/0xd0
[<c04c93e0>] ? dev_watchdog+0x0/0x1e0
[<c012a9f2>] __do_softirq+0x82/0xf0
[<c012aaa5>] do_softirq+0x45/0x50
[<c012ae25>] irq_exit+0x45/0x50
[<c0112a50>] smp_apic_timer_interrupt+0x60/0x90
[<c0103cac>] apic_timer_interrupt+0x28/0x30
[<f8aa0255>] ? acpi_processor_idle+0x2dc/0x497 [processor]
[<c0151c68>] ? __rcu_pending+0x8/0x50
[<c0101c7a>] cpu_idle+0x5a/0xf0
[<c05b5a8c>] start_secondary+0x13c/0x1b0
---[ end trace b400b6df1bf7279b ]---


Here is the fix:

Add this line: { "Sis191 PHY SIS191", { 0x004d, 0xd010 }, LAN, 0 }, in sis190.c file so the final result looks like this:

Before:

{ "Atheros PHY AR8012", { 0x004d, 0xd020 }, LAN, 0 },
{ "Broadcom PHY BCM5461", { 0x0020, 0x60c0 }, LAN, F_PHY_BCM5461 },
{ "Broadcom PHY AC131", { 0x0143, 0xbc70 }, LAN, 0 },
{ "Agere PHY ET1101B", { 0x0282, 0xf010 }, LAN, 0 },
{ "Marvell PHY 88E1111", { 0x0141, 0x0cc0 }, LAN, F_PHY_88E1111 },
{ "Realtek PHY RTL8201", { 0x0000, 0x8200 }, LAN, 0 },
{ NULL, }

 

After:


{ "Atheros PHY AR8012", { 0x004d, 0xd020 }, LAN, 0 },
{ "Broadcom PHY BCM5461", { 0x0020, 0x60c0 }, LAN, F_PHY_BCM5461 },
{ "Broadcom PHY AC131", { 0x0143, 0xbc70 }, LAN, 0 },
{ "Agere PHY ET1101B", { 0x0282, 0xf010 }, LAN, 0 },
{ "Marvell PHY 88E1111", { 0x0141, 0x0cc0 }, LAN, F_PHY_88E1111 },
{ "Realtek PHY RTL8201", { 0x0000, 0x8200 }, LAN, 0 },
{ "Sis191 PHY SIS191", { 0x004d, 0xd010 }, LAN, 0 },
{ NULL, }


 

 

root@Hercule:~# diff sis190.c /usr/src/linux-2.6.28.8/drivers/net/sis190.c
325a326
> { "Sis191 PHY SIS191", { 0x004d, 0xd010 }, LAN, 0 },
root@Hercule:~#cd /usr/src/linux
root@Hercule:/usr/src/linux# make drivers/net/sis190.ko
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CALL scripts/checksyscalls.sh
CC [M] drivers/net/sis190.o
/usr/src/linux-2.6.28.8/arch/x86/include/asm/io_32.h: In function 'memcpy_fromio':
/usr/src/linux-2.6.28.8/arch/x86/include/asm/io_32.h:151: warning: passing argument 2 of '__memcpy' discards qualifiers from pointer target type
MODPOST 1017 modules

CC drivers/net/sis190.mod.o
LD [M] drivers/net/sis190.ko
root@Hercule:/usr/src/linux#
root@Hercule:/usr/src/linux# rmmod drivers/net/sis190.ko
root@Hercule:/usr/src/linux# cp drivers/net/sis190.ko /lib/modules/`uname -r`/kernel/drivers/net/
root@Hercule:/usr/src/linux# modprobe sis190
root@Hercule:/usr/src/linux#

The dmesg output is:

sis190 0000:00:04.0: PCI INT A disabled
sis190 Gigabit Ethernet driver 1.2 loaded.
sis190 0000:00:04.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
sis190 0000:00:04.0: setting latency timer to 64
0000:00:04.0: Read MAC address from EEPROM
0000:00:04.0: Sis191 PHY SIS191 transceiver at address 1.
0000:00:04.0: Using transceiver at address 1 as default.
0000:00:04.0: SiS 191 PCI Gigabit Ethernet adapter at f825e000 (IRQ: 19), 00:1e:33:07:6b:03
eth0: RGMII mode.
eth0: Enabling Auto-negotiation.

You should also disable acpi at boot time:

For LILO users add this line in /etc/lilo.conf: append="noacpi". Don't forget to run lilo.

For grub users add at the kernel line noacpi.

Note:

We use Hosting and VPS Hosting, from: www.star-host.org

We like and trust them.

Good prices, high security.