135 lines
1.7 KiB
Text
135 lines
1.7 KiB
Text
# yaft (yet another framebuffer terminal)
|
|
|
|
## test environment
|
|
|
|
using qemu (i386, vga cirrus)
|
|
|
|
- FreeBSD 10.1
|
|
- OpenBSD 5.7
|
|
- NetBSD 6.1.5
|
|
|
|
## FreeBSD
|
|
|
|
### kernel rebuild
|
|
|
|
edit /usr/src/sys/i386/conf/GENERIC
|
|
|
|
~~~
|
|
options VESA
|
|
options SC_PIXEL_MODE
|
|
~~~
|
|
|
|
build
|
|
|
|
~~~
|
|
# cd /usr/src
|
|
# make buildkernel
|
|
# make installkernel
|
|
~~~
|
|
|
|
### module load (no kernel rebuild)
|
|
|
|
~~~
|
|
# kldload vesa
|
|
# echo "vesa_load=\"YES\"" >> /boot/loader.conf
|
|
~~~
|
|
|
|
### vesa mode
|
|
|
|
check available mode
|
|
|
|
~~~
|
|
# vidcontrol -i mode
|
|
~~~
|
|
|
|
change mode
|
|
|
|
~~~
|
|
# vidcontrol MODE_XXX
|
|
# echo "allscreens_flags=\"MODE_XXX\"" >> /etc/rc.conf
|
|
~~~
|
|
|
|
### keyrepeat
|
|
|
|
~~~
|
|
# kbdcontrol -r fast
|
|
~~~
|
|
|
|
### write-combine
|
|
|
|
~~~
|
|
# memcontrol set -b 0xe0000000 -l 0x10000000 -o SVGA write-combine
|
|
~~~
|
|
|
|
## NetBSD
|
|
|
|
### vesa mode
|
|
|
|
check available mode
|
|
|
|
~~~
|
|
(boot prompt)
|
|
> vesa list
|
|
~~~
|
|
|
|
edit /boot.cfg
|
|
|
|
~~~
|
|
menu=Boot normally:rndseed /var/db/entropy-file;vesa 1024x768x32;boot netbsd
|
|
~~~
|
|
|
|
### key repeat
|
|
|
|
~~~
|
|
# wsconsctl -w repeat.del1=200 repeat.deln=50
|
|
~~~
|
|
|
|
~~~
|
|
# echo "setvar repeat.del1=200" >> /etc/wscons.conf
|
|
# echo "setvar repeat.deln=50" >> /etc/wscons.conf
|
|
~~~
|
|
|
|
## OpenBSD
|
|
|
|
### kernel
|
|
|
|
- patch http://mlterm.sf.net/openbsd-5.3-fixvesa.patch
|
|
|
|
edit /usr/src/sys/arch/i386/conf/GENERIC
|
|
|
|
~~~
|
|
vesabios0 at mainbus?
|
|
option VESAFB
|
|
~~~
|
|
|
|
build
|
|
|
|
~~~
|
|
# cd /usr/src/sys/arch/i386/compile/GENERIC
|
|
# make clean && make depend && make
|
|
# make install
|
|
# reboot
|
|
~~~
|
|
|
|
### change vesa mode
|
|
|
|
edit yaft/fb/openbsd.h
|
|
|
|
~~~
|
|
enum {
|
|
FB_WIDTH = 640,
|
|
FB_HEIGHT = 480,
|
|
FB_DEPTH = 8,
|
|
};
|
|
~~~
|
|
|
|
### key repeat
|
|
|
|
~~~
|
|
# wsconsctl -w repeat.del1=200 repeat.deln=50
|
|
~~~
|
|
|
|
~~~
|
|
# echo "setvar repeat.del1=200" >> /etc/wscons.conf
|
|
# echo "setvar repeat.deln=50" >> /etc/wscons.conf
|
|
~~~
|