免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5009 | 回复: 3

[FreeBSD] vidcontrol -i mode 输出的结果是什么意思 [复制链接]

论坛徽章:
0
发表于 2014-07-27 16:08 |显示全部楼层
本帖最后由 hongshaohu 于 2014-07-27 16:08 编辑

1, 请问vidcontrol -i mode输出结果中的 type有T和G两种,这表示什么意思?
2,第二幅截图中,屏幕都是2014*768分辨率,但是它们有什么区别?size中的C,P,D都表示什么意思?
1.png
2.png

论坛徽章:
0
发表于 2014-07-27 21:55 |显示全部楼层
回复 1# hongshaohu

具体你可以看看下面的代码,和上面的参数输出对应,具体含义我不是很清楚,得你好好研究一番了:
  1. /*********************************************************
  2. * Show video mode information.

  3.    相关宏常量可以在"/usr/include/sys/fbio.h"里面看看。
  4. */
  5.    949       
  6.    950        static void
  7.    951        show_mode_info(void)
  8.    952        {
  9.    953                char buf[80];
  10.    954                struct video_info _info;
  11.    955                int c;
  12.    956                int mm;
  13.    957                int mode;
  14.    958       
  15.    959                printf("    mode#     flags   type    size       "
  16.    960                       "font      window      linear buffer\n");
  17.    961                printf("---------------------------------------"
  18.    962                       "---------------------------------------\n");
  19.    963       
  20.    964                for (mode = 0; mode <= M_VESA_MODE_MAX; ++mode) {
  21.    965                        _info.vi_mode = mode;
  22.    966                        if (ioctl(0, CONS_MODEINFO, &_info))
  23.    967                                continue;
  24.    968                        if (_info.vi_mode != mode)
  25.    969                                continue;
  26.    970       
  27.    971                        printf("%3d (0x%03x)", mode, mode);
  28.    972                            printf(" 0x%08x", _info.vi_flags);
  29.    973                        if (_info.vi_flags & V_INFO_GRAPHICS) {
  30.    974                                c = 'G';
  31.    975       
  32.    976                                if (_info.vi_mem_model == V_INFO_MM_PLANAR)
  33.    977                                        snprintf(buf, sizeof(buf), "%dx%dx%d %d",
  34.    978                                            _info.vi_width, _info.vi_height,
  35.    979                                            _info.vi_depth, _info.vi_planes);
  36.    980                                else {
  37.    981                                        switch (_info.vi_mem_model) {
  38.    982                                        case V_INFO_MM_PACKED:
  39.    983                                                mm = 'P';
  40.    984                                                break;
  41.    985                                        case V_INFO_MM_DIRECT:
  42.    986                                                mm = 'D';
  43.    987                                                break;
  44.    988                                        case V_INFO_MM_CGA:
  45.    989                                                mm = 'C';
  46.    990                                                break;
  47.    991                                        case V_INFO_MM_HGC:
  48.    992                                                mm = 'H';
  49.    993                                                break;
  50.    994                                        case V_INFO_MM_VGAX:
  51.    995                                                mm = 'V';
  52.    996                                                break;
  53.    997                                        default:
  54.    998                                                mm = ' ';
  55.    999                                                break;
  56.   1000                                        }
  57.   1001                                        snprintf(buf, sizeof(buf), "%dx%dx%d %c",
  58.   1002                                            _info.vi_width, _info.vi_height,
  59.   1003                                            _info.vi_depth, mm);
  60.   1004                                }
  61.   1005                        } else {
  62.   1006                                c = 'T';
  63.   1007       
  64.   1008                                snprintf(buf, sizeof(buf), "%dx%d",
  65.   1009                                         _info.vi_width, _info.vi_height);
  66.   1010                        }
  67.   1011       
  68.   1012                        printf(" %c %-15s", c, buf);
  69.   1013                        snprintf(buf, sizeof(buf), "%dx%d",
  70.   1014                                 _info.vi_cwidth, _info.vi_cheight);
  71.   1015                        printf(" %-5s", buf);
  72.   1016                            printf(" 0x%05zx %2dk %2dk",
  73.   1017                               _info.vi_window, (int)_info.vi_window_size/1024,
  74.   1018                               (int)_info.vi_window_gran/1024);
  75.   1019                            printf(" 0x%08zx %dk\n",
  76.   1020                               _info.vi_buffer, (int)_info.vi_buffer_size/1024);
  77.   1021                }
  78.   1022        }
复制代码

论坛徽章:
0
发表于 2014-07-28 12:10 |显示全部楼层
谢谢!!!

论坛徽章:
0
发表于 2014-07-28 17:32 |显示全部楼层
回复 1# hongshaohu


    T是文本模式,G是图形模式,以前要显示G模式,是要在内核参数里做2个修改的,但10开始不需要了。有了这个列表,可以用 vidcontrol MODE_xxxx对当前console进行设置
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP