wah mas...
ini cara cespleng....
untuk komputer saya harus digabung dengan result dari "lspci -vvv"

THANK YOUUUUUU
THANK YOUUUUUU
THANK YOUUUUUU
THANK YOUUUUUU

terima kasih yang buanyaaak mas
anda bener2 membantu sekali.

sedikit bicara, tapi hasil mantap!!
salut buat anda mas.

On 6/4/09, Hari Hendaryanto <har...@csmcom.com> wrote:
> achmad mardiansyah wrote:
>> kalo info dari server ya ngak bisa di share disini dunk!!
>> 1. itu confidential
>> 2. saya beranggapan bisa dilakukan dengan cara lain. makanya saya
>> pakai mesin testing.
>>
>> di mesin testing ini ethernetnya ada 2.
>> so, kalo ada yang bisa menunjukan dengan benar posisi slot
>> ethernetnya, tanpa maen kayu,
>> ya berarti cara dia berhasil...
>>
>> anggota milis ini ada yang jadi auditor IT ngak?
>> lumayan juga toh...
>> ada sebuah nilai tambah buat anda, bisa jadi bahan bagus untuk ke client.
>> hehehehe
>>
>>
>
> coba perl script ini pak, di pc server jangrik saya bisa ngelist slot2
> pci yg di tancepin ethernet card.
> OS redhat
> list pci device standar nya ada di /proc/bus/pci/
>
> #!/usr/bin/perl
> #
> # dump_pirq 1.21 2001/09/05 02:59:31
> #
> # A utility to parse the BIOS PCI IRQ Routing Table
> #
> # Copyright (C) 2000 David A. Hinds -- dahi...@users.sourceforge.net
> #
>
> #-----------------------------------------------------------------------
>
> sub dev {
>     my($devfn) = @_;
>     sprintf "%02x.%d", ($devfn>>3), ($devfn&7);
> }
>
> sub print_mask
> {
>     my($mask) = @_;
>     printf "0x%04x [", $mask;
>     for (my $i = 0; $i < 16; $i++) {
>     next if (!($mask & (1<<$i)));
>     $mask &= ~(1<<$i);
>     print (($mask) ? "$i," : "$i");
>     }
>     print "]\n";
> }
>
> sub row {
>     my($tag, $link, $mask) = @_;
>     if ($link != 0) {
>     printf "  INT$tag: link 0x%02x, irq mask ", $link;
>     print_mask($mask);
>     }
> }
>
> sub class_of
> {
>     my($slot) = @_;
>     open(IN, "/sbin/lspci -s $slot |");
>     $_ = <IN>;
>     close(IN);
>     return (/^([[:xdigit:]]{4}:)*....... ([^:]+):/) ? $2 : "";
> }
>
> sub parse_pirq
> {
>     my($buf) = @_;
>
>     my($p) = index($buf, "\$PIR");
>     my($minor,$major,$size,$rbus,$rdev,$mask,$cvd,$mini) =
>     unpack "CCSCCSLL", substr($buf, $p+4, 16);
>
>     printf "Interrupt routing table found at address 0xf%04x:\n", $p;
>     printf "  Version $major.$minor, size 0x%04x\n", $size;
>     printf "  Interrupt router is device %02x:%s\n", $rbus, dev($rdev);
>     print "  PCI exclusive interrupt mask: ";
>     print_mask($mask);
>     if ($cvd) {
>     printf("  Compatible router: vendor 0x%04x device 0x%04x\n",
>            ($cvd & 0xffff), ($cvd >> 16));
>     }
>
>     $ofs = 32;
>     while ($ofs < $size) {
>     # Parse a table entry describing a single PCI device
>     ($bus, $devfn, $la, $ma, $lb, $mb, $lc, $mc, $ld, $md, $slot) =
>         unpack "CCCSCSCSCSC", substr($buf, $p+$ofs, 15);
>     $s = sprintf "%02x:%s", $bus, dev($devfn);
>     printf "\nDevice $s (slot $slot): %s\n", class_of($s);
>     row("A", $la, $ma); row("B", $lb, $mb);
>     row("C", $lc, $mc); row("D", $ld, $md);
>     push(@{$dev{$la}}, $s . "1");
>     push(@{$dev{$lb}}, $s . "2");
>     push(@{$dev{$lc}}, $s . "3");
>     push(@{$dev{$ld}}, $s . "4");
>     $ofs += 16;
>     }
>     return ($rbus, $rdev, $cvd);
> }
>
> #-----------------------------------------------------------------------
>
> # The link values in the interrupt routing table are implementation
> # dependent.  Here, we'll try to interpret the link values for some
> # known PCI bridge types.
>
> %pIIx = (0x122e8086, "82371FB PIIX",
>      0x70008086, "82371SB PIIX3",
>      0x71108086, "82371AB PIIX4/PIIX4E",
>      0x71988086, "82443MX",
>      0x24108086, "82801AA ICH",
>      0x24208086, "82801AB ICH0",
>      0x24408086, "82801BA ICH2",
>      0x244c8086, "82801BAM ICH2-M");
>
> %via = (0x05861106, "82C586",
>     0x05961106, "82C596",
>     0x06861106, "82C686");
>
> %opti = (0xc7001045, "82C700");
>
> %pico = (0x00021066, "PT86C523");
>
> %ali = (0x153310b9, "Aladdin M1533");
>
> %sis = (0x04961039, "85C496/497",
>     0x00081039, "85C503");
>
> %cyrix = (0x01001078, "5530");
>
> %all_routers = (%pIIx, %via, %opti, %pico, %ali, %sis, %cyrix);
>
> sub outb
> {
>     my($data,$port) = @_;
>     open(IO, ">/dev/port") || die;
>     sysseek(IO, $port, 0) || die;
>     my $x = pack "C", $data;
>     syswrite(IO, $x, 1);
>     close(IO);
> }
>
> sub inb
> {
>     my($port) = @_;
>     my($data);
>     open(IO, "/dev/port") || die;
>     sysseek(IO, $port, 0) || die;
>     sysread(IO, $data, 1);
>     close(IO);
>     return unpack "C", $data;
> }
>
> sub dump_router
> {
>     my($rbus, $rdev, $cvd) = @_;
>     my($buf, @p, $i, $irq);
>
>     printf "\nInterrupt router at %02x:%s: ", $rbus, dev($rdev);
>     $rf = sprintf "/proc/bus/pci/%02x/%s", $rbus, dev($rdev);
>     open(IN, $rf);
>     if (sysread(IN, $buf, 0x100) != 0x100) {
>     print "\nCould not read router info from $rf.\n";
>     exit;
>     }
>     close(IN);
>     my $vd = unpack "L", substr($buf, 0, 4);
>
>     if ((defined $pIIx{$vd}) || (defined $pIIx{$cvd})) {
>
>     $name = (defined $pIIx{$vd}) ? $pIIx{$vd} : $pIIx{$cvd};
>     printf "Intel $name PCI-to-ISA bridge\n";
>     @p = unpack "CCCCC", substr($buf, 0x60, 5);
>     for ($i = 0; $i < 4; $i++) {
>         printf "  PIRQ%d (link 0x%02x): ", $i+1, 0x60+$i;
>         print (($p[$i] < 16) ? "irq $p[$i]\n" : "unrouted\n");
>     }
>     print "  Serial IRQ:";
>     print (($p[4] & 0x80) ? " [enabled]" : " [disabled]");
>     print (($p[4] & 0x40) ? " [continuous]" : " [quiet]");
>     print " [frame=", (($p[4] >> 2) & 15) + 17, "]";
>     print " [pulse=", (($p[4] & 3) * 4 + 4), "]\n";
>     print "  Level mask: "; print_mask((inb(0x4d1)<<8) + inb(0x4d0));
>
>     } elsif ((defined $via{$vd}) || (defined $via{$cvd})) {
>
>     $name = (defined $via{$vd}) ? $via{$vd} : $via{$cvd};
>     printf "VIA $name PCI-to-ISA bridge\n";
>     $p = unpack "L", substr($buf, 0x55, 4);
>     %tag = (1, "A", 2, "B", 3, "C", 5, "D");
>     foreach $link (1,2,3,5) {
>         $irq = ($p >> ($link * 4)) & 15;
>         print "  PIRQ$tag{$link} (link 0x0$link): ";
>         print ($irq ? "irq $irq\n" : "unrouted\n");
>     }
>
>     } elsif ((defined $opti{$vd}) || (defined $opti{$cvd})) {
>
>     $name = (defined $opti{$vd}) ? $opti{$vd} : $opti{$cvd};
>     printf "OPTi $name PCI-to-ISA bridge\n";
>     $p = unpack "S", substr($buf, 0xb8, 2);
>     for ($i = 0; $i < 4; $i++) {
>         $irq = ($p >> ($i * 4)) & 15;
>         printf "  PCIRQ$i (link 0x%02x): ", ($i<<4)+0x02;
>         print ($irq ? "irq $irq\n" : "unrouted\n");
>     }
>
>     } elsif ((defined $pico{$vd} || defined $pico{$cvd})) {
>
>     $name = (defined $pico{$vd}) ? $pico{$vd} : $pico{$cvd};
>     printf "PicoPower $name PCI-to-ISA bridge\n";
>     outb(0x10, 0x24); $p = inb(0x26);
>     outb(0x11, 0x24); $p += inb(0x26)<<8;
>     @tag = ("A", "B", "C", "D");
>     for ($i = 0; $i < 4; $i++) {
>         $irq = ($p >> ($i * 4)) & 15;
>         print "  INT$tag[$i] (link 0x0", $i+1, "): ";
>         print ($irq ? "irq $irq\n" : "unrouted\n");
>     }
>
>     } elsif ((defined $ali{$vd} || defined $ali{$cvd})) {
>
>     $name = (defined $ali{$vd}) ? $ali{$vd} : $ali{$cvd};
>     printf "AcerLabs $name PCI-to-ISA bridge\n";
>     $p = unpack "L", substr($buf, 0x48, 4);
>     # This mapping is insane!
>     @map = (0, 9, 3, 10, 4, 5, 7, 6, 1, 11, 0, 12, 0, 14, 0, 15);
>     for ($i = 0; $i < 8; $i++) {
>         $irq = ($p >> ($i*4)) & 15;
>         print "  INT", $i+1, " (link ", $i+1, "): ";
>         print ($map[$irq] ? "irq $map[$irq]\n" : "unrouted\n");
>     }
>     $s = unpack "C", substr($buf, 0x70, 1);
>     print "  Serial IRQ:";
>     print (($s & 0x80) ? " [enabled]" : " [disabled]");
>     print (($s & 0x40) ? " [continuous]" : " [quiet]");
>     print " [frame=", (($s >> 2) & 15) + 17, "]";
>     print " [pulse=", (($s & 3) * 4 + 4), "]\n";
>
>     } elsif ((defined $sis{$vd}) || (defined $sis{$cvd})) {
>
>     $name = (defined $sis{$vd}) ? $sis{$vd} : $sis{$cvd};
>     printf "SiS $name PCI-to-ISA bridge\n";
>     $base = ($name eq "85C496/497") ? 0xc0 : 0x41;
>     @p = unpack "CCCC", substr($buf, $base, 4);
>     @tag = ("A", "B", "C", "D");
>     for ($i = 0; $i < 4; $i++) {
>         $irq = ($p[$i] & 0x80) ? 0 : ($p[$i] & 0x0f);
>         printf "  INT$tag[$i] (link 0x%02x): ", $i+$base;
>         print ($irq ? "irq $irq\n" : "unrouted\n");
>     }
>
>     } elsif ((defined $cyrix{$vd}) || (defined $cyrix{$cvd})) {
>
>     $name = (defined $cyrix{$vd}) ? $cyrix{$vd} : $cyrix{$cvd};
>     printf "CYRIX $name PCI-to-ISA bridge\n";
>     $p = unpack "S", substr($buf, 0x5c, 2);
>     %tag = ("A", "B", "C", "D");
>     for ($i = 0; $i < 4; $i++) {
>         $irq = ($p >> ($i * 4)) & 15;
>         printf "  PIRQ$tag{$i} (link 0x%02x): ", $i+1;
>         print ($irq ? "irq $irq\n" : "unrouted\n");
>     }
>     print "  Level mask: "; print_mask((inb(0x4d1)<<8) + inb(0x4d0));
>
>     } else {
>
>     printf("unknown vendor 0x%04x device 0x%04x\n",
>            ($vd & 0xffff), ($vd >> 16));
>     foreach $k (sort keys %dev) {
>         next if ($k == 0);
>         printf "  PIRQ? (link 0x%02x): ", $k;
>         $irq = 0;
>         foreach $d (@{$dev{$k}}) {
>         $d =~ /(..):(..)\..(.)/;
>         ($bus,$dev,$pin) = ($1,$2,$3);
>         for ($fn = 0; $fn < 8; $fn++) {
>             open(IN, "/proc/bus/pci/$bus/$dev.$fn") || last;
>             sysread(IN, $buf, 0x100);
>             close(IN);
>             ($i,$p) = unpack "CC", substr($buf, 0x3c, 2);
>             $irq = $i if (($p == $pin) && $i && ($i != 255));
>         }
>         }
>         print ($irq ? "irq $irq\n" : "unrouted?\n");
>     }
>     }
>
> }
>
> #-----------------------------------------------------------------------
>
> # Grab the BIOS from 0xf0000-0xfffff
> open(IN, "/dev/mem") || die "cannot open /dev/mem\n";
> sysseek(IN, 0xf0000, 0) || die;
> die if (sysread(IN, $buf, 0x10000) != 0x10000);
> close(IN);
>
> if (index($buf, "\$PIR") >= 0) {
>
>     # Dump the PIRQ table, and the router information
>     ($rbus, $rdev, $cvd) = parse_pirq($buf);
>     dump_router($rbus, $rdev, $cvd);
>
> } else {
>
>     # Scan for any interrupt router device we recognize
>     print "No PCI interrupt routing table was found.\n";
>     open(DEV, "/proc/bus/pci/devices");
>     while (<DEV>) {
>     ($rbus,$rdev,$vd) = /^(..)(..)\s+(........)/;
>     $rbus = hex($rbus); $rdev = hex($rdev); $vd = hex($vd);
>     $vd = (($vd & 0xffff0000) >> 16) | (($vd & 0xffff) << 16);
>     if (defined $all_routers{$vd}) {
>         dump_router($rbus, $rdev, $vd);
>         $nr++;
>     }
>     }
>     print "\nNo known PCI interrupt routers were found.\n" if (!$nr);
>
> }
>
> contoh:
>
> # ./dump_pirq
> Interrupt routing table found at address 0xfdf30:
>   Version 1.0, size 0x00b0
>   Interrupt router is device 00:07.0
>   PCI exclusive interrupt mask: 0x0000 []
>   Compatible router: vendor 0x8086 device 0x122e
>
> Device 00:0d.0 (slot 1): VGA compatible controller
>   INTA: link 0x60, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTB: link 0x61, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTC: link 0x62, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTD: link 0x63, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>
> Device 00:0e.0 (slot 2): Ethernet controller
>   INTA: link 0x61, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTB: link 0x62, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTC: link 0x63, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTD: link 0x60, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>
> Device 00:0f.0 (slot 3): Ethernet controller
>   INTA: link 0x62, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTB: link 0x63, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTC: link 0x60, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTD: link 0x61, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>
> Device 00:10.0 (slot 4):
>   INTA: link 0x63, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTB: link 0x60, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTC: link 0x61, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>   INTD: link 0x62, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>
> Device 00:0c.0 (slot 0):
>   INTA: link 0x62, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
>
> Device 00:00.0 (slot 0): Host bridge
>   INTA: link 0x60, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTB: link 0x61, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTC: link 0x62, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTD: link 0x63, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>
> Device 00:07.0 (slot 0): ISA bridge
>   INTA: link 0x60, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTB: link 0x61, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTC: link 0x62, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTD: link 0x63, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>
> Device 00:01.0 (slot 0): PCI bridge
>   INTA: link 0x60, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTB: link 0x61, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTC: link 0x62, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTD: link 0x63, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>
> Device 01:00.0 (slot 0):
>   INTA: link 0x60, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>   INTB: link 0x61, irq mask 0xdef8 [3,4,5,6,7,9,10,11,12,14,15]
>
> Interrupt router at 00:07.0: Intel 82371AB PIIX4/PIIX4E PCI-to-ISA bridge
>   PIRQ1 (link 0x60): irq 11
>   PIRQ2 (link 0x61): irq 10
>   PIRQ3 (link 0x62): irq 5
>   PIRQ4 (link 0x63): irq 9
>   Serial IRQ: [enabled] [continuous] [frame=21] [pulse=4]
>   Level mask: 0x0e20 [5,9,10,11]
>
>
>
> PT.CITRA SARI MAKMUR
> SATELLITE & TERRESTRIAL NETWORK
>
> Connecting the distance - anytime, anywhere, any content
> http://www.csmcom.com
> http://mail.csmcom.com
>
>
>
> --
> FAQ milis di http://wiki.linux.or.id/FAQ_milis_tanya-jawab
> Unsubscribe: kirim email ke tanya-jawab-unsubscr...@linux.or.id
> Arsip dan info milis selengkapnya di http://linux.or.id/milis
>
>

-- 
FAQ milis di http://wiki.linux.or.id/FAQ_milis_tanya-jawab
Unsubscribe: kirim email ke tanya-jawab-unsubscr...@linux.or.id
Arsip dan info milis selengkapnya di http://linux.or.id/milis

Kirim email ke