Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
楼主: syscl

[原创内容] 解决/修复笔记本电量低断电问题 [复制链接]

Rank: 1

UID
1296861
帖子
46
PB币
114
贡献
0
技术
0
活跃
32
发表于 2016-10-22 16:46:47 |显示全部楼层
学习学习了

Vanilla.

UID
4568967
帖子
13838
PB币
34
贡献
0
技术
94
活跃
2729

十一周年

发表于 2016-10-22 16:56:58 |显示全部楼层
syscl 发表于 2016-10-22 16:43
用define(宏)可以说是错误的温床:
1. 没有类型检查, define做的事情完全是文本替换
2. 这是编译器编译前 ...

lowercase 与 uppercase 用define 确实应该注意下 否则代码可能会失效 但一般来说我会将 define定义的东西完全使用uppercase。比如apple的 csr flags 就是这样做的。
不过 我认为 string 使用 int赋值 也是不建议的 通常来说只有些特别的string 比如十六进位制数据 可能我会使用uint8 赋值
通常来说使用 int 直接给某个 string 赋值的做法是不建议的 这可能会在修改参数时带来麻烦 并且如果代码相当多的话可能再次编译会非常消耗时间 还是应该使用 define 等参数将这些赋值调整到外部 如使用外部静态变量表 当然要注意下大小写问题(一般全部大写即可) 虽然runtime效率会低但是方便日后调整
实际上bash的变量和 define 很相似 甚至说完全一致
nope 我觉得使用 define 来配合 iLog 输出 Log 的做法是愚蠢的 实际上完全没有必要做这些override的动作 只需直接写上 log 内容即可了 kext输出的log太多也不是很好的选择

Rank: 5Rank: 5Rank: 5

UID
2619827
帖子
812
PB币
24
贡献
0
技术
4
活跃
667
发表于 2016-10-22 16:59:07 |显示全部楼层
厉害呀  谢谢默默为黑苹果付出的人人们   正是因为你你们  黑苹果才更精彩

作死党

Rank: 7Rank: 7Rank: 7

UID
4690694
帖子
1355
PB币
175
贡献
0
技术
0
活跃
1390
发表于 2016-10-22 17:02:03 |显示全部楼层
来围观,,,

Vanilla.

UID
4568967
帖子
13838
PB币
34
贡献
0
技术
94
活跃
2729

十一周年

发表于 2016-10-22 17:39:11 |显示全部楼层
我不要用户名 发表于 2016-10-22 15:51
自己冒仿的配置文件放进去AppleALC,删除其他的多余的配置文件,也可以定制,哈哈

nope
我指的是 编译好的bin (AppleALC.kext)对于zlib和bin-patch具体内容无法再定制

作死党

Rank: 7Rank: 7Rank: 7

UID
4690694
帖子
1355
PB币
175
贡献
0
技术
0
活跃
1390
发表于 2016-10-22 17:59:15 来自手机 |显示全部楼层
口袋妖怪heart 发表于 2016-10-22 17:39
nope
我指的是 编译好的bin (AppleALC.kext)对于zlib和bin-patch具体内容无法再定制

哦~~~~~~~
又让你见笑了

苹果种植大户

Rank: 5Rank: 5Rank: 5

UID
2229828
帖子
903
PB币
1512
贡献
0
技术
28
活跃
849
发表于 2016-10-22 18:01:24 |显示全部楼层
不错,这似乎是很好的解决方法~

Rank: 7Rank: 7Rank: 7

UID
3593444
帖子
1341
PB币
250
贡献
0
技术
1
活跃
1355
发表于 2016-10-23 01:54:52 来自手机 |显示全部楼层
厉害了我的哥

Rank: 5Rank: 5Rank: 5

UID
4763750
帖子
893
PB币
1763
贡献
0
技术
0
活跃
1244

十一周年

发表于 2016-10-23 17:49:56 |显示全部楼层
技术贴好评,必须收藏支持

Rank: 2Rank: 2

UID
4449112
帖子
251
PB币
1
贡献
0
技术
0
活跃
437
发表于 2016-10-23 22:10:50 |显示全部楼层
不错,这似乎是很好的解决方法~

Rank: 2Rank: 2

UID
697379
帖子
321
PB币
381
贡献
0
技术
4
活跃
295
发表于 2016-10-23 23:01:25 |显示全部楼层
我这睡眠还是有两个问题:1. 声卡经常不工作,CodecCommander用过改过不少版本,无效。2. 死机频率高,大约3-5次睡眠就会死一次。

也基本看淡了,多启动几回也好,嘿嘿。

Rank: 2Rank: 2

UID
697379
帖子
321
PB币
381
贡献
0
技术
4
活跃
295
发表于 2016-10-23 23:08:21 |显示全部楼层
另外,我用 LaunchRocket 比较简单方便,编译好直接在系统偏好设置中导入就可以了。

Rank: 5Rank: 5Rank: 5

UID
4564833
帖子
465
PB币
425
贡献
0
技术
14
活跃
834
发表于 2016-10-24 11:37:18 |显示全部楼层
sudo cp -RX com.syscl.iopm.plist /Library/LaunchDameons/
cp: directory /Library/LaunchDameons does not exist
我10.10怎么弄

专业倒腾、安装各种系统,打造基本完美黑苹果

Rank: 5Rank: 5Rank: 5

UID
4763435
帖子
764
PB币
4
贡献
0
技术
36
活跃
924
发表于 2016-10-25 13:05:18 |显示全部楼层
大神,,可以帮我改下dsdt吗?不能显示电池,,显示的是x

远景FANS

UID
424619
帖子
4181
PB币
533
贡献
0
技术
741
活跃
2185

巡察使 我是大学生!

发表于 2016-10-26 11:23:04 |显示全部楼层
ljm144769873 发表于 2016-10-24 11:37
sudo cp -RX com.syscl.iopm.plist /Library/LaunchDameons/
cp: directory /Library/LaunchDameons does  ...

抱歉我的拼写错误, 应该是LaunchDaemons.

:)

远景FANS

UID
424619
帖子
4181
PB币
533
贡献
0
技术
741
活跃
2185

巡察使 我是大学生!

发表于 2016-10-26 11:23:55 |显示全部楼层
transtone 发表于 2016-10-23 23:01
我这睡眠还是有两个问题:1. 声卡经常不工作,CodecCommander用过改过不少版本,无效。2. 死机频率高,大约 ...

睡眠问题需要看内核日志 然后判断是哪里的问题 我记得这是一个常见的问题 可以解决的

远景FANS

UID
424619
帖子
4181
PB币
533
贡献
0
技术
741
活跃
2185

巡察使 我是大学生!

发表于 2016-10-26 11:33:13 |显示全部楼层
口袋妖怪heart 发表于 2016-10-22 16:56
lowercase 与 uppercase 用define 确实应该注意下 否则代码可能会失效 但一般来说我会将 define定义的东西 ...

Apple这样做不代表这个做法好,恰恰相反,这是因为c的历史遗留问题. 在新标准没有出来之前,人们不得不用define的方法,后来的c引入关键字const就是为了解决这个问题的。

稍微注意macOS源码, 就会发现到处都有#ifndef, ... #endif这样的东西, 这是c遗留下来相当糟糕的东西,当然这也和那个时代有关,自上而下的进行编译,没有办法维护一张函数表。所以才会出现在头部声明,然后在main(){}之后实现的方法。导致的结果就是, 经常有人忘了头部定义, 或者两个定义在别的头文件里面出现过, 然后就报错了.

你不override, 怎么改写?这不是用来搞笑么. 我不知道iLog是个什么东西, 但是从你的观点来看, 你对大kext没有概念.

////

Vanilla.

UID
4568967
帖子
13838
PB币
34
贡献
0
技术
94
活跃
2729

十一周年

发表于 2016-10-26 20:29:12 来自手机 |显示全部楼层
syscl 发表于 2016-10-26 11:33
Apple这样做不代表这个做法好,恰恰相反,这是因为c的历史遗留问题. 在新标准没有出来之前,人们不得不用 ...

nope apple完全可以在自家的oc解决这个问题 但实际上我认为完全没必要的这是 define后面都使用uppercase 即可
#ifndef #endif 这些我觉得没什么不好 而且后来c没废除这些东西我觉得还是有道理的吧。
我的意思是 kext应该尽量避免大量的log输出 就没必要像shell一样类似 _PRINT_MSG() 再定义一套global func 啰 iLog 就是 IOLog,但是我觉得完全没必要像
#define MyLog(args...) do { IOLog("IOPowerDeploy: " args); } while(0)
这样子 然后再 MyLog("urLog") 这样输出log啰。直接
iLog("IOPowerDeploy: urLog")
即可了。
嗯 确实 我一般只会看一些小型的基于iokit的模块 但其实真正的大型驱动很少对吗?mieze的那些网路卡驱动也都是vendors的开源驱动由c改写成c++而已吧?我们平时日常的kexts基本上都是一些小模块吧 比如fakesmc 比如cc 比如你的iopowerdeploy…… 但是真正的大型kext也都会很少地输出log吧 有些甚至没有log 都是code在运作

无敌小码农

Rank: 5Rank: 5Rank: 5

UID
4575313
帖子
478
PB币
479
贡献
0
技术
21
活跃
362
发表于 2016-11-6 18:40:21 |显示全部楼层
口袋妖怪heart 发表于 2016-10-26 20:29
nope apple完全可以在自家的oc解决这个问题 但实际上我认为完全没必要的这是 define后面都使用uppercase  ...

你俩也是够了,在这版块讨论起OC来了。

我插个嘴啊,问下没有win笔记本怎么识别屏幕?就是显卡已经驱动有小波纹,但是设置->显示器中是一个黑显示器。

你俩是在争议Log输出多少还是在争议宏?

我再插个嘴啊,定死的东西诸如字符串,可以用const,这样可以避免错误,楼主上面也有说过。但是比如获取一个视图或者一个对象的值,而获取的函数又臭又长还每次不带变化又经常用的,那肯定是宏了。而且像OC中的#if、#endif,存在肯定有他的合理性,规范命名基本可以避免因为重复定义引起的问题。

两位也帮忙看看我的问题吧,需要什么信息说一声,给个思路也成~

无敌小码农

Rank: 5Rank: 5Rank: 5

UID
4575313
帖子
478
PB币
479
贡献
0
技术
21
活跃
362
发表于 2016-11-6 18:41:55 |显示全部楼层
我都这级别了,发帖要审核也就算了,连回帖都要审核。桑心~





突然想到,是不是远景的用户少,或者管理人员多~闲的疼?


-------------- 编辑追加:
晕,吐槽不审核,交流就审核,什么鬼?

回顶部
Copyright (C) 2005-2019 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件