Menu Home

确定wifi网卡是否支持hostap

确定wifi网卡是否支持hostap 对老网卡(没有使用mac80211驱动的) ethtool  -i  wlan0 sudo iwconfig wlan0  mode  master 输出: Error for wireless request “Set Mode” (8B06) : SET failed on device wlan0 ; Invalid argument. 表示不支持 对新网卡(使用mac80211驱动的) iw list  |  grep Supported   输出: * AP 表示支持hostap

iptables 代理上网

iptables 代理上网 OS : opensuse 11.4 需求 eth0 (出外网) : 192.168.1.105   gataway : 192.168.1.1 wlan0 : 192.168.8.1 解决方法 echo 1 > /proc/sys/net/ipv4/ip_forward iptabes -t nat -A POSTROUTING -o eth0 -s 192.168.80/24 -j SNAT –to 192.168.1.105

移植tslib到Android

移植tslib到Android 环境变量 export env export TSLIB_TSEVENTTYPE=INPUT export TSLIB_TSDEVICE=/dev/input/event4 export TSLIB_CALIBFILE=/system/etc/pointercal export TSLIB_CONFFILE=/system/etc/ts.conf export TSLIB_PLUGINDIR=/system/lib/ts/plugs export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_CONSOLEDEVICE=none export TSTS_INFO_FILE=/sys/devices/virtual/input/input1/uevent export QWS_MOUSE_PROTO=tslib:/dev/input/event4 交叉编译过程中的问题 arm-eabi/bin/ld: crt0.o: No such file: No such file or directory 解决:configure加 CFLAGS=”-nostdlib” 我的Android.mk ,测试通过 LOCAL_PATH:=$(call my-dir) include $(CLEAR_VARS) TSLIB_PLUGINDIR:=/system/lib/ts/plugins LOCAL_SRC_FILES:=\ src/ts_attach.c\ src/ts_close.c \ src/ts_config.c \ src/ts_error.c \ […]

ubuntu升级nvidia driver

buntu升级nvidia driver ubuntu升级nvidia显卡驱动分以下几步完成: 删除旧版本驱动: apt-get – -purge remove nvidia-* 删除系统自带的显卡驱动: apt-get – -purge remove xserver-xorg-video-nouveau 停止ubuntu的桌面环境: /etc/init.d/lightdm stop 切换到字符终端台 安装下载的新版nvidia驱动 重启桌面环境: /etc/init.d/lightdm start

MAC OS下编译OPENGL

MAC OS下编译OPENGL 包含头文件 #include <gl.h> –> #include <OpenGL/gl.h> #include <glu.h> –> #include <OpenGL/glu.h> #include <glut.h> –> #include <GLUT/glut.h> 编译命令 gcc -framework GLUT -framework OpenGL -framework Cocoa test.c -o test XCode下导人 /System/Library/Frameworks/OpenGL.framework /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/GLUT.framework

有趣的编程题

有趣的编程题 问题:下面这段代码的输出是什么? int func(int x) { int countx = 0; while(x) { countx++; x = x&(x-1); } return countx; } 假定x = 9999 10011100001111 答案: 8 思路: 将x转化为2进制,看含有的1的个数。 注: 每执行一次x = x&(x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。

FFMPEG + SDL音频播放分析

抽象流程: 设置SDL的音频参数 —-> 打开声音设备,播放静音 —-> ffmpeg读取音频流中数据放入队列 —-> SDL调用用户设置的函数来获取音频数据 —-> 播放音频 SDL内部维护了一个buffer来存放解码后的数据,这个buffer中的数据来源是我们注册的回调函数(audio_callback),audio_callback调用audio_decode_frame来做具体的音频解码工作,需要引起注意的是:从流中读取出的一个音频包(avpacket)可能含有多个音频桢(avframe),所以需要多次调用avcodec_decode_audio4来完成整个包的解码,解码出来的数据存放在我们自己的缓冲中(audio_buf2)。SDL每一次回调都会引起数据从audio_buf2拷贝到SDL内部缓冲区,当audio_buf2中的数据大于SDL的缓冲区大小时,需要分多次拷贝。 关键实现: main()函数 int main(int argc, char **argv){ SDL_Event event; //SDL事件变量 VideoState *is; // 纪录视频及解码器等信息的大结构体 is = (VideoState*) av_mallocz(sizeof(VideoState)); if(argc < 2){ fprintf(stderr, “Usage: play <file>\n”); exit(1); } av_register_all(); //注册所有ffmpeg的解码器 /* 初始化SDL,这里只实用了AUDIO,如果有视频,好需要SDL_INIT_VIDEO等等 */ if(SDL_Init(SDL_INIT_AUDIO)){ fprintf(stderr, “Count not initialize SDL – […]

jpeg转换OpenGL Texture

jpeg转换OpenGL Texture #include <stdio.h> #include <unistd.h> #include <jpeglib.h> #include <stdlib.h> #include <GL/gl.h> #include <GL/glut.h> void LoadJpgTextureGL(char *file) { FILE *jpegFile; int sizebuf; unsigned char* buffer; unsigned char* texturebuf; struct jpeg_decompress_struct cinfo; struct jpeg_error_mgr jerr; cinfo.err = jpeg_std_error(&jerr); jpeg_create_decompress(&cinfo); if((jpegfile = fopen(file,”rb”))==NULL) { perror(“fopen jpeg”); return; } jpeg_stdio_src(&cinfo,jpefile); jpeg_read_header(&cinfo,TRUE); jpeg_start_decompress(&cinfo); sizebuf […]

png转换OpenGL Texture

bool loadPngImage(char *name, int *outWidth, int *outHeight, bool *outHasAlpha, GLubyte **outData) { png_structp png_ptr; png_infop info_ptr; unsigned int sig_read = false; int color_type, interlace_type; FILE *fp; printf(“png file : %s\n”, name); if((fp = fopen(name, “rb”)) == NULL) { printf(“%s: open png file error: \n”, __FILE__); perror(“open filed:\n”); return false; } […]