Minggu, 16 November 2008

Fwd: [tanya-jawab] Re: sis 191

Forwarded from milis tanya jawab linux.or.id. Udah dijawab panjang -
panjang, eh taunya ... :))

---------- Forwarded message ----------
Date: Sat, 15 Nov 2008 19:16:51 +0700
Subject: [tanya-jawab] Re: sis 191
To: tanya-jawab@linux.or.id

Terima kasih, nanti kalau ada waktu saya coba. Soalnya ini komputer
kantor dan dipakai bersama. Os nya pake win, dan saya sudah bosan
dengan segala masalahnya (virus, trojan, bsod dsb). Utk sementara
kalau ada yg punya info ttg distro yang bisa mengatasi masalah ini
tolong diberitahu. Atau bagaimana caranya mengkompilasi modul tersebut
dari pc lain ?

On 11/15/08, st SABRI wrote:
>> saya mau tanya, distro apa ya yang bisa membuat ethernet card dengan
>> chip sis 191 langsung berfungsi dengan benar. saya sudah coba ubuntu
>> 8.04, bisa terdeteksi tapi koneksi ke jaringannya tidak bisa. saya
>> cari di google bahkan dengan ubuntu 8.10 juga tampaknya masih belum
>> benar.
>
> Distro apapun tidak akan berpengaruh, karena masalah Hardware adanya
> di kernel. Kernel Linux urusan kernel.org :=)) semua driver yang sudah
> disumbangkan ke kernel Linux akan di-integrasikan ke kernel oleh para
> pengembang dan penjaga gawang kernel.
>
> Saya juga heran dengan sis191, sudah demikian lama tidak juga
> terintegrasi ke kernel Linux. Dibawah ini dengan kernel standar hardy
> heron.
>
> Problem kartu jaringan anda terdapat pada ISA BRIDGE identificator
> yang berbeda antara kernel dengan "kenyataan", langkah yang musti anda
> lakukan setelah menginstall linux, cek dengan : lspci -nn
>
> punya saya menghasilkan sbb
>
> 00:19.0 Ethernet controller [0200]: Intel Corporation 82566MM Gigabit
> Network Connection [8086:1049] (rev 03)
>
> angka dibelakang [8086:1049] 1049 itu adalah bridge yang menghubungkan
> kartu anda dengan motherboard.
>
> disini anda "terpaksa" membangun modul sendiri atau tepatnya
> memodifikasi modul karena kernel Linux juga sudah mengandung modul sis
> tapi versinya sis190.
>
> cek drivers anda :
> $ ls /lib/modules/2.6.24-21-generic/kernel/drivers/net/
>
> catatan : saya menggunakan kernel 2.6.24-21-generic. silahkan
> sesuaikan dengan kernel anda. Kalo pakai itrepid kernelnya
> 2.6.27-*(+minor version)
>
> selanjutnya donlot kernel source sesuai kernel anda (misal 2.6.24).
> Nah ini masalahnya, bagaimana mau donlot kernel lha konek internet
> tidak bisa :=)), kalo anda punya koneksi lain (wifi, modem atau apapun
> yang bisa konek i-net), atau ke warnet dan donlot kernel source sesuai
> kernel anda :=))
>
> setelah di-uncompress (kernel source biasanya dicompress dengan *.tar.bz2)
>
> $ tar -xjf *versi-kernel-source
>
> edit source kernel
> (folder kernel source versi anda)/drivers/net/sis190.c
>
> cari baris ini
> isa_bridge = pci_find_device(0x1039, 0x0965, isa_bridge);
>
> ganti angka 0x0965 dengan hasil lspci -nn di ethernet anda.
>
> save
>
> lakukan
>
> $ make oldconfig
>
> $ make modules
>
> $ make /drivers/net/sis190.ko
>
> $ sudo insmod /drivers/net/sis190.ko
>
> cek dengan
>
> $ dmesg
>
> kalo gagal posting lagi ke milis ini :=))
>
> salam
> ./sts
>

1 komentar:

Rahmads mengatakan...

/**
* sis190_get_mac_addr_from_apc - Get MAC address for SiS96x model
* @pdev: PCI device
* @dev: network device to get address for
*
* SiS96x model, use APC CMOS RAM to store MAC address.
* APC CMOS RAM is accessed through ISA bridge.
* MAC address is read into @net_dev->dev_addr.
*/
static int __devinit sis190_get_mac_addr_from_apc(struct pci_dev *pdev,
struct net_device *dev)
{
static const u16 __devinitdata ids[] = { 0x0965, 0x0966, 0x0968 };
struct sis190_private *tp = netdev_priv(dev);
struct pci_dev *isa_bridge;
u8 reg, tmp8;
unsigned int i;

net_probe(tp, KERN_INFO "%s: Read MAC address from APC.\n",
pci_name(pdev));

for (i = 0; i < ARRAY_SIZE(ids); i++) {
isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, ids[i], NULL);
if (isa_bridge)
break;
}

if (!isa_bridge) {
net_probe(tp, KERN_INFO "%s: Can not find ISA bridge.\n",
pci_name(pdev));
return -EIO;
}

/* Enable port 78h & 79h to access APC Registers. */
pci_read_config_byte(isa_bridge, 0x48, &tmp8);
reg = (tmp8 & ~0x02);
pci_write_config_byte(isa_bridge, 0x48, reg);
udelay(50);
pci_read_config_byte(isa_bridge, 0x48, &reg);

for (i = 0; i < MAC_ADDR_LEN; i++) {
outb(0x9 + i, 0x78);
dev->dev_addr[i] = inb(0x79);
}

outb(0x12, 0x78);
reg = inb(0x79);

sis190_set_rgmii(tp, reg);

/* Restore the value to ISA Bridge */
pci_write_config_byte(isa_bridge, 0x48, tmp8);
pci_dev_put(isa_bridge);

return 0;
}

Saya mengikuti semua intruksi diatas tapi, saat membuka file sis190.c tampilan seperti diatas, bagian mana yang seharusnya diubah.

Saya sudah mencoba tanpa melakukan perubahan, kemudian saya load module tsb. Tp kartu jaringan masih belum aktiv.