Text mode wrong font size with proprietary nvidia driver.

Hi,

I have upgraded my main system to 13.1 since yesterday (offline method).
Packages are correct. There are somethings I have to do yet, but they do
not affect this (dovecot, apache…).

I have switched a moment ago to the proprietary nvidia driver the easy
way (repo way). I boot normally to runlevel 3. Grub 1 displays
correctly, but the text mode consoles are using a huge font, despite
using the correct graphic mode; the monitor info button says: 1920x1080,
H:67Khz, V:60Hxz, which is exactly the same as I get in graphics mode.

Graphics mode is working correctly, via init 5. I tried using flight
gear flight simulator, and it works, so I have accel.

The problem is text mode, the font is simply huge: 80x24. And this
happens since the kernel starts to load. Xorg config does not affect
this, as it happens before X is started.


> cer@Telcontar:~> cat /proc/cmdline
> root=/dev/disk/by-label/a_main resume=/dev/disk/by-label/b_swap splash=verbose


> Telcontar:~ # rpm -qa | grep nvidi
> nvidia-computeG03-331.49-29.1.x86_64
> nvidia-glG03-331.49-29.1.x86_64
> x11-video-nvidiaG03-331.49-29.1.x86_64
> nvidia-gfxG03-kmp-desktop-331.49_k3.11.6_4-29.1.x86_64
> Telcontar:~ #

plymouth is not installed.

Log entries with “nvidia” word:


> <0.4> 2014-02-26 21:23:55 Telcontar kernel - - -     2.397386] nvidia: module license 'NVIDIA' taints kernel.
> <0.4> 2014-02-26 21:23:55 Telcontar kernel - - -     2.397465] Disabling lock debugging due to kernel taint
> <0.6> 2014-02-26 21:23:55 Telcontar kernel - - -     2.411779] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
> <0.6> 2014-02-26 21:23:55 Telcontar kernel - - -     2.412099] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:01:00.0 on minor 0
> <0.4> 2014-02-26 21:23:55 Telcontar kernel - - -     2.412209] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  331.49  Wed Feb 12 20:42:50 PST 2014
....
> <0.7> 2014-02-26 21:27:20 Telcontar kernel - - -   250.024226] nvidia 0000:01:00.0: irq 48 for MSI/MSI-X


Telcontar:~ # hwinfo --gfxcard
29: PCI 100.0: 0300 VGA compatible controller (VGA)
[Created at pci.319]
Unique ID: VCu0.on6Ysc6JyT1
Parent ID: H0_h.3kPMz12AcD0
SysFS ID: /devices/pci0000:00/0000:00:06.0/0000:01:00.0
SysFS BusID: 0000:01:00.0
Hardware Class: graphics card
Model: "nVidia G96 [GeForce 9500 GT]"
Vendor: pci 0x10de "nVidia Corporation"
Device: pci 0x0640 "G96 [GeForce 9500 GT]"
SubVendor: pci 0x1462 "Micro-Star International Co., Ltd."
SubDevice: pci 0x1573
Revision: 0xa1
Driver: "nvidia"
Driver Modules: "nvidia"
Memory Range: 0xfd000000-0xfdffffff (rw,non-prefetchable)
Memory Range: 0xd0000000-0xdfffffff (ro,non-prefetchable)
Memory Range: 0xfa000000-0xfbffffff (rw,non-prefetchable)
I/O Ports: 0x9c00-0x9c7f (rw)
Memory Range: 0xfc000000-0xfc07ffff (ro,non-prefetchable,disabled)
IRQ: 48 (17189 events)
I/O Ports: 0x3c0-0x3df (rw)
Module Alias: "pci:v000010DEd00000640sv00001462sd00001573bc03sc00i00"
Driver Info #0:
Driver Status: nvidiafb is not active
Driver Activation Cmd: "modprobe nvidiafb"
Driver Info #1:
Driver Status: nouveau is not active
Driver Activation Cmd: "modprobe nouveau"
Driver Info #2:
Driver Status: nvidia is active
Driver Activation Cmd: "modprobe nvidia"
Config Status: cfg=no, avail=yes, need=no, active=unknown
Attached to: #10 (PCI bridge)

Primary display adapter: #29
Telcontar:~ #


At this moment I don’t know where to start looking, this has not
happened to me in many years.

I have another test partition on this same machine, with 13.1 and nvidia
driver (different driver version, though (G03-331.20 instead of G03-331.49),

The installed package list might be different on both systems:

This install (with problem):


>  nvidia-gfxG03-kmp-desktop-331.49_k3.11.6_4-29.1.x86_64.rpm
>  nvidia-computeG03-331.49-29.1.x86_64.rpm
>  x11-video-nvidiaG03-331.49-29.1.x86_64.rpm
>  nvidia-glG03-331.49-29.1.x86_64.rpm

Working previous install:


>  nvidia-gfxG03-kmp-desktop-331.20_k3.11.6_4-22.2.x86_64.rpm
>  nvidia-computeG03-331.20-22.1.x86_64.rpm
>  x11-video-nvidiaG03-331.20-22.1.x86_64.rpm


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

Screenshot would be helpful. Actually, two - showing working and non-working cases.

On 2014-02-27 06:16, arvidjaar wrote:
>
> Screenshot would be helpful. Actually, two - showing working and
> non-working cases.

Just imagine a full text screen of 80 columns and 24 lines, same as the
original PC. That’s what I get. Uppercase letters are about 7 mm high.
Video mode is correct, though, 1920x1080 pixels.

To count the lines and columns of a correct boot, I would have to reboot
to another partition, but it should be about double count. I can do that
later.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

On 2014-02-27 12:23, Carlos E. R. wrote:
> On 2014-02-27 06:16, arvidjaar wrote:
>>
>> Screenshot would be helpful. Actually, two - showing working and
>> non-working cases.
>
> Just imagine a full text screen of 80 columns and 24 lines, same as the
> original PC. That’s what I get. Uppercase letters are about 7 mm high.
> Video mode is correct, though, 1920x1080 pixels.
>
> To count the lines and columns of a correct boot, I would have to reboot
> to another partition, but it should be about double count. I can do that
> later.

Ok, here you have both photos. Exactly as said.

bad
good


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

80x24 (I believe it is actually 25) is default PC console mode so I do not see anything bad in your “bad” screenshot. May be bootloader defaults have changed accidentally. I do not have access to any openSUSE right now - so if you are using grub - what is in /etc/default/grub? Paste content without comments.

I have old habit of disabling framebuffer when using nVidia drivers (it was too unsafe combination in the past and I have no idea if it was fixed in the meantime) so I always have plain 80x25 text console anyway. Not that I switch to it often :slight_smile:

On 2014-02-28 12:16, arvidjaar wrote:
>
> 80x24 (I believe it is actually 25) is default PC console mode so I do
> not see anything bad in your “bad” screenshot.

Well, the “correct” screenshot has 160x64, with the same video mode of
1920x1080 pixels.

> May be bootloader
> defaults have changed accidentally. I do not have access to any openSUSE
> right now - so if you are using grub - what is in /etc/default/grub?
> Paste content without comments.

I’m still using grub 1. Nothing was changed there. The entry is:


> gfxmenu (hd0,1)/message
> default 0
> timeout 8
>
> ###Don't change this comment - YaST2 identifier: Original name: linux###
> title Desktop -n- openSUSE - 3.11.10-7
>     root (hd0,1)
>     kernel /vmlinuz-3.11.10-7-desktop root=/dev/disk/by-label/a_main resume=/dev/disk/by-label/b_swap splash=verbose  showopts
>     initrd /initrd-3.11.10-7-desktop

I have also tried:


>    kernel /vmlinuz-3.11.6-4-desktop root=/dev/disk/by-label/a_main resume=/dev/disk/by-label/b_swap plymouth.enable=0  splash=verbose console=tty1 loglevel=3 splash=silent showopts

which was the line right after system install. No difference.

I have old habit of disabling framebuffer when using nVidia drivers (it
was too unsafe combination in the past and I have no idea if it was
fixed in the meantime) so I always have plain 80x25 text console anyway.
Not that I switch to it often :slight_smile:

I don’t “use” it often, either. But my default boot is to text mode, and
I start graphics mode manually later. It allows me to check things.

But having to do any actual thing on such a large display with huge
letters, that show actually to little text, is a nuisance. And not
knowing why, it is worse.

I’m thinking to force downgrade to the nvidia drivers of the other
partition, to see if that is the issue.

Maybe framebuffer has been disabled accidentally, or it fails.

On the system log, the word “framebuf” does not appear after nvidia was
installed. I see entries before:


> <3.6> 2014-02-05 13:44:35 Telcontar systemd 1 - -  Stopping LSB: Framebuffer setup...
>
> <3.6> 2014-02-25 11:47:55 Telcontar systemd 1 - -  Stopping LSB: Framebuffer setup...


But those entries belong to the 12.3 system, ie, prior to the upgrade to
13.1 (first 13.1 entry is dated “2014-02-25 22:45:45+01:00”,

On my other, working, 13.1 partition I see this instead:


> 2014-02-27T12:37:59.030434+01:00 Elessar kernel:     0.324165] vesafb: mode is 1280x1024x32, linelength=5120, pages=0
> 2014-02-27T12:37:59.030435+01:00 Elessar kernel:     0.324168] vesafb: scrolling: redraw
> 2014-02-27T12:37:59.030436+01:00 Elessar kernel:     0.324170] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
> 2014-02-27T12:37:59.030437+01:00 Elessar kernel:     0.324502] vesafb: framebuffer at 0xfb000000, mapped to 0xffffc90010f00000, using 5120k, total 5120k
> 2014-02-27T12:37:59.030442+01:00 Elessar kernel:     0.356288] Console: switching to colour frame buffer device 160x64
> 2014-02-27T12:37:59.030444+01:00 Elessar kernel:     0.388178] fb0: VESA VGA frame buffer device
> ...
> 2014-02-27T12:37:59.031356+01:00 Elessar kernel:    15.138831] nvidia: module license 'NVIDIA' taints kernel.


So, that’s the problem, framebuffer is not running.

How does one go about telling the kernel to use it? :-?

Why does it work in one system and not another?


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

You either use KMS drivers or in case of legacy grub pass vga= parameter (grub2 is using 32 bit bootstrap protocol and passes desired video mode to kernel differently - but still, you must explicitly configure video mode even with grub2).

On 2014-02-28 15:06, arvidjaar wrote:
>
> robin_listas;2627654 Wrote:
>> So, that’s the problem, framebuffer is not running.
>>
>> How does one go about telling the kernel to use it? :-?
>>
>
> You either use KMS drivers or in case of legacy grub pass vga= parameter
> (grub2 is using 32 bit bootstrap protocol and passes desired video mode
> to kernel differently - but still, you must explicitly configure video
> mode even with grub2).

I did not ever had to do that, in years.

I was getting the correct result before installing the nvidia driver.
The only thing I changed was install nvidia driver rpms. Kernel boot
line has not changed, grub has not changed, at all. In years, several
releases.

The video mode being used in text mode is correct, 1920x1080 pixels,
before and after. It is the font size that is incorrect.

Doesn’t make sense.

I have another partition, using 13.1 as well, grub2, and proprietary
nvidia driver as well, where this does not happen. And I do not specify
video mode in grub, either.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

It’d been some time since grub1, but I remember having to use “vga=xxx” in the kernel boot options to get the terminal text size right. Not sure it’s your case here.

