linuxϵÄframebufferµÄÀý×Ó(ת)
Àý×ÓʵÏÖÁËÖ±½ÓдÆÁµÄ¹¦ÄÜ£¬¼´°ÑÆÁÄ»Çå¿Õ£¨±äºÚ£©£¬³ÌÐòµÄÁ÷³Ì´óÖÂΪ£º´ò¿ªÒ»¸öFrameBufferÉ豸£»Í¨¹ýmmapµ÷ÓðÑÏÔ¿¨µÄÎïÀíÄÚ´æ¿Õ¼äÓ³Éäµ½Óû§¿Õ¼ä£»Í¨¹ýÓ³Éä¹ØÏµÖ±½ÓдÄÚ´æ¡£
Í·Îļþ
////////////////////////////////////////
///////////// fbtools.h ////////////////
////////////////////////////////////////
#ifndef _FBTOOLS_H_
#define _FBTOOLS_H_
#include <linux/fb.h>
//a framebuffer device structure;
typedef struct fbdev
{
int fb;
unsigned long fb_mem_offset;
unsigned long fb_mem;
struct fb_fix_screeninfo fb_fix;
struct fb_var_screeninfo fb_var;
char dev[20];
} FBDEV, *PFBDEV;
//open & init a frame buffer
//to use this function,
//you must set FBDEV.dev="/dev/fb0"
//or "/dev/fbX"
//it's your frame buffer.
int fb_open(PFBDEV pFbdev);
//close a frame buffer
int fb_close(PFBDEV pFbdev);
//get display depth
int get_display_depth(PFBDEV pFbdev);
//full screen clear
void fb_memset(void *addr, int c, size_t len);
#endif
²âÊÔÎļþ£¬ÆäÖÐÉîÑÕÉ«µÄ×¢ÊͲ¿·ÖΪÔÚÎÒ»úÆ÷ÉϲâµÃµÄ½á¹û
///////////////////////////////////////////
/////////////// fbtools.c ///////////////
///////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <asm/page.h>
#include "fbtools.h"
#define TRUE 1
#define FALSE 0
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)<(y)?(x):(y))
//open & init a frame buffer
int fb_open(PFBDEV pFbdev)
{
pFbdev->fb = open(pFbdev->dev, O_RDWR);// pFbdev->fb==3
if(pFbdev->fb < 0)
{
printf("Error opening %s: %m. Check kernel config
", pFbdev->dev);
return FALSE;
}
if (-1 == ioctl(pFbdev->fb,FBIOGET_VSCREENINFO,&(pFbdev->fb_var)))
{
printf("ioctl FBIOGET_VSCRE
Ïà¹ØÎĵµ£º
Ê×ÏÈ£¬¼Çסvi±à¼Æ÷µÄÁ½¸öģʽ£º1¡¢ÃüÁîģʽ
2¡¢±à¼Ä£Ê½
¡£
¡¡
¡¡ÔÚÒ»¸öUNIX/LinuxµÄshellÃüÁî»òÕßÒ»¸öÒÔб¸Ü£¨/£©¡¢Îʺţ¨?£©»òðºÅ£¨:£©¿ªÊ¼µÄviÃüÁîºóÃæÓû§ÐèÒª¼üÈë»Ø³µ¼ü£¬¶øÒªÇл»µ½viÃüÁî
ģʽÐèÒª°´Esc¼ü¡£×¢Ò⣬ÒÔðºÅ£¨:£©»òÕßб¸Ü£¨/£© ¿ªÊ¼µÄviÃüÁî»áÏÔʾÔÚÆÁÄ»µ×²¿£¬µ«ÆäËûÃüÁî¶¼²»»áÏÔʾÔÚÆÁÄ»É ......
°²×°Æª
Ê×ÏÈ»ñÈ¡ÒÔÏÂÈý¸ö°²×°°ü £¨°²×°²»³É¹¦ÓÐÌáʾ £¬¾ÍÊÇbind-libs-9.2.4-16.EL4±»bind-9.2.4-16.EL4ÒÀÀµ£©
bind-libs-9.2.4-16.EL4.rpm
bind-9.2.4-16.EL4.rpm
bind-devel-9.2.4-16.EL4.rpm
°²×°Íê³Éͨ¹ýÃüÁî²é¿´
rpm -qa|grep bind
½á¹ûÈçÏÂËùʾ¾Í°²×°³É¹¦£¡
bind-libs-9.2.4-16.EL4
bind-9.2.4-16.EL4
bind- ......
½«Ó¦ÓóÌÐò¼Óµ½ÎļþϵͳÖдò°üºóÒ»ÆðÏÂÔØ·½·¨×ܽáÈçÏ£º
¼ÙÉèramdisk.gz´æ·ÅÔÚ/home/cvtech/jx2410/root/ÏÂÃæ£¬Ôò²Ù×÷ÈçÏ£º
$cd /home/cvtech/jx2410/root/
$mkdir rd
$gunzip ramdisk.gz
ÉÏÊö²Ù×÷ºóÒѽ«ramdisk.gz½âѹ³ÉramdiskϵͳӳÏñÎļþ¡£
$mount -o loop ramdisk rd/
$cd rd/
ÆäÖÐÃüÁîmountµÄ-o²ÎÊýloop±íʾ ......
1. /proc/sys/net/core/rmem_max — ×î´óµÄTCPÊý¾Ý½ÓÊÕ»º³å
2. /proc/sys/net/core/wmem_max — ×î´óµÄTCPÊý¾Ý·¢ËÍ»º³å
3. /proc/sys/net/ipv4/tcp_timestamps — ʱ¼ä´ÁÔÚ(Çë²Î¿¼RFC 1323)TCPµÄ°üÍ·Ôö¼Ó12¸ö×Ö½Ú
4. /proc/sys/net/ipv4/tcp_sack — ÓÐÑ¡ÔñµÄÓ¦´ð
5. /proc/sys/net/ipv4/tcp_windo ......
Linuxϵͳ³öÏÖÎÊÌâʱ£¬ÎÒÃDz»½öÐèÒª²é¿´ÏµÍ³ÈÕÖ¾ÐÅÏ¢£¬¶øÇÒ»¹ÒªÊ¹ÓôóÁ¿µÄÐÔÄܼà²â¹¤¾ßÀ´ÅжϾ¿¾¹ÊÇÄÄÒ»²¿·Ö£¨ÄÚ´æ¡¢CPU¡¢Ó²ÅÌ……£©³öÁËÎÊÌâ¡£ÔÚLinuxϵͳÖУ¬ËùÓеÄÔËÐвÎÊý±£´æÔÚÐéÄâĿ¼/procÖУ¬»»¾ä»°Ëµ£¬ÎÒÃÇʹÓõÄÐÔÄÜ¼à¿Ø¹¤¾ßÈ¡µ½µÄÊý¾Ýֵʵ¼ÊÉϾÍÊÇÔ´×ÔÓÚÕâ¸öĿ¼£¬µ±Éæ¼°µ½ÏµÍ³¸ß¹Àʱ£¬ÎÒÃǾͿÉÒÔÐÞ ......