Solved How to switch vt console independ to external monitor?

goshanecr

Active Member

Reaction score: 33
Messages: 208

Hi Friends!

I have a small laptop ASUS EeePC 1215, with AMD Radeon 6310 video card.
So I have i386 system installed with vt console enabled:
/boot/loader.conf
Code:
kern.vty=vt
radeonkms_load="YES"
kern.vt.fb.VGA-1="1440x900"

It has a native internal LVDS resolution: 1024x600, but I need use it with external screen with resolution 1440x900. (In console, without X).
But when I connect LCD through VGA connector - it uses 1024x600 part of its screen. So as I understand it just mirrors output from LVDS. Also with laptop screen closed before system boot.

How can I switch LCD as primary screen or something similar to use external screen?
Also sysctl OID kern.vt.fb doesn't exists, sisnce I understand vt_fb backend which provides that oid's don't exists on i386, or I mistake?

So what I need to do?
There is additional info, which may be useful:
Thanks a lot for helps!
dmesg | grep -i drm
Code:
[drm] radeon kernel modesetting enabled.
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] initializing kernel modesetting (PALM 0x1002:0x9804 0x1043:0x84A4 0x00).
[drm ERROR :radeon_atombios_init] Unable to find PCI I/O BAR; using MMIO for ATOM IIO
drmn0: VRAM: 384M 0x0000000000000000 - 0x0000000017FFFFFF (384M used)
drmn0: GTT: 1024M 0x0000000018000000 - 0x0000000057FFFFFF
[drm] Detected VRAM RAM=384M, BAR=256M
[drm] RAM width 32bits DDR
[drm] radeon: 384M of VRAM memory ready
[drm] radeon: 1024M of GTT memory ready.
[drm] Loading PALM Microcode
drmn0: fail (0) to get firmware image with name: radeon/PALM_pfp.bin
drmn0: successfully loaded firmware image with mapped name: radeon_PALM_pfp_bin
drmn0: fail (0) to get firmware image with name: radeon/PALM_me.bin
drmn0: successfully loaded firmware image with mapped name: radeon_PALM_me_bin
drmn0: fail (0) to get firmware image with name: radeon/SUMO_rlc.bin
drmn0: successfully loaded firmware image with mapped name: radeon_SUMO_rlc_bin
[drm] Internal thermal controller without fan control
[drm] Found smc ucode version: 0x00010601
[drm] radeon: dpm initialized
drmn0: fail (0) to get firmware image with name: radeon/SUMO_uvd.bin
drmn0: successfully loaded firmware image with mapped name: radeon_SUMO_uvd_bin
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] PCIE GART of 1024M enabled (table at 0x0000000000162000).
drmn0: WB enabled
drmn0: fence driver on ring 0 use gpu addr 0x0000000018000c00 and cpu addr 0x0x107c9c00
drmn0: fence driver on ring 3 use gpu addr 0x0000000018000c0c and cpu addr 0x0x107c9c0c
drmn0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0x0x1a081118
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
drmn0: radeon: MSI limited to 32-bit
drmn0: radeon: using MSI.
[drm] radeon: irq initialized.
[drm] ring test on 0 succeeded in 1 usecs
[drm] ring test on 3 succeeded in 3 usecs
[drm] ring test on 5 succeeded in 1 usecs
[drm] UVD initialized successfully.
[drm] ib test on ring 0 succeeded in 0 usecs
[drm] ib test on ring 3 succeeded in 0 usecs
[drm] ib test on ring 5 succeeded
[drm] Connector LVDS-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.LVDS-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector HDMI-A-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.HDMI-A-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector VGA-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.VGA-1
[drm]   - kern.vt.fb.default_mode
[drm] radeon atom DIG backlight initialized
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm]   LVDS-1
[drm]   HPD1
[drm]   DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
[drm]   Encoders:
[drm]     LCD1: INTERNAL_UNIPHY
[drm] Connector 1:
[drm]   HDMI-A-1
[drm]   HPD2
[drm]   DDC: 0x6440 0x6440 0x6444 0x6444 0x6448 0x6448 0x644c 0x644c
[drm]   Encoders:
[drm]     DFP1: INTERNAL_UNIPHY
[drm] Connector 2:
[drm]   VGA-1
[drm]   DDC: 0x64d8 0x64d8 0x64dc 0x64dc 0x64e0 0x64e0 0x64e4 0x64e4
[drm]   Encoders:
[drm]     CRT1: INTERNAL_KLDSCP_DAC1
[drm] fb mappable at 0xD0366000
[drm] vram apper at 0xD0000000
[drm] size 5324800
[drm] fb depth is 24
[drm]    pitch is 5888
name=drmn0 flags=0x0 stride=5888 bpp=32
drmn0: fb0: radeondrmfb frame buffer device
[drm] Initialized radeon 2.50.0 20080528 for drmn0 on minor 0

sysctl -a | grep -i drm
Code:
vm.uma.drm_sched_fence.stats.xdomain: 0
vm.uma.drm_sched_fence.stats.fails: 0
vm.uma.drm_sched_fence.stats.frees: 0
vm.uma.drm_sched_fence.stats.allocs: 0
vm.uma.drm_sched_fence.stats.current: 0
vm.uma.drm_sched_fence.domain.0.wss: 0
vm.uma.drm_sched_fence.domain.0.imin: 0
vm.uma.drm_sched_fence.domain.0.imax: 0
vm.uma.drm_sched_fence.domain.0.nitems: 0
vm.uma.drm_sched_fence.limit.bucket_max: 4294967295
vm.uma.drm_sched_fence.limit.sleeps: 0
vm.uma.drm_sched_fence.limit.sleepers: 0
vm.uma.drm_sched_fence.limit.max_items: 0
vm.uma.drm_sched_fence.limit.items: 0
vm.uma.drm_sched_fence.keg.domain.0.free_items: 0
vm.uma.drm_sched_fence.keg.domain.0.pages: 0
vm.uma.drm_sched_fence.keg.efficiency: 96
vm.uma.drm_sched_fence.keg.reserve: 0
vm.uma.drm_sched_fence.keg.align: 63
vm.uma.drm_sched_fence.keg.ipers: 31
vm.uma.drm_sched_fence.keg.ppera: 1
vm.uma.drm_sched_fence.keg.rsize: 128
vm.uma.drm_sched_fence.keg.name: drm_sched_fence
vm.uma.drm_sched_fence.bucket_size_max: 253
vm.uma.drm_sched_fence.bucket_size: 125
vm.uma.drm_sched_fence.flags: 0
vm.uma.drm_sched_fence.size: 120
hw.dri.drm_fbdev_overalloc: 100
hw.dri.drm_debug_persist: 0
hw.dri.drm_debug: 0
sys.class.drm.card0-VGA-1.modes: 1440x900
sys.class.drm.card0-VGA-1.dpms: On
sys.class.drm.card0-VGA-1.enabled: enabled
sys.class.drm.card0-VGA-1.status: connected
sys.class.drm.card0-HDMI-A-1.modes: 
sys.class.drm.card0-HDMI-A-1.dpms: On
sys.class.drm.card0-HDMI-A-1.enabled: disabled
sys.class.drm.card0-HDMI-A-1.status: disconnected
sys.class.drm.card0-LVDS-1.modes: 1024x600
sys.class.drm.card0-LVDS-1.dpms: On
sys.class.drm.card0-LVDS-1.enabled: enabled
sys.class.drm.card0-LVDS-1.status: connected
sys.class.drm.ttm.buffer_objects.bo_count: 13
sys.class.drm.ttm.memory_accounting.pool.pool_allocation_size: 4096
sys.class.drm.ttm.memory_accounting.pool.pool_small_allocation: 64
sys.class.drm.ttm.memory_accounting.pool.pool_max_size: 422536
sys.class.drm.ttm.memory_accounting.kernel.used_memory: 2247
sys.class.drm.ttm.memory_accounting.kernel.swap_limit: 633807
sys.class.drm.ttm.memory_accounting.kernel.available_memory: 845076
sys.class.drm.ttm.memory_accounting.kernel.emergency_memory: 1267614
sys.class.drm.ttm.memory_accounting.kernel.zone_memory: 1690152
sys.class.drm.ttm.memory_accounting.lower_mem_limit: 0
sys.class.drm.version: drm 1.1.0 20060810
dev.drmn.0.%parent: vgapci0
dev.drmn.0.%pnpinfo: 
dev.drmn.0.%location: 
dev.drmn.0.%driver: drmn
dev.drmn.0.%desc: drmn
dev.drmn.%parent: 
dev.drm.0.PCI_ID: 1002:9804
dev.drm.128.PCI_ID: 1002:9804
dev.drm.always_interruptible: 0
dev.drm.error_panic: 0
dev.drm.drm_debug_persist: 0
dev.drm.skip_ddb: 0
dev.drm.drm_debug: 0
compat.linuxkpi.drm_edid_firmware: 
compat.linuxkpi.drm_drm_fbdev_overalloc: 100
compat.linuxkpi.drm_fbdev_emulation: 1
compat.linuxkpi.drm_timestamp_precision_usec: 20
compat.linuxkpi.drm_vblankoffdelay: 5000
compat.linuxkpi.drm_poll: 1
compat.linuxkpi.drm_edid_fixup: 6
compat.linuxkpi.drm_debug: 0
compat.linuxkpi.drm_dp_aux_i2c_transfer_size: 16
compat.linuxkpi.drm_dp_aux_i2c_speed_khz: 10
 

olli@

Daemon
Developer

Reaction score: 1,262
Messages: 1,140

I have a small laptop ASUS EeePC 1215, with AMD Radeon 6310 video card.
So I have i386 system installed with vt console enabled:
/boot/loader.conf
Code:
kern.vty=vt
radeonkms_load="YES"
kern.vt.fb.VGA-1="1440x900"

It has a native internal LVDS resolution: 1024x600, but I need use it with external screen with resolution 1440x900. (In console, without X).
But when I connect LCD through VGA connector - it uses 1024x600 part of its screen. So as I understand it just mirrors output from LVDS. Also with laptop screen closed before system boot.
As far as I know, vt(4) does not support multiple screens with different resolutions (I’m sure someone will correct me if I’m wrong). You’ll have to install X11 in order to make use of your screens.
 
OP
goshanecr

goshanecr

Active Member

Reaction score: 33
Messages: 208

Olli@ , thanks for answer! Maybe I'm incorrectly describe my wishes. I try to change default output to VGA-1 from LVDS. So system need to use only external screen with it native resolution.
 

Mjölnir

Daemon

Reaction score: 1,510
Messages: 2,114

I have a small laptop ASUS EeePC 1215, with AMD Radeon 6310 video card.
So I have i386 system installed with vt console enabled:
/boot/loader.conf
Code:
kern.vty=vt
radeonkms_load="YES"
kern.vt.fb.VGA-1="1440x900"
AFAIK kern.vt.vty=vt is default, so you can omit that.
It has a native internal LVDS resolution: 1024x600, but I need use it with external screen with resolution 1440x900. (In console, without X).
But when I connect LCD through VGA connector - it uses 1024x600 part of its screen. So as I understand it just mirrors output from LVDS. Also with laptop screen closed before system boot. How can I switch LCD as primary screen or something similar to use external screen?
Look into the BIOS to set the boot screen to use an external monitor during boot & as the primary monitor. Whether the graphics unit can use two screens independently (not mirror) should be documented in the user manual or other technical doc for your laptop. If it does, this will only work under X11, like olli@ wrote. On the virtual console, they will always be mirrored, or only one be available and all others blank.

Also sysctl OID kern.vt.fb doesn't exists, sisnce I understand vt_fb backend which provides that oid's don't exists on i386, or I mistake?
It does exist, but it can be accessed (set) only at boot time via loader.conf(5) (or /boot/loader.conf.local)
So what I need to do?
From RTFM vt(4): To force the use of the external VGA (workaround for buggy BIOS), set hw.vga.acpi_ignore_no_vga="1". I recommend to try that 1st, without setting kern.vt.fb.default_mode but keep kern.vt.fb.modes.VGA-1="1440x900". Iff that does not solve the issue, set kern.vt.fb.default_mode="1440x900" only if your laptop uses the external monitor on boot.

EDIT Be shure the external monitor uses the VGA plug, if you use HDMI of couse you have to adopt that in loader.conf(5). fgrep \[drm\] /var/run/dmesg.boot tells you all available connectors.

Good luck!
 
OP
goshanecr

goshanecr

Active Member

Reaction score: 33
Messages: 208

AFAIK kern.vt.vty=vt is default, so you can omit that.

Look into the BIOS to set the boot screen to use an external monitor during boot & as the primary monitor. Whether the graphics unit can use two screens independently (not mirror) should be documented in the user manual or other technical doc for your laptop. If it does, this will only work under X11, like olli@ wrote. On the virtual console, they will always be mirrored, or only one be available and all others blank.


It does exist, but it can be accessed (set) only at boot time via loader.conf(5) (or /boot/loader.conf.local)

From RTFM vt(4): To force the use of the external VGA (workaround for buggy BIOS), set hw.vga.acpi_ignore_no_vga="1". I recommend to try that 1st, without setting kern.vt.fb.default_mode but keep kern.vt.fb.VGA-1="1440x900". Iff that does not solve the issue, set kern.vt.fb.default_mode="1440x900" only if your laptop uses the external monitor on boot.

Good luck!
kern.vt.fb.default_mode="1440x900" - helps me!
Many thanks! Works as I want :)
 

Mjölnir

Daemon

Reaction score: 1,510
Messages: 2,114

FYI: I edited my previous post. Watch out for bold text... Iff (with two F) usually means: "If (and only if)".
 
OP
goshanecr

goshanecr

Active Member

Reaction score: 33
Messages: 208

FYI: I edited my previous post. Watch out for bold text... Iff (with two F) usually means: "If (and only if)".
Yes, I see that notice. And with lines:
Code:
 hw.vga.acpi_ignore_no_vga="1"
kern.vt.fb.modes.VGA-1="1440x900"
it does not works with needed resolution. I understand that with
Code:
kern.vt.fb.default_mode="1440x900"
it switch all screens to that resolution and LVDS now (if I open it) shows only part of screen because resolution higher than it can show. But if it will be needed I can edit /boot/loader.conf in "blind" mode :)

Thanks again!
 

Mjölnir

Daemon

Reaction score: 1,510
Messages: 2,114

Great. Then feel free to mark the thread as "solved", to indicate to the next who have the same or similar issue that this thread includes a solution: On the 1st post, click "..." (far right) -> edit thread -> prefix -> select solved.
 
Top