运行 GitHub 脚本并编译特定程序

运行 GitHub 脚本并编译特定程序

我使用 Ubuntu 18.04 格式化了我的旧 iMac 27''。我有一台连接到它的 PC。以前,在 OSX 上,我能够使用目标显示模式按 Cmd+F2 将我的 PC 放在 iMac 屏幕上。自从我换到 Ubuntu 后,我就不能再这样做了。所以我开始阅读有关解决方案的信息:

可以在这里找到:https://stackoverflow.com/questions/43491594/reverse-engineering-the-target-display-mode-on-an-imac/

因此,有人找到了在 Ubuntu 上实现此目的的方法,并创建了一个 Git 仓库,网址为: https://github.com/floe/smc_util

我是 Ubuntu 的新手,但我一直在阅读如何实现这一点。因此,我下载了 zip 文件,将其解压到我的主文件夹中。其中有三个 *.sh 文件和一个 *.c 文件,因此,我尝试直接转到 sudo ./tdm_on.sh 命令,我收到消息:第 2 行:SmCDumpkey:未找到命令。

因此我再次尝试,但我首先运行 sudo /smc_dump_linux.sh,然后运行 ​​sudo ./tdm_on.sh 命令

但仍然没有结果。所以,我想我漏掉了一个步骤,或者在这里做错了什么。有人知道如何让这个工具工作吗?我想我需要编译一些东西,但我是初学者,我不知道步骤。

多谢

答案1

您需要先构建命令 - 但是由于没有文档和 Makefile,因此需要进行一些猜测。

有 2 个.c文件 - 应该将它们链接到一个程序中,还是两个独立的程序? 找出答案的唯一方法可能是编译它们并查看:

gcc -Wall -o SmcDumpKey SmcDumpKey.c

这不会产生任何错误并产生二进制可执行文件SmcDumpKey,因此我们可以推断出SmcDumpKey.c并且smc_util.c是单独的程序。

因为当前目录可能不在您的目录中PATH,所以您需要将其附加以便 shell 脚本能够找到它,例如。

$ PATH=$PATH:./ ./tdm_on.sh 
ioperm failed: Operation not permitted
ioperm failed: Operation not permitted
warning: output eDP not found; ignoring

这样程序就可以运行了。如果你确实想使用它,SmcDumpKey你可能需要将编译后的二进制文件移动到你PATH或 sudo 上的某个位置。secure_path

关于什么smc_util.c

$ gcc -Wall -o smc_util smc_util.c
smc_util.c:27:10: fatal error: IOKit/IOKitLib.h: No such file or directory
 #include <IOKit/IOKitLib.h>
          ^~~~~~~~~~~~~~~~~~
compilation terminated.

此时我陷入了困境,因为我使用的是基于 Intel 的系统,并且IOKit是一个 Mac 库。YMMV。

希望这能帮你入门。祝你好运!

相关内容