📄 usage
字号:
CyBlaFB is a framebuffer driver for the Cyberblade/i1 graphics core integratedinto the VIA Apollo PLE133 (aka vt8601) south bridge. It is developed andtested using a VIA EPIA 5000 board.Cyblafb - compiled into the kernel or as a module?==================================================You might compile cyblafb either as a module or compile it permanently into thekernel.Unless you have a real reason to do so you should not compile both vesafb andcyblafb permanently into the kernel. It's possible and it helps during thedevelopement cycle, but it's useless and will at least block some otherwiseusefull memory for ordinary users.Selecting Modes=============== Startup Mode ============ First of all, you might use the "vga=???" boot parameter as it is documented in vesafb.txt and svga.txt. Cyblafb will detect the video mode selected and will use the geometry and timings found by inspecting the hardware registers. video=cyblafb vga=0x317 Alternatively you might use a combination of the mode, ref and bpp parameters. If you compiled the driver into the kernel, add something like this to the kernel command line: video=cyblafb:1280x1024,bpp=16,ref=50 ... If you compiled the driver as a module, the same mode would be selected by the following command: modprobe cyblafb mode=1280x1024 bpp=16 ref=50 ... None of the modes possible to select as startup modes are affected by the problems described at the end of the next subsection. Mode changes using fbset ======================== You might use fbset to change the video mode, see "man fbset". Cyblafb generally does assume that you know what you are doing. But it does some checks, especially those that are needed to prevent you from damaging your hardware. - only 8, 16, 24 and 32 bpp video modes are accepted - interlaced video modes are not accepted - double scan video modes are not accepted - if a flat panel is found, cyblafb does not allow you to program a resolution higher than the physical resolution of the flat panel monitor - cyblafb does not allow xres to differ from xres_virtual - cyblafb does not allow vclk to exceed 230 MHz. As 32 bpp and (currently) 24 bit modes use a doubled vclk internally, the dotclock limit as seen by fbset is 115 MHz for those modes and 230 MHz for 8 and 16 bpp modes. Any request that violates the rules given above will be ignored and fbset will return an error. If you program a virtual y resolution higher than the hardware limit, cyblafb will silently decrease that value to the highest possible value. Attempts to disable acceleration are ignored. Some video modes that should work do not work as expected. If you use the standard fb.modes, fbset 640x480-60 will program that mode, but you will see a vertical area, about two characters wide, with only much darker characters than the other characters on the screen. Cyblafb does allow that mode to be set, as it does not violate the official specifications. It would need a lot of code to reliably sort out all invalid modes, playing around with the margin values will give a valid mode quickly. And if cyblafb would detect such an invalid mode, should it silently alter the requested values or should it report an error? Both options have some pros and cons. As stated above, none of the startup modes are affected, and if you set verbosity to 1 or higher, cyblafb will print the fbset command that would be needed to program that mode using fbset.Other Parameters================crt don't autodetect, assume monitor connected to standard VGA connectorfp don't autodetect, assume flat panel display connected to flat panel monitor interfacenativex inform driver about native x resolution of flat panel monitor connected to special interface (should be autodetected)stretch stretch image to adapt low resolution modes to higer resolutions of flat panel monitors connected to special interfacecenter center image to adapt low resolution modes to higer resolutions of flat panel monitors connected to special interfacememsize use if autodetected memsize is wrong ... should never be necessarynopcirr disable PCI read retrynopciwr disable PCI write retrynopcirb disable PCI read burstsnopciwb disable PCI write burstsbpp bpp for specified modes valid values: 8 || 16 || 24 || 32ref refresh rate for specified mode valid values: 50 <= ref <= 85mode 640x480 or 800x600 or 1024x768 or 1280x1024 if not specified, the startup mode will be detected and used, so you might also use the vga=??? parameter described in vesafb.txt. If you do not specify a mode, bpp and ref parameters are ignored.verbosity 0 is the default, increase to at least 2 for every bug report!vesafb allows cyblafb to be loaded after vesafb has been loaded. See sections "Module unloading ...".Development hints=================It's much faster do compile a module and to load the new version afterunloading the old module than to compile a new kernel and to reboot. So if youtry to work on cyblafb, it might be a good idea to use cyblafb as a module.In real life, fast often means dangerous, and that's also the case here. Ifyou introduce a serious bug when cyblafb is compiled into the kernel, thekernel will lock or oops with a high probability before the file system ismounted, and the danger for your data is low. If you load a broken own versionof cyblafb on a running system, the danger for the integrity of the filesystem is much higher as you might need a hard reset afterwards. Decideyourself.Module unloading, the vfb method================================If you want to unload/reload cyblafb using the virtual framebuffer, you needto enable vfb support in the kernel first. After that, load the modules asshown below: modprobe vfb vfb_enable=1 modprobe fbcon modprobe cyblafb fbset -fb /dev/fb1 1280x1024-60 -vyres 2662 con2fb /dev/fb1 /dev/tty1 ...If you now made some changes to cyblafb and want to reload it, you might do itas show below: con2fb /dev/fb0 /dev/tty1 ... rmmod cyblafb modprobe cyblafb con2fb /dev/fb1 /dev/tty1 ...Of course, you might choose another mode, and most certainly you also want tomap some other /dev/tty* to the real framebuffer device. You might also chooseto compile fbcon as a kernel module or place it permanently in the kernel.I do not know of any way to unload fbcon, and fbcon will prevent theframebuffer device loaded first from unloading. [If there is a way, thenplease add a description here!]Module unloading, the vesafb method===================================Configure the kernel: <*> Support for frame buffer devices [*] VESA VGA graphics support <M> Cyberblade/i1 supportAdd e.g. "video=vesafb:ypan vga=0x307" to the kernel parameters. The ypanparameter is important, choose any vga parameter you like as long as it isa graphics mode.After booting, load cyblafb without any mode and bpp parameter and assigncyblafb to individual ttys using con2fb, e.g.: modprobe cyblafb vesafb=1 con2fb /dev/fb1 /dev/tty1Unloading cyblafb works without problems after you assign vesafb to allttys again, e.g.: con2fb /dev/fb0 /dev/tty1 rmmod cyblafb
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -