来自 操作系统 2019-12-29 05:22 的文章
当前位置: 澳门威尼斯人平台 > 操作系统 > 正文

Wayland 被移植到 DragonFly BSD

Linux 下的显示服务器 Wayland 和 Weston 合成器被移植到了 BSD 发行版 DragonFlyBSD。移植由 DragonFly 开发者 John Marino 负责,代码现在还只适用于 DragonFly。运行 BSD 版的 Wayland 和 Weston 需要 DragonFly 已经运行 X.Org Server 或使用移植的 Radeon 和英特尔内核模式设置驱动, DragonFlyBSD 没有移植 Nouveau KMS 驱动。

把BSD上的istgt移植到Mac OS X上

istgt软件简介

istgt是跑在openSUSE/Debian/NetBSD/FreeBSD上的iscsi target软件,工作在用户进程模式下。

主页为:

这是一个日本人写的软件,请抛开xx因素先别鄙视日本人。

虽然FreeBSD和Mac OS X是近亲,但是直接下载源代码到OS X编译安装,运行时是会出错的,而且不支持OS X的BSD子系统kqueue。需要修改源代码的两个文件然后编译才能正常在OS X上运行。

两年前我就已经改好了年末的一个版本,给作者发过邮件,可是那家伙不鸟,呵呵。

# tar zxf istgt-20141125.tar.gz
# cd istgt-20141125/src

1、istgt.h

# vi istgt.h
跳转到128行,启用kqueue支持,修改成如下补丁信息的+号一行

--- istgt.h.orig    2012-08-19 05:04:12.000000000 +0800
+++ istgt.h    2014-12-31 00:11:32.000000000 +0800
@@ -125,7 +125,7 @@
 #else
 #error "no signal for internal"
 #endif
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || (defined(__APPLE__) && defined(__GNUC__))
 #define ISTGT_USE_KQUEUE
 #if defined (__FreeBSD__)
 #define ISTGT_EV_SET(kevp,a,b,c,d,e,f) EV_SET((kevp),(a),(b),(c),(d),(e),(void *)(f))

2、istgt.c

# vi istgt.c

跳转到1555行,再看1576行,你会发现,他把pthread_attr_init和istgt_uctl_init的前后顺序搞反了。所以你需要调整一个段落的代码顺序

从1576到1630行的代码,都要剪切放到原1555行的rc = istgt_uctl_init(istgt);之前

以下是补丁:

--- istgt.c.orig    2012-11-13 02:44:24.000000000 +0800
+++ istgt.c    2014-12-31 00:10:04.000000000 +0800
@@ -1552,27 +1552,6 @@ istgt_init(ISTGT_Ptr istgt)
            istgt->discovery_auth_group);
    }
 
-    rc = istgt_uctl_init(istgt);
-    if (rc < 0) {
-        ISTGT_ERRLOG("istgt_uctl_init() failedn");
-        return -1;
-    }
-    rc = istgt_build_uctl_portal(istgt);
-    if (rc < 0) {
-        ISTGT_ERRLOG("istgt_build_uctl_portal() failedn");
-        return -1;
-    }
-    rc = istgt_build_portal_group_array(istgt);
-    if (rc < 0) {
-        ISTGT_ERRLOG("istgt_build_portal_array() failedn");
-        return -1;
-    }
-    rc = istgt_build_initiator_group_array(istgt);
-    if (rc < 0) {
-        ISTGT_ERRLOG("build_initiator_group_array() failedn");
-        return -1;

   BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,1970年代由加州大学伯克利分校开创。BSD用来代表由此派生出的各种套件集合。
BSD常被当作工作站级别的Unix系统,这得归功于BSD License非常地宽松,许多1980年代成立的计算机公司,不少都从BSD中获益,比较著名的例子如DEC的Ultrix,
以及Sun公司的SunOS。1990年代,BSD很大程度上被System V4.x版以及OSF/1系统所取代,但其开源版本被采用,促进了因特网的开发。

本文由澳门威尼斯人平台发布于操作系统,转载请注明出处:Wayland 被移植到 DragonFly BSD

关键词: