mirror of
https://gitee.com/amber-ce/amber-ce-bookworm.git
synced 2025-12-14 19:12:05 +08:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f8fb5df67 | |||
| ae87013a3a | |||
| 885eb4cfc6 | |||
| 72d926d928 | |||
| 3da7b0c9b4 | |||
| dc01ee917c | |||
| 0d0e8452bf | |||
| b2f1a9cccb | |||
| b1a2b02c1e | |||
| 517816ee00 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,2 +1,2 @@
|
||||
#*.deb
|
||||
*.deb
|
||||
src/opt/apps/amber-ce-bookworm/files/ace-env.tar.xz
|
||||
|
||||
3
debian/changelog
vendored
3
debian/changelog
vendored
@@ -1,4 +1,4 @@
|
||||
amber-ce-bookworm (12.6.0) UNRELEASED; urgency=low
|
||||
amber-ce-bookworm (12.6.2) UNRELEASED; urgency=low
|
||||
* fix: Can't pass args via bwrap
|
||||
* fix: Auto upgrade service always pop up upgradable notifier
|
||||
* fix: /etc/apt/sources.list only request main repo
|
||||
@@ -7,5 +7,6 @@ amber-ce-bookworm (12.6.0) UNRELEASED; urgency=low
|
||||
* adjust: remove dpkg from building depends
|
||||
* 把默认目录改为 amber-ce-bookworm
|
||||
* 支持使用Nvidia驱动加速
|
||||
* 修复 Root 下无法获取IS_ACE_ENV=1
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Wed, 25 Sep 2024 23:15:49 +0800
|
||||
|
||||
@@ -2,18 +2,20 @@
|
||||
export PACKAGE_NAME="$DPKG_MAINTSCRIPT_PACKAGE"
|
||||
|
||||
if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then
|
||||
if [ -d /opt/apps/cn.flamescion.bookworm-compatibility-mode/ ] || [[ -f "/opt/apps/amber-ce-bookworm" ]];then
|
||||
PACKAGE_NAME=amber-ce-bookworm # 为了后面正确清理
|
||||
if [ -d /opt/apps/cn.flamescion.bookworm-compatibility-mode/ ];then
|
||||
|
||||
unlink /opt/apps/amber-ce-bookworm
|
||||
mv -v /opt/apps/cn.flamescion.bookworm-compatibility-mode/ /opt/apps/amber-ce-bookworm/
|
||||
|
||||
ln -sv ./amber-ce-bookworm /opt/apps/cn.flamescion.bookworm-compatibility-mode
|
||||
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/opt/apps/$PACKAGE_NAME/files/bin/ace-init
|
||||
|
||||
|
||||
|
||||
@@ -114,3 +114,4 @@ sudo -u $(who | awk '{print $1}' | head -n 1) bwrap --dev-bind $chrootEnvPath/ /
|
||||
bookworm-run update-locale LANG=$LANG
|
||||
chown -R root $chrootEnvPath
|
||||
chmod 777 -R $chrootEnvPath/usr/share/icons
|
||||
amber-ce-bookworm-configure-nvidia || true
|
||||
67
src/opt/apps/amber-ce-bookworm/files/bin/amber-ce-bookworm-configure-nvidia
Executable file
67
src/opt/apps/amber-ce-bookworm/files/bin/amber-ce-bookworm-configure-nvidia
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
log.warn() { echo -e "[\e[33mWARN\e[0m]: \e[1m$*\e[0m"; }
|
||||
log.error() { echo -e "[\e[31mERROR\e[0m]: \e[1m$*\e[0m"; }
|
||||
log.info() { echo -e "[\e[96mINFO\e[0m]: \e[1m$*\e[0m"; }
|
||||
log.debug() { echo -e "[\e[32mDEBUG\e[0m]: \e[1m$*\e[0m"; }
|
||||
|
||||
if [ "$UID" != "0" ];then
|
||||
log.error "需要以root权限运行 Need to be run as root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1\. 获取宿主机 NVIDIA 驱动版本
|
||||
nvidia_version=$(cat /sys/module/nvidia/version 2>/dev/null)
|
||||
if [ -z "$nvidia_version" ]; then
|
||||
log.error "无法获取 NVIDIA 驱动版本 Can not determine NVIDIA Driver version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2\. 目标目录准备
|
||||
ACE_DIR="/opt/apps/amber-ce-bookworm/files/ace-env"
|
||||
if [[ ! -e "${ACE_DIR}" ]];then
|
||||
log.error "未检测到 ACE Bookworm 安装,请安装后再试 ACE Bookworm is not detected. Please try again after installation"
|
||||
spark-store spk://store/tools/cn.flamescion.bookworm-compatibility-mode &
|
||||
log.info "请按回车关闭... Press Enter to close..."
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p "$ACE_DIR/usr/lib" "$ACE_DIR/usr/lib32"
|
||||
|
||||
log.info "正在链接 NVIDIA 驱动库 Linking NVIDIA Driver Libs"
|
||||
|
||||
# 3\. 收集库文件路径
|
||||
lib_list=$(ldconfig -p | grep -Ei "nvidia|libcuda" | cut -d'>' -f2)
|
||||
|
||||
# 4\. 复制库文件
|
||||
copied=0
|
||||
for lib in $lib_list; do
|
||||
resolved=$(readlink -f "$lib") # 解析符号链接
|
||||
if file "$resolved" | grep -q "32-bit"; then
|
||||
ln -sf "/host/$resolved" "$ACE_DIR/usr/lib32/$(basename $lib)"
|
||||
else
|
||||
ln -sf "/host/$resolved" "$ACE_DIR/usr/lib/$(basename $lib)"
|
||||
copied=1
|
||||
fi
|
||||
done
|
||||
|
||||
# 5\. 复制辅助文件
|
||||
additional_files=(
|
||||
/usr/share/vulkan/icd.d/nvidia_icd.json
|
||||
/usr/share/egl/egl_external_platform.d/20_nvidia_xcb.json
|
||||
)
|
||||
for file in "${additional_files[@]}"; do
|
||||
if [ -f "$file" ]; then
|
||||
file=$(readlink -f "$file")
|
||||
dir=$(dirname "$file")
|
||||
mkdir -p "$ACE_DIR/$dir"
|
||||
ln -sf "/host/$file" "$ACE_DIR/$dir"
|
||||
fi
|
||||
done
|
||||
|
||||
# 6\. 标记版本
|
||||
if [ $copied -eq 1 ]; then
|
||||
echo "$nvidia_version" > "$ACE_DIR/current_version"
|
||||
log.info "NVIDIA 驱动库已成功链接 Nvidia Driver Libs are successfully linked. "
|
||||
else
|
||||
log.error "未找到有效 NVIDIA 库文件 No valid NVIDIA Driver Libs found."
|
||||
fi
|
||||
@@ -0,0 +1 @@
|
||||
IS_ACE_ENV=1
|
||||
@@ -63,7 +63,7 @@ local file=$1
|
||||
chmod +x $file
|
||||
}
|
||||
|
||||
if [ "${IS_ACE_ENV}" != "" ] || [[ -e /opt/ace-host-integration/ace-host-integration ]] && [[ -e /flamescion-container-tools ]];then
|
||||
if [ "${IS_ACE_ENV}" != "" ] ;then
|
||||
if [ -e /opt/apps/ ];then
|
||||
for app_dir in $(ls /opt/apps/); do
|
||||
for file in /opt/apps/$app_dir/entries/applications/*.desktop;do
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
if [ "$UID" = "0" ];then
|
||||
/usr/bin/sudo $@
|
||||
else
|
||||
host-spawn sudo bookworm-run sudo $@
|
||||
host-spawn sudo bookworm-run sudo env IS_ACE_ENV="1" "$@"
|
||||
fi
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
./amber-ce-bookworm/
|
||||
1
src/usr/bin/amber-ce-bookworm-configure-nvidia
Symbolic link
1
src/usr/bin/amber-ce-bookworm-configure-nvidia
Symbolic link
@@ -0,0 +1 @@
|
||||
../../opt/apps/amber-ce-bookworm/files/bin/amber-ce-bookworm-configure-nvidia
|
||||
Reference in New Issue
Block a user