lshw / loongson

loongson mirror issue tracker
0 stars 0 forks source link

bjlx最新内核不支持liblol #2

Closed haowuge closed 1 month ago

haowuge commented 1 month ago

疑似没启用CONFIG_KPROBES,业务不熟,尝试重新打包失败了,是否能设置默认的,谢谢

https://github.com/AOSC-Dev/la_ow_syscall/ Requirements

Linux Kernel >= 6.1.0 for loongarch64 with the following option(s) set:

CONFIG_KALLSYMS=y (for reading kernel symbol addresses).
CONFIG_KPROBES=y (for probing kernel symbol addresses using kernels where base address randomisation - CONFIG_RANDOMIZE_BASE - is enabled).
haowuge commented 1 month ago

确认跟这个选项有关系

--- linux-upstream-6.10.6.orig/.config
+++ linux-upstream-6.10.6/.config
@@ -18,7 +18,7 @@ CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
 CONFIG_TOOLS_SUPPORT_RELR=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
-CONFIG_PAHOLE_VERSION=0
+CONFIG_PAHOLE_VERSION=127
 CONFIG_IRQ_WORK=y
 CONFIG_BUILDTIME_TABLE_SORT=y

@@ -449,11 +449,13 @@ CONFIG_CPU_MITIGATIONS=y
 # General architecture-dependent options
 #
 CONFIG_GENERIC_ENTRY=y
-# CONFIG_KPROBES is not set
+CONFIG_KPROBES=y
 CONFIG_JUMP_LABEL=y
 # CONFIG_STATIC_KEYS_SELFTEST is not set
 CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
 CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_KRETPROBES=y
+CONFIG_KRETPROBE_ON_RETHOOK=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
@@ -8534,8 +8536,10 @@ CONFIG_RCU_TRACE=y

 # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_DEBUG_CGROUP_REF is not set
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_RETHOOK=y
+CONFIG_RETHOOK=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
@@ -8567,6 +8571,7 @@ CONFIG_UNWINDER_PROLOGUE=y
 #
 # CONFIG_KUNIT is not set
 # CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FUNCTION_ERROR_INJECTION is not set
 # CONFIG_FAULT_INJECTION is not set
 CONFIG_ARCH_HAS_KCOV=y
 CONFIG_CC_HAS_SANCOV_TRACE_PC=y
lshw commented 1 month ago

补丁已经加入到https://mirrors.tuna.tsinghua.edu.cn/bjlx/pool/main/l/linux-upstream/linux-image-6.10.6-loong64_6.10.6-2_loong64.deb 请测试一下,以后编译的内核,都会打开这个选项的

lshw commented 1 month ago

我打包用的是linux源码自带的deb打包命令, 我写了个脚本, 来完成打包: #!/bin/sh

export DISTCC_HOSTS="+zeroconf"

export CCACHE_PREFIX=distcc

export CCACHE_DIR=/root/.cache/ccache export PATH="/usr/lib/ccache:$PATH"

export CONCURRENCY_LEVEL=distcc -j

export CONCURRENCY_LEVEL=11

make menuconfig

export CFLAGS=" -march=loongson2k -Wno-unused-but-set-variable"

export CFLAGS=" -march=loongson3a -Wno-unused-but-set-variable"

ver=$(make kernelversion) ver0=${ver%.} date=$( date +%Y-%m-%d ) apt install dpkg-dev debhelper-compat bc bison flex libelf-dev libssl-dev ccache rm debian/stamp/binary/ debian/stamp/install/ debian/stamp/build/

make deb-pkg \

make bindeb-pkg \ -j11 \ KDEB_SOURCE_COMPRESS=xz \ LOCALVERSION=-loong64 \ KDEB_PKGVERSION=${ver}-2 \ KERNELRELEASE=${ver}-loong64 >/tmp/make6.log 2>/tmp/error6.log &

执行后, 会在后台打包, 用tail -f /tmp/make6.log 看过程, tail -f /tmp/error6.log看错误, make bindep-pkg是只打包2进制的,增量的。 make dep-pkg是clean后先做源码包, 比较慢。

haowuge commented 1 month ago

我打包用的是linux源码自带的deb打包命令, 我写了个脚本, 来完成打包: #!/bin/sh #export DISTCC_HOSTS="+zeroconf" #export CCACHE_PREFIX=distcc export CCACHE_DIR=/root/.cache/ccache export PATH="/usr/lib/ccache:$PATH" #export CONCURRENCY_LEVEL=`distcc -j` export CONCURRENCY_LEVEL=11 #make menuconfig ##export CFLAGS=" -march=loongson2k -Wno-unused-but-set-variable" #export CFLAGS=" -march=loongson3a -Wno-unused-but-set-variable" ver=$(make kernelversion) ver0=${ver%._} date=$( date +%Y-%m-%d ) apt install dpkg-dev debhelper-compat bc bison flex libelf-dev libssl-dev ccache rm debian/stamp/binary/_ debian/stamp/install/* debian/stamp/build/* #make deb-pkg \ make bindeb-pkg \ -j11 \ KDEB_SOURCE_COMPRESS=xz \ LOCALVERSION=-loong64 \ KDEB_PKGVERSION=${ver}-2 \ KERNELRELEASE=${ver}-loong64 >/tmp/make6.log 2>/tmp/error6.log &

执行后, 会在后台打包, 用tail -f /tmp/make6.log 看过程, tail -f /tmp/error6.log看错误, make bindep-pkg是只打包2进制的,增量的。 make dep-pkg是clean后先做源码包, 比较慢。

好的,我下次没包我也这样搞

顺便发一个大尴尬,libc6升级了

❯ sudo apt install ./软件包/liblol_0.1.5-1_loong64.deb
注意,选中 'liblol' 而非 './软件包/liblol_0.1.5-1_loong64.deb'
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

无法满足的依赖关系:
 liblol : 依赖: libc6 (< 2.39.1~) 但是 2.40-2 正要被安装
Error: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

哈哈哈哈哈哈哈哈

内核模块能加载了,谢谢

❯ neofetch
       _,met$$$$$gg.            ghw@loongson 
    ,g$$$$$$$$$$$$$$$P.         󰍴󰍴󰍴󰍴󰍴󰍴󰍴󰍴󰍴󰍴󰍴󰍴 
  ,g$$P"        """Y$$.".        OS-> Linux 
 ,$$P'              `$$$.        ├ -> Debian GNU/Linux trixie/sid (loong64) 
',$$P       ,ggs.     `$$b:      ├ -> 6.10.6-loong64 
`d$$'     ,$P"'   .    $$$       ├󰏗 -> 2595 (dpkg) 
 $$P      d$'     ,    $$P       └ -> /bin/zsh 5.9 
 $$:      $$.   -    ,d$$'       DE/WM-> Mutter 
 $$;      Y$b._   _,d$P'         ├󰂫 -> Adwaita [GTK2/3] 
 Y$$.    `.`"Y$$$$P"'            └ -> gnome-terminal 
 `$$b      "-.__                 PC-> XC-LS3A6M 
  `Y$$                           ├󰍛 -> Loongson-3A6000-HV (8) 
   `Y$$.                         ├󰍹 -> AMD ATI Radeon R7 240/340 / Radeon 520 
     `$$b.                       ├ -> 4.16 GiB / 15.76 GiB (26%) 
       `Y$$b.                    └󰅐 -> 1 min 
          `"Y$b._
              `"""                                      

❯ lsmod |grep la
la_ow_syscall          81920  1
drm_display_helper    196608  2 amdgpu,radeon

     ~ ▓▒░