… also, are the two systems using identical monitors?

If not, test with the other monitor on the system you are trying to correct, see if that helps.

I have seen different monitors causing problems such as that, something to do with detection at start.

If that is the case, the particular monitor you are using there might require a 1024x initializing, will then probably flip to your higher resolution once the nVidia driver takes over. In the meantime, it will use the correct text paging file (maybe?).
:\

How strange. Is the other partition OS install using the same driver version?

In any case I wonder if the dpi is incorrect?

xdpyinfo |grep resolution

The proprietary driver doesn’t always get that right, but usually it affects the desktop font sizes as well. I take it that you’re not affected with those?

Which disabled KMS

Doesn’t make sense.

I prefer “something new to learn”. If you do not know or understand something, it does not mean it does not make sense.

For grub legacy, this might be helpful to you Carlos

http://forums.opensuse.org/showthread.php/471213-12-1-restore-console-to-high-res-(1920-x-1080)

I have seen some references to using uvesafb for higher console resolutions, but I’m not sure if this can be used ‘out-of-the-box’ or not.

I have a box with an older nvidia card. I have installed 13.1 twice (different partitions).

The text mode console was fine with nouveau. But, after switching to the nvidia driver (“the hard way”), on one of those I have a huge font.

The difference: The one with the huge font, is where I installed grub2 to use console mode. The one with reasonable fonts, is where I installed grubs to use graphic mode for its menu.

I have not looked into changing it. I rarely use text mode console, except after a kernel update when I need to reinstall the nvidia driver. However, next time I will stick with graphic mode for grub2.

On 2014-03-02 08:06, arvidjaar wrote:
>
> robin_listas;2627797 Wrote:
>>
>> I was getting the correct result before installing the nvidia driver.
>> The only thing I changed was install nvidia driver rpms.
> Which disabled KMS
>> Doesn’t make sense.
>
> I prefer “something new to learn”. If you do not know or understand
> something, it does not mean it does not make sense.

But I can not simply enable KMS, because that will disable the
proprietary nvidia driver.

And I do want the proprietary driver.

And it works perfectly on another partition on the same machine.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

On 2014-03-02 05:56, Fraser Bell wrote:
>
> brunomcl;2628061 Wrote:
>> It’d been some time since grub1, but I remember having to use “vga=xxx”
>> in the kernel boot options to get the terminal text size right. Not sure
>> it’s your case here.
>
> … also, are the two systems using identical monitors?

Not two systems. Only one.

Two different partitions on the same machine. One works correctly, the
other does not, in text mode.

I have two partitions (well, way more, but irrelevant).

The test partition is a fresh install of 13.1, with nvidia proprietary
driver. It is working perfectly, both in text mode and graphic mode.

The main partition is an upgrade, from 12.3 to 13.1. With nouveau, I was
getting correct behaviour in both text mode and graphic mode, at
1920x1080 pixels, and 160x64 in text mode (same as the test partition).

When I installed Nvidia proprietary driver, the easy way, or rpm way
(same way as on the test partition), I got this:

  • grub menu is working at the same resolution as before, AFAICS.
  • text mode is working at 1920x1080 pixels and 80x24 or 80x25 chars,
    since the instant the kernel starts loading.
  • Graphics mode is working at 1920x1080 pixels, and correctly, AFAICS.

Both systems are using the same kernel command line (despite the
appearances, AFAIK). Different kernel version, though, because the test
partition has not been updated recently:

Test:


> 2014-03-01T12:06:09.665471+01:00 Elessar kernel:     0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.11.6-4-desktop root=UUID=00eb9a40-d067-459e-a22f-1d3b667dddbb resume=/dev/disk/by-label/b_swap  splash=verbose showopts

Main:


> <0.5> 2014-03-01 12:14:23 Telcontar kernel - - -     0.000000] Kernel command line: root=/dev/disk/by-label/a_main resume=/dev/disk/by-label/b_swap splash=verbose

As you see, no “vga” entry on the working test system. So it is not
that, because it works fine without it.

Differences:

The test partition is using a slightly older driver version, 331.20, and
the main system has 331.49

Test partition:


nvidia-gfxG03-kmp-desktop  331.20_k3.11.6_4-22.2
nvidia-computeG03 331.20-22.1
x11-video-nvidiaG03 331.20-22.1

Main partition (the problematic):


nvidia-computeG03-331.49-29.1.x86_64
nvidia-glG03-331.49-29.1.x86_64
x11-video-nvidiaG03-331.49-29.1.x86_64
nvidia-gfxG03-kmp-desktop-331.49_k3.11.6_4-29.1.x86_64

I can not try revert to the older rpm version, because I don’t have
nvidia-glG03-331.20 stored, and it is no longer in the repo.

The crucial detail might be this difference. In the test partition
(working), I see this in the log:



> 2014-03-01T12:06:09.666453+01:00 Elessar kernel:     0.325099] vesafb: mode is 1280x1024x32, linelength=5120, pages=0
> 2014-03-01T12:06:09.666454+01:00 Elessar kernel:     0.325102] vesafb: scrolling: redraw
> 2014-03-01T12:06:09.666455+01:00 Elessar kernel:     0.325105] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
> 2014-03-01T12:06:09.666458+01:00 Elessar kernel:     0.325438] vesafb: framebuffer at 0xfb000000, mapped to 0xffffc90010f00000, using 5120k, total 5120k
> 2014-03-01T12:06:09.666459+01:00 Elessar kernel:     0.357190] Console: switching to colour frame buffer device 160x64
> 2014-03-01T12:06:09.666460+01:00 Elessar kernel:     0.389080] fb0: VESA VGA frame buffer device

> 2014-03-01T12:06:09.667145+01:00 Elessar kernel:    14.848482] nvidia: module license 'NVIDIA' taints kernel.
> 2014-03-01T12:06:09.667148+01:00 Elessar kernel:    14.860253] Disabling lock debugging due to kernel taint
> 2014-03-01T12:06:09.667149+01:00 Elessar kernel:    14.885613] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
> 2014-03-01T12:06:09.667150+01:00 Elessar kernel:    14.898084] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:01:00.0 on minor 0
> 2014-03-01T12:06:09.667151+01:00 Elessar kernel:    14.901387] ALSA mixer.c:1303 usb_audio: Warning! Unlikely big volume range (=5760), cval->res is probably wrong.
> 2014-03-01T12:06:09.667151+01:00 Elessar kernel:    14.901513] ALSA mixer.c:1307 usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 0/5760/1
> 2014-03-01T12:06:09.667152+01:00 Elessar kernel:    14.901514] usbcore: registered new interface driver snd-usb-audio
> 2014-03-01T12:06:09.667153+01:00 Elessar kernel:    14.946610] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  331.20  Wed Oct 30 17:43:35 PDT 2013

> 2014-03-01T12:06:49.915453+01:00 Elessar systemd[1]: Started LSB: X Display Manager.
> 2014-03-01T12:06:49.915725+01:00 Elessar systemd[1]: Starting Graphical Interface.

> 2014-03-01T12:06:51.513614+01:00 Elessar kernel:    63.666734] NVRM: Your system is not currently configured to drive a VGA console
> 2014-03-01T12:06:51.513634+01:00 Elessar kernel:    63.666739] NVRM: on the primary VGA device. The NVIDIA Linux graphics driver
> 2014-03-01T12:06:51.513636+01:00 Elessar kernel:    63.666741] NVRM: requires the use of a text-mode VGA console. Use of other console
> 2014-03-01T12:06:51.513638+01:00 Elessar kernel:    63.666743] NVRM: drivers including, but not limited to, vesafb, may result in
> 2014-03-01T12:06:51.513639+01:00 Elessar kernel:    63.666745] NVRM: corruption and stability problems, and is not supported.


