PCI Express et al.

I need to get the third monitor working on my Linux Mint host, which has these slots:

(See https://support.hp.com/us-en/document/c03808397.)
(2) PCI Express x1 (v2.0)
(1) PCI Express x16 (v2.0—wired as x4: runs as x4, but has physical size of x16—not for video)
(1) PCI Express x16 (v3.0—the black one—it's the only slot good for video)
(1) Optional PCI (v2.3)

There are 5 types of PCIe slots/cards (in 2018). They are: 1x, 2x, 4x, 8x and 16x. The numbers on these correspond to the number of lanes on the slot/card. A 1x card/slot has just one lane while a 2x has 2, a 4x has 4 and so on. Doubling the number of lanes doubles the data transfer speed.

There are 4 generations of PCIe: 1.0, 2.0, 3.0 and 4.0. The only difference between the generations is that the data transfer rate in each lane doubles with each successive generation.

In PCIe 1.0, each lane supports up to 250 MB/s. For a PCIe 1.0 4x card/slot, the data transfer rate would be 4×250 Mb/s or 1 Gb/s.

In PCIe 2.0, each lane supports upto 500 MB/s. For a PCIe 2.0 4x card/slot, the data transfer rate would be 4×500 Mb/s or 2 GB/s.

For PCIe 3.0, each lane supports upto 1 Gb/s.

In PCIe 4.0, each lane supports upto 2 Gb/s.

I have a PCI Express x16 (v3.0); according to what I've read, the other slots aren't suitable for video. Maybe I can run the two monitors (already running) using the on-board video and just add a graphics card to run the third?

How to keep internal video after adding video card

Adding a video card to your computer may disable the original internal graphics when you want only to add more monitors. If this happens, there is probably a solution, just check out this video. In short, it's likely that installing the new card reach down into the BIOS and disabled the old video circuitry thinking that's what you'd want to do anyway.

How I replaced my two Hyundai L90D+ monitors with 20" Samsungs on Linux
Russell Bateman

If there’s anything I left out here, I can’t think what it would be, but feel free to contact me via e-mail Russ.

This turned out to be a bigger nightmare than getting the Hyundai’s running in the first place. I had to update the NVIDIA driver and that was no picnic. It might have worked out better to update the driver first, then put the new monitors on, but who thinks of these things? Be certain to read the information in How I hooked up my two Hyundai monitors... first if anything seems less than obvious in here.

This time, I got help right off from the same person who helped me the first time, but even he couldn’t figure it out. By the time he and I had finished attempting to modify the /etc/X11/xorg.conf file, the NVIDIA driver which had been working was gone—not certain what happened to it.

I went to NVIDIA’s website to down-load the latest driver. There were LOTS of caveats for SuSE users (I think SuSE just does this crap to tempt me to choose Ubuntu or something).

Still running SuSE 10.0, I tried to use YaST according to the NVIDIA instructions, but nothing doing: the YaST instructions were impossible to follow because the version of YaST described is the one that ships with SuSE 10.2 (NVIDIA dorks!). I then tried the hard way including a kernel rebuild (after all, I do have gcc and all of the other tools since I write software for a living). Nothing doing there; the build died for lack of some file.

So, I was condemned to a busted system of no use to me. I tar’d up my personal home directory and shot it out to a remote host using scp, then, with nothing to lose, decided to use my SuSE 10.2 DVD to upgrade my 10.0 installation, a wild ride of terror I thought I’d never undertake.

Amazingly enough, this worked and I’m able to hang on to my box. After the total upgrade, which took all afternoon since I did all of the on-line updates (what the hell, right?), I then decided to go back and attempt to follow NVIDIA’s SuSE 10.2 instructions this time. YaST cooperated by having all the elements referred to by the instructions. I will reproduce the instructions here with additions of my own because they were’t idiot-proof.

openSUSE 10.2-IA32

It is recommended to use YaST for installation of the NVIDIA driver. There are several reasons for this. First, it’s simple. Second, and this is the most important one, you won&rqqsuo;t need to recompile the nvidia kernel module after a kernel update.

Update your Kernel via YOU (YaST Online Update). Use

  YaST -> Software -> Installation Source -> Add

  Protocol: HTTP
  Server Name: : download.nvidia.com
  Directory on Server: /opensuse/10.2

to add the NVIDIA ftp server as additional installation source. Now use

  YaST -> Software -> Software Management

to install the NVIDIA driver. Select the following packages:


“kernel-flavor” depends on your installed kernel. Check with uname -r for installed default/bigsmp kernel. Use sax2 -r for X.Org configuration.


I failed to see the instruction about using uname to know which kernel and wasted my time producing—and failing the boot of—the wrong kernel. In my case, it was the default kernel and not the bigsmp.

However, the instruction to go to YaST Software Management and select the named packages was already a problem since a gajillion packages showed up, but none of the NVIDIA ones.

Lucking out by having a brain, I searched for them because that was an option. When you see the package list (which in my case was a pretty long one), then tab over to Search (or use ALT-S), then type in “nvidia” as the search phrase and leave everything else alone as it is. Then confirm the search with Ok (ALT-O). That’s when you’ll see the x11-video-nvidia and the other driver which you choose based on what uname -r told you before you launched YaST. There was some mucking around, dependency trouble and I had to resolve that, but it wasn’t hard. I can’t reproduce the hassle here since I felt my way through it, but if you’re doing this, it’s because you’re familiar with rpm and dependencies.

However, this did’t completely work. After doing all of this, I found that I still had the bigsmp kernel as the main option on the boot menu (so, up-arrow twice to get the right kernel). Then, I had to do startx from root to get in (to X) where I was able to (and still had to even though I had editted /etc/X11/xorg.conf by hand) launch YaST and complete the specification of the monitor to get it to be 3200x1050 (actually, 3200 and dust).

I had to choose a bogus Samsung monitor name because SuSE (YaST) didn’t have the right one (no real matter) and I checked to see if the frequencies were in range and generally looked all over the place until I got the ratio (16/10) and the size right. I got the size in mm from Samsung’s doc on their CD.

Now, the host won’t come up accurately and automatically after rebooting because all sorts of stuff is technically broken. I have to log in, which I never had to do before. To get into root is problematic; X stopped working for root right after I successfully fixed everything in YaST, but my user works.