vernesong / OpenClash

A Clash Client For OpenWrt
MIT License
17.55k stars 3.18k forks source link

配置启动报错Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well #2205

Closed PN62323424 closed 2 years ago

PN62323424 commented 2 years ago

红米ac2100,内核均更新到最新版,上传配置启动的时候报错这个,也无法更新配置,试过一样的配置x86上使用正常。

试过以下方法无效。 opkg update opkg install libcap opkg install libcap-bin

vernesong commented 2 years ago

刷固件吧

STRoot01 commented 2 years ago

root@OpenWrt:~# capsh --has-ambient ambient set not supported

是否因为这个原因?这个应该如何解决?

STRoot01 commented 2 years ago

是在玩客云上测试 capsh --has-ambient 这条命令的

github-actions[bot] commented 2 years ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days

wjcroom commented 2 years ago

参考: luci-app-openclash/root/etc/init.d/openclash if [ -z "$_koolshare" ]; then

687 | if ! capsh --is-uid=0 >/dev/null || ! capsh --has-ambient >/dev/null; then 688 | LOG_OUT "Error: Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well" 进入shell运行 capsh --is-uid=0 capsh --has-ambient 如果输出异常,系统可能不支持libcap。但是如果系统是koolshare的,就不需要使用licap中的capsh命令,也许可以启动。如何判断,在这里:

_koolshare=$(cat /usr/lib/os-release 2>/dev/null |grep OPENWRT_RELEASE 2>/dev/null |grep -i koolshare 2>/dev/null)

所以尝试在,vi /usr/lib/os-release 最后一行,参数值字段,随便一个地方加入 koolshare. 欺骗openclash本系统是 koolshare. 这会跳过libcap的使用。

这个办法在2022-10-07时,NAS 6.22 synolony 中的docker. 使用sulinggg/openwrt:x86_64时,出现相同错误时的解决办法。

但是相同在问题,同一个img在synolony 7.0版本中没有再次出现。

wjcroom commented 2 years ago

root@OpenWrt:~# capsh --has-ambient ambient set not supported

是否因为这个原因?这个应该如何解决?