很多人想学习gui,苦于资料少,没有条件~经过多方探求,终于走通了一条道路,记录如下~
1.下载代码:http://www.lguitech.com/download/index.html
页面上的是0.3.0版本的,就用这个~
2. 解压lgui
1). 拷贝lgui.tgz 到/usr/local目录下
2). 执行如下命令:
tar xzvf lgui.tgz
3. 打开fc的framebuffer,默认是关着的,打开方法如下:
打开 /etc/grub.conf,在kernel一行的最后加:vga=0x0317 fb:on,注意加个空格后在加这句话~意思打 开framebuffer,vga模式的0x317~需要重启下~
显示模式对照表:
-------------------------------------------------------
640x480 800x600 1024x768 1280x1024
8位色 0x301 0x303 0x305 0x307
15位色 0x310 0x313 0x316 0x319
16位色 0x311 0x314 0x317 0x31A
24位色 0x312 0x315 0x318 0x31B
-------------------------------------------------------
4.设置lgui执行的环境变量:
修改.bashrc文件:打开 /root/.bashrc,在里边最后新起一行加入:
export LD_LIBRARY_PATH=/usr/local/lgui/lib:$LD_LIBRARY_PATH
export LGUI_HOME=/usr/local/lgui
5.修改部分代码:
打开 source/ial 下,mouse_ps2.c文件,其中:
原来的代码是
int
PS2_Open(void)
{
/* Make sure the mouse is enabled and in a sane state */
unsigned char initdata_ps2[] =
{ PS2_DEFAULT, PS2_SCALE11, PS2_ENABLE };
//mouse_fd = open (PS2_DEV_FILE, O_RDONLY | O_NOCTTY | O_NONBLOCK);
mouse_fd = open (PS2_DEV_FILE, O_RDONLY | O_NOCTTY);
if (mouse_fd < 0)
return -1;
write(mouse_fd, initdata_ps2, sizeof(initdata_ps2));
return mouse_fd;
}
修改绿色的2处,改为:
mouse_fd = open (PS2_DEV_FILE, O_RDONLY | O_NOCTTY);
改成 mouse_fd = open (PS2_DEV_FILE, O_RDWR | O_NOCTTY);
unsigned char initdata_ps2[] =
{ PS2_DEFAULT, PS2_SCALE11, PS2_ENABLE };
改成unsigned char initdata_ps2[] =
{ PS2_RESET, PS2_SCALE11, PS2_ENABLE };
打开,mouse_ps2.h
把鼠标设备文件改成,mice,即#define PS2_DEV_FILE "/dev/mice"
6.编译lgui
由于是没有编译的,所以要编译,看状态就知道有没有编译成功~
进入source文件夹,执行make,或者sudo make,编译成功~
7.关闭gpm鼠标
默认情况下,字符模式用的是gpm鼠标,避免干扰,需要关掉,方法如下:
yum remove gpm,之后该y的y,该n的n,保证移除后不受干扰
8.进入字符模式,测试lgui
随便进入哪个字符模式,ctrl+alt+fx,进入 cd /usr/local/lgui/bin,
执行 ./lgui,看下效果,怎么样?~看到了吧~
9.注意
许多其他的问题可以再common.h中,找到答案,例如出现莫名其妙的段错误是由于font文件路径错误造成的,出现问题只要gdb跟踪即可,gdb相当强大