grub引导freebsd

在debian的系统中安装好的grub不能识别freebsd分区,所以需手动添加以引导freebsd。
1.:~$sudo -i
# fdisk -l
Device Boot Start End Blocks Id System
/dev/sda3 * 5167 11785 53163009 5 Extended
Partition 3 does not end on cylinder boundary.
/dev/sda4 11786 38913 217905660 a5 FreeBSD
Partition 4 does not end on cylinder boundary.
/dev/sda5 * 5167 6383 9764864 83 Linux
/dev/sda6 6383 6886 4041728 82 Linux swap / Solaris
/dev/sda7 6886 11785 39354368 83 Linux
注意freebsd分区
# mount -r -t ufs -o ufstype=ufs2 /dev/sda4 /mnt
# cat /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ad4s4b none swap sw 0 0
/dev/ad4s4a / ufs rw 1 1
/dev/ad4s4g /home ufs rw 2 2
/dev/ad4s4e /tmp ufs rw 2 2
/dev/ad4s4f /usr ufs rw 2 2
/dev/ad4s4d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0

2.编辑grub.cfg文件
vi /boot/grub/grub.cfg加入以下内容于40_custom的末尾

menuentry “FreeBSD 8.2″ {
insmod part_msdos
insmod ufs2
set root=(hd0,msdos4) #/boot在哪?
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad4s4a
set kFreeBSD.vfs.root.mountfrom.options=rw
}

参考:http://wiki.freebsdchina.org/howto/g/grub2

下霜了…12.02晨,下午4点多的阳光从楼顶跌落,我还在傻傻的等
今天好失落,突然觉得离自己所说的目标越来越远,又是一次无用的承诺。也许自己真的不配吧,突然觉得好累,想回家了,已经一年没回去。有时候的倔强肯定让人伤心,可是我也不知道为什么会叛逆。大部分的时间我希望是一个人,不喜欢周围总是喧嚣一片…困了,12.17
明天回家,把手机|主机都备份了,带点妈妈喜欢吃的回去之后要有计划,学好cuda和opencv编程,为明年的毕业设计做准备。还要继续学习linux方面的知识在家不要和妈妈顶嘴,不能很倔强。12.27
今天坐火车回家2次都差点没赶上,看来是在学校宅久了,对外面都感觉陌生…看着车上这么多的人,世界好大,有那么几秒钟,我在想我是谁,我在哪里,突然很想念,马上就到考研的时间,希望身边的同学都能实现自己的理想. 12.28

opencv的简单例子(RGB)

#include"highgui.h"
#include"cv.h"
#include <stdio.h>
int main(int arg,char** argv)
{
	IplImage* src;
	if((src = cvLoadImage(argv[1],-1)) != 0)   //-1可以更改 请查看 说明
	{
	cvNamedWindow("src",1);
	cvShowImage("src",src);
	cvWaitKey(0);
	/*对于多通道单字节型图像*/
	int height=src->height;
	int width=src->width ;
	int step=src->widthStep;
	int channels=src->nChannels ;   //彩色影像 channels ==3  黑白影像 channels ==1
	uchar* data=(uchar*)src->imageData ;
    	int i,j,k;
	double a;
	/*输出部分RGB值(以B、G、R排列)*/
	for(i=0;i<50;i++)
	{
		for(j=0;j<50;j++)
		{
			for(k=0;k<channels;k++)
			{
				a=data[i*step+j*channels+k];
				printf("%lf ",a);
			}
			printf("\n");
		}
		printf("\n");
	}
	/*对左上角区域进行设置*/
	for(i=0;i<30;i++)
	{
		for(j=0;j<40;j++)
		{
			for(k=0;k<channels;k++)
			{
				data[i*step+j*channels+k]=255;
			}
		}
	}
	cvShowImage("src",src);
	cvWaitKey(0);
	cvReleaseImage(&src);
	return 0;
	}
	return -1;
}

编译 gcc -g -Wall -o sample `pkg-config --libs --cflags opencv` sample.c
运行./sample imL.png