It is using the vesa framebuffer for display, and a bit later it loads
the nvidia kernel module, it seems. The main partition is not.

Although I see a warning in there against using vesafb. :-?

The main partition log reads thus:


> <0.4> 2014-03-01 12:14:23 Telcontar kernel - - -     2.397886] nvidia: module license 'NVIDIA' taints kernel.
> <0.4> 2014-03-01 12:14:23 Telcontar kernel - - -     2.397957] Disabling lock debugging due to kernel taint
> <0.6> 2014-03-01 12:14:23 Telcontar kernel - - -     2.413746] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
> <0.6> 2014-03-01 12:14:23 Telcontar kernel - - -     2.414039] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:01:00.0 on minor 0
> <0.4> 2014-03-01 12:14:23 Telcontar kernel - - -     2.414153] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  331.49  Wed Feb 12 20:42:50 PST 2014

> <3.6> 2014-03-01 12:22:31 Telcontar systemd 1 - -  Started LSB: X Display Manager.
> <3.6> 2014-03-01 12:22:31 Telcontar systemd 1 - -  Starting Graphical Interface.


In the main partition, there are no references to vesa, or framebuffer.
At least not since I installed the nvidia proprietary driver.

Maybe, the current nvidia driver explicitly forbids vesafb, per the
warning in the test partition :-?

What is that NVRM?


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

On 2014-03-02 15:56, nrickert wrote:

> I have a box with an older nvidia card. I have installed 13.1 twice
> (different partitions).
>
> The text mode console was fine with nouveau. But, after switching to
> the nvidia driver (“the hard way”), on one of those I have a huge font.

That’s exactly my problem.

> The difference: The one with the huge font, is where I installed grub2
> to use console mode. The one with reasonable fonts, is where I
> installed grubs to use graphic mode for its menu.

Mine is the other way round… so grub is not the culprit.

> I have not looked into changing it. I rarely use text mode console,
> except after a kernel update when I need to reinstall the nvidia driver.
> However, next time I will stick with graphic mode for grub2.

Well, same here, I seldom use it. But sometimes I need it. For
instance… right now, I’m preparing a new hard disk replacement. To
activate it, I was going to switch to runlevel 1 to do changes to fstab
and mount/umount the proper partitions.

Now I can’t do that… too small. Insufficient text display.

I’ll have to use my xfce usb stick rescue system


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

On 2014-03-02 08:56, deano ferrari wrote:
>
> For grub legacy, this might be helpful to you Carlos
>
> http://tinyurl.com/mhzkt6c

I’ll have a read later. Now I have to do some home “chores”.

> I have seen some references to using uvesafb for higher console
> resolutions, but I’m not sure if this can be used ‘out-of-the-box’ or
> not.

Dunno.

The other partition is using vesafb out of the box…


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

Interesting.

The other differences:

The install with large font is 64-bit, and the other is 32-bit. However, I doubt that is important.

The install with large font is from 13.1 DVD image. The other is from the opensuse-linux-for-education DVD image. I’m guessing that’s where the difference might be.

On 2014-03-02 17:26, nrickert wrote:
>
> robin_listas;2628148 Wrote:
>> Mine is the other way round… so grub is not the culprit.
>
> Interesting.
>
> The other differences:
>
> The install with large font is 64-bit, and the other is 32-bit.
> However, I doubt that is important.

Mine are both 64bit.

> The install with large font is from 13.1 DVD image. The other is from
> the opensuse-linux-for-education DVD image. I’m guessing that’s where
> the difference might be.

Mine are both from the exact same usb stick, having the 13.1 DVD image.

Mmm… maybe not. The test partition could have been initially one of
the pre-release versions. It was made on 2013-11-06 (history log file
first entry). I don’t remember right now when 13.1 was “gold”?


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)