桌面应用——宽屏笔记本 915GM芯片组 Linux的设置

2016-01-29 18:11 15 1 收藏

桌面应用——宽屏笔记本 915GM芯片组 Linux的设置,桌面应用——宽屏笔记本,915GM芯片组,Linux的设置

【 tulaoshi.com - Linux 】


为宽屏的分辩率率一和普通屏的不一样,如:1280*768,一些厂家的linux还不支持这些非传统标准的分辨率! 这几天天天在老外的论坛里转,终于第一时间看到for 915GM的video BIOS修改程序,可以直接修改内存里有mode line叁数,让系统支持宽屏显示! 另也找到了,最新的915GM的驱动,经过第三方修改的(奇怪的是Intel提供的不能正常工作,第三方的倒是可以,有了它才能真正发挥915GM的显示能力啊,那个vesa的驱动,太慢了,呵呵) 因这里不好上传附件,只能把原码贴上来了,是那个支持宽屏的修正程序,自己编译一下,如下: #gcc 915resolution.c -o 915resolution 然后运行 915resolution 5c 1280*768 然后写一脚本,让系统每次启动自动运行!呵呵! 915GM的驱动,大了点,不好贴上来,需要的朋友加我QQ,传给你! #include #include #include #define __USE_GNU #include #include #include #include #include #include #define NEW(a) ((a *)(calloc(1, sizeof(a)))) #define FREE(a) (free(a)) #define VBIOS_START 0xc0000 #define VBIOS_SIZE 0x10000 #define VBIOS_FILE "/dev/mem" #define VBIOS_OFFSET_IN_FILE VBIOS_START #define CFG_SIGNATURE "BIOS_DATA_BLOCK " #define FALSE 0 #define TRUE 1 typedef unsigned char * address; typedef unsigned char boolean;
typedef struct { unsigned char mode; unsigned char bits_per_pixel; unsigned short resolution; unsigned char unknown; } __attribute__((packed)) vbios_mode; typedef struct { unsigned char unknow1[2]; unsigned char x1; unsigned char unknow2; unsigned char x2; unsigned char y1; unsigned char unknow3; unsigned char y2; } __attribute__((packed)) vbios_resolution; typedef struct { int bios_fd; address bios_ptr; address cnfg_ptr; vbios_mode * mode_table; int mode_table_size; boolean unlocked; } vbios_map; void initialize_system(); char * get_chipset(void); vbios_map * open_vbios(); void close_vbios(vbios_map * map); void unlock_vbios(vbios_map * map); void relock_vbios(vbios_map * map); void initialize_system(void) { if (iopl(3) < 0) { perror("Unable to obtain the proper IO permissions"); exit(2); } } static unsigned int get_chipset_id(void) { outl(0x80000000, 0xcf8); return inl(0xcfc); } static char chipset_buffer[256]; char * get_chipset(void) { unsigned int id; char * name; id = get_chipset_id(); switch (id) { case 0x25608086: name = "845G"; break; case 0x35808086: name = "855GM"; break; case 0x25708086: name = "865G"; break; case 0x25908086: name = "915GM"; break; default: sprintf(chipset_buffer, "Unknown (0x%08x)", id); name = chipset_buffer; break; } return name; } vbios_map * open_vbios() { vbios_map * map = NEW(vbios_map); /* * Map the video bios to memory */ map->bios_fd = open(VBIOS_FILE, O_RDWR); if(map->bios_fd < 0) { perror("Unable to open the BIOS file"); exit(2); } map->bios_ptr = mmap((void *)VBIOS_START, VBIOS_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, map->bios_fd, VBIOS_OFFSET_IN_FILE); if (map->bios_ptr == NULL) { fprintf(stderr, "Cannot mmap() the video BIOSn"); close(map->bios_fd); exit(2); } /* * figure out where the configuration information is */ map->cnfg_ptr = memmem(map->bios_ptr, VBIOS_SIZE, CFG_SIGNATURE, strlen(CFG_SIGNATURE)); if (map->cnfg_ptr == NULL) { fprintf(stderr, "Couldn't find the configuration area in the VBIOS!n"); close_vbios(map); exit(2); } /* * Figure out where the mode table is and which type of bios we have */ { address p = map->bios_ptr; address limit = map->bios_ptr + VBIOS_SIZE - (3 * sizeof(vbios_mode)); while (p < limit && map->mode_table == 0) { vbios_mode * mode_ptr = (vbios_mode *) p; if (((mode_ptr[0].mode & 0xf0) == 0x30) && ((mode_ptr[1].mode & 0xf0) == 0x30) && ((mode_ptr[2].mode & 0xf0) == 0x30) && ((mode_ptr[3].mode & 0xf0) == 0x30)) { map->mode_table = mode_ptr; } p++; } if (map->mode_table == 0) { fprintf(stderr, "Unable to locate mode table!n"); close_vbios(map); exit(2); } } /* * Determine size of mode table */ { vbios_mode * mode_ptr = map->mode_table; while (mode_ptr->mode != 0xff) { map->mode_table_size++; mode_ptr++; } } return map; } void close_vbios(vbios_map * map) { assert(!map->unlocked); if(map->bios_ptr == NULL) { fprintf(stderr, "

来源:http://www.tulaoshi.com/n/20160129/1504762.html

延伸阅读
标签: 密码
点击开始 找到控制面板,在(开始)里面。 打开对话框 打开以后,点击“系统与安全”。 点击用户帐户和家庭安全 打开新的对话框,在左侧例表中打开箭头所示“用户账户和家庭安全”。 打开对话框 在用户帐户和家庭安全对话框中,点击“用户帐户”。 更改密码 点击:“更改密码”。 完成操作...
标签: 电脑 网络
一、无线网卡驱动是否安装 桌面右击“我的电脑”,点击“管理”菜单进入,进入计算机管理界面,打开“系统工具”菜单,双击进入“设备管理器”界面 二、查看无线网卡安装是否存在问题 在“网络适配器”下,可以看到您现在安装或内置的无线网卡状态;若您的无线网卡前有“黄色的感叹号”,则说明这台电脑的无线网卡安装有问...
标签: 电脑入门
比如我们需要在笔记本上再接一个显示,该如何实现呢?首先是将视频线将电视与笔记本的VGA接口连接,当然如果是高清电视的话,也可以连接笔记本的高清接口,之后打开外设显示器设备。设置方法如下(这里以WIN7系统为例,如今XP系统已经落伍了,本文不涉及XP系统介绍,不过也类似,基本会 WIN7、XP系统也就会了): 首先进入笔记本电脑桌面,然后...
标签: windows系统
笔记本怎么设置双屏显示 Win8.1双屏显示设置教程   昨天晚上老妈要用我的笔记本看电影,但是我正在玩儿游戏,这时候突然想起我家还有个显示器,所以拿过来用vga线接上,调一下分辨率,但是显示的一模一样怎么搞?这时候想到要设置笔记本双屏显示,那么笔记本双屏显示怎么设置?图老师小编发现Win8.1笔记本设置双屏很简单,以下是具体的...
1、外壳的维护 笔记本电脑的外壳通常相当光滑,一些采用铝合金属外壳设计的就更容易维护了,通常只要一块绵布便可以使外壳一尘不染,需要注意的是,在移动的过程中,一定要使用独立的皮包或是布包将笔记本电脑装好,免得在途中划损外壳,在工作的时候,亦不要将笔记本电脑放到粗糙的桌面上,以保护外壳的光亮常新,建议可以使用...

经验教程

38

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部