[請益] 從source code改cpu設定已刪文

看板Android作者時間6年前 (2019/09/29 17:46), 6年前編輯推噓9(9010)
留言19則, 3人參與, 6年前最新討論串1/1
目前改cpu頻率都是root後透過adb下shell command去改/sys/devices/system/cpu 底下的scaling_max_freq, scaling_min_freq等config 或是直接用可以控制CPU的app,像是SetCPU 想直接改kernel source code,變更他升降頻的條件 看到有人說是改\arch\arm\boot\dts裡面的dtsi檔 https://imgur.com/VLglAQH.jpg
找了發現dts底下的dtsi檔有非常多個 https://reurl.cc/K6pb5n 看了好幾個都沒有找到有if else這種條件式 想請問有大大改過source code去控制cpu嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.61.111 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Android/M.1569750394.A.B00.html

09/29 18:09, 6年前 , 1F
不是改內核,是改 device
09/29 18:09, 1F
好像改device 另外也有改kernel檔案的方法 但只差在編譯出來的boot.img不同,不用每次開機再改device的config https://blog.csdn.net/e_one/article/details/80267336 一直找不到更改cpu升降頻條件的方法 還是真的不可能去改這個呢? ※ 編輯: TommyOh (220.143.61.111 臺灣), 09/29/2019 18:36:58

09/30 06:56, 6年前 , 2F
可以用 sysfs 改,就夠了吧?
09/30 06:56, 2F

09/30 09:24, 6年前 , 3F
09/30 09:24, 3F

09/30 09:25, 6年前 , 4F
這樣刷進去就就不用每次開機改了
09/30 09:25, 4F

09/30 09:25, 6年前 , 5F
我也是這樣用的,但如果是超頻,就真的要改 kernel 了
09/30 09:25, 5F

09/30 10:40, 6年前 , 6F
感覺你需要的是governor
09/30 10:40, 6F

09/30 11:12, 6年前 , 7F
我也這樣覺得
09/30 11:12, 7F
大大的意思是,去改各個governor的設定值嗎? 上面用adb的方式已經將governor設成userspace 但能改的東西有限,一直不知道他cpu控制開幾個跟升降頻的條件 ※ 編輯: TommyOh (220.143.61.111 臺灣), 09/30/2019 15:01:04

09/30 15:39, 6年前 , 8F
都可以改阿,可以設定開幾個CPU核心
09/30 15:39, 8F

09/30 15:40, 6年前 , 9F
但升降頻的條件,調大核就全部大核,小核就全部小核
09/30 15:40, 9F

09/30 15:44, 6年前 , 10F
一般就調target_loads/input_boost_freq
09/30 15:44, 10F

09/30 15:46, 6年前 , 11F
CPU governor 改 userspace 沒用,interactive 較好
09/30 15:46, 11F

09/30 15:47, 6年前 , 12F
我常參考的就是 yc調度,google看看
09/30 15:47, 12F
a大看起來是去改cpufreq_interactive.c檔的target_loads/input_boost_freq 查了yc調度會提供balance/powersave/performance/fast/debug等模式 a大是說參考他這些模式的設定值嗎? ※ 編輯: TommyOh (220.143.61.111 臺灣), 09/30/2019 18:56:14

09/30 19:11, 6年前 , 13F
是阿,他有各種SoC的設定,你找你的來用
09/30 19:11, 13F
想請教a大,這個yc調度的target_loads(SnapDragon835) 怎麼performance模式的CPU負載80%有兩個,而且他是按照頻率一路變高的順序排列 怎麼反而有些CPU負載百分比是降低的 不太了解這個配置的意思 expected_target=${C0_GOVERNOR_DIR}/target_loads if [ "$action" = "powersave" ]; then expected_value="80 380000:59 480000:51 580000:29 780000:92 880000: 76 1180000:90 1280000:98 1380000:84 1480000:97" elif [ "$action" = "balance" ]; then expected_value="80 380000:30 480000:41 580000:29 680000:4 780000: 60 1180000:88 1280000:70 1380000:78 1480000:97" elif [ "$action" = "performance" ]; then expected_value="80 380000:42 580000:80 680000:15 980000:36 1080000: 9 1180000:90 1280000:59 1480000:88 1680000:98" ※ 編輯: TommyOh (220.143.61.111 臺灣), 09/30/2019 23:30:12

10/01 09:27, 6年前 , 14F

10/01 09:27, 6年前 , 15F
我也不知道他為什麼要這樣配置
10/01 09:27, 15F

10/01 09:28, 6年前 , 16F
只知道他是用網友提供的CPU頻率分布圖去產生的
10/01 09:28, 16F
a大是在sysfs用echo去改target_loads/input_boost_freq的config嗎? 直接去改cpufreq_interactive.c還要重新編譯跟重燒(只是好處是重開機不用再改) ※ 編輯: TommyOh (220.143.61.111 臺灣), 10/01/2019 21:32:45

10/01 21:35, 6年前 , 17F
10/01 21:35, 17F

10/01 21:37, 6年前 , 18F
在刷機包裡面設定 echo,重開機也不用改
10/01 21:37, 18F

10/01 21:38, 6年前 , 19F
不太喜歡在內核限制性能
10/01 21:38, 19F
感謝a大 ※ 編輯: TommyOh (61.227.176.110 臺灣), 10/02/2019 14:14:36
文章代碼(AID): #1Ta7rwi0 (Android)