由于我的电脑是NVIDIA的显卡,所以在这里我们只介绍NVIDIA的显卡驱动的安装方法
首先我们要做一些准备工作,以便在装好显卡驱动后不会发生进不了桌面的杯具!
1.
阻止kernel加载nouveau模块
分类: Linux
-
Fedora 安装 nVIDIA显卡
-
Fedora下安装谷歌浏览器Google Chrome
以前找了好久,Fedora 下的支持一直不好,安装总是很麻烦,要取消检查依靠,虽然可以装,但是效率确实不如Ubuntu下的Fedora.现在又重新安装了Fedora,师傅的建议,说Ubuntu不适合做开发,更不是合作服务器,不然就和XP作服务器一样可笑。我换了Fedora,运行我的服务器程序,反复的刷新,服务器程序没有关掉,证明Ubuntu是垃圾。。
-
我的WordPress开张了
163的博客实在是不太好用, 在千辛万苦之下, 成功自己搭建一个LAMP(Linux Apache MySQL PHP), 这是传统地说法, 要我说应该是LAMPW, 因为我是用的是WordPress. 在报废了3个Linux系统之后, 第四个Fedora 14成功的将Apache MySQL PHP 都安装成功, 并且将WordPress给装好了, 只是这个机子(Fedora 14)的配置不怎么样(CPU: AMD 3200+, 内存: 512M, 硬盘:80G), 网络也不怎么样, 2MB的, 接了6台电脑, 不过暂时用着还是不错,, 这几天想办法把163的博客搬过来..
记得我把AMP半个小时就在Windows下装好了, Linux咋这么麻烦呢? 技术要求高些啊~~我要学得还很多很多..
经过几次的失败, 我也有了不少经验了, 哈哈, Linux的经验就是这么慢慢来的. 不过要说的话, 从编译的方式我还弄不好LAMP, 是直接使用的yum install, 编译真的很痛苦….
不过真的可以休息一阵子了, NOIP复赛即将开始, 我要全力备战It.. By the way, 这WordPress还不太会用, 有空还是琢磨下.
-
Linux 内核中的巧妙 — 用宏定义函数
在内核初始化的时候,调用的fork是一个用宏定义的函数,什么意思呢:
static inline _syscall0(int,fork)
这样就定义了一个函数int fork(void) ,至于_syscall0的代码,看下面:
#define _syscall0(type,name) \
type name(void) \
{ \
long res; \
asm volatile ("int $0x80" \
: "=a" (res) \
: "0" (_NR##name)); \
if (res >= 0) \
return (type) res; \
errno = -__res; \
return –1; \
} -
[转]mingw,cygwin,gnuwin32 的详细区别.
- MinGW:Minimalist GNU for Windows
- 安装MinGW
- 无配置
- 安装MSYS及MSYSDTK
- 编辑了/MSYS.bat
- 加入chdir,使可以在目录外运行。
- 通过命令行参数%~dp0得到MSYS的路径。
- 删除其他命令行参数相关的动作。
- 将命令行参数%~dp1设置为环境变量MSYSINITDIR以备Shell初始目录之用。
- 将默认的Shell从rxvt改为sh。
- 增加了/LoadMSYS.bat及/LoadMSYS.reg
- 作用:扩展命令行参数为完全路径名,将参数传送给MSYS.BAT。
- 将LoadMSYS.bat放在系统PATH下面,使在任何目录下都可以调用。
- 编辑注册表ROOT下面的*项和Folder项,以支持鼠标右健直接调用。
- 导出注册表项为LoadMSYS.reg,以备用。
- 编辑了/etc/fstab
- 设置MinGW目录的Mount Point为/mingw
- 设置MINGW/INFO的Mount Point为/info
- 创建COMMAND目录,将Mount Point设为/usr/local/bin,以存放用MinGW Gcc编译的程序。
- 设置了其他一些常用目录的Mount Point。
- 编辑了/etc/profile
- export PATH:加入/Mingw/bin。
- export INFOPATH:目录用;号隔开,作info搜索之用。
- 如果$MSYSINITDIR不为空,则改变为初始目录(CD之)。
- 编辑了$HOME/.vimrc
- 配置复制自win32版的gvim。
- 加入syntax on:语法高亮。
- 加入set nu:显示行号。
- 加入set guifont:设置字体(console版本无效)
- 编辑了/MSYS.bat
- 总结
- MinGW:许多unix源码,很难在不修改的情况下直接编译
- MinGW:作为windows native programe(不依赖emulation layer),可以胜任
- MSYS:对宽字符的支持较差
- FREEWARE
- 安装MinGW
- Cygwin:GNU+Cygnus+Windows
- 下载时只选择必需的程序包
- 与MSYS近似的许多配置
- 编辑了/etc/bash.bashrc
- export PATH
- export INFOPATH
- 与MinGW不同,目录间用:号隔开
- export MANPATH
- 设置常用目录的Mount Point
- Cygwin无/etc/fstab文件,Mount Point通过命令行mount命令设置,设置在下次重启之后仍有效。
- 编译了新版本的Gcc及Gdb
- 编译了新版本的make
- 编译了termcap
- 编译了less
- 总结
- 大多数unix源码都可以顺利编译
- 对宽字符集支持较好
- 编译的程序大多数依赖CygDLL
- 非常丰富的程序库
- FREEWARE
- GnuWin32:Win32 ports of tools with a GNU or similar open source license
- termcap
- 在MSYS/MinGW环境下编译成功
- less
- 需要termcap
- 在MSYS/MinGw环境下无法编译
- 提示找不到langinfo.h
- 下载了libgw32c的lib版,修改makefile,main.c,filename.c之后,编译成功,但运行时出现错误。
- 在Cygwin环境下编译成功
- 用VC97编译成功
- libgw32c
- 在MSYS/MinGw环境下无法编译
- 错误极多
- 在Cygwin环境下无法编译
- 错误极多
- 连接bin版某些程序可以编译
- 运行时出现错误
- 以编译less为例
- 运行时出现错误
- 在MSYS/MinGw环境下无法编译
- wget
- 用VC97编译成功
- 总结
- 源代码大多在MSYS/MinGW下无法成功编译
- 源代码对Microsoft VC友好
- 源代码对Cygwin/MinGW友好
- 作为独立的工具程式较有价值
- FREEWARE
- termcap
- 总结之总结
- 这两三天,加上以前几天,仿佛很忙。./configure,make,make install,make clean,make distclean,info XXX,上网看文档,下载源代码。归结起来,没做什么有价值的事。就算积累了一些经验。经验不外是记忆,记忆不外是先进先出,然后完了。所以做了以上一点记号。哎,大脑内存不断磨损,还是复制到外存贮器上安全一点,算是备份。
- MinGW:Minimalist GNU for Windows
-
Ubuntu WebQQ桌面化
转自Ubuntu中文官方..
桌面化webqq可实现将webqq最小化到通知区域并且来消息时提示1.安装google chrome浏览器
2.安装alltray sudo apt-get install alltray
3.新建一个启动器,名称随便,命令为 “/usr/bin/alltray” -t 5 -s /opt/google/chrome/google-chrome –app=”http://web.qq.com“
4.若来消息不提示请参考会员wobu的文章 http://forum.ubuntu.org.cn/viewtopic.php?f=73&t=257749&start=0
-
Fedora 12 安装 unrar
[root@Zqynux yylogo]# yum -y install unrar已加载插件:axelget, fastestmirror, refresh-packagekitLoading mirror speeds from cached hostfilefedora: mirrors.163.comupdates: mirrors.163.com设置安装进程No package unrar available.无须任何处理[root@Zqynux yum.repos.d]# rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpmwarning: /var/tmp/rpm-tmp.OEJ6CN: Header V3 RSA/SHA256 signature: NOKEY, key ID 8fcff4daPreparing… ########################################### [100%]1:rpmfusion-free-release ########################################### [100%[root@Zqynux yum.repos.d]# su -c "rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm” Retrieving http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpmwarning: /var/tmp/rpm-tmp.m0szEk: Header V3 RSA/SHA256 signature: NOKEY, key ID 8dc43844Preparing… ########################################### [100%]1:rpmfusion-nonfree-relea########################################### [100%][root@Zqynux yum.repos.d]# yum install unrar -y已加载插件:axelget, fastestmirror, refresh-packagekitLoading mirror speeds from cached hostfilefedora: mirrors.163.comrpmfusion-free: mirrors.163.comrpmfusion-free-updates: mirrors.163.comrpmfusion-nonfree: mirrors.163.comrpmfusion-nonfree-updates: mirrors.163.comupdates: mirrors.163.com设置安装进程解决依赖关系–> 执行事务检查—> 软件包 unrar.i686 0:3.8.5-5.fc12 将被 升级–> 完成依赖关系计算依赖关系解决============================================================================软件包 架构 版本 仓库 大小============================================================================正在安装:unrar i686 3.8.5-5.fc12 rpmfusion-nonfree-updates 105 k事务概要============================================================================安装 1 软件包更新 0 软件包总文件大小:105 k下载软件包:[1/1]Ok,we will try to use axel to download this big file:107392Target already exists,skip to next file!warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 signature: NOKEY, key ID a3a882c1rpmfusion-nonfree-updates/gpgkey | 3.4 kB 00:00 …导入 GPG 密钥 0xA3A882C1 "RPM Fusion nonfree repository for Fedora (12) <rpmfusion-buildsys@lists.rpmfusion.org>",来自 /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-12-i386运行 rpm_check_debug执行事务测试完成事务测试事务测试成功执行事务警告:自上次 yum 事务以来 RPMDB 已变动。正在安装 : unrar-3.8.5-5.fc12.i686 1/1已安装:unrar.i686 0:3.8.5-5.fc12完毕! -
Http 服务器整好了
上午9点钟起来,吃了饭就在弄昨天找到的一个Http服务器,总共只有200行不到的代码,很快就看完了,也理解了,唯一要到网上查阅一下的就是HTTP协议,大致能看懂一点,但是我想多看看。
整了2个多小时,到近11点的时候就Ok了,把服务器弄好了,可以简单的浏览本地Html文件了,但是问题还有很多,比如子进程没有处理,让它们僵死了;还有这个程序只是用了一次读数据,内网倒不会有问题,外网的话,就不一定了,所以最好还是用循环的好。
还有一些问题就是看Unix网络编程了,Unix网络编程前面的内容就是围绕着一个简单的程序进行讲解socket的,各种各样的问题,技术。
这份代码以后我会重写,然后加入更多的元素,让它能够使用。服务器代码如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<sys/stat.h>
#include<fcntl.h>#define BACKLOG 3
#define BUFSIZE 10244char not_found =
"HTTP/1.1 404 Not Found\r\n" "Content-Type: text/html\r\n"
"Content-Length: 40\r\n" "\r\n"
"<HTML><BODY>File not found</BODY></HTML>";
char bad_request =
"HTTP/1.1 400 Bad Request\r\n" "Content-Type: text/html\r\n"
"Content-Length: 39\r\n" "\r\n"
"<h1>Bad Request (Invalid Hostname)</h1>";
/char moved_permanently =
"HTTP/1.1 301 Moved Permanently\r\n" "Content-Length: 147\r\n" "Content-Type: text/html\r\n" "Location: %s\r\n" "\r\n" "<head><title>Document Moved</title></head><body><h1>Object Moved</h1>This document may be found <a HREF="\" mce_HREF="\""%s\">here</a></body>";
/
char head_analysis(char p);
void read_send(const char p, char pbuf, int connfd);int main(void)
{
int listenfd;
struct sockaddr_in servAddr;
unsigned port = 80;printf("HTTP Server is starting at port %d…\n", port);
listenfd = socket(AF_INET, SOCK_STREAM, 0);
if (listenfd == –1) {
printf("Invalid socket!\n");
return 1;
}bzero(&servAddr, sizeof(servAddr));
servAddr.sin_family = AF_INET;
servAddr.sin_port = htons(port);
servAddr.sin_addr.s_addr = htonl(INADDR_ANY);printf("Server is listening…\n");
if (bind(listenfd, (struct sockaddr ) &servAddr,
sizeof(servAddr)) != 0) {
close(listenfd);
perror("Bind Error");
return 1;
}
printf("Binding server to port %d successfully.\n", port);if (listen(listenfd, BACKLOG) != 0)
{
close(listenfd);
perror("Listen error");
return 1;
}printf("Waiting client…\n");
while (1) {
struct sockaddr_in cliAddr;
size_t cliAddrLen = sizeof(cliAddr);
pid_t pid;
char p = NULL,
from[20],
file_name[100] = "/home/zqynux/network/",
rcvbuf[1024], sendbuf[BUFSIZE];int connfd =
accept(listenfd, (struct sockaddr ) &cliAddr,
&cliAddrLen);
if (connfd < 0) {
close(listenfd);
printf("accept error\n");
return 1;
}pid = fork();
if (pid == 0)
{
close(listenfd);
strcpy(from, inet_ntoa(cliAddr.sin_addr));
printf("\n\nclient %s CONNECTED.\n", from);if (recv(connfd, rcvbuf, sizeof(rcvbuf), 0) > 0) {
printf("%s\n", rcvbuf);
p = head_analysis(rcvbuf);
} else {
perror("Read Error");
exit(0);
}
if (p != NULL) {
strcat(file_name, p);
printf("FILE NAME :%s\n", file_name);
read_send(file_name, sendbuf, connfd);
} else{
printf("No default html\n");
send(connfd, bad_request,
strlen(bad_request), 0);
}close(connfd);
printf("DISCONNECTION TO CLIENT\n");
exit(0);
} else if (pid > 0)
close(connfd);
else
return 1;
}close(listenfd);
return 0;
}char head_analysis(char p)
{
char ptmp = p;if (strncmp(ptmp, "GET /", 5) == 0) {
ptmp += 5;
while (ptmp != ‘ ‘)
ptmp++;
ptmp++ = ‘\0’;if (strncmp(ptmp, "HTTP/", 5) == 0)
return p + 5;
else
return NULL;
}else
return NULL;
}
void read_send(const char p, char pbuf, int connfd)
{
int fd;
size_t rdLen;
fd = open(p, O_RDONLY);
if (fd != –1) {
send(connfd,
"HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n",
strlen
("HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n"),
0);while ((rdLen = read(fd, pbuf, BUFSIZE)) > 0)
send(connfd, pbuf, rdLen, 0);printf("WRITE TO CLIENT FINISHED\n");
close(fd);
} else{
send(connfd, not_found, strlen(not_found), 0);
printf("FILE Not Find\n");
}
}
至于客户端就是浏览器。 -
解决Ubuntu Gedit的乱码
因为家里有两台机子,一台Linux一台Windows,而Linux那台的硬件配置差的要死,还有一些原因,我有时也用Windows看下电子书,坐下笔记,Windows下面的的docx(Word 2007的格式)能在Linux下打开,但是纯txt不能在我的Ubuntu下打开是乱码(这里说一下,在Fedora 的KDE(不知道它的Gnome行不行)里面的gedit能够智能识别编码。),到网上搜了一下,找到了解决方法,如下:缺省配置下,用 Ubuntu 的文本编辑器(gedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码。
出现这种情况的原因是,gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表中的编码将显示为乱码。您要做的就是将 GB18030 加入这个匹配列表。
- 命令行方式,适用于所有 Ubuntu 用户。
复制以下命令到终端中,然后回车即可:
gconftool-2 –set –type=list –list-type=string /apps/gedit-2/preferences/encodings/auto_detected “[UTF-8,CURRENT,GB18030,BIG5-HKSCS,UTF-16]”
- 图形化方式,适用于 Ubuntu 用户,而不适用于 KUbuntu/XUbuntu 用户。
您可以遵循以下步骤,使您的 gedit 正确显示中文编码文件。
- 按下 Alt-F2,打开“运行应用程序”对话框。
- 在文本框中键入“gconf-editor”,并按下回车键,打开“配置编辑器”。
- 展开左边的树节点,找到 /apps/gedit-2/preferences/encodings 节点并单击它。
- 双击右边的 auto_detected 键,打开“编辑键”对话框。
- 单击列表右边的“添加”按钮,输入“GB18030”,单击确定按钮。
- 列表的最底部新增加了一个“GB18030”。单击选中它,并单击右边的 “向上” 按钮直到 “GB18030” 位于列表的顶部为止。
- 单击确定按钮,关闭配置编辑器。
现在,您的 gedit 应该能够顺利打开 GB18030 编码的文本文件了。
-
Ubuntu 10.04 桌面特效的设置
早就听说过Linux下的桌面特效不比Windows 7逊色~! 而且内存和CPU需求量更小,记得以前我装Fedora 12的时候,使用桌面特效说没有显卡,后来有一张显卡可以给我用一阵子,特效好过瘾,但是后来显卡一拿走机子就开不开机了,因为特效太卡了~!结果只能重装系统(我那机子很老很老,已经是古董了,不过有我深深的回忆~!)
现在用了Ubuntu,我是好了伤疤忘了疼,又想开特效,在菜单里面找到了特效的设置,有三种选项:无,一般,绚丽的(可能词语不对,反正就是这个意思),我先用了普通的,没什么特别的,就是鼠标,窗口下面多了点阴影,用绚丽的只有一个特色,就是移动窗口的时候,窗口变成了橡皮泥,弹赖弹去,玩着过瘾,后来到网上找了下,有这么一个软件:compizconfig-settings-manager可以使用更多的特效,我下载下来玩了下,确实过瘾,下载方式:
在终端中输入:sudo apt-get install compizconfig-settings-manager
后来我记得以前我看别人的Linux出现过火焰,而这个里面没有这个选项,我就又找啊找,找到了另外一个包:
sudo apt-get install compiz-fusion-plugins-extra
里面有更多的特效,什么3D的,火焰,还有各种各样有意思的特效~!~!
而且关键是我那台破机子玩这些特效不会特别的卡(有一点还是很正常的,毕竟是老古董了。),后来我把3D的什么的都去掉了,只是在打开关闭放大放小的地方使用华丽的特效之后,就好很多了(3D还要让这机子的命啊~!)
这里简单的记录一下,一呢给大家看看,二呢记录一下,让自己以后不到网上到处找两个软件包的名